// 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: 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; Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak BS = null; reac_volume = base.reaction_mob((object)(M), method, reac_volume, show_message, (object)(touch_protection), O); M.apply_damage((reac_volume ?? 0) * 0.6, "tox"); if (O != null && M is Mob_Living_Carbon_Human && Lang13.Bool(M.stat) == true) { ((Mob)M).death(); BS = new Mob_Living_SimpleAnimal_Hostile_Blob_Blobspore_Weak(GlobalFuncs.get_turf(M)); BS.overmind = O; BS.update_icons(); O.blob_mobs.Add(BS); BS.Zombify(M); } return(0); }