A Subtle Change Makes for Not So Subtle Possibilities

Off and on, I work on HamQuest.

I decided to keep going with the SilverLight version, and to heck with android.

I’ve been tinkering with a great many of the parts of the game.

Mostly, it deal with offloading things into classes that get loaded into descriptors using reflection.

A recent example of this is that I added properties to the player that allow the handling of command keys.

Before that, there were only six in-game commands:

Arrow keys: move

Tab: switch fight modes

Y: invoke the Amulet of Yendor

I wanted to add a “rest” feature.

Pressing the space bar would have some effects:

  1. Healing (health++)
  2. Use up a full turn of the player (light source duration –)
  3. Increment the wandering monster check for a wandering monster in the room (it should not be without risk to rest in a dungeon)

And naturally, there is a limitation on when a player can rest. The room must have no creatures lurking within it.

Since I already had the one-off “Y” command, I figured I’d put it into the same area, when I realized I should offload it to a class that gets loaded as a part of the configuration.

So, now the configuration has the following added to it:

<key-handlers type=”TagSet”>
<amulet-of-yendor-key-handler type=”AmuletOfYendorKeyHandler”/>
<rest-key-handler type=”PlayerRestKeyHandler”/>

I have two parts to this. One, a “TagSet” (i.e. a HashSet<string>) that specifies all of the actual key handlers, and two, the individual key handlers, which use reflection to load into the descriptor.

After putting this in, I realized something…

I have basically made magic spells and special commands to use items possible and infinitely expandable.

And that is when the full realization hit me.

I’m not making a casual roguelike exploring a maze game anymore.

I’m making a casual roguelike exploring a maze game kit.

And I’ve been doing this for some time.

If I wanted to, I could make the “E” key eat ham, the “D” key drink a potion, and all the other roguelike baggage.

Which I do not wish to do for hamquest itself, because the roots of the game are simple controls.

I could add a macguffin item, like mushrooms, to use a “spell components” that power scrolls that do things like banish monsters.

And I could do this WITHOUT recompiling the engine.

Or at least, I’m close to doing so.



New Items, Fiercer Monsters

New Update: http://www.playdeez.com/slhamquest.html

A small amount of code change, and a lot of configuration change.  All of the new items are in (Battleaxe, Amulet of Yendor, Thieves’ Tools, and Vial of Mysterious Green Liquid) but not all of them are functional yet except for the Battleaxe.

Also, monsters have been updated to be more aggressive, item drops have been configured, and item counts in the dungeon have been adjusted to compensate.

Some playtesting will be needed in order to determine if I have now made it too hard.


Item Drop Solution

So I was talking about the item drops, and how I didn’t much like it because the splat of the dead creature hid the image of the item dropped.

Turns out the solution is just to make items render above the splat. Now in the midst of a goblin’s splatty goodness, you may see a ham or copper.

The new version is uploaded, illustrating once again the superiority of a silverlight version for playtesting. I build, I upload a single XAP file, and the player just plays it again, getting a new version(providing he isn’t caching).

Yesterday I learned how to get external variables into the silverlight object. It’s just a particular param tag. This will make facebook integration relatively easy. I’ll just throw the facebook userid into the app, and have any calls to the back end database(coming eventually) use that id as the primary key of the stuff stored.

I also have a ToDo list for HamQuest up.  I put it together yesterday, and crossed off two already.  Most of the items don’t seem all that ambitious this time, which is good. It means the game is nearing completion.


Item Drops Ahoy

Today I added a feature to SLHQ that I hadn’t even been sure I was going to include ever.

The feature is creature item drops. Its up on the site, and ready for testing.

At the moment, until I get to more fully exploring what I want to do with all of the creatures, the only creatures with drops are Goblins and Orcs.

The immediate thing I don’t like about the feature is that a creatures final “splat” is shown, the item is not. In the way that the game currently works, the player can immediately walk onto the space, which means he will pick up the item dropped without really being able to see what it is other than the messages panel.

I will have to carefully consider this, as I do want the player to see something before he picks it up. Always.

Even so, it is a cool feature that will add quite a bit of possibility to the game.