// Function from file: antag_spawner.dm public override void spawn_antag(dynamic C = null, dynamic T = null, string type = null) { type = type ?? ""; dynamic holder = null; Mob_Living_SimpleAnimal_Slaughter S = null; Objective_Assassinate new_objective = null; Objective new_objective2 = null; holder = GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Dummy_Slaughter), T); S = new Mob_Living_SimpleAnimal_Slaughter(holder); S.holder = holder; S.key = C.key; S.mind.assigned_role = "Slaughter Demon"; S.mind.special_role = "Slaughter Demon"; GlobalVars.ticker.mode.traitors.Add(S.mind); new_objective = new Objective_Assassinate(); new_objective.owner = S.mind; new_objective.target = Task13.User.mind; new_objective.explanation_text = "Kill " + Task13.User.real_name + ", the one who summoned you."; S.mind.objectives.Add(new_objective); new_objective2 = new Objective(); new_objective2.owner = S.mind; new_objective2.explanation_text = "Kill everyone else while you're at it."; S.mind.objectives.Add(new_objective2); S.WriteMsg(S.playstyle_string); S.WriteMsg("<B>You are currently not currently in the same plane of existence as the station. Ctrl+Click a blood pool to manifest.</B>"); S.WriteMsg("<B>Objective #" + 1 + "</B>: " + new_objective.explanation_text); S.WriteMsg("<B>Objective #" + 2 + "</B>: " + new_objective2.explanation_text); return; }
// Function from file: slaughterevent.dm public bool get_slaughter(bool?end_if_fail = null) { end_if_fail = end_if_fail ?? false; ByTable candidates = null; dynamic C = null; Mind player_mind = null; ByTable spawn_locs = null; Obj_Effect_Landmark L = null; dynamic holder = null; Mob_Living_SimpleAnimal_Slaughter S = null; this.key_of_slaughter = null; if (!Lang13.Bool(this.key_of_slaughter)) { candidates = GlobalFuncs.get_candidates("xenomorph"); if (!(candidates.len != 0)) { if (end_if_fail == true) { return(false); } this.find_slaughter(); return(false); } C = Rand13.PickFromTable(candidates); this.key_of_slaughter = C.key; } if (!Lang13.Bool(this.key_of_slaughter)) { if (end_if_fail == true) { return(false); } this.find_slaughter(); return(false); } player_mind = new Mind(this.key_of_slaughter); player_mind.active = true; spawn_locs = new ByTable(); foreach (dynamic _b in Lang13.Enumerate(GlobalVars.landmarks_list, typeof(Obj_Effect_Landmark))) { L = _b; if (L.loc is Tile) { switch ((string)(L.name)) { case "carpspawn": spawn_locs.Add(L.loc); break; } } } if (!(spawn_locs != null)) { this.find_slaughter(); return(false); } holder = GlobalFuncs.PoolOrNew(typeof(Obj_Effect_Dummy_Slaughter), Rand13.PickFromTable(spawn_locs)); S = new Mob_Living_SimpleAnimal_Slaughter(holder); S.holder = holder; player_mind.transfer_to(S); player_mind.assigned_role = "Slaughter Demon"; player_mind.special_role = "Slaughter Demon"; GlobalVars.ticker.mode.traitors.Or(player_mind); S.WriteMsg(S.playstyle_string); S.WriteMsg("<B>You are currently not currently in the same plane of existence as the station. Blood Crawl near a blood pool to manifest.</B>"); S.WriteMsg("sound/magic/demon_dies.ogg"); GlobalFuncs.message_admins("" + this.key_of_slaughter + " has been made into a slaughter demon by an event."); GlobalFuncs.log_game("" + this.key_of_slaughter + " was spawned as a slaughter demon by an event."); return(true); }