// 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; if (!this.shadowling_check(thearea)) { this.revert_cast(); return(false); } thearea.WriteMsg("<span class='shadowling'>You freeze the nearby air.</span>"); foreach (dynamic _b in Lang13.Enumerate(targets)) { T = _b; foreach (dynamic _a in Lang13.Enumerate(T.contents, typeof(Mob_Living_Carbon))) { M = _a; if (GlobalFuncs.is_shadow_or_thrall(M)) { if (M == thearea) { continue; } else { M.WriteMsg("<span class='danger'>You feel a blast of paralyzingly cold air wrap around you and flow past, but you are unaffected!</span>"); continue; } } M.WriteMsg("<span class='userdanger'>A wave of shockingly cold air engulfs you!</span>"); M.Stun(2); M.apply_damage(10, "fire"); if (Lang13.Bool(M.bodytemperature)) { M.bodytemperature -= 200; } if (M.reagents != null) { M.reagents.add_reagent("frostoil", 15); } } } return(false); }
// Function from file: runes.dm public override void invoke(dynamic user = null) { Mob_Living_Carbon C = null; dynamic N = null; Mob_Living_Carbon M = null; this.visible_message("<span class='warning'>" + this + " briefly bubbles before exploding!</span>"); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchViewers(null, this), typeof(Mob_Living_Carbon))) { C = _a; if (!GlobalFuncs.iscultist(C)) { N = C.null_rod_check(); if (Lang13.Bool(N)) { C.WriteMsg(new Txt("<span class='userdanger'>").The(N).item().str(" suddenly burns hotly before returning to normal!</span>").ToString()); continue; } C.WriteMsg("<span class='cultlarge'>Your blood boils in your veins!</span>"); C.take_overall_damage(51, 51); } } foreach (dynamic _b in Lang13.Enumerate(Map13.FetchInRange(this, 1), typeof(Mob_Living_Carbon))) { M = _b; if (GlobalFuncs.iscultist(M)) { M.apply_damage(15, "brute", Rand13.Pick(new object [] { "l_arm", "r_arm" })); M.WriteMsg("<span class='cultitalic'>" + this + " saps your strength!</span>"); } } GlobalFuncs.explosion(GlobalFuncs.get_turf(this), -1, 0, 1, 5); GlobalFuncs.qdel(this); return; }
// Function from file: runes.dm public override void invoke(dynamic user = null) { Mob_Living_Carbon M = null; this.visible_message("<span class='warning'>" + this + " flares up for a moment, and then disappears into itself!</span>"); new Obj_Effect_Timestop_Cult(GlobalFuncs.get_turf(this)); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(this, 1), typeof(Mob_Living_Carbon))) { M = _a; if (GlobalFuncs.iscultist(M)) { M.apply_damage(20, "brute", "chest"); M.WriteMsg("<span class='cultitalic'>" + this + " temporarily stops your heart from beating!</span>"); } } GlobalFuncs.qdel(this); return; }
// Function from file: turf.dm public override bool handle_slip(Mob_Living_Carbon C = null, int s_amount = 0, int w_amount = 0, dynamic O = null, dynamic lube = null) { Ent_Dynamic buckled_obj = null; int? oldlying = null; int olddir = 0; int? i = null; dynamic dam_zone = null; if (GlobalFuncs.has_gravity(this)) { oldlying = C.lying; if (C.buckled != null) { buckled_obj = C.buckled; if (!Lang13.Bool(lube & 4)) { return(false); } } else { if (Lang13.Bool(C.lying) || !((C.status_flags & 2) != 0)) { return(false); } if (C.m_intent == "walk" && Lang13.Bool(lube & 1)) { return(false); } } C.WriteMsg("<span class='notice'>You slipped" + (Lang13.Bool(O) ? " on the " + O.name : "") + "!</span>"); C.attack_log.Add("[" + GlobalFuncs.time_stamp() + "] <font color='orange'>Slipped" + (Lang13.Bool(O) ? " on the " + O.name : "") + (Lang13.Bool(lube & 2) ? " (LUBE)" : "") + "!</font>"); GlobalFuncs.playsound(C.loc, "sound/misc/slip.ogg", 50, 1, -3); C.accident(C.l_hand); C.accident(C.r_hand); olddir = C.dir; C.Stun(s_amount); C.Weaken(w_amount); C.__CallVerb("Stop Pulling"); if (buckled_obj != null) { buckled_obj.unbuckle_mob(); Map13.Step(buckled_obj, olddir); } else if (Lang13.Bool(lube & 2)) { i = null; i = 1; while ((i ?? 0) < 5) { Task13.Schedule(i ?? 0, (Task13.Closure)(() => { Map13.Step(C, olddir); C.spin(1, 1); return; })); i++; } } if (C.lying != oldlying && Lang13.Bool(lube)) { dam_zone = Rand13.Pick(new object [] { "chest", "l_hand", "r_hand", "l_leg", "r_leg" }); C.apply_damage(5, "brute", dam_zone); } return(true); } return(false); }