Resurrection pool

Issue #35 new
joseasoler repo owner created an issue

Right now, resurrection only allows to resurrect the civilization hero. Religion heroes and Grigori adventurers are gone forever once they die. It does not store any information about the dead hero; when the hero is resurrected it starts as a newly created unit.

Since Resurrection works unconditionally, you can build things like the Shrine of the Champion and then resurrect your hero. You can also Wane Rathaus Denmora and resurrect him after that. I did not test it, but I'm quite sure that units killed with the Nether Blade can be resurrected.

MagisterCultuum fixes most of these issues by using fake units (sluaghs) that keep additional info that is used by the resurrection spell. This workaround does not involve the DLL.

What I would like to do is to implement a resurrection pool in the DLL instead. Whenever a unit dies, a python call is made to know if the unit should be stored into the resurrection pool of that specific civilization. The pool would expose methods to python to allow to iterate through it, pick specific units from it or remove units from it.

With this implementation, it would be possible to implement any resurrection scheme, taking into account anything that the modder wants. It could also be abused to implement other mechanics such as "storage" of units.

Comments (4)

  1. lfgr

    Sometime I thought of some sort of a "character database", storing information about each present and possible character in a game. It could prevent f.e. having a character both as leader and unit (duin, priests of winter). It could also store information about dead or "submerged" leaders (that specifically should or should not lead a revolution).

    Something like that would open possibilities for flavor enhancements, but probably isn't worth the huge effort. Though you may want to consider making your pool at least somewhat extensible for such or similar use.

  2. joseasoler reporter

    Since all of the accesses to the pool are managed via Python, changing how it works should not be very complicated. Given that it is thought to handle only dead units its utility to prevent the scenarios you mention is limited. It could be used to prevent the resurrection of specific world units (by including a fake one into the pool and not allowing its resurrection) and, through very creative Python and XML code, I guess that you could create a fake unit representing each one of the leaders. If it is in the pool, the leader cannot be used. I think that this should use a different system instead of abusing a different one, though

  3. Tasunke Witka

    I've an idea (as a quick fix) for when the Grigori use Ressurection Spell ... (that spell takes 7 turns to cast right?)

    10% chance to spawn an Adventurer, 10% chance to spawn a great commander, 80% chance to spawn a Dragon Slayer.

  4. Log in to comment