Esempio n. 1
0
        public override void OnPlayerData(TerrariaPacket e)
        {
            TDMArena       arena      = ActiveArena as TDMArena;
            PlayerTeamArgs playerTeam = e as PlayerTeamArgs;

            if (playerTeam != null)
            {
                if (RedTeam.Contains(e.Player))
                {
                    e.Player.SetTeam(1);
                }
                else if (BlueTeam.Contains(e.Player))
                {
                    e.Player.SetTeam(3);
                }
            }

            PlayerDeathArgs playerDeath = e as PlayerDeathArgs;

            if (playerDeath != null)
            {
                if (RedTeam.Contains(e.Player))
                {
                    _blueScore++;
                    SendMessageToAllPlayers($"A member of Blue Team got a kill! {_scoreText}", Color.Turquoise);
                }
                else if (BlueTeam.Contains(e.Player))
                {
                    _redScore++;
                    SendMessageToAllPlayers($"A member of Red Team got a kill! {_scoreText}", Color.OrangeRed);
                }
            }
        }
Esempio n. 2
0
        public override void OnPlayerData(TerrariaPacket e)
        {
            if (GetGameState() != GameState.GameRunning)
            {
                return;
            }

            PlayerDeathArgs deathPacket = e as PlayerDeathArgs;

            if (deathPacket != null)
            {
                if (RedTeam.Contains(e.Player))
                {
                    PaintCircle((int)e.Player.TPlayer.Center.X, (int)e.Player.TPlayer.Center.Y, (int)(3 + deathPacket.Damage / 20f), _deepBluePaintID);
                }
                else if (BlueTeam.Contains(e.Player))
                {
                    PaintCircle((int)e.Player.TPlayer.Center.X, (int)e.Player.TPlayer.Center.Y, (int)(3 + deathPacket.Damage / 20f), _deepRedPaintID);
                }
            }

            ProjectileDestroyArgs projectileDied = e as ProjectileDestroyArgs;

            if (projectileDied != null)
            {
                if (projectileDied.ProjectileDestroyed.owner == projectileDied.Owner)
                {
                    if (RedTeam.Contains(e.Player))
                    {
                        PaintCircle((int)projectileDied.ProjectileX, (int)projectileDied.ProjectileY, 3 + projectileDied.ProjectileDestroyed.damage / 150, _deepRedPaintID);
                    }
                    else if (BlueTeam.Contains(e.Player))
                    {
                        PaintCircle((int)projectileDied.ProjectileX, (int)projectileDied.ProjectileY, 3 + projectileDied.ProjectileDestroyed.damage / 150, _deepBluePaintID);
                    }
                }
            }
        }
Esempio n. 3
0
        public override void OnPlayerData(TerrariaPacket e)
        {
            CTFArena       arena      = ActiveArena as CTFArena;
            PlayerTeamArgs playerTeam = e as PlayerTeamArgs;

            if (playerTeam != null)
            {
                if (RedTeam.Contains(e.Player))
                {
                    e.Player.SetTeam(1);
                }
                else if (BlueTeam.Contains(e.Player))
                {
                    e.Player.SetTeam(3);
                }
            }

            PlayerUpdateArgs playerUpdate = e as PlayerUpdateArgs;

            if (playerUpdate != null)
            {
                // Picking up flags
                if (_redFlagHolder == null && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.RedFlag) < 2 * 16 && BlueTeam.Contains(e.Player))
                {
                    _redFlagHolder = e.Player;
                    SendMessageToAllPlayers($"{_redFlagHolder.Name} has picked up the red flag!", Color.OrangeRed);
                }
                else if (_blueFlagHolder == null && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.BlueFlag) < 2 * 16 && RedTeam.Contains(e.Player))
                {
                    _blueFlagHolder = e.Player;
                    SendMessageToAllPlayers($"{_blueFlagHolder.Name} has picked up the blue flag!", Color.Turquoise);
                }

                // Placing flags at base flag
                if (_redFlagHolder != null && _redFlagHolder == e.Player && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.BlueFlag) < 2 * 16 && BlueTeam.Contains(e.Player) && !e.Player.TPlayer.dead)
                {
                    SendMessageToAllPlayers($"{_redFlagHolder.Name} has scored for the blue team!", Color.Turquoise);
                    _redFlagHolder = null;
                    _blueScore    += 1;
                    SendMessageToAllPlayers($"Score: {_scoreText}", Color.Cyan);
                }
                else if (_blueFlagHolder != null && _blueFlagHolder == e.Player && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.RedFlag) < 2 * 16 && RedTeam.Contains(e.Player) && !e.Player.TPlayer.dead)
                {
                    SendMessageToAllPlayers($"{_blueFlagHolder.Name} has scored for the red team!", Color.OrangeRed);
                    _blueFlagHolder = null;
                    _redScore      += 1;
                    SendMessageToAllPlayers($"Score: {_scoreText}", Color.Cyan);
                }
            }

            PlayerDeathArgs playerDeath = e as PlayerDeathArgs;

            if (playerDeath != null)
            {
                if (e.Player == _redFlagHolder)
                {
                    _redFlagHolder = null;
                    SendMessageToAllPlayers($"{e.Player.Name} has dropped the red flag!", Color.OrangeRed);
                }

                if (e.Player == _blueFlagHolder)
                {
                    _blueFlagHolder = null;
                    SendMessageToAllPlayers($"{e.Player.Name} has dropped the blue flag!", Color.Turquoise);
                }
            }
        }