This week I tried out a new spell-casting scheme, including adding 2 new spells.
And, atoms learned to apply status effects to characters, such as "on fire" and "poisoned".
Spell Casting
With enemies chasing and killing us (or at least me) pretty consistently now, our existing spells weren't cutting it.
3 months ago in Designing a Magic System I sketched out a design for how spell-casting could work, based on combining any 2 elements together to cast a spell.
Some assisted brainstorming later (thanks Discord friends), I had some initial spell ideas:
A bit of fiddling later, I had the casting mechanism implemented:
Steam Geyser Jump
I implemented the Steam Geyser Jump spell as a test:
3 facts immediately became clear:
- You can't tell what elements you're summoning - especially for the second element, since it disappears as soon as it shows!
- This control mechanism is pretty hard to use on a keyboard: Q for Water + Tab for Fire, and repeat that if you want to cast it over - under time pressure!
- Steam Geyser Jump looks like a fart jump. Oops. 1
Fireball
Okay so it's kinda hard to cast a movement spell that way. But what about combat spells?
The (non-burning) fireball worked a bit better; Tab + Tab is actually easy to press over and over.
Still, it's a bit fiddly - next week I might try adding the "quick recast via Right Trigger" control and see if that improves things.
Status Updates
Hiding in the last few videos is another feature: enemies and players now keep track of when they're affected by status effects like fire!
This also works for statuses like wet and poisoned:
Under the covers, this is implemented by reworking how characters (players and enemies) interact with the individually-simulated atoms: instead of characters pretending to be made of wood atoms that burn, they check to see if there are any nearby atoms that apply status effects. 2
I think this makes sense because conceptually, characters would be "in" liquids, not blocking them - so for example liquids should flow past them:
Playable web build
Here, go fart steam-jump your way to higher ground - and give those hounds a bit of fireball medicine:
Press F1 for full controls, or here's the quick reference:
- Q: summon Water element.
- Tab: summon Fire element.
- R: summon Earth element.
- F: summon Temp (placeholder) element - existing spells like acid lob are here for now.
And here are the new spells to use 'em with:
- Fire + Fire -> Weak Fireball
- Water + Fire -> Steam Geyser Jump
- Water + (hold) Water -> Water Spray (oh hey, I guess I added 3 new spells)
Old spells:
- Temp + (hold) Temp -> Flamethrower
- Temp + Water -> Water wave
- Temp + Earth -> Acid lob
Probably need to have the steam clearly coming from the ground over a tenth of a second or so, rather than seemingly instantly appearing from my characters bottom.
This also means you can't put out a fire just by running away from the fire atoms! (that was a bug - I don't think anyone runs fast enough to outrun fire!)