One Shiny Ring to Rule them All

After playing around with tactical movement (which I’ll hopefully be getting back to shortly), I spent a few weeks playing around with magic item creation.  Rather than go through the litany of development, I’ll cut to the finale: the ring of invisibility; a somewhat classic trope of fantasy.

I’ve had basic support for invisibility built-in for quite some time as the creature awareness system needs to be able to determine what can and cannot be seen.  What I hadn’t completed (or worked on) until the past week weeks was the invisibility spell, nor magic items (nor apparently any in-game actions to put on or take off body-slotted items).

So here we are now:

01-Activate

The power to turn invisible comes from a command-word spell activation associated with the ring. Currently, this doesn’t express itself in the context menu of the ring in the equipment panel.

The command-word activation isn’t currently running through an environment interaction, I haven’t completely normalized how the sounds propagation works or which actions require verbalizing (apart from spells with verbal components).  One of the many things on my to-do list.

One of the oddities of the invisibility spell is that it requires a will-save:

02-WillSave

Prerequisites to finish actions do not automatically pop-open the client UI at the moment. Also, since I’m testing with the time-tracker instead of the initiative-based turn-tracker; I can still move while this “dialog” is unmodally waiting for me to send the will save.

Well, if I saw myself before, I don’t see myself now…

03-WhereAmI

I have to force a refresh by ending the turn. I’ll need to add a “general” refresh step to the client-server communication stream to signal client refresh for any actor with awareness so far.

Just to get an outside perspective, I’ll switch to another viewer, Spidey the spider…

04-SecondUnitCamera

I’ve had a multi-actor client UI for awhile. Certainly makes it easier to test.

Probably should add some portraits to these guys!

Probably should add some portraits to these guys!

Looking through spidey’s eyes and checking his awarenesses, the Wiz is definitely gone…

06-TrulyInvisible

The Wiz should be right about in the middle of the display

Removing the ring will deactivate the invisibility effect…

07-Deactivate

Not exactly explicitly spelled out in the core-rules, but since a 3rd level casting would have a duration of 30 rounds (3 minutes), removing the ring causing deactivation seems a reasonable way to prevent one ring from enabling an entire party of four. Also, this ring only supports the “personal” spell mode, not creature/object touched mode.

I don't have multi-grip holding slots at the moment, in which you can juggle multiple things in one hand.

The ring has to go somewhere, so I add it to a holding slot. If there were no holding slots, it would fall to the ground or into a treasure trove (if there was already treasure in the cubic cell).

Well, I can obviously see myself again, now to check Spidey…

One little problem, magic torch should say torch

I can even select the Wiz in Spidey’s targeting queue.

I have that loosing awareness doesn’t clear the targeting queue in the UI.  That’s a minor problem since on the server you still won’t be able to target directly.  Mostly needs some client UI work since the targeting system is all client-side.

Advertisements

DCIV

It’s been a few months since I’ve posted, but I’ve had over a hundred code check-ins since then.  A quick round-up is in order:

For the first week after my last post I was debugging, performance tweaking and refactoring a lot, trying to cleanup some code and get the system to behave more like I’d expect as a user.  One of the major “new” accomplishments from that week was getting the spider to climb on the ceiling, and before two weeks were out, climbing around corners and fixing some client window issues.

Early June had some fixes to the workshop (and support functions in the core) for room editing and light propagation through room links.  The bulk of June into early July was working on movement-related things such as multi-step movement targeting which involves picking a cell in the distance (using target selection) and moving towards it with a single UI command; as both an alternative to single-stepping, but as a requirement for overrun and tumble through (as well as jump).  I basically had to rework the single-step movements to be a “degenerate” case of multi-step to get the whole system to be relatively streamlined.

June also saw the beginnings of my refactoring for VS 2015 (using the Community Edition Release Candidate).

By about July 26th I was experiencing a small amount of movement burnout (since I still hadn’t completely worked through overrun, tumble and bull-rush like I intended, let alone jump, run or charge).  And moved on to some other things.