// Function from file: monkey.dm public Mob_Living_Carbon_Monkey(dynamic loc = null) : base((object)(loc)) { Obj_Item_Organ_Internal I = null; this.verbs.Add(typeof(Mob_Living).GetMethod("mob_sleep")); this.verbs.Add(typeof(Mob_Living).GetMethod("lay_down")); this.gender = Rand13.Pick(new object [] { GlobalVars.MALE, GlobalVars.FEMALE }); this.real_name = this.name; if (GlobalVars.good_mutations.len != 0) { this.initialize(); } this.internal_organs.Add(new Obj_Item_Organ_Internal_Appendix()); this.internal_organs.Add(new Obj_Item_Organ_Internal_Heart()); this.internal_organs.Add(new Obj_Item_Organ_Internal_Brain()); foreach (dynamic _a in Lang13.Enumerate(this.internal_organs, typeof(Obj_Item_Organ_Internal))) { I = _a; I.Insert(this); } // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!; return; }
// Function from file: headcrab.dm public void Infect(dynamic victim = null) { Obj_Item_Organ_Internal_BodyEgg_ChangelingEgg egg = null; Obj_Item_Organ_Internal I = null; egg = new Obj_Item_Organ_Internal_BodyEgg_ChangelingEgg(victim); egg.Insert(victim); if (this.origin != null) { egg.origin = this.origin; } else if (this.mind != null) { egg.origin = this.mind; } foreach (dynamic _a in Lang13.Enumerate(this, typeof(Obj_Item_Organ_Internal))) { I = _a; I.loc = egg; } this.visible_message("<span class='warning'>" + this + " plants something in " + victim + "'s flesh!</span>", "<span class='danger'>We inject our egg into " + victim + "'s body!</span>"); this.egg_lain = true; return; }
// Function from file: headcrab.dm public void Pop( ) { Mob_Living_Carbon_Monkey M = null; Obj_Item_Organ_Internal I = null; M = new Mob_Living_Carbon_Monkey(this.owner); this.owner.stomach_contents.Add(M); foreach (dynamic _a in Lang13.Enumerate(this, typeof(Obj_Item_Organ_Internal))) { I = _a; I.Insert(M, 1); } if (this.origin != null && Lang13.Bool(this.origin.current) && Convert.ToInt32(this.origin.current.stat) == 2) { this.origin.transfer_to(M); if (!(this.origin.changeling != null)) { M.make_changeling(); } if (this.origin.changeling.can_absorb_dna(M, this.owner)) { this.origin.changeling.add_new_profile(this.owner, M); } this.origin.changeling.purchasedpowers.Add(new Obj_Effect_ProcHolder_Changeling_Humanform(null)); M.key = this.origin.key; } ((Mob)this.owner).gib(); return; }
// Function from file: organ_internal.dm public virtual void Insert(dynamic M = null, int?special = null) { special = special ?? 0; Obj_Item_Organ_Internal replaced = null; if (!(M is Mob_Living_Carbon) || this.owner == M) { return; } replaced = ((Mob)M).getorganslot(this.slot); if (replaced != null) { replaced.Remove(M, true); } this.owner = M; M.internal_organs.Or(this); this.loc = null; if (Lang13.Bool(this.organ_action_name)) { this.action_button_name = this.organ_action_name; } return; }
// Function from file: augmented_eyesight.dm public override void on_refund(Mob user = null) { Obj_Item_Organ_Internal O = null; O = user.getorganslot("eye_ling"); if (O != null) { O.Remove(user); GlobalFuncs.qdel(O); } return; }
// Function from file: alien.dm public Mob_Living_Carbon_Alien(dynamic loc = null) : base((object)(loc)) { Obj_Item_Organ_Internal I = null; this.verbs.Add(typeof(Mob_Living).GetMethod("mob_sleep")); this.verbs.Add(typeof(Mob_Living).GetMethod("lay_down")); this.internal_organs.Add(new Obj_Item_Organ_Internal_Brain_Alien()); this.internal_organs.Add(new Obj_Item_Organ_Internal_Alien_Hivenode()); foreach (dynamic _a in Lang13.Enumerate(this.internal_organs, typeof(Obj_Item_Organ_Internal))) { I = _a; I.Insert(this); } this.AddAbility(new Obj_Effect_ProcHolder_Alien_Nightvisiontoggle(null)); // Warning: Super call was HERE! If anything above HERE is needed by the super call, it might break!; return; }
// Function from file: limb augmentation.dm public override bool success(dynamic user = null, Mob target = null, string target_zone = null, dynamic tool = null, Surgery surgery = null) { Mob H = null; Obj_Item_Organ_Internal I = null; if (Lang13.Bool(this.L)) { if (target is Mob_Living_Carbon_Human) { H = target; ((Ent_Static)user).visible_message("" + user + " successfully augments " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + "!", "<span class='notice'>You successfully augment " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + ".</span>"); this.L.loc = GlobalFuncs.get_turf(target); ((dynamic)H).organs -= this.L; switch ((string)(target_zone)) { case "r_leg": ((dynamic)H).organs += new Obj_Item_Organ_Limb_Robot_RLeg(this); break; case "l_leg": ((dynamic)H).organs += new Obj_Item_Organ_Limb_Robot_LLeg(this); break; case "r_arm": ((dynamic)H).organs += new Obj_Item_Organ_Limb_Robot_RArm(this); break; case "l_arm": ((dynamic)H).organs += new Obj_Item_Organ_Limb_Robot_LArm(this); break; case "head": ((dynamic)H).organs += new Obj_Item_Organ_Limb_Robot_Head(this); break; case "chest": foreach (dynamic _a in Lang13.Enumerate(target.getorganszone(target_zone, true), typeof(Obj_Item_Organ_Internal))) { I = _a; if (I.status == 1) { I.Remove(target, true); GlobalFuncs.qdel(I); } } ((dynamic)H).organs += new Obj_Item_Organ_Limb_Robot_Chest(this); break; } user.drop_item(); GlobalFuncs.qdel(tool); ((dynamic)H).update_damage_overlays(0); ((dynamic)H).update_augments(); GlobalFuncs.add_logs(user, target, "augmented", null, "by giving him new " + GlobalFuncs.parse_zone(target_zone) + " INTENT: " + String13.ToUpper(user.a_intent)); } } else { user.WriteMsg("<span class='warning'>" + target + " has no organic " + GlobalFuncs.parse_zone(target_zone) + " there!</span>"); } return(true); }
// Function from file: organ_manipulation.dm public override int preop(dynamic user = null, Mob target = null, string target_zone = null, dynamic tool = null, Surgery surgery = null) { ByTable organs = null; Obj_Item_Organ_Internal O = null; this.I = null; if (GlobalFuncs.isorgan(tool)) { this.current_type = "insert"; this.I = tool; if (target_zone != this.I.zone || target.getorganslot(this.I.slot) != null) { user.WriteMsg("<span class='notice'>There is no room for " + this.I + " in " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + "!</span>"); return(-1); } ((Ent_Static)user).visible_message("" + user + " begins to insert " + tool + " into " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + ".", "<span class='notice'>You begin to insert " + tool + " into " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + "...</span>"); } else if (this.implements_extract.Contains(this.implement_type)) { this.current_type = "extract"; organs = target.getorganszone(target_zone); if (!(organs.len != 0)) { user.WriteMsg("<span class='notice'>There is no removeable organs in " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + "!</span>"); return(-1); } else { foreach (dynamic _a in Lang13.Enumerate(organs, typeof(Obj_Item_Organ_Internal))) { O = _a; O.on_find(user); organs.Remove(O); organs[O.name] = O; } this.I = Interface13.Input("Remove which organ?", "Surgery", null, null, organs, InputType.Null | InputType.Any); if (Lang13.Bool(this.I) && Lang13.Bool(user) && target != null && ((Ent_Static)user).Adjacent(target) && ((Mob)user).get_active_hand() == tool) { this.I = organs[this.I]; if (!Lang13.Bool(this.I)) { return(-1); } ((Ent_Static)user).visible_message("" + user + " begins to extract " + this.I + " from " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + ".", "<span class='notice'>You begin to extract " + this.I + " from " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + "...</span>"); } else { return(-1); } } } else if (this.implements_mend.Contains(this.implement_type)) { this.current_type = "mend"; ((Ent_Static)user).visible_message("" + user + " begins to mend the incision in " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + ".", "<span class='notice'>You begin to mend the incision in " + target + "'s " + GlobalFuncs.parse_zone(target_zone) + "...</span>"); } else if (tool is Obj_Item_Weapon_ReagentContainers_Food_Snacks_Organ) { user.WriteMsg("<span class='warning'>" + tool + " was biten by someone! It's too damaged to use!</span>"); return(-1); } return(0); }
// Function from file: headcrab.dm public override dynamic sting_action(Mob user = null, Ent_Static target = null) { Mind M = null; ByTable organs = null; Obj_Item_Organ_Internal I = null; Mob_Living_Carbon_Human H = null; Mob_Living_Silicon S = null; dynamic turf = null; Mob_Living_SimpleAnimal_Hostile_Headcrab crab = null; Obj_Item_Organ_Internal I2 = null; M = user.mind; organs = user.getorganszone("head", true); foreach (dynamic _a in Lang13.Enumerate(organs, typeof(Obj_Item_Organ_Internal))) { I = _a; I.Remove(user, true); } GlobalFuncs.explosion(GlobalFuncs.get_turf(user), 0, 0, 2, 0, null, null, null, true); foreach (dynamic _b in Lang13.Enumerate(Map13.FetchInRange(user, 2), typeof(Mob_Living_Carbon_Human))) { H = _b; H.WriteMsg("<span class='userdanger'>You are blinded by a shower of blood!</span>"); H.Stun(1); H.blur_eyes(20); H.adjust_eye_damage(5); H.confused += 3; } foreach (dynamic _c in Lang13.Enumerate(Map13.FetchInRange(user, 2), typeof(Mob_Living_Silicon))) { S = _c; S.WriteMsg("<span class='userdanger'>Your sensors are disabled by a shower of blood!</span>"); S.Weaken(3); } turf = GlobalFuncs.get_turf(user); Task13.Schedule(5, (Task13.Closure)(() => { crab = new Mob_Living_SimpleAnimal_Hostile_Headcrab(turf); foreach (dynamic _d in Lang13.Enumerate(organs, typeof(Obj_Item_Organ_Internal))) { I2 = _d; I2.loc = crab; } crab.origin = M; if (crab.origin != null) { crab.origin.active = true; crab.origin.transfer_to(crab); crab.WriteMsg("<span class='warning'>You burst out of the remains of your former body in a shower of gore!</span>"); } return; })); user.gib(); GlobalFuncs.feedback_add_details("changeling_powers", "LR"); return(1); }