// Function from file: revenant_abilities.dm public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null) { thearea = thearea ?? Task13.User; dynamic T = null; dynamic floor = null; Obj_Structure_Closet closet = null; Obj_Structure_Bodycontainer corpseholder = null; Obj_Machinery_DnaScannernew dna = null; Obj_Structure_Window window = null; Obj_Machinery_Light light = null; if (this.attempt_cast(thearea)) { foreach (dynamic _f in Lang13.Enumerate(targets)) { T = _f; Task13.Schedule(0, (Task13.Closure)(() => { if (Lang13.Bool(T.flags & 1)) { T.flags -= 1; GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant), T); } if (!(T is Tile_Simulated_Floor_Plating) && !(T is Tile_Simulated_Floor_Engine_Cult) && T is Tile_Simulated_Floor && Rand13.PercentChance(15)) { floor = T; if (floor.intact) { floor.builtin_tile.loc = floor; } floor.broken = 0; floor.burnt = false; ((Tile_Simulated_Floor)floor).make_plating(true); } if (!(T is Tile_Simulated_Wall_Shuttle) && !(T is Tile_Simulated_Wall_Cult) && !(T is Tile_Simulated_Wall_Rust) && !(T is Tile_Simulated_Wall_RWall) && T is Tile_Simulated_Wall && Rand13.PercentChance(15)) { GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant), T); ((Tile)T).ChangeTurf(typeof(Tile_Simulated_Wall_Rust)); } if (!(T is Tile_Simulated_Wall_RWall_Rust) && T is Tile_Simulated_Wall_RWall && Rand13.PercentChance(15)) { GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant), T); ((Tile)T).ChangeTurf(typeof(Tile_Simulated_Wall_RWall_Rust)); } foreach (dynamic _a in Lang13.Enumerate(T.contents, typeof(Obj_Structure_Closet))) { closet = _a; closet.open(); } foreach (dynamic _b in Lang13.Enumerate(T.contents, typeof(Obj_Structure_Bodycontainer))) { corpseholder = _b; if (corpseholder.connected.loc == corpseholder) { corpseholder.open(); } } foreach (dynamic _c in Lang13.Enumerate(T.contents, typeof(Obj_Machinery_DnaScannernew))) { dna = _c; dna.open_machine(); } foreach (dynamic _d in Lang13.Enumerate(T.contents, typeof(Obj_Structure_Window))) { window = _d; window.hit(Rand13.Int(50, 90)); if (window != null && window.fulltile) { GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant_Cracks), window.loc); } } foreach (dynamic _e in Lang13.Enumerate(T.contents, typeof(Obj_Machinery_Light))) { light = _e; light.flicker(20); } return; })); } } return(false); }
// 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; dynamic target = null; dynamic M = null; dynamic S = null; EffectSystem_SparkSpread sp = null; Obj_Structure_Window W = null; if (!this.shadowling_check(thearea)) { this.revert_cast(); return(false); } ((Ent_Static)thearea).audible_message("<span class='warning'><b>" + thearea + " lets out a horrible scream!</b></span>"); foreach (dynamic _c in Lang13.Enumerate(targets)) { T = _c; foreach (dynamic _a in Lang13.Enumerate(T.contents)) { target = _a; if (GlobalFuncs.is_shadow_or_thrall(target)) { if (target == thearea) { continue; } else { continue; } } if (target is Mob_Living_Carbon) { M = target; M.WriteMsg("<span class='danger'><b>A spike of pain drives into your head and scrambles your thoughts!</b></span>"); M.confused += 10; ((Mob)M).setEarDamage(M.ear_damage + 3); } else if (target is Mob_Living_Silicon) { S = target; S.WriteMsg("<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSORY OVERLOAD [$(!@#</b></span>"); S.WriteMsg("sound/misc/interference.ogg"); GlobalFuncs.playsound(S, "sound/machines/warning-buzzer.ogg", 50, 1); sp = new EffectSystem_SparkSpread(); sp.set_up(5, 1, S); sp.start(); ((Mob)S).Weaken(6); } } foreach (dynamic _b in Lang13.Enumerate(T.contents, typeof(Obj_Structure_Window))) { W = _b; W.hit(Rand13.Int(80, 100)); } } return(false); }