Exemplo n.º 1
0
        // Function from file: capture_the_flag.dm
        public override void attack_ghost(Mob user = null)
        {
            Client new_team_member           = null;
            Obj_Machinery_CaptureTheFlag CTF = null;
            Client new_team_member2          = null;


            if (this.ctf_enabled == GlobalVars.FALSE)
            {
                return;
            }

            if (GlobalVars.ticker.current_state != 3)
            {
                return;
            }

            if (this.team_members.Contains(user.ckey))
            {
                if (Lang13.Bool(user.mind.current) && user.mind.current.timeofdeath + this.respawn_cooldown > Game13.time)
                {
                    user.WriteMsg("It must be more than " + this.respawn_cooldown / 10 + " seconds from your last death to respawn!");
                    return;
                }
                new_team_member = user.client;
                this.dust_old(user);
                this.spawn_team_member(new_team_member);
                return;
            }

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.machines, typeof(Obj_Machinery_CaptureTheFlag)))
            {
                CTF = _a;


                if (CTF == this || CTF.ctf_enabled == GlobalVars.FALSE)
                {
                    continue;
                }

                if (CTF.team_members.Contains(user.ckey))
                {
                    user.WriteMsg("No switching teams while the round is going!");
                    return;
                }

                if (CTF.team_members.len < this.team_members.len)
                {
                    user.WriteMsg("" + this.team + " has more team members than " + CTF.team + ". Try joining " + CTF.team + " to even things up.");
                    return;
                }
            }
            this.team_members.Or(user.ckey);
            new_team_member2 = user.client;
            this.dust_old(user);
            this.spawn_team_member(new_team_member2);
            return;
        }
Exemplo n.º 2
0
        // Function from file: capture_the_flag.dm
        public void victory(  )
        {
            dynamic M        = null;
            dynamic mob_area = null;
            Obj_Item_Weapon_Twohanded_Required_Ctf W       = null;
            Obj_Machinery_ControlPoint             control = null;
            Obj_Machinery_CaptureTheFlag           CTF     = null;


            foreach (dynamic _b in Lang13.Enumerate(GlobalVars.mob_list))
            {
                M = _b;

                mob_area = GlobalFuncs.get_area(M);

                if (mob_area is Zone_Ctf)
                {
                    M.WriteMsg("<span class='narsie'>" + this.team + " team wins!</span>");
                    M.WriteMsg("<span class='userdanger'>The game has been reset! Teams have been cleared. The machines will be active again in 30 seconds.</span>");

                    foreach (dynamic _a in Lang13.Enumerate(M, typeof(Obj_Item_Weapon_Twohanded_Required_Ctf)))
                    {
                        W = _a;

                        ((Mob)M).unEquip(W);
                    }
                    ((Mob)M).dust();
                }
            }

            foreach (dynamic _c in Lang13.Enumerate(GlobalVars.machines, typeof(Obj_Machinery_ControlPoint)))
            {
                control = _c;

                control.icon_state  = "dominator";
                control.controlling = null;
            }

            foreach (dynamic _d in Lang13.Enumerate(GlobalVars.machines, typeof(Obj_Machinery_CaptureTheFlag)))
            {
                CTF = _d;


                if (CTF.ctf_enabled == GlobalVars.TRUE)
                {
                    CTF.points         = 0;
                    CTF.control_points = 0;
                    CTF.ctf_enabled    = GlobalVars.FALSE;
                    CTF.team_members   = new ByTable();
                    Task13.Schedule(300, (Task13.Closure)(() => {
                        CTF.ctf_enabled = GlobalVars.TRUE;
                        return;
                    }));
                }
            }
            return;
        }
Exemplo n.º 3
0
        // Function from file: capture_the_flag.dm
        public void instagib_mode(  )
        {
            Obj_Machinery_CaptureTheFlag CTF = null;


            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.machines, typeof(Obj_Machinery_CaptureTheFlag)))
            {
                CTF = _a;


                if (CTF.ctf_enabled == GlobalVars.TRUE)
                {
                    CTF.ctf_gear         = CTF.instagib_gear;
                    CTF.respawn_cooldown = 50;
                }
            }
            return;
        }
Exemplo n.º 4
0
        // Function from file: capture_the_flag.dm
        public void capture(dynamic user = null)
        {
            Obj_Machinery_CaptureTheFlag CTF = null;
            dynamic M        = null;
            dynamic mob_area = null;


            if (GlobalFuncs.do_after(user, 30, null, this))
            {
                foreach (dynamic _b in Lang13.Enumerate(GlobalVars.machines, typeof(Obj_Machinery_CaptureTheFlag)))
                {
                    CTF = _b;


                    if (Lang13.Bool(CTF.ctf_enabled) && CTF.team_members.Contains(user.ckey))
                    {
                        this.controlling = CTF;
                        this.icon_state  = "dominator-" + CTF.team;

                        foreach (dynamic _a in Lang13.Enumerate(GlobalVars.player_list))
                        {
                            M = _a;

                            mob_area = GlobalFuncs.get_area(M);

                            if (mob_area is Zone_Ctf)
                            {
                                M.WriteMsg(new Txt("<span class='userdanger'>").item(user.real_name).str(" has captured ").the(this).item().str(", claiming it for ").item(CTF.team).str("! Go take it back!</span>").ToString());
                            }
                        }
                        break;
                    }
                }
            }
            return;
        }