Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.62 KB | None | 0 0
  1. -- Used by Bathe in Light, healing+shielding
  2. -- Keep an eye on this and Weapon of Light for any infinite stack shield then engage combos
  3. newDamageType{
  4.     name = "healing light", type = "HEALING_POWER",
  5.     projector = function(src, x, y, type, dam)
  6.         local target = game.level.map(x, y, Map.ACTOR)
  7.         if target then
  8.             target:setEffect(target.EFF_EMPOWERED_HEALING, 1, {power=(dam/200)})
  9.             if dam >= 100 then target:attr("allow_on_heal", 1) end
  10.             target:heal(dam, src)
  11.  
  12.             -- If the target is shielded already then add to the shield power, else add a shield
  13.             local shield_power = dam * util.bound((target.healing_factor or 1), 0, 2.5)
  14.             if not target:hasEffect(target.EFF_DAMAGE_SHIELD) then
  15.                 target:setEffect(target.EFF_DAMAGE_SHIELD, 2, {power=shield_power})
  16.             else
  17.                 -- Shields can't usually merge, so change the parameters manually
  18.                 local shield = target:hasEffect(target.EFF_DAMAGE_SHIELD)
  19.                 shield.power = shield.power + shield_power
  20.                 target.damage_shield_absorb = target.damage_shield_absorb + shield_power
  21.                 target.damage_shield_absorb_max = target.damage_shield_absorb_max + shield_power
  22.                 shield.dur = math.max(2, shield.dur)
  23.  
  24.                 -- Limit the number of times a shield can be extended
  25.                 if shield.dur_extended then
  26.                     shield.dur_extended = shield.dur_extended + 1
  27.                     if shield.dur_extended >= 20 then
  28.                         game.logPlayer(target, "#DARK_ORCHID#Your damage shield cannot be extended any farther and has exploded.")
  29.                         target:removeEffect(target.EFF_DAMAGE_SHIELD)
  30.                     end
  31.                 else shield.dur_extended = 1 end
  32.             end
  33.             if dam >= 100 then target:attr("allow_on_heal", -1) end
  34.         end
  35.     end,
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement