package ShieldKit import PresetBuffs import TextTagEntity import GameTimer import Assets import Heightmap import Entity public buffTuple buffAbil = compiletime(createDummyBuffObject("Shield Kit", "This unit is protected by a shield that absorbs damage", "BTNDivineIntervention.blp", Abilities.divineShieldTarget)) class ShieldKitBuff extends ShieldBuff vec3 pos construct(real amount) super(90., buffAbil, amount) override function apply(unit ue) super.apply(ue) pos = ue.getPos().withHeightMap() override function defenseModifier() super.defenseModifier() if blockAmount > 0 new TextTagEntity(pos, vec3(GetRandomReal(-2, 2),0, GetRandomReal(8,12)), blockAmount.toInt().toString() , 10, 1., colorA(255, 204, 12, 255)) override function onEnd() if duration == 90. new TextTagEntity(pos, vec3(0,0, GetRandomReal(9,12)), "Shield applied" , 13, 1.55, colorA(255, 204, 12, 255)) else new TextTagEntity(pos, vec3(0,0, GetRandomReal(9,12)), "Shield collapsed" , 13, 1.55, colorA(255, 204, 12, 255)) init EventListener.onTargetCast('A00D') (caster, target) -> new ShieldKitBuff(200. + (getElapsedGameTime() * 2.)).apply(target)