// Function from file: flashbang.dm public override void prime( ) { dynamic flashbang_turf = null; Mob_Living M = null; Obj_Effect_Blob B = null; double damage = 0; this.update_mob(); flashbang_turf = GlobalFuncs.get_turf(this); if (!Lang13.Bool(flashbang_turf)) { return; } foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.get_hearers_in_view(7, flashbang_turf), typeof(Mob_Living))) { M = _a; this.bang(GlobalFuncs.get_turf(M), M); } foreach (dynamic _b in Lang13.Enumerate(GlobalFuncs.get_hear(8, flashbang_turf), typeof(Obj_Effect_Blob))) { B = _b; damage = Num13.Floor(40 / (Map13.GetDistance(B, GlobalFuncs.get_turf(this)) + 1)); B.take_damage(damage, "fire"); } GlobalFuncs.qdel(this); return; }
// Function from file: powers.dm public void set_chemical( ) { dynamic BC = null; Obj_Effect_Blob BL = null; Mob_Living_SimpleAnimal_Hostile_Blob BLO = null; BC = Rand13.PickFromTable(Lang13.GetTypes(typeof(Reagent_Blob)) - typeof(Reagent_Blob) - this.blob_reagent_datum.type); this.blob_reagent_datum = Lang13.Call(BC); foreach (dynamic _a in Lang13.Enumerate(GlobalVars.blobs, typeof(Obj_Effect_Blob))) { BL = _a; BL.update_icon(); } foreach (dynamic _b in Lang13.Enumerate(typeof(Game13), typeof(Mob_Living_SimpleAnimal_Hostile_Blob))) { BLO = _b; BLO.update_icons(); } this.WriteMsg("Your reagent is now: <b><font color=\"" + this.blob_reagent_datum.color + "\">" + this.blob_reagent_datum.name + "</b></font>!"); this.WriteMsg("The <b><font color=\"" + this.blob_reagent_datum.color + "\">" + this.blob_reagent_datum.name + "</b></font> reagent " + this.blob_reagent_datum.description); return; }
// Function from file: blob_reagents.dm public override double reaction_mob(dynamic M = null, int?method = null, double?reac_volume = null, bool?show_message = null, dynamic touch_protection = null, Mob_Camera_Blob O = null) { method = method ?? GlobalVars.TOUCH; Obj_Effect_Blob B = null; reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O); ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.1, "brute"); if (Lang13.Bool(M)) { foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(M, 1), typeof(Obj_Effect_Blob))) { B = _a; if (Lang13.Bool(M)) { B.blob_attack_animation(M); ((Mob_Living)M).apply_damage((reac_volume ?? 0) * 0.3, "brute"); } } } return(0); }
// Function from file: blob_reagents.dm public override void expand_reaction(Obj_Effect_Blob B = null, Obj_Effect_Blob_Normal newB = null, dynamic T = null) { if (Rand13.PercentChance(50)) { newB.expand(); } return; }
// Function from file: blob_reagents.dm public override void death_reaction(Obj_Effect_Blob B = null, dynamic cause = null) { if (!(cause == null)) { GlobalFuncs.empulse(B.loc, 2, 3); } return; }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { if (cause == null && damage_type == "brute") { return(0); } return(base.damage_reaction(B, original_health, (object)(damage), (object)(damage_type), (object)(cause))); }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { if (damage_type == "stamina") { B.visible_message("<span class='warning'><b>The blob abruptly regenerates!</b></span>"); B.health = B.maxhealth; } return(base.damage_reaction(B, original_health, (object)(damage), (object)(damage_type), (object)(cause))); }
// Function from file: theblob.dm public void Pulse_Area(Mob_Camera_Blob pulsing_overmind = null, int?claim_range = null, int?pulse_range = null, int?expand_range = null) { pulsing_overmind = pulsing_overmind ?? this.overmind; claim_range = claim_range ?? 10; pulse_range = pulse_range ?? 3; expand_range = expand_range ?? 2; Obj_Effect_Blob B = null; Obj_Effect_Blob B2 = null; Obj_Effect_Blob B3 = null; this.Be_Pulsed(); if (Lang13.Bool(claim_range)) { foreach (dynamic _a in Lang13.Enumerate(GlobalFuncs.ultra_range(claim_range, this, true), typeof(Obj_Effect_Blob))) { B = _a; if (!(B.overmind != null) && !(B is Obj_Effect_Blob_Core) && Rand13.PercentChance(30)) { B.overmind = pulsing_overmind; B.update_icon(); } } } if (Lang13.Bool(pulse_range)) { foreach (dynamic _b in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(this, pulse_range), typeof(Obj_Effect_Blob))) { B2 = _b; B2.Be_Pulsed(); } } if (Lang13.Bool(expand_range)) { this.expand(); foreach (dynamic _c in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(this, expand_range), typeof(Obj_Effect_Blob))) { B3 = _c; if (Rand13.PercentChance(Num13.MaxInt(13 - Map13.GetDistance(GlobalFuncs.get_turf(this), GlobalFuncs.get_turf(B3)) * 4, 1))) { B3.expand(); } } } return; }
// Function from file: blob_reagents.dm public override void expand_reaction(Obj_Effect_Blob B = null, Obj_Effect_Blob_Normal newB = null, dynamic T = null) { Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak BS = null; if (Rand13.PercentChance(10)) { BS = new Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak(T); BS.overmind = B.overmind; BS.update_icons(); newB.overmind.blob_mobs.Add(BS); } return; }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak BS = null; if (!(cause == null) && Convert.ToDouble(damage) <= 20 && original_health - Convert.ToDouble(damage) <= 0 && Rand13.PercentChance(50)) { B.visible_message("<span class='warning'><b>A spore floats free of the blob!</b></span>"); BS = new Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak(B.loc); BS.overmind = B.overmind; BS.update_icons(); B.overmind.blob_mobs.Add(BS); } return(base.damage_reaction(B, original_health, (object)(damage), (object)(damage_type), (object)(cause))); }
// Function from file: powers.dm public dynamic createSpecial(double?price = null, Type blobType = null, int nearEquals = 0, dynamic T = null) { dynamic B = null; Obj_Effect_Blob L = null; dynamic N = null; if (!Lang13.Bool(T)) { T = GlobalFuncs.get_turf(this); } B = Lang13.FindIn(typeof(Obj_Effect_Blob), T); if (!Lang13.Bool(B)) { this.WriteMsg("<span class='warning'>There is no blob here!</span>"); return(null); } if (!(B is Obj_Effect_Blob_Normal)) { this.WriteMsg("<span class='warning'>Unable to use this blob, find a normal one.</span>"); return(null); } if (nearEquals != 0) { foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(T, nearEquals), typeof(Obj_Effect_Blob))) { L = _a; if (L.type == blobType) { this.WriteMsg("<span class='warning'>There is a similar blob nearby, move more than " + nearEquals + " tiles away from it!</span>"); return(null); } } } if (!this.can_buy(price)) { return(null); } N = ((Obj_Effect_Blob)B).change_to(blobType, this); return(N); }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { Tile_Simulated T = null; foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(B, 1), typeof(Tile_Simulated))) { T = _a; if (Rand13.PercentChance(Convert.ToInt32(damage))) { T.MakeSlippery(1); } } return(base.damage_reaction(B, original_health, (object)(damage), (object)(damage_type), (object)(cause))); }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { dynamic newB = null; if (Convert.ToDouble(damage) > 0 && original_health - Convert.ToDouble(damage) > 0) { newB = B.expand(); if (Lang13.Bool(newB)) { newB.health = original_health - Convert.ToDouble(damage); ((Obj_Effect_Blob)newB).check_health(cause); newB.update_icon(); } } return(base.damage_reaction(B, original_health, (object)(damage), (object)(damage_type), (object)(cause))); }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { Ent_Static A = null; if (Lang13.Bool(damage) && damage_type == "brute" && original_health - Convert.ToDouble(damage) > 0) { if (cause is Mob_Living) { B.visible_message("<span class='warning'><b>The blob retaliates, lashing out!</b></span>"); } foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(B, 1), typeof(Ent_Static))) { A = _a; A.blob_act(); } } return(base.damage_reaction(B, original_health, (object)(damage), (object)(damage_type), (object)(cause))); }
// Function from file: smokebomb.dm public override void prime( ) { Obj_Effect_Blob B = null; int damage = 0; this.update_mob(); GlobalFuncs.playsound(this.loc, "sound/effects/smoke.ogg", 50, 1, -3); this.smoke.set_up(4, Task13.User.loc); this.smoke.start(); foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInView(this, 8), typeof(Obj_Effect_Blob))) { B = _a; damage = Num13.Floor(30 / (Map13.GetDistance(B, this) + 1)); B.health -= damage; B.update_icon(); } Task13.Sleep(80); GlobalFuncs.qdel(this); return; }
// Function from file: blob_reagents.dm public override void death_reaction(Obj_Effect_Blob B = null, dynamic cause = null) { Tile_Simulated T = null; if (!(cause == null)) { B.visible_message("<span class='warning'><b>The blob ruptures, spraying the area with liquid!</b></span>"); } foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRange(B, 1), typeof(Tile_Simulated))) { T = _a; if (Rand13.PercentChance(50)) { T.MakeSlippery(1); } } return; }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { double damagesplit = 0; Obj_Effect_Blob C = null; Obj_Effect_Blob C2 = null; if (!(cause == null)) { damagesplit = 0.8; foreach (dynamic _a in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(B, 1), typeof(Obj_Effect_Blob))) { C = _a; if (C.overmind != null && C.overmind.blob_reagent_datum == B.overmind.blob_reagent_datum) { damagesplit += 0.8; } } foreach (dynamic _b in Lang13.Enumerate(Map13.FetchInRangeExcludeThis(B, 1), typeof(Obj_Effect_Blob))) { C2 = _b; if (C2.overmind != null && C2.overmind.blob_reagent_datum == B.overmind.blob_reagent_datum && !(C2 is Obj_Effect_Blob_Core)) { C2.take_damage(damage / damagesplit, "clone", B, false); } } return(damage / damagesplit); } else { return(damage * 1.25); } }
// Function from file: blob_reagents.dm public virtual void expand_reaction(Obj_Effect_Blob B = null, Obj_Effect_Blob_Normal newB = null, dynamic T = null) { return; }
// Function from file: blob_reagents.dm public virtual dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { return(damage); }
// Function from file: blob_reagents.dm public override dynamic damage_reaction(Obj_Effect_Blob B = null, double original_health = 0, dynamic damage = null, dynamic damage_type = null, dynamic cause = null) { return(damage * 1.2); }
// Function from file: blob_reagents.dm public virtual void death_reaction(Obj_Effect_Blob B = null, dynamic cause = null) { return; }