Ejemplo n.º 1
0
        // 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;
        }
Ejemplo n.º 2
0
        // 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);
        }