Trying to make something the forum will appreciate...

Discussion in 'Modding' started by Vitellozzo, Aug 13, 2013.

  1. Vitellozzo

    Vitellozzo Member

    Yep, but I read that amount="0" delete every istance of the buff, not 0 buff. Putting 1 instead of 0 in the amount didn't changed nothing, anyway.
    I fear I cannot read this into the spells. What I've done wrong?
    I wanted to make it like "as soon as 'Start Buff' disappears, remove 'Good Buff'",
     
    Kazeto likes this.
  2. lccorp2

    lccorp2 Member

    Amount="0" removes all the buffs.

    Amount="x" removes x instances of the buff from a stack.

    For the second one, I don't think I see a problem. While start buff is active, recurse Remove Good Buff Check until not active, then Remove Good Buff. I use something similar for Blood Knight to track whether a buff is active and knock off 1 hp every four turns if so:

    Code:
    <spell name="Blood Price" downtime="25" type="self" icon="skills/blood_knight/blood_price32.png" wand="0">
        <anim sfx="naughty"/>
        <effect type="trigger" spell="Blood Upkeep" amount="4" />
        <effect type="trigger" spell="Blood Price Effect" />
        <description text="The runes on your weapon (or boot) have awakened to help you drain health from your enemies. If you do not constantly feed them the blood of others, they'll take yours instead!"/>
        </spell>
    
    <spell name="Blood Upkeep" type="self" >
        <effect type="heal" amount="-1" />
        <effect type="trigger" spell="Blood Upkeep" amount="4" requirebuffontrigger="1" requirebuffontriggername="Blood Price Effect" />
      </spell>
    
    <spell name="Blood Price Effect" type="self" icon="skills/blood_knight/blood_price32.png" >
        <anim sprite="sprites/sfx/curse_hit/curse_hit" frames="6" framerate="100" sfx="naughty" centerEffect="1"/>
        <buff useTimer="0" removable="1" allowstacking="0" icon="skills/blood_knight/blood_price64.png" smallicon="skills/blood_knight/blood_price32.png" >
            <secondarybuff id="13" amount="-99" /> <!-- life regen -->
            <targetHitEffectBuff percentage="100" name="Blood Drain" />
        </buff>
        <description text="The runes on your weapon (or boot) have awakened to help you drain health from your enemies. If you do not constantly feed them blood of others, they'll take yours instead (at the cost of one health every four rounds)!"/>
      </spell>
     
    Kazeto likes this.
  3. Vitellozzo

    Vitellozzo Member

    I neither see a problem, but the problem is right here: it doesn't work in game.
    Since what you told me about dots, I will try to not use them with long-active effects, since issues. But I think there must be a workaround, because a so simple spell chain is not supposed to not work so indecently.
    I was thinking about changing Good Buff from a single x turns long buff to a recursive autocasting 1 turn buff Good Buff, which will recast itself for x times. Every time it checks for Start Buff, so instead of removing it, the absence of Start Buff will stop it from triggering itself.
    It's time for some !SCIENCE!.
    :edit: I... I...
    I didn't wanted to kill it...
    Code:
    <spell name="Remove Good Buff" type="self" >
        <effect type="removebuffbyname" name="Good Buff" amount="1" />
    </spell>
    
    <spell name="Good Buff check" type="self" >
        <effect type="trigger" spell="Remove Good Buff" amount="1" requirebuffonnottrigger="1" requirebuffonnottriggername="Start Buff" />
        <effect type="trigger" spell="Good Buff check" amount="1" requirebuffontrigger="1" requirebuffontriggername="Start Buff" />
    </spell>
    
    <spell name="Good Buff call" type="self" >
        <effect type="trigger" spell="Good Buff check" amount="1" />
        <effect type="trigger" spell="Good Buff" />
    </spell>
     
    Last edited: Aug 18, 2013
    Kazeto likes this.
  4. Kazeto

    Kazeto Member

    Ah, right...

    So there I went, sorry for not really noticing what I read; goes with me not feeling the best right now (yay for getting sick), but still, I should have made sure that I don't spout gibberish when trying to give advice.
     
  5. lccorp2

    lccorp2 Member

    Try removing the amount="1" from the requirebuffonnottrigger on Good Buff Check. That 1-turn delay might be the problem - gives time for errors to be introduced.
     
    Syphonix likes this.
  6. Kazeto

    Kazeto Member

    Wait, that's it...
    The 'amount="1"' tag, when used on a trigger effect with either 'requirebuffontrigger="1"' or 'requirebuffonnotrigger="1"', isn't used to mark the delay but rather the required size of the buff stack. So the spell doesn't call itself on the second turn.
    To get around that, you have to make another spell, which will be used to call "Good Buff Check" after 1 turn with no requirements, and have "Good Buff Check" trigger this spell instead of itself.
     
    Syphonix likes this.
  7. Vitellozzo

    Vitellozzo Member

    No prob Kaz, and thanks for the efforts anyway.
    The fact is that now this new code seems to break the game entirely, blocking it when stepping on the spellmine which starts everything.
     
  8. lccorp2

    lccorp2 Member

    I guess that would make sense, since it calls for the game to infinitely recurse the spell on itself in the same turn. Bah. Should've realised that sooner...
     
  9. Vitellozzo

    Vitellozzo Member

    I cannot see the error behind this, it's going to be posticipate after the release in a secoundary bugfix patch.

    It is even possible to make requirebuffontrigger and it's opposite to work with more than one buff at the time?
    What I want to make a spell works in more than one or two possible effects: without checking buffs, it deals Effect 1; with only Buff A active, it deals Effect 2 instead; with only Buff B active, it deals Effect 3 instead; finally, when both Buff A and B are on the character at one time, then Effect 4 is dealt.
    But the validator says I'm using duplicated attributes when making
    Code:
        <effect type="trigger" spell="Effect 1" amount="1" requirebuffonnottrigger="1" requirebuffonnottriggername="Buff A" requirebuffonnottrigger="1" requirebuffonnottriggername="Buff B" />
    I fear this will be hard. But anyway, it should be the last crazy effect I make together.
     
    Kazeto likes this.
  10. Syphonix

    Syphonix Member

    I haven't tested this to see if it works or if any of it is unnecessary, but it could be a step in the right direction.


    Code:
    spell name="Effect 1 Applier" type="target">
        <effect type="trigger" spell="Effect 1"/>
        <effect type="trigger" spell="Stop it!"/>
    </spell>
    
    <spell name="Effect 2 Applier" type="target">
        <effect type="trigger" spell="Effect 2"/>
        <effect type="trigger" spell="Stop it!"/>
    </spell>
    
    <spell name="Effect 3 Applier" type="target">
        <effect type="trigger" spell="Effect 3"/>
        <effect type="trigger" spell="Stop it!"/>
    </spell>
    
    <spell name="Effect 4 Applier" type="target">
        <effect type="trigger" spell="Effect 4"/>
    </spell>
    
    <spell name="Effect 1 Checker" type="target">
        <effect type="trigger" spell="Effect 1 Applier" requirebuffonnottrigger="1" requirebuffonnottriggername="Buff B"/>
    </spell>
    
    <spell name="Effect 2 Checker 1" type="target">
        <effect type="trigger" spell="Effect 2 Applier" requirebuffonnottrigger="1" requirebuffonnottriggername="Stop it!"/>
    </spell>
    
    <spell name="Effect 2 Checker" type="target">
        <effect type="trigger" spell="Effect 2 Checker 1" requirebuffonnottrigger="1" requirebuffonnottriggername="Buff B"/>
    </spell>
    
    <spell name="Effect 3 Checker 1" type="target">
        <effect type="trigger" spell="Effect 3 Applier" requirebuffonnottrigger="1" requirebuffonnottriggername="Stop it!"/>
    </spell>
    
    <spell name="Effect 3 Checker" type="target">
        <effect type="trigger" spell="Effect 3 Checker 1" requirebuffonnottrigger="1" requirebuffonnottriggername="Buff A"/>
    </spell>
    
    <spell name="Effect 4 Checker 1" type="target">
        <effect type="trigger" spell="Effect 4 Applier" requirebuffonnottrigger="1" requirebuffonnottriggername="Stop it!"/>
    </spell>
    
    <spell name="Effect 4 Checker" type="target">
        <effect type="trigger" spell="Effect 4 Checker 1" requirebuffontrigger="1" requirebuffontriggername="Buff B"/>
    </spell>
    
    <spell name="Buff Checker" type="target">
        <effect type="trigger" spell="Effect 1 Checker" requirebuffonnottrigger="1" requirebuffonnottriggername="Buff A"/>
        <effect type="trigger" spell="Effect 2 Checker" requirebuffontrigger="1" requirebuffontriggername="Buff A"/>
        <effect type="trigger" spell="Effect 3 Checker" requirebuffontrigger="1" requirebuffontriggername="Buff B"/>
        <effect type="trigger" spell="Effect 4 Checker" requirebuffontrigger="1" requirebuffontriggername="Buff A"/>
    </spell>
     
    Vitellozzo and Kazeto like this.
  11. Kazeto

    Kazeto Member

    You have to use either one or the other. That is why you have to nest triggering spells if you want to make more complex requirements.
     
    Vitellozzo likes this.
  12. Vitellozzo

    Vitellozzo Member

    I think this is nearly what I want, and again, thanks a lot Syphonix. My only regret is to not being so open minded when thinking about spell chains, and this translate into you (expecially, nowadays) working instead of me.
    Not that I don't apprecciate your efforts, instead I really find those helpful... What can I say, I just hope the finished work may also be liked by you.
    Test will follow... when I'll have time. I've restarted with studies and the entire thing will be slower in the making process.
     
    Kazeto and Syphonix like this.
  13. Vitellozzo

    Vitellozzo Member

    I just don't understand the need of "Stop it!" buff here: there should be one and just one path for every situation, and this doens't go through turns so I don't see why they are checking for "Stop it!" since I can't see a situation when "Stop it!" is there before the buff checker 1.
     
  14. Vitellozzo

    Vitellozzo Member

    Everything is almost done.
    The last things it miss will be reached only by my workarounds since it's the last test for me. Anyway, the mod can be played as it is.
    It lacks the animations, though, so I will spend some days figuring how do they work.
    I'm really happy about how it came out, soon it will be the time.
     
  15. Vitellozzo

    Vitellozzo Member

    I really have to work on focus one time or another.
    Needs some time to finish packing everything since I really don't know how to add sprites and other fancy things to spells, and I just have to smooth some other spells.
    Someone with high grade modding capacity could give me an hand, one of those days?
     
    Essence and Kazeto like this.
  16. Kazeto

    Kazeto Member

    Depends on the exact sort of help you need and on who is acceptable there.
     
    Vitellozzo likes this.
  17. Vitellozzo

    Vitellozzo Member

    I got what you meant, Kazeto. You're in!
    (bwauhahuahua don't worry, i'll post what i need when the time will be right, so you all can fight over to help me)
     
    Kazeto likes this.
  18. Vitellozzo

    Vitellozzo Member

    Dredmor save corruptions really don't help me being focused on everything it involves.
    Blast mods!
     
  19. Kazeto

    Kazeto Member

    Do you mean game mods, or are you going on a vendetta against Daynab?

    I though it better to ask before saying anything else.