// Function from file: glass.dm public override dynamic Crossed(Ent_Dynamic O = null, dynamic X = null) { Ent_Dynamic H = null; if (O is Mob && GlobalFuncs.has_gravity(this.loc)) { GlobalFuncs.playsound(this.loc, "sound/effects/glass_step.ogg", 50, 1); if (O is Mob_Living_Carbon_Human) { H = O; if (((dynamic)H).dna.species.specflags.Contains(8192)) { return(0); } if (!Lang13.Bool(((dynamic)H).shoes)) { ((dynamic)H).apply_damage(5, "brute", Rand13.Pick(new object [] { "l_leg", "r_leg" })); ((dynamic)H).Weaken(3); if (this.cooldown < Game13.time - 10) { H.visible_message("<span class='danger'>" + H + " steps in the broken glass!</span>", "<span class='userdanger'>You step in the broken glass!</span>"); this.cooldown = Game13.time; } } } } return(null); }
// Function from file: mousetrap.dm public override dynamic Crossed(Ent_Dynamic O = null, dynamic X = null) { Ent_Dynamic H = null; Ent_Dynamic SA = null; if (this.armed) { if (O is Mob_Living_Carbon_Human) { H = O; if (((dynamic)H).m_intent == "run") { this.triggered(H); H.visible_message("<span class='warning'>" + H + " accidentally steps on " + this + ".</span>", "<span class='warning'>You accidentally step on " + this + "</span>"); } } else if (O is Mob_Living_SimpleAnimal) { SA = O; if (!Lang13.Bool(((dynamic)SA).flying)) { this.triggered(O); } } else if (O.density) { this.triggered(O); } } base.Crossed(O, (object)(X)); return(null); }
// Function from file: cockroach.dm public override dynamic Crossed(Ent_Dynamic O = null, dynamic X = null) { Ent_Dynamic A = null; if (O is Mob) { if (O is Mob_Living) { A = O; if (Convert.ToDouble(((dynamic)A).mob_size) > 0) { if (Rand13.PercentChance(this.squish_chance)) { A.visible_message(new Txt("<span class='notice'>").The(A).item().str(" squashed ").the(this.name).item().str(".</span>").ToString(), new Txt("<span class='notice'>You squashed ").the(this.name).item().str(".</span>").ToString()); this.death(); } else { this.visible_message(new Txt("<span class='notice'>").The(this.name).item().str(" avoids getting crushed.</span>").ToString()); } } } } else if (O is Obj) { if (O is Obj_Structure) { this.visible_message(new Txt("<span class='notice'>As ").the(O).item().str(" moved over ").the(this.name).item().str(", it was crushed.</span>").ToString()); this.death(); } } return(null); }
// Function from file: handcuffs.dm public override dynamic Crossed(Ent_Dynamic O = null, dynamic X = null) { Ent_Dynamic L = null; bool snap = false; string def_zone = null; Ent_Dynamic C = null; Ent_Dynamic SA = null; if (this.armed && this.loc is Tile) { if (O is Mob_Living) { L = O; snap = false; def_zone = "chest"; if (L is Mob_Living_Carbon) { C = L; snap = true; if (!Lang13.Bool(((dynamic)C).lying)) { def_zone = Rand13.Pick(new object [] { "l_leg", "r_leg" }); if (!Lang13.Bool(((dynamic)C).legcuffed)) { ((dynamic)C).legcuffed = this; this.loc = C; ((dynamic)C).update_inv_legcuffed(); GlobalFuncs.feedback_add_details("handcuffs", "B"); } } } else if (L is Mob_Living_SimpleAnimal) { SA = L; if (!Lang13.Bool(((dynamic)SA).flying) && Convert.ToDouble(((dynamic)SA).mob_size) > 0) { snap = true; } } if (snap) { this.armed = false; this.icon_state = "" + Lang13.Initial(this, "icon_state") + this.armed; GlobalFuncs.playsound(this.loc, "sound/effects/snap.ogg", 50, 1); L.visible_message(new Txt("<span class='danger'>").item(L).str(" triggers ").the(this).item().str(".</span>").ToString(), new Txt("<span class='userdanger'>You trigger ").the(this).item().str("!</span>").ToString()); ((dynamic)L).apply_damage(this.trap_damage, "brute", def_zone); } } } base.Crossed(O, (object)(X)); return(null); }
// Function from file: mine_turfs.dm public void drop(Ent_Dynamic AM = null) { Ent_Dynamic L = null; this.visible_message("" + AM + " falls into " + this + "!"); AM.forceMove(Map13.GetTile(this.drop_x, this.drop_y, this.drop_z)); AM.visible_message("" + AM + " falls from above!"); if (AM is Mob_Living) { L = AM; ((Mob_Living)L).adjustBruteLoss(30); } return; }
// Function from file: martial.dm public void Suplex(dynamic A = null, Ent_Dynamic D = null) { double armor_block = 0; D.visible_message("<span class='danger'>" + A + " suplexes " + D + "!</span>", "<span class='userdanger'>" + A + " suplexes " + D + "!</span>"); D.forceMove(A.loc); armor_block = ((Mob_Living)D).run_armor_check(null, "melee"); ((Mob_Living)D).apply_damage(30, "brute", null, armor_block); ((Mob_Living)D).apply_effect(6, "weaken", armor_block); GlobalFuncs.add_logs(A, D, "suplexed"); ((Ent_Static)A).SpinAnimation(10, 1); D.SpinAnimation(10, 1); Task13.Schedule(3, (Task13.Closure)(() => { armor_block = ((Mob_Living)A).run_armor_check(null, "melee"); ((Mob_Living)A).apply_effect(4, "weaken", armor_block); return; })); return; }
// Function from file: secbot.dm public override dynamic Crossed(Ent_Dynamic O = null, dynamic X = null) { Ent_Dynamic C = null; if (O is Mob && Lang13.Bool(this.target)) { C = O; if (!(C is Mob_Living_Carbon) || !(C != null) || Map13.GetDistance(this, this.target) <= 1) { return(null); } C.visible_message("<span class='warning'>" + Rand13.Pick(new object [] { "" + C + " dives out of " + this + "'s way!", "" + C + " stumbles over " + this + "!", "" + C + " jumps out of " + this + "'s path!", "" + C + " trips over " + this + " and falls!", "" + C + " topples over " + this + "!", "" + C + " leaps out of " + this + "'s way!" }) + "</span>"); ((dynamic)C).Weaken(2); return(null); } base.Crossed(O, (object)(X)); return(null); }
public override bool f_action(dynamic target = null) { Obj_Item_Weapon_ReagentContainers_Syringe S = null; dynamic trg = null; Ent_Dynamic mechsyringe = null; Ent_Static originaloccupant = null; int? i = null; ByTable mobs = null; Mob_Living_Carbon M = null; dynamic M2 = null; dynamic R = null; Reagent A = null; if (!this.action_checks(target)) { return(false); } if (target is Obj_Item_Weapon_ReagentContainers_Syringe) { return(this.load_syringe(target)); } if (target is Obj_Item_Weapon_Storage) { foreach (dynamic _a in Lang13.Enumerate(target.contents, typeof(Obj_Item_Weapon_ReagentContainers_Syringe))) { S = _a; this.load_syringe(S); } return(false); } if (this.mode) { return(this.analyze_reagents(target)); } if (!(this.syringes.len != 0)) { this.occupant_message("<span class=\"alert\">No syringes loaded.</span>"); return(false); } if ((this.reagents.total_volume ?? 0) <= 0) { this.occupant_message("<span class=\"alert\">No available reagents to load syringe with.</span>"); return(false); } trg = GlobalFuncs.get_turf(target); mechsyringe = this.syringes[1]; mechsyringe.forceMove(GlobalFuncs.get_turf(this.chassis)); this.reagents.trans_to(mechsyringe, Num13.MinInt(Convert.ToInt32(((dynamic)mechsyringe).volume), ((int)(this.reagents.total_volume ?? 0)))); this.syringes.Remove(mechsyringe); mechsyringe.icon = "icons/obj/chemical.dmi"; mechsyringe.icon_state = "syringeproj"; GlobalFuncs.playsound(this.chassis, "sound/items/syringeproj.ogg", 50, 1); this.log_message("Launched " + mechsyringe + " from " + this + ", targeting " + target + "."); originaloccupant = this.chassis.occupant; Task13.Schedule(0, (Task13.Closure)(() => { Task13.Source = null; i = null; i = 0; while ((i ?? 0) < 6) { if (!(mechsyringe != null)) { break; } Map13.StepTowardsSimple(mechsyringe, trg); if (!(mechsyringe != null)) { mobs = new ByTable(); foreach (dynamic _b in Lang13.Enumerate(mechsyringe.loc, typeof(Mob_Living_Carbon))) { M = _b; mobs.Add(M); } M2 = GlobalFuncs.safepick(mobs); if (Lang13.Bool(M2)) { R = null; mechsyringe.visible_message("<span class=\"attack\"> " + M2 + " was hit by the syringe!</span>"); if (((Mob_Living)M2).can_inject(null, true)) { if (mechsyringe.reagents != null) { foreach (dynamic _c in Lang13.Enumerate(mechsyringe.reagents.reagent_list, typeof(Reagent))) { A = _c; R += A.id + " ("; R += String13.NumberToString(A.volume) + "),"; } } mechsyringe.icon_state = Lang13.Initial(mechsyringe, "icon_state"); mechsyringe.icon = Lang13.Initial(mechsyringe, "icon"); mechsyringe.reagents.trans_to(M2, mechsyringe.reagents.total_volume); ((Mob_Living)M2).take_organ_damage(2); GlobalFuncs.add_logs(originaloccupant, M2, "shot", "syringegun"); } break; } else if (mechsyringe.loc == trg) { mechsyringe.icon_state = Lang13.Initial(mechsyringe, "icon_state"); mechsyringe.icon = Lang13.Initial(mechsyringe, "icon"); ((dynamic)mechsyringe).update_icon(); break; } } else { mechsyringe.icon_state = Lang13.Initial(mechsyringe, "icon_state"); mechsyringe.icon = Lang13.Initial(mechsyringe, "icon"); ((dynamic)mechsyringe).update_icon(); break; } Task13.Sleep(1); i++; } return; })); return(true); }