// Function from file: pinpointer.dm public void scan_for_ops( ) { int closest_distance = 0; Mob_Living_Carbon M = null; if (this.active) { this.nearest_op = null; closest_distance = 1000; foreach (dynamic _a in Lang13.Enumerate(GlobalVars.mob_list, typeof(Mob_Living_Carbon))) { M = _a; if (M.mind != null && GlobalVars.ticker.mode.syndicates.Contains(M.mind)) { if (Map13.GetDistance(M, GlobalFuncs.get_turf(this)) < closest_distance) { this.nearest_op = M; } } } } return; }
// Function from file: armor.dm public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null) { Mob_Living_SimpleAnimal_Hostile_Illusion_Escape E = null; if (!this.active) { return(false); } if (Rand13.PercentChance(this.hit_reaction_chance)) { E = new Mob_Living_SimpleAnimal_Hostile_Illusion_Escape(owner.loc); E.Copy_Parent(owner, 50); E.GiveTarget(owner); E.Goto(owner, E.move_to_delay, E.minimum_distance); owner.alpha = 0; owner.visible_message("<span class='danger'>" + owner + " is hit by " + attack_text + " in the chest!</span>"); Task13.Schedule(40, (Task13.Closure)(() => { owner.alpha = Convert.ToInt32(Lang13.Initial(owner, "alpha")); return; })); return(true); } return(false); }
// Function from file: armor.dm public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null) { Mob_Living M = null; if (!this.active) { return(false); } if (Rand13.PercentChance(this.hit_reaction_chance)) { owner.visible_message("<span class='danger'>The " + this + " blocks the " + attack_text + ", sending out arcs of lightning!</span>"); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInView(owner, 6), typeof(Mob_Living))) { M = _a; if (M == owner) { continue; } owner.Beam(M, "lightning" + Rand13.Int(1, 12), "icons/effects/effects.dmi", 5); M.adjustFireLoss(25); GlobalFuncs.playsound(M, "sound/machines/defib_zap.ogg", 50, 1, -1); } return(true); } return(false); }
// Function from file: hardsuit.dm public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null) { EffectSystem_SparkSpread s = null; if (this.current_charges > 0) { s = new EffectSystem_SparkSpread(); s.set_up(2, 1, this); s.start(); owner.visible_message("<span class='danger'>" + owner + "'s shields deflect " + attack_text + " in a shower of sparks!</span>"); this.current_charges--; this.recharge_cooldown = Game13.time + this.recharge_delay; GlobalVars.SSobj.processing.Or(this); if (this.current_charges <= 0) { owner.visible_message("" + owner + "'s shield overloads!"); this.shield_state = "broken"; owner.update_inv_wear_suit(); } return(true); } return(false); }
// Function from file: pyrotechnics.dm public override void on_reaction(Reagents holder = null, double?created_volume = null) { dynamic location = null; Mob_Living_Carbon C = null; location = GlobalFuncs.get_turf(holder.my_atom); GlobalFuncs.playsound(location, "sound/effects/bang.ogg", 25, 1); foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_hearers_in_view((created_volume ?? 0) / 10, location), typeof(Mob_Living_Carbon))) { C = _a; if (C.check_ear_prot()) { continue; } C.show_message("<span class='warning'>BANG</span>", 2); C.Stun(5); C.Weaken(5); C.setEarDamage(C.ear_damage + Rand13.Int(0, 5), Num13.MaxInt(((int)(C.ear_deaf ?? 0)), 15)); if (C.ear_damage >= 15) { C.WriteMsg("<span class='warning'>Your ears start to ring badly!</span>"); } else if (C.ear_damage >= 5) { C.WriteMsg("<span class='warning'>Your ears start to ring!</span>"); } } return; }
// Function from file: armor.dm public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null) { Mob_Living_Carbon C = null; if (!this.active) { return(false); } if (Rand13.PercentChance(this.hit_reaction_chance)) { owner.visible_message("<span class='danger'>The " + this + " blocks the " + attack_text + ", sending out jets of flame!</span>"); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(owner, 6), typeof(Mob_Living_Carbon))) { C = _a; if (C != owner) { C.fire_stacks += 8; C.IgniteMob(); } } owner.fire_stacks = -20; return(true); } return(false); }
// Function from file: pyrotechnics.dm public override void on_reaction(Reagents holder = null, double?created_volume = null) { dynamic location = null; EffectSystem_SparkSpread s = null; Mob_Living_Carbon C = null; location = GlobalFuncs.get_turf(holder.my_atom); s = new EffectSystem_SparkSpread(); s.set_up(2, 1, location); s.start(); foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_hearers_in_view((created_volume ?? 0) / 10, location), typeof(Mob_Living_Carbon))) { C = _a; if (C.flash_eyes()) { if (Map13.GetDistance(C, location) < 4) { C.Weaken(5); } else { C.Stun(5); } } } return; }
// Function from file: Hallucination.dm public Obj_Effect_Hallucination_SingularityScare(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc)) { Ent_Static start = null; int screen_border = 0; int? i = null; int? i2 = null; this.target = T; start = T.loc; screen_border = Convert.ToInt32(Rand13.Pick(new object [] { GlobalVars.SOUTH, GlobalVars.EAST, GlobalVars.WEST, GlobalVars.NORTH })); i = null; i = 0; while ((i ?? 0) < 11) { start = Map13.GetStep(start, screen_border); i++; } this.s = new Obj_Effect_Hallucination_Simple_Singularity(start, this.target); i2 = null; i2 = 0; while ((i2 ?? 0) < 11) { Task13.Sleep(5); this.s.loc = Map13.GetStep(GlobalFuncs.get_turf(this.s), Map13.GetDistance(this.s, this.target)); this.s.Show(); this.s.Eat(); i2++; } GlobalFuncs.qdel(this.s); return; }
// 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); }
// Function from file: absorb.dm public override bool can_sting(Mob user = null, Ent_Static target = null) { Changeling changeling = null; dynamic G = null; Mob_Living_Carbon target2 = null; if (!base.can_sting(user, target)) { return(false); } changeling = user.mind.changeling; if (changeling.isabsorbing) { user.WriteMsg("<span class='warning'>We are already absorbing!</span>"); return(false); } G = user.get_active_hand(); if (!(G is Obj_Item_Weapon_Grab)) { user.WriteMsg("<span class='warning'>We must be grabbing a creature in our active hand to absorb them!</span>"); return(false); } if (Convert.ToDouble(G.state) <= 3) { user.WriteMsg("<span class='warning'>We must have a tighter grip to absorb this creature!</span>"); return(false); } target2 = G.affecting; return(changeling.can_absorb_dna(user, target2)); }
// Function from file: runes.dm public override void invoke(dynamic user = null) { Mob_Living_Carbon C = null; dynamic T = null; this.visible_message("<span class='warning'>" + this + " burns away, scorching the floor below!</span>"); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchViewers(null, this), typeof(Mob_Living_Carbon))) { C = _a; if (!GlobalFuncs.iscultist(C) && !Lang13.Bool(C.null_rod_check())) { C.WriteMsg("<span class='cultlarge'>You feel your skin crisp as you burst into flames!</span>"); C.fire_act(); } } user.apply_damage(15, "fire", Rand13.Pick(new object [] { "l_arm", "r_arm" })); user.WriteMsg("<span class='cultitalic'>" + this + " burns your arms!</span>"); T = GlobalFuncs.get_turf(this); ((Tile_Simulated)T).burn_tile(); GlobalFuncs.qdel(this); return; }
// Function from file: bottle.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { base.throw_impact((object)(target), thrower); this.SplashReagents(target); this.smash(target, thrower, true); return(false); }
// Function from file: flash.dm public override dynamic attack_self(dynamic user = null, dynamic flag = null, bool?emp = null) { flag = flag ?? 0; emp = emp ?? false; Mob_Living_Carbon M = null; if (this.holder != null) { return(0); } if (!this.try_use_flash(user)) { return(0); } ((Ent_Static)user).visible_message("<span class='disarm'>" + user + "'s flash emits a blinding light!</span>", "<span class='danger'>Your flash emits a blinding light!</span>"); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchViewersExcludeThis(null, 3), typeof(Mob_Living_Carbon))) { M = _a; this.flash_carbon(M, user, 1, false); } return(null); }
// Function from file: touch_attacks.dm public override bool cast(dynamic targets = null, dynamic thearea = null, dynamic user = null) { thearea = thearea ?? Task13.User; Mob_Living_Carbon C = null; foreach (dynamic _a in Lang13.Enumerate(targets, typeof(Mob_Living_Carbon))) { C = _a; if (!Lang13.Bool(this.attached_hand)) { if (!this.ChargeHand(C)) { return(false); } } } while (Lang13.Bool(this.attached_hand)) { this.charge_counter = 0; Task13.Sleep(1); } return(false); }
// Function from file: machinery.dm public virtual dynamic close_machine(Ent_Static target = null) { Mob_Living_Carbon C = null; this.state_open = 0; this.density = true; if (!(target != null)) { foreach (dynamic _a in Lang13.Enumerate(this.loc, typeof(Mob_Living_Carbon))) { C = _a; if (C.buckled != null || Lang13.Bool(C.buckled_mob)) { continue; } else { target = C; } } } if (target != null && !Lang13.Bool(((dynamic)target).buckled) && !Lang13.Bool(((dynamic)target).buckled_mob)) { this.occupant = target; ((dynamic)target).forceMove(this); } this.updateUsrDialog(); this.update_icon(); return(null); }
// Function from file: Hallucination.dm public Obj_Effect_Hallucination_FakeFlood(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc)) { Obj_Machinery_Atmospherics_Components_Unary_VentPump U = null; // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!; this.target = T; foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(this.target, 7), typeof(Obj_Machinery_Atmospherics_Components_Unary_VentPump))) { U = _a; if (!(U.welded == true)) { this.loc = U.loc; break; } } this.image_state = Rand13.Pick(new object [] { "plasma", "nitrous_oxide" }); this.flood_images.Add(new Image(this.image_icon, this, this.image_state, GlobalVars.MOB_LAYER)); this.flood_turfs.Add(GlobalFuncs.get_turf(this.loc)); if (Lang13.Bool(((dynamic)this.target).client)) { ((dynamic)this.target).client.images.Or(this.flood_images); } this.next_expand = Game13.time + 30; GlobalVars.SSobj.processing.Or(this); return; }
// Function from file: bottle.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { bool firestarter = false; Reagent R = null; dynamic A = null; firestarter = false; foreach (dynamic _b in Lang13.Enumerate(this.reagents.reagent_list, typeof(Reagent))) { R = _b; foreach (dynamic _a in Lang13.Enumerate(this.accelerants)) { A = _a; if (Lang13.Bool(A.IsInstanceOfType(R))) { firestarter = true; break; } } } this.SplashReagents(target); if (firestarter && this.active) { ((Ent_Static)target).fire_act(); new Obj_Effect_Hotspot(GlobalFuncs.get_turf(target)); } base.throw_impact((object)(target), thrower); return(false); }
// Function from file: martial.dm public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null) { if (this.wielded) { return(base.hit_reaction(owner, attack_text, final_block_chance, (object)(damage), attack_type)); } return(false); }
// Function from file: toys.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { if (!base.throw_impact((object)(target), thrower)) { this.pop_burst(); } return(false); }
// Function from file: dna.dm public Dna(Mob_Living_Carbon new_holder = null) { if (new_holder != null) { this.holder = new_holder; } return; }
// Function from file: hunter.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { dynamic L = null; bool blocked = false; dynamic H = null; if (!this.leaping) { return(base.throw_impact((object)(target), thrower)); } if (Lang13.Bool(target)) { if (target is Mob_Living) { L = target; blocked = false; if (target is Mob_Living_Carbon_Human) { H = target; if (((Mob_Living_Carbon_Human)H).check_shields(90, "the " + this.name, this, 4)) { blocked = true; } } if (!blocked) { ((Ent_Static)L).visible_message("<span class ='danger'>" + this + " pounces on " + L + "!</span>", "<span class ='userdanger'>" + this + " pounces on you!</span>"); ((Mob)L).Weaken(5); Task13.Sleep(2); Map13.StepTowardsSimple(this, L); } this.toggle_leap(false); this.pounce_cooldown = !this.pounce_cooldown; Task13.Schedule(this.pounce_cooldown_time, (Task13.Closure)(() => { this.pounce_cooldown = !this.pounce_cooldown; return; })); } else if (target.density && !((Ent_Static)target).CanPass(this)) { this.visible_message("<span class ='danger'>" + this + " smashes into " + target + "!</span>", "<span class ='alertalien'>" + this + " smashes into " + target + "!</span>"); this.weakened = 2; } if (this.leaping) { this.leaping = false; this.update_icons(); this.update_canmove(); } } return(false); }
// Function from file: grown.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { if (!base.throw_impact((object)(target), thrower)) { this.squish(target); GlobalFuncs.qdel(this); } return(false); }
// Function from file: toys.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { if (!base.throw_impact((object)(target), thrower)) { GlobalFuncs.playsound(this, "sound/effects/pop.ogg", 20, 1); GlobalFuncs.qdel(this); } return(false); }
// Function from file: Hallucination.dm public Obj_Effect_Hallucination_Fakeattacker(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc)) { Mob_Living_Carbon_Human clone = null; string clone_weapon = null; Mob_Living_Carbon_Human H = null; Obj_Effect_FakeAttacker F = null; this.target = T; clone = null; clone_weapon = null; foreach (dynamic _a in Lang13.Enumerate(GlobalVars.living_mob_list, typeof(Mob_Living_Carbon_Human))) { H = _a; if (H.stat != 0 || Lang13.Bool(H.lying)) { continue; } clone = H; break; } if (!(clone != null)) { return; } F = new Obj_Effect_FakeAttacker(GlobalFuncs.get_turf(this.target), this.target); if (Lang13.Bool(clone.l_hand)) { if (!Lang13.Bool(Lang13.FindIn(clone.l_hand, GlobalVars.non_fakeattack_weapons))) { clone_weapon = clone.l_hand.name; F.weap = clone.l_hand; } } else if (Lang13.Bool(clone.r_hand)) { if (!Lang13.Bool(Lang13.FindIn(clone.r_hand, GlobalVars.non_fakeattack_weapons))) { clone_weapon = clone.r_hand.name; F.weap = clone.r_hand; } } F.name = clone.name; F.my_target = this.target; F.weapon_name = clone_weapon; F.left = new Image(clone, null, null, null, GlobalVars.WEST); F.right = new Image(clone, null, null, null, GlobalVars.EAST); F.up = new Image(clone, null, null, null, GlobalVars.NORTH); F.down = new Image(clone, null, null, null, GlobalVars.SOUTH); F.updateimage(); GlobalFuncs.qdel(this); return; }
// Function from file: armor.dm public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null) { Mob_Living_Carbon H = null; ByTable turfs = null; dynamic T = null; dynamic picked = null; if (!this.active) { return(false); } if (Rand13.PercentChance(this.hit_reaction_chance)) { H = owner; owner.visible_message("<span class='danger'>The reactive teleport system flings " + H + " clear of " + attack_text + "!</span>"); turfs = new ByTable(); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(H, this.tele_range))) { T = _a; if (T.density) { continue; } if (Convert.ToDouble(T.x) > Game13.map_size_x - this.tele_range || Convert.ToDouble(T.x) < this.tele_range) { continue; } if (Convert.ToDouble(T.y) > Game13.map_size_y - this.tele_range || Convert.ToDouble(T.y) < this.tele_range) { continue; } turfs.Add(T); } if (!(turfs.len != 0)) { turfs.Add(Rand13.PickFromTable(Map13.FetchInRangeExcludeThis(H, this.tele_range).Contains(typeof(Tile)))); } picked = Rand13.PickFromTable(turfs); if (!(picked is Tile)) { return(false); } H.forceMove(picked); H.rad_act(this.rad_amount); return(true); } return(false); }
// Function from file: Hallucination.dm public Obj_Effect_Hallucination_Message(dynamic loc = null, Mob_Living_Carbon T = null) : base((object)(loc)) { dynamic chosen = null; this.target = T; chosen = Rand13.Pick(new object [] { "<span class='userdanger'>The light burns you!</span>", "<span class='danger'>You don't feel like yourself.</span>", "<span class='userdanger'>Unknown has punched " + this.target + "!</span>", "<span class='notice'>You hear something squeezing through the ducts...</span>", "<span class='notice'>You hear a distant scream.</span>", "<span class='notice'>You feel invincible, nothing can hurt you!</span>", "<B>" + this.target + "</B> sneezes.", "<span class='warning'>You feel faint.</span>", "<span class='noticealien'>You hear a strange, alien voice in your head...</span>" + Rand13.Pick(new object [] { "Hiss", "Ssss" }), "<span class='notice'>You can see...everything!</span>" }); ((dynamic)this.target).WriteMsg(chosen); GlobalFuncs.qdel(this); return; }
// Function from file: grenade.dm public override bool hit_reaction(Mob_Living_Carbon owner = null, string attack_text = null, int?final_block_chance = null, dynamic damage = null, int?attack_type = null) { if (Lang13.Bool(damage) && attack_type == 3 && Rand13.PercentChance(15)) { owner.visible_message("<span class='danger'>" + attack_text + " hits " + owner + "'s " + this + ", setting it off! What a shot!</span>"); this.prime(); return(true); } return(false); }
// Function from file: Hallucination.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { this.update_icon("alienh_pounce"); if (target == this.target) { ((dynamic)this.target).Weaken(5); this.target.visible_message("<span class='danger'>" + this.target + " flails around wildly.</span>", "<span class ='userdanger'>" + this.name + " pounces on you!</span>"); } return(false); }
// Function from file: facehugger.dm public override bool throw_impact(dynamic target = null, Mob_Living_Carbon thrower = null) { base.throw_impact((object)(target), thrower); if (this.stat == 0) { this.icon_state = "" + Lang13.Initial(this, "icon_state"); this.Attach(target); } 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; 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); }