Sigils are a critical part of gameplay that has sorely been neglected. Time to change that.
So, let’s talk about what a sigil is:
- Sigils empower spells from a specific school of magic
- Sigils might add additional castle abilities (like Mass Teleport)
- Sigils can be damaged and repaired
- Sigils can be full of mana or drained and no longer working
- Sigils can occupy 0-4 mages at a given time depending on upgrade level
- Oh, and Sigils can be upgraded.
Evocation sigil should be relatively straightforward and I’ve implemented Fireball, so I plan to start with it.
Sigil Slots
The Evocation sigil will start with a single slot for a mage and can grow up to 4 slots.
I wrote a system where all mages reach the sigil, and once they do, they are
placed into a slot. They have a SigilUser
component while present which prevents
them from autoattacking or moving.
I also chose that each type of sigil should have its own effect. There will be a generic
SigilSystem
that will handle using sigils, assigning them, but effects will be up to other
systems. So I made a placeholder EvocationSigilSystem
and Evocation
component for empowering
damage spells.
The jerky teleportation looks rough, so rather than just snapping into place on the slot, mages now walk to their slot.
However, they all greedily dive for the first slot. There’s two issues with this behavior.
- They should go for the closest slot, not the first.
- They shouldn’t go for a slot that is taken/reserved.
So I added a simple reservation system. Mages choose the closest unreserved and unoccupied slot first, if all are occupied, the mage won’t attempt to take a slot. If there is a reserved slot, the mage will try to beat the other mage to it anyway.
Evocation Spellcasting
When a mage casts at an Evocation circle, their spell is empowered. This might mean both a longer cast time and more damage.
I also want the player to be able to time the release of the spell once it is charged.
As the mage finishes the cast time, they can stay concentrating on the spell until the player chooses the target and have it release!
That way you can coordinate multiple spellcasts at once without having to know their cast times ahead.
Here’s a quick demo of the Evocation circle!
Now for the other sigils…