I am planning on making a skill tree mod based around the idea that you have a bunch of teleportation based spells for both offensive and defensive purposes ,but as I am new to modding this game, or modding in general, I don't know if some of the ideas in my head can be actually executed. I checked the DredMod wiki and the spell XML files of the base game, but I am still not sure about these parts of my idea. First off, this is admittedly highly unlikely, but can you use a spell to return a character to his location x turns ago? Failing that, can you create a mine which serves as an "anchor", so to speak, for your character to return to by casting another spell? Also, can you somehow make a template spell deal damage equal to the character's melee damage? If you can't, is there anything that I could use similar to that idea? Finally, this one will be a bit hard to explain. In this base plan I have for the mod, I intend for the spells in the skill tree to have no mana cost or cooldown, but rather progresively worse debuffs for each use of them in a short timeframe, so, for example, using a spell will trigger a certain minor debuff, and if you use it again before the debuff expires, it gets replaced with a worse debuff, and that debuff can be replaced by an even worse debuff, and so on. Can you do that, and, if you can, can an effect that spawns a monster near the character be linked into that chain of debuffs?
1. See Chronomancy's Grandfather Clock Paradox. 2. Use attack=1 in the spell's flags. 3. See Arcanist's arcane blast. Summoning a hostile monster can be done with summonhostile. Code: <!-- For Arcane Blast --> <!-- Arcane Blast Buffs. --> <spell name="Minor Arcane Charging" type="self" icon="skills/wizard/spell_water9_32.png" wand="0"> <anim sprite="sprites/sfx/mystic_hit/mystic_hit" frames="5" framerate="80" sfx="magic" /> <buff useTimer="1" self="1" allowstacking="0" time="2" icon="skills/wizard/spell_water9_64.png" smallicon="skills/wizard/spell_water9_32.png"> <halo name="sprites/sfx/water_loop/water_loop" first="0" num="6" frameRate="100" /> <primarybuff id="5" amount="-10"/> <!-- Savvy --> <secondarybuff id="3" amount="3"/> <!-- Mpow --> <secondarybuff id="5" amount="5"/> <!-- haywire, to make up for loss from savvy --> </buff> <description text="I'ma charging my mana! Your spells are more potent, but cost much more to cast!"/> </spell> <spell name="Arcane Charging" type="self" icon="skills/wizard/spell_water9_32.png" wand="0"> <anim sprite="sprites/sfx/mystic_hit/mystic_hit" frames="5" framerate="80" sfx="magic" /> <buff useTimer="1" self="1" allowstacking="0" time="2" icon="skills/wizard/spell_water4_64.png" smallicon="skills/wizard/spell_water4_32.png"> <halo name="sprites/sfx/water_loop/water_loop" first="0" num="6" frameRate="100" /> <primarybuff id="5" amount="-30"/> <!-- Savvy --> <secondarybuff id="3" amount="7"/> <!-- Mpow --> <secondarybuff id="5" amount="15"/> <!-- haywire, to make up for loss from savvy --> </buff> <effect type="removebuffbyname" name="Minor Arcane Charging" amount="0" self="1" /> <description text="I'ma charging my mana! Your spells are more potent, but cost much more to cast!"/> </spell> <spell name="Major Arcane Charging" type="self" icon="skills/wizard/spell_water9_32.png" wand="0"> <anim sprite="sprites/sfx/mystic_hit/mystic_hit" frames="5" framerate="80" sfx="magic" /> <buff useTimer="1" self="1" allowstacking="0" time="2" icon="skills/wizard/spell_water8_64.png" smallicon="skills/wizard/spell_water8_32.png"> <halo name="sprites/sfx/water_loop/water_loop" first="0" num="6" frameRate="100" /> <primarybuff id="5" amount="-60"/> <!-- Savvy --> <secondarybuff id="3" amount="12"/> <!-- Mpow --> <secondarybuff id="5" amount="30"/> <!-- haywire, to make up for loss from savvy --> </buff> <effect type="removebuffbyname" name="Arcane Charging" amount="0" self="1" /> <description text="I'ma charging my mana! Your spells are more potent, but cost much more to cast!"/> </spell> <!-- AB checks --> <spell name="Check for Major" type="target"> <effect type="trigger" requirebuffonnottrigger="1" requirebuffonnottriggername="Major Arcane Charging" spell="Minor Arcane Damage" /> <anim sprite="sprites/sfx/null" frames="2" framerate="80" /> </spell> <spell name="Check for Arcane" type="target"> <effect type="trigger" requirebuffonnottrigger="1" requirebuffonnottriggername="Arcane Charging" spell="Check for Major" /> <anim sprite="sprites/sfx/null" frames="2" framerate="80" /> </spell> <spell name="Check for Minor" type="target"> <effect type="trigger" requirebuffonnottrigger="1" requirebuffonnottriggername="Minor Arcane Charging" spell="Check for Arcane" /> <anim sprite="sprites/sfx/null" frames="2" framerate="80" /> </spell> <!-- AB explosions --> <spell name="Arcane Explosion" type="template" templateID="9" anchored="0" affectscorpses="0" > <effect type="damage" aethereal="2" aetherealF="0.2" blasting="2" blastingF="0.1" transmutative="2" transmutativeF="0.1" /> <anim sprite="sprites/sfx/null" frames="2" framerate="100" sfx="aetherial" /> <impact sprite="sprites/sfx/mystic_hit/mystic_hit" frames="5" framerate="80" sfx="aetherial" centerEffect="0"/> <description text="Does what it says." /> </spell> <spell name="Major Arcane Explosion" type="template" templateID="20" anchored="0" affectscorpses="0" > <effect type="damage" aethereal="2" aetherealF="0.3" blasting="2" blastingF="0.2" transmutative="2" transmutativeF="0.2" /> <anim sprite="sprites/sfx/null" frames="2" framerate="100" sfx="aetherial" /> <impact sprite="sprites/sfx/mystic_hit/mystic_hit" frames="5" framerate="80" sfx="aetherial" centerEffect="0"/> <description text="Does what it says." /> </spell> <spell name="Supreme Arcane Explosion" type="template" templateID="12" anchored="0" affectscorpses="0" > <effect type="damage" aethereal="2" aetherealF="0.4" blasting="2" blastingF="0.3" transmutative="2" transmutativeF="0.3" /> <effect type="removebuffbyname" name="Major Arcane Charging" amount="0" self="1" /> <anim sprite="sprites/sfx/null" frames="2" framerate="100" sfx="aetherial" /> <impact sprite="sprites/sfx/mystic_hit/mystic_hit" frames="5" framerate="80" sfx="aetherial" centerEffect="0"/> <description text="Does what it says." /> </spell> <!-- Arcane Blast Damages --> <spell name="Minor Arcane Damage" type="target" > <effect type="damage" aethereal="2" aetherealF="0.2" blasting="2" blastingF="0.2" transmutative="2" transmutativeF="0.1" /> <impact sprite="sprites/sfx/mystic_hit/mystic_hit" frames="5" framerate="80" centerEffect="0"/> <effect type="trigger" spell="Minor Arcane Charging" amount="1" /> <description text="Testing, testing."/> </spell> <spell name="Arcane Damage" type="target" > <effect type="damage" aethereal="2" aetherealF="0.4" blasting="2" blastingF="0.4" transmutative="2" transmutativeF="0.2" /> <effect type="trigger" spell="Arcane Explosion" /> <effect type="trigger" spell="Arcane Charging" amount="1" /> <description text="Testing, testing."/> </spell> <spell name="Major Arcane Damage" type="target" > <effect type="damage" aethereal="2" aetherealF="0.6" blasting="2" blastingF="0.6" transmutative="2" transmutativeF="0.3" /> <effect type="trigger" spell="Major Arcane Charging" amount="1" /> <effect type="trigger" spell="Major Arcane Explosion" /> <description text="Testing, testing."/> </spell> <spell name="Supreme Arcane Damage" type="target" > <effect type="damage" aethereal="2" aetherealF="0.8" blasting="2" blastingF="0.8" transmutative="2" transmutativeF="0.4" /> <effect type="trigger" spell="Supreme Arcane Explosion" /> <description text="Testing, testing."/> </spell> <!-- Actual AB Spell. --> <spell name="Arcane Blast" type="target" icon="skills/wizard/spell_water9_32.png" > <requirements mp="30" savvyBonus="0.4" mincost="10" /> <effect type="trigger" requirebuffontrigger="1" requirebuffontriggername="Minor Arcane Charging" spell="Arcane Damage" /> <effect type="trigger" requirebuffontrigger="1" requirebuffontriggername="Arcane Charging" spell="Major Arcane Damage" /> <effect type="trigger" requirebuffontrigger="1" requirebuffontriggername="Major Arcane Charging" spell="Supreme Arcane Damage" /> <effect type="trigger" requirebuffonnottrigger="1" requirebuffonnottriggername="Minor Arcane Charging" spell="Check for Minor" /> <anim sprite="sprites/sfx/blastA/blastA" frames="4" framerate="70" centerEffect="1" sfx="explosion"/> <description text="Blast your enemy with raw mana and charge yourself with it at the same time!"/> </spell>
Thank you very much. This post has been very useful, and I started working on the mod. It might not see the light of the steam workshop, and, even if it does, it won't be anywhere near the level of chronomancy, but I probably wouldn't have gotten anywhere with my idea as it is without your help.
Is that how Clockwork Reflexes and Clockwork Threshing work? I remember looking at the code and trying to figure out what kind of crazy hoodoo had been done to make a spell that (IIRC) appeared to consist only of animations actually do something.
Actually, I just looked at the code again and while Puissant Touch has attack="1", Clockwork Reflexes and Threshing don't appear to.
On the other hand, they "don't appear to" have anything at all. And because of that they got the 'attack="1"' thing by default. It's a bit weird and I don't fault you for getting a little confused there. There was a time when I had a "what exactly is that supposed to be doing" moment too, before I reminded myself that some things can have "conditional" default values.
The skill that calls on Clockwork Reflexes uses a counterBuff trigger. It's likely that the following spell assumes it to be attack="1". Though, I think this is exactly what Kazeto is saying. So, yeah.