// Function from file: shadowling_abilities.dm public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null) { thearea = thearea ?? Task13.User; dynamic T = null; Mob_Living_Carbon M = null; Mob_Living_Carbon M2 = null; if (!this.shadowling_check(thearea)) { this.revert_cast(); return(false); } this.targetsDrained = 0; this.nearbyTargets = new ByTable(); foreach (dynamic _b in Lang13.Enumerate(targets)) { T = _b; foreach (dynamic _a in Lang13.Enumerate(T.contents, typeof(Mob_Living_Carbon))) { M = _a; if (M == thearea) { continue; } this.targetsDrained++; this.nearbyTargets.Add(M); } } if (!(this.targetsDrained != 0)) { this.revert_cast(); thearea.WriteMsg("<span class='warning'>There were no nearby humans for you to drain.</span>"); return(false); } foreach (dynamic _c in Lang13.Enumerate(this.nearbyTargets, typeof(Mob_Living_Carbon))) { M2 = _c; ((Mob_Living)thearea).heal_organ_damage(10, 10); ((Mob_Living)thearea).adjustToxLoss(-10); ((Mob_Living)thearea).adjustOxyLoss(-10); ((Mob_Living)thearea).adjustStaminaLoss(-20); ((Mob)thearea).AdjustWeakened(-1); ((Mob)thearea).AdjustStunned(-1); M2.adjustOxyLoss(20); M2.adjustStaminaLoss(20); M2.WriteMsg("<span class='boldannounce'>You feel a wave of exhaustion and a curious draining sensation directed towards " + Task13.User + "!</span>"); } thearea.WriteMsg("<span class='shadowling'>You draw life from those around you to heal your wounds.</span>"); return(false); }