Monday, February 18, 2013

Psionics

As I mentioned in a previous post, the Psion has been a driving force in developing my own nethack variant.  Here are some of my thoughts:

They would somewhat resemble monks, i.e., can't wear armor, martial artists, etc.  Instead of getting intrinsic resistances as they progress in experience, psions would gain pychic powers, such as see invisible, telepathy, clairvoyance, and maybe eventually detect monsters (as an intrinsic), and flying.

They'd also need some psionic powers, like a telekinesis technique.  The slashem Jedi patch has a pretty good implementation for a telekinesis technique, bud I'd also like to add my own psychokinesis technique.

Psychokinesis: the player selects a physically visible target (as opposed to seen by telepathy), then selects a visible location to which to move the object.  The object can be a monster, an item, a pet, even the psion himself.  Damage would be dealt to monsters that are thrown into other monsters based on the affected monsters' sizes.  Damage would be dealt if an object (weapon, item, boulder, etc) was moved to a monster's location (i.e., hurled at a monster), potions would shatter.  The psion must not be blind, stunned, or confused.  Hallucination is okay, since it really opens up your mind, man.  There would  have to be a chance of failure if used to hurl a hostile monster.  Notes: (1) I need to fix the uppercase The in the below screenshots and (2) the rock-mole in the lower right shows up because I was toying with detect monsters as an intrinsic.





Anyway, this thought led me down the path to adding a new feature to the overall game play: the ability to pick-up and throw monsters.  Obviously, the held monster will have to be smaller than the player.  The held monster will try to escape each turn it is held.  It will also attack each turn it can, and will escape if the attack succeeds.  This can be useful for carrying pets across traps, or over water, lava, etc.  On the other hand, giants become more dangerous because they might choose to pick the player up and throw him into a trap, water, or lava.

Finally, the coup de grace of my Psion brainstorming: spellbook of dominate.  Here's the gist: when you cast dominate, you select a visible monster (I'm up in the air about whether visibility through telepathy should work in this case).  If you succeed in a check against the monster's magic resistance, you gain control of that monster for a short duration (50 turns? 100 turns? I'm leaning shorter rather than longer).

Implementing this will probably require some major restructuring of the code.  Currently, the game assumes that you can only control one character.  I would need to change things so that the player could control multiple monsters (himself included as a monster).

The interface should be such that it is clear to the player when he is moving the dominated monster(s) or moving himself.  This should be straight forward, just highlight the player under control, change the bottom line to show the stats of the dominated monster, and add a message like:
pline( "You control the %s with your mind!", Monnam(mtmp));

I can probably use some of the youpoly code as a hack to fake the game out into thinking you are polymorphed into the dominated monster at the location of that monster, with that monster's inventory, but I think a cleaner solution would be to abstract the movement interface/bottom line interface so that it's not geared towards a game where the player can only control a single monster.  (This could help pave the way to multiplayer nethack...but I'm not touching that one right now).

No comments:

Post a Comment