Looking for GOOD Shield

Leazy

You can change this now in User CP.
Reaction score
50
It was a really good idea Weep, but changing all damage to spell damage will interfere with several other systems in my map, I would prefer to use a spell that does not change anything major like the way damage is dealt. +rep for trying though.

edit: got to spread some rep first.
 

Leazy

You can change this now in User CP.
Reaction score
50
Dunno, however I would love the one who could do it :)
 

Xonora

New Member
Reaction score
3
Not sure if this is wat u want. Ok, i like easy triggers too.

So do something like

Event
Unit starts effect of ability

Condition
Ability equals (Shield)

Action
Set variable (shield target) = unit of ability being cast


Event
(shield target) takes damage

Action
Set (PreviousHP) = Life of damaged unit
Set life of damaged unit to (PreviousHP)
Set life of (Shield Dummy) to Life of (shield dummy)-damage taken


Event
ShieldDummy dies

Action
Remove buff from (shield target)




So in other words to cr8 a dummy to count the damage for you. IT can have locust so as not to get in the way. This trigger is purely hypothetical, so you gotta change it to fit you. I think you may need to unleak it too. Sorry for the rush job, but its just a theory
 

Leazy

You can change this now in User CP.
Reaction score
50
That would only work for one cast, I need it to work for MUI.
 

Xonora

New Member
Reaction score
3
hmm. But u could do a loop action? So for each time its cast cr8 a dummy? i think ur requirements cant be met with simple triggers
 

Leazy

You can change this now in User CP.
Reaction score
50
Neither do I think that my requirements can be met with a simple trigger, and that is why I'm requesting help. I can make a simple trigger on my own.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
Would it be OK for this ability to set the shielded unit's custom value, or would that interfere with other systems you are using?
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
You're imposing some pretty severe restrictions...

What about Unit - Prop Window Angle?

How many units do you expect to be under the effect of this spell at a time, maximum?

Is it a problem to use a triggered damage event to deal the "leftover" damage that's not blocked from the attack that breaks the shield? Also, I just want to double-check that you realized that when I said "convert all damage to spell damage" for my previous attempt, that would only happen to units being protected by the shield and the trigger automatically did the conversion?

Why is it so important for the damage to be prevented, not immediately healed? And, the damage (before being prevented) will have to still be registrable in a unit is damaged event, in order to track how much the shield needs to absorb...

I'd suggest re-evaluating the other systems in your map, because they seem to be cutting off all potential avenues to create a spell like you want.
 

Leazy

You can change this now in User CP.
Reaction score
50
A maximum of 20 units can be under the effect of the shield. I really don't think that I have to use custom values for this spell, I can do the spell myself with custom values, but it sucks to ruin like 10-15 other spells that rely on custom values just because of this single one.
 

Leazy

You can change this now in User CP.
Reaction score
50
I had a brain concussion yeasterday when I dived into a rock, so I'm having a little bit hard to follow you.

What do you mean with:
What about Unit - Prop Window Angle?

> or my previous attempt, that would only happen to units being protected by the shield and the trigger automatically did the conversion?

Doesn't really matter, atm I don't want it to be spell damage.

> Why is it so important for the damage to be prevented, not immediately healed? And, the damage (before being prevented) will have to still be registrable in a unit is damaged event, in order to track how much the shield needs to absorb...

Because if unit has 100 HP & shield has 50 HP, unit takes 140 damage it should not die but still have 10 HP left.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
I had a brain concussion yeasterday when I dived into a rock, so I'm having a little bit hard to follow you.
Ouch. :( Sorry to hear that.

What do you mean with:
What about Unit - Prop Window Angle?
It's another unit value that doesn't seem to affect gameplay and can be used to store a number...unless your systems already use it. :p

Because if unit has 100 HP & shield has 50 HP, unit takes 140 damage it should not die but still have 10 HP left.
OK.

I think I'll give it another try tonight...sorry in advance if I double-post to put it here.
 

Weep

Godspeed to the sound of the pounding
Reaction score
400
OK, here are two more versions. :nuts: What can I say, I like a challenge, especially when it seems like such a simple idea...

The triggering spell is based on Rejuvination and will be canceled if another spell based on Rejuvination is cast on the same unit. You could replace it with any buffing spell that can be made to have no effect. The spell that adds the buff which is used to prevent re-shielding a unit is based on Cripple and, again, will be canceled if another spell based on Cripple is cast on the shielded unit.

The version titled PropAngle uses Unit - Prop Window Angle to store the shield value. This is more efficient since it can just be retrieved from the unit. Dunno if any of your systems also use this value.

The version titled Array uses an array to store the shield values, and looks through another array to find which index belongs to the damaged unit. This isn't efficient - usually a unit's custom value would be set to its index - but for the few units you said will be under the effect of this spell, it shouldn't lag. Indices are recycled every 4 seconds.

Both versions use the trick of making the unit invulnerable for an instant to negate the incoming damage. This might make a creep de-aggro when it hits a unit that has Power World: Shield active, but I don't think it will interfere with much else...

The triggers are similar to my previous version with the exception of the main damage trigger. Here's the one for the Array version:
Trigger:
  • Shield Damage Calculation
    • Events
    • Conditions
      • ((Triggering unit) has buff PowerWordShield_Buff) Equal to True
    • Actions
      • -------- Find which index in the array is the damaged unit --------
      • -------- Normally this would be the custom value of the unit, but you said that would interfere --------
      • -------- This is inefficient, but shouldn't lag for ~20 units --------
      • Set TempInteger = 0
      • For each (Integer A) from 1 to ShieldValue_ArrayCount, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Triggering unit) Equal to ShieldedUnitsArray[(Integer A)]
            • Then - Actions
              • Set TempInteger = (Integer A)
              • Custom script: exitwhen true
            • Else - Actions
      • -------- Only run the trigger if we found a match --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • TempInteger Not equal to 0
        • Then - Actions
          • -------- Calculate how much damage, if any, overflows the shield strength --------
          • Set TempReal = ((Damage taken) - ShieldValuesArray[TempInteger])
          • -------- If the overflow damage, if there is any, would kill the unit, don't bother protecting it --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Life of (Triggering unit)) - 0.40) Less than or equal to TempReal
            • Then - Actions
              • Unit - Remove PowerWordShield_Buff buff from (Triggering unit)
            • Else - Actions
              • -------- Turn the unit invulnerable to block the original incoming damage --------
              • Unit - Add Invulnerability_Ability to (Triggering unit)
              • -------- Trigger the removal of invulnerability an instant later --------
              • Unit Group - Add (Triggering unit) to ShieldTimerGroup
              • Countdown Timer - Start TempTimer as a One-shot timer that will expire in 0.00 seconds
              • -------- If the shield is not destroyed --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • TempReal Less than or equal to 0.00
                • Then - Actions
                  • -------- Weaken the shield --------
                  • Set ShieldValuesArray[TempInteger] = (ShieldValuesArray[TempInteger] - (Damage taken))
                • Else - Actions
                  • -------- Remove the shield and decrease the life of the unit - we already determined it would not kill it --------
                  • Unit - Remove PowerWordShield_Buff buff from (Triggering unit)
                  • Unit - Set life of (Triggering unit) to ((Life of (Triggering unit)) - TempReal)
        • Else - Actions
 

Attachments

  • PowerWordShield_PropWindow.w3x
    49.9 KB · Views: 178
  • PowerWordShield_Array.w3x
    51.6 KB · Views: 208

Weep

Godspeed to the sound of the pounding
Reaction score
400
Bumping someone else's thread? Madness! :nuts:

(bump)
 
General chit-chat
Help Users

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top