// 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; Mob_Living mob = null; Mob_Living H = null; bool blightfound = false; Disease_Revblight blight = null; Obj_Effect_Spacevine vine = null; Obj_Effect_Glowshroom shroom = null; Obj_Machinery_Hydroponics tray = null; if (this.attempt_cast(thearea)) { foreach (dynamic _f in Lang13.Enumerate(targets)) { T = _f; Task13.Schedule(0, (Task13.Closure)(() => { foreach (dynamic _b in Lang13.Enumerate(T.contents, typeof(Mob_Living))) { mob = _b; if (mob == thearea) { continue; } GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant), mob.loc); if (mob is Mob_Living_Carbon) { if (mob is Mob_Living_Carbon_Human) { H = mob; if (Lang13.Bool(((dynamic)H).dna) && Lang13.Bool(((dynamic)H).dna.species)) { ((Species)((dynamic)H).dna.species).handle_mutant_bodyparts(H, "#1d2953"); ((Species)((dynamic)H).dna.species).handle_hair(H, "#1d2953"); ((Species)((dynamic)H).dna.species).update_color(H, "#1d2953"); Task13.Schedule(20, (Task13.Closure)(() => { if (H != null && Lang13.Bool(((dynamic)H).dna) && Lang13.Bool(((dynamic)H).dna.species)) { ((Species)((dynamic)H).dna.species).handle_mutant_bodyparts(H); ((Species)((dynamic)H).dna.species).handle_hair(H); ((Species)((dynamic)H).dna.species).update_color(H); } return; })); } blightfound = false; foreach (dynamic _a in Lang13.Enumerate(H.viruses, typeof(Disease_Revblight))) { blight = _a; blightfound = true; if ((blight.stage ?? 0) < 5) { blight.stage++; } } if (!blightfound) { H.AddDisease(new Disease_Revblight()); H.WriteMsg("<span class='revenminor'>You feel " + Rand13.Pick(new object [] { "suddenly sick", "a surge of nausea", "like your skin is <span class='italics'>wrong</span>" }) + ".</span>"); } } else if (mob.reagents != null) { mob.reagents.add_reagent("plasma", 5); } } else { mob.adjustToxLoss(5); } } foreach (dynamic _c in Lang13.Enumerate(T.contents, typeof(Obj_Effect_Spacevine))) { vine = _c; vine.color = "#823abb"; GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant), vine.loc); Task13.Schedule(20, (Task13.Closure)(() => { if (vine != null) { GlobalFuncs.qdel(vine); } return; })); } foreach (dynamic _d in Lang13.Enumerate(T.contents, typeof(Obj_Effect_Glowshroom))) { shroom = _d; shroom.color = "#823abb"; GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant), shroom.loc); Task13.Schedule(20, (Task13.Closure)(() => { if (shroom != null) { GlobalFuncs.qdel(shroom); } return; })); } foreach (dynamic _e in Lang13.Enumerate(T.contents, typeof(Obj_Machinery_Hydroponics))) { tray = _e; GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Overlay_Temp_Revenant), tray.loc); tray.pestlevel = Rand13.Int(8, 10); tray.weedlevel = Rand13.Int(8, 10); tray.toxic = Rand13.Int(45, 55); } return; })); } } return(false); }