// Function from file: theblob.dm public void ConsumeTile( ) { Ent_Static A = null; foreach (dynamic _a in Lang13.Enumerate(this.loc, typeof(Ent_Static))) { A = _a; A.blob_act(); } if (this.loc is Tile_Simulated_Wall) { this.loc.blob_act(); } 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) { 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: theblob.dm public dynamic expand(dynamic T = null, Mob_Camera_Blob controller = null) { ByTable dirs = null; double i = 0; dynamic dirn = null; int? make_blob = null; Ent_Static A = null; Obj_Effect_Blob_Normal B = null; if (!Lang13.Bool(T)) { dirs = new ByTable(new object [] { 1, 2, 4, 8 }); foreach (dynamic _a in Lang13.IterateRange(1, 4)) { i = _a; dirn = Rand13.PickFromTable(dirs); dirs.Remove(dirn); T = Map13.GetStep(this, Convert.ToInt32(dirn)); if (!Lang13.Bool(Lang13.FindIn(typeof(Obj_Effect_Blob), T))) { break; } else { T = null; } } } if (!Lang13.Bool(T)) { return(0); } make_blob = GlobalVars.TRUE; if (T is Tile_Space && !Lang13.Bool(Lang13.FindIn(typeof(Obj_Structure_Lattice), T)) && Rand13.PercentChance(80)) { make_blob = GlobalVars.FALSE; GlobalFuncs.playsound(this.loc, "sound/effects/splat.ogg", 50, 1); } this.ConsumeTile(); if (!((Ent_Static)T).CanPass(this, T, 5)) { make_blob = GlobalVars.FALSE; ((Ent_Static)T).blob_act(); } foreach (dynamic _b in Lang13.Enumerate(T, typeof(Ent_Static))) { A = _b; if (!A.CanPass(this, T, 5)) { make_blob = GlobalVars.FALSE; } A.blob_act(); } if (Lang13.Bool(make_blob)) { B = new Obj_Effect_Blob_Normal(this.loc); if (controller != null) { B.overmind = controller; } else { B.overmind = this.overmind; } B.density = true; if (((Base_Static)T).Enter(B, this)) { B.density = Lang13.Bool(Lang13.Initial(B, "density")); B.loc = T; B.update_icon(); if (B.overmind != null) { ((Reagent_Blob)B.overmind.blob_reagent_datum).expand_reaction(this, B, T); } return(B); } else { this.blob_attack_animation(T, controller); ((Ent_Static)T).blob_act(); GlobalFuncs.qdel(B); return(null); } } else { this.blob_attack_animation(T, controller); } return(null); }