示例#1
0
            private void StunPlayersInRangeNotCoveredByWall()
            {
                var position = Position + new Vector2(0, 10);

                for (int i = 0; i < PlayerList.Count; i++)
                {
                    _currentPlayerBeingTested = PlayerList[i];
                    if (IsCurrentPlayerBodyDeadOrNull())
                    {
                        continue;
                    }

                    var distanceFromPlayerToFlashbang = (_currentPlayerBeingTested.Position - position).Length();
                    if (distanceFromPlayerToFlashbang > RangeForFlashbang)
                    {
                        continue;
                    }

                    if (!IsPlayerBeingTestedHitByFlashbang())
                    {
                        continue;
                    }

                    _currentPlayerBeingTested.StunTime += (int)(DurationOfFlashbangStunTime * (1 - distanceFromPlayerToFlashbang / RangeForFlashbang));
                }
            }
示例#2
0
        void OnRegister(NetConnection <NetSession> sender, UserRegisterRequest request)
        {
            Log.InfoFormat("UserRegisterRequest: username: {0}  password: {1}", request.User, request.Passward);

            sender.Session.Response.userRegister = new UserRegisterResponse();

            TUser user = DBService.Instance.Entities.Users.Where((u) => u.Username == request.User).FirstOrDefault();

            //if we find user with the same username in database, registeration failed
            if (user != null)
            {
                sender.Session.Response.userRegister.Result   = Result.Failed;
                sender.Session.Response.userRegister.Errormsg = "user already exist";
            }

            else
            {
                TPlayer player = DBService.Instance.Entities.Players.Add(new TPlayer());
                DBService.Instance.Entities.Users.Add(new TUser()
                {
                    Password = request.Passward,
                    Player   = player,
                    Username = request.User
                });

                DBService.Instance.Entities.SaveChanges();
                sender.Session.Response.userRegister.Result   = Result.Success;
                sender.Session.Response.userRegister.Errormsg = "None";
            }

            sender.SendResponse();
        }
示例#3
0
        void OnRegister(NetConnection <NetSession> sender, UserRegisterRequest request)
        {
            Log.InfoFormat("UserRegisterRequest: User:{0}  Pass:{1}", request.User, request.Passward);

            //NetMessage message = new NetMessage();
            //message.Response = new NetMessageResponse();
            //message.Response.userRegister = new UserRegisterResponse();

            sender.Session.Response.userRegister = new UserRegisterResponse();
            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == request.User).FirstOrDefault();

            if (user != null)
            {
                sender.Session.Response.userRegister.Result   = Result.Failed;
                sender.Session.Response.userRegister.Errormsg = "用户已存在.";
            }
            else
            {
                TPlayer player = DBService.Instance.Entities.Players.Add(new TPlayer());
                DBService.Instance.Entities.Users.Add(new TUser()
                {
                    Username = request.User, Password = request.Passward, Player = player, RegisterDate = DateTime.Now
                });
                DBService.Instance.Entities.SaveChanges();
                sender.Session.Response.userRegister.Result   = Result.Success;
                sender.Session.Response.userRegister.Errormsg = "None";
            }
            sender.SendResponse();
            //byte[] data = PackageHandler.PackMessage(message);
            //sender.SendData(data, 0, data.Length);
        }
示例#4
0
文件: TGame.cs 项目: Japend/LuxAura
    //public List<TAttackInfo> PendingAttacks { get { return pendingAttacks; } }

    public TGame(PlayerSettings[] players, TrainingPlanetInfo[] planetsInfo)
    {
        GameMutex = new Mutex();
        //Debug.Log("EMPEZANDO PARTIDA - CREANDO PLANETAS");
        #region PREPARING PLANETS
        planets = new TPlanet[planetsInfo.Length];

        //instantiate planets
        for (int i = 0; i < planetsInfo.Length; i++)
        {
            planets[i] = new TPlanet(planetsInfo[i].Owner, planetsInfo[i].position, planetsInfo[i].MaxLevel, i, this);
            Debug.Log("Creando planeta " + i + " que pertenece al jugador " + planetsInfo[i].Owner + " situado en " + planetsInfo[i].position);
        }

        //store the distances in turns between planets
        int[] aux;
        for (int i = 0; i < planets.Length; i++)
        {
            aux = new int[planets.Length];
            for (int j = 0; j < planets.Length; j++)
            {
                if (i == j)
                {
                    aux[i] = -1;
                    Debug.Log("El planeta " + i + " esta a una distancia de " + Vector3.Distance(planets[i].Position, planets[j].Position) + " al planeta " + j + " o, en turnos: " + aux[i]);
                    continue;
                }

                aux[i] = Utilities.Utilities.GetDistanceInTurns(planets[i].Position, planets[j].Position);
                Debug.Log("El planeta " + i + " esta a una distancia de " + Vector3.Distance(planets[i].Position, planets[j].Position) + " al planeta " + j + " o, en turnos: " + aux[i]);
            }
            planets[i].UpdateDistances(aux);
        }
        #endregion

        //Debug.Log("EMPEZANDO PARTIDA - CREANDO JUGADORES");
        #region PREPARING_PLAYERS
        TPlayer[]           mplayers = new TPlayer[players.Length];
        List <TEventEntity> aux2;
        for (int i = 0; i < players.Length; i++)
        {
            aux2 = new List <TEventEntity>();
            foreach (TEventEntity planet in planets)
            {
                if (planet.CurrentPlayerOwner == i)
                {
                    aux2.Add(planet);
                }
            }

            mplayers[i] = new TPlayer(i, aux2, players[i].TypeAI, planets, true);
            //Debug.Log("Jugador " + i + " creado con " + aux2.Count + " planetas e IA " + players[i].TypeAI);
        }
        this.players = mplayers;
        #endregion
        pendingAttacks = new List <TAttackInfo>();
        TakeSnapshot();
        winner        = GlobalData.NO_PLAYER;
        weHaveAWinner = false;
    }
        private void OnRegiester(NetConnection <NetSession> sender, UserRegisterRequest request)
        {
            Log.InfoFormat("UserRegisterRequest:User:{0} Password:{1}", request.User, request.Passward);

            sender.Session.Response.userRegister = new UserRegisterResponse();

            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == request.User).FirstOrDefault();

            if (user != null)
            {
                sender.Session.Response.userRegister.Result   = Result.Failed;
                sender.Session.Response.userRegister.Errormsg = "用户已存在";
            }
            else
            {
                TPlayer player = DBService.Instance.Entities.Players.Add(new TPlayer());
                DBService.Instance.Entities.Users.Add(new TUser()
                {
                    Username = request.User, Password = request.Passward, Player = player
                });
                DBService.Instance.Entities.SaveChanges();
                sender.Session.Response.userRegister.Result   = Result.Success;
                sender.Session.Response.userRegister.Errormsg = "None";
            }

            sender.SendResponse();
        }
示例#6
0
        public Controller(TPlayer player)
        {
            this.player = player;

            pen             = new Pen(Color.DodgerBlue, 2);
            pen.LineJoin    = LineJoin.Round;
            pentwo          = new Pen(Color.DodgerBlue, 6);
            pentwo.LineJoin = LineJoin.Round;
            SetStyle(
                ControlStyles.UserPaint |
                ControlStyles.AllPaintingInWmPaint |
                ControlStyles.OptimizedDoubleBuffer |
                ControlStyles.ResizeRedraw |
                ControlStyles.DoubleBuffer, true);
            UpdateStyles();

            rippleAnimationManager = new AnimationManager(false)
            {
                AnimationType = Animations.AnimationType.Linear,
                //Increment = 0.10,
                Increment          = 0.04,
                SecondaryIncrement = 0
            };
            rippleAnimationManager.OnAnimationProgress += sender => Print();

            InitializeComponent();
            //tomLoading.MClick += TomLoading_MClick;
        }
示例#7
0
 public TGameRRResultLine(int position, TPlayer player, int winPoints, int lossPoints)
 {
     this.position   = position;
     this.player     = player;
     this.winPoints  = winPoints;
     this.lossPoints = lossPoints;
 }
示例#8
0
        /// <summary>
        /// Applies an amount of damage to this player, updating their client and the server version of their health
        /// </summary>
        /// <param name="killer"></param>
        /// <param name="victim"></param>
        /// <param name="killersWeapon"></param>
        /// <param name="dir"></param>
        /// <param name="damage"></param>
        /// <param name="realDamage"></param>
        public void ApplyPlayerDamage(PlayerKiller killer, Item killersWeapon, int dir, int damage, int realDamage)
        {
            // Send the damage using the special method to avoid invincibility frames issue
            Controller.DataSender.SendPlayerDamage(TshockPlayer, dir, damage);
            Controller.RaisePlayerDamageEvent(this, new PlayerDamageEventArgs(killer.Player, TshockPlayer, killersWeapon, realDamage));
            TPlayer.statLife -= realDamage;

            // Hurt the player to prevent instant regen activating
            var savedHealth = TPlayer.statLife;

            TPlayer.Hurt(new PlayerDeathReason(), damage, 0, true, false, false, 3);
            TPlayer.statLife = savedHealth;

            if (TPlayer.statLife <= 0)
            {
                TshockPlayer.Dead = true;
                IsDead            = true;
                Controller.DataSender.SendPlayerDeath(TshockPlayer);

                if (TPlayer.hostile && killer != null)
                {
                    PlayerKillEventArgs killArgs = new PlayerKillEventArgs(killer.Player, TshockPlayer, killer.Weapon);
                    Controller.RaisePlayerKillEvent(this, killArgs);
                }
                return;
            }

            Controller.DataSender.SendClientHealth(this, TPlayer.statLife);
        }
示例#9
0
文件: TGame.cs 项目: Japend/LuxAura
    /// <summary>
    /// Same as take snapshot, but stores the current state in a new TGame and returns it
    /// DOES NOT OVERWRITE SNAPSHOT
    /// </summary>
    public TGame TakeAndGetSnapshot()
    {
        TEventEntity[] s_planets = new TEventEntity[planets.Length];
        TGame          game      = new TGame();

        for (int i = 0; i < planets.Length; i++)
        {
            s_planets[i] = planets[i].GetSnapshot(game);
        }

        TPlayer[]           s_players = new TPlayer[players.Length];
        List <TEventEntity> aux;

        for (int i = 0; i < players.Length; i++)
        {
            aux          = new List <TEventEntity>();
            s_players[i] = players[i].GetSnapshot(s_planets);
            foreach (TEventEntity ent in s_planets)
            {
                if (ent.CurrentPlayerOwner == s_players[i].Id)
                {
                    aux.Add(ent);
                }
            }
            s_players[i].SetPlanets(aux);
        }

        List <TAttackInfo> s_attacks = new List <TAttackInfo>(pendingAttacks);

        game.Initialize(s_players, s_planets, s_attacks, weHaveAWinner, winner);
        return(game);
    }
示例#10
0
        public static string PlayerToStr(TPlayer p, bool includePrename, bool includeClub)
        {
            string result;

            if (p != null)
            {
                if ((p.Club != "") && includeClub)
                {
                    if ((p.Prename != "") && includePrename)
                    {
                        result = p.Lastname + ", " + p.Prename + " (" + p.Club + ')';
                    }
                    else
                    {
                        result = p.Lastname + " (" + p.Club + ')';
                    }
                }
                else if ((p.Prename != "") && includePrename)
                {
                    result = p.Lastname + ", " + p.Prename;
                }
                else
                {
                    result = p.Lastname;
                }
            }
            else
            {
                result = "?";
            }
            return(result);
        }
示例#11
0
            public bool CallAirstrike(TPlayer player)
            {
                int        angle = 0;
                PlayerTeam team  = player.Team;

                if (IsHacking(player.Team))
                {
                    team = GetEnemyTeam(player.Team);
                    GlobalGame.RunCommand("MSG AIRSTRIKE HAS BEEN HACKED");
                }
                Vector2 target = GetRandomAirEnemy(team, 2, ref angle);

                if (target.X == 0 && target.Y == 0)
                {
                    if (IsHacking(player.Team))
                    {
                        target = GetRandomWorldPoint();
                    }
                    else
                    {
                        return(false);
                    }
                }
                if (IsJamming(player.Team))
                {
                    target.X += GlobalRandom.Next(-99, 100);
                    GlobalGame.RunCommand("MSG PINPOINT STRIKE HAS BEEN JAMMED");
                }
                Vector2 position = GetBeginPointTarget(target, angle);

                TargetPosition = target;
                BeginPosition  = position;
                return(true);
            }
示例#12
0
        void OnRegister(NetConnection <NetSession> sender, UserRegisterRequest request)
        {
            NetMessage message = new NetMessage();

            message.Response = new NetMessageResponse();
            message.Response.userRegister = new UserRegisterResponse();
            //根据客户端传递的user查询数据库用户信息
            TUser user = DBService.Instance.Entities.Users.Where(u => u.Username == request.User).FirstOrDefault();

            //已存在
            if (user != null)
            {
                message.Response.userRegister.Result   = Result.Failed;
                message.Response.userRegister.Errormsg = "用户已存在.";
            }
            else//不存在
            {
                //加入Players表
                TPlayer player = DBService.Instance.Entities.Players.Add(new TPlayer());
                //加入Users表
                DBService.Instance.Entities.Users.Add(new TUser()
                {
                    Username = request.User, Password = request.Passward, Player = player
                });
                //保存到数据库
                DBService.Instance.Entities.SaveChanges();
                message.Response.userRegister.Result   = Result.Success;
                message.Response.userRegister.Errormsg = "用户注册成功";
            }
            //成功失败都告诉客户端
            sender.SendData(message);
        }
示例#13
0
            public void PlaceTurret(TPlayer player, int id)
            {
                Vector2 position = player.User.GetPlayer().GetWorldPosition();

                position += new Vector2(player.User.GetPlayer().FacingDirection * 10, 15);
                CreateTurret(id, position, player.User.GetPlayer().FacingDirection, player.Team);
            }
示例#14
0
        private async Task StoreDrawData(string[] playerIDs, Map _map, List <Player> _players, List <Bomb> _bombs, List <Powerup> _powerups, List <Explosion> _explosions, List <Message> _messages)
        {
            TTile[] tiles = new TTile[_map.tiles.Length];
            for (int i = 0; i < _map.tiles.Length; i++)
            {
                tiles[i] = new TTile()
                {
                    x = _map.tiles[i].x, y = _map.tiles[i].y, texture = _map.tiles[i].texture
                };
            }
            TMap map = new TMap()
            {
                tiles = tiles
            };

            // ------
            TPlayer[] players = new TPlayer[_players.Count];
            for (int i = 0; i < _players.Count; i++)
            {
                players[i] = new TPlayer()
                {
                    x = _players[i].x, y = _players[i].y, texture = _players[i].texture
                };
            }
            // ------
            BombTransport[]      bombs      = _bombs.Select(bomb => (BombTransport)bombCreator.Pack(bomb)).ToArray();
            PowerupTransport[]   powerups   = _powerups.Select(powerup => (PowerupTransport)powerupCreator.Pack(powerup)).ToArray();
            ExplosionTransport[] explosions = _explosions.Select(explosion => (ExplosionTransport)explosionCreator.Pack(explosion)).ToArray();
            Message[]            messages   = _messages.ToArray();
            //await _hub.Clients.Clients(playerIDs[0], playerIDs[1], playerIDs[2], playerIDs[3]).SendAsync("StoreDrawData", map, players, bombs, powerups, explosions, messages);
            await _hub.Clients.All.SendAsync("StoreDrawData", map, players, bombs, powerups, explosions, messages);
        }
示例#15
0
            public void PlaceShieldGenerator(TPlayer player)
            {
                Vector2 position = player.User.GetPlayer().GetWorldPosition();

                position += new Vector2(player.User.GetPlayer().FacingDirection * 10, 15);
                CreateShieldGenerator(50, position, 50, player.Team);
            }
示例#16
0
            public void CallAirDrop(TPlayer player, int count = 1)
            {
                Vector2 pos = player.User.GetPlayer().GetWorldPosition();

                if (IsHacking(player.Team))
                {
                    TPlayer enemy = GetRandomPlayer(GetEnemyTeam(player.Team), true);
                    if (enemy != null)
                    {
                        pos = enemy.User.GetPlayer().GetWorldPosition();
                    }
                    else
                    {
                        pos = GetRandomWorldPoint();
                    }
                }
                pos.Y = WorldTop;
                int offset = 20;

                pos.X -= offset * (count - 1);
                for (int i = 0; i < count; i++)
                {
                    GlobalGame.CreateObject("SupplyCrate00", pos);
                    pos.X += offset;
                    pos.Y += GlobalRandom.Next(-offset, offset);
                }
            }
示例#17
0
            public void SetPlayer(TPlayer player)
            {
                if (player == null)
                {
                    return;
                }
                Player = player;
                if (UserAccessList.ContainsKey(player.User.Name))
                {
                    AccessLevel = UserAccessList[player.User.Name];
                }

                if (Equipment.Count == 0)
                {
                    for (int i = 0; i < EquipmentList.Count; i++)
                    {
                        Equipment.Add(0);
                    }
                }

                if (Player.User.IsBot)
                {
                    Ready = true;
                }

                Equipment[0] = 1;
                Equipment[2] = 3;
            }
示例#18
0
        public static void ApplyThrownWeapon(TPlayer player, int id)
        {
            IPlayer pl = player.User.GetPlayer();

            switch (id)
            {
            case 1:
            {
                pl.GiveWeaponItem(WeaponItem.GRENADES);
                break;
            }

            case 2:
            {
                pl.GiveWeaponItem(WeaponItem.MOLOTOVS);
                break;
            }

            case 3:
            {
                pl.GiveWeaponItem(WeaponItem.MINES);
                break;
            }

            case 4:
            {
                pl.GiveWeaponItem(WeaponItem.GRENADES);
                player.WeaponTrackingUpdate(true);
                player.ThrownWeapon.CustomId = 1;
                break;
            }

            case 5:
            {
                pl.GiveWeaponItem(WeaponItem.GRENADES);
                player.WeaponTrackingUpdate(true);
                player.ThrownWeapon.CustomId = 2;
                break;
            }

            case 6:
            {
                pl.GiveWeaponItem(WeaponItem.GRENADES);
                player.WeaponTrackingUpdate(true);
                player.ThrownWeapon.CustomId = 3;
                break;
            }

            case 7:
            {
                pl.GiveWeaponItem(WeaponItem.SHURIKEN);
                break;
            }
            }
            if (id < 4)
            {
                player.WeaponTrackingUpdate(true);
            }
        }
示例#19
0
            public void SpawnStreetsweeper(TPlayer player)
            {
                var streetSweeper = Game.CreateObject("Streetsweeper", new Vector2(player.Position.X, WorldTop)) as IObjectStreetsweeper;

                streetSweeper.SetOwnerTeam(player.Team);
                streetSweeper.SetOwnerPlayer(player.User.GetPlayer());
                ObjectsToRemove.Add(streetSweeper);
            }
示例#20
0
            public void Update(TPlayer player)
            {
                if (FastReloading > 0)
                {
                    FastReloading--;
                }
                switch (Id)
                {
                case 4:
                {
                    if (IsActive)
                    {
                        ContinueNapalmStrike();
                    }
                    break;
                }

                case 6:
                {
                    if (IsActive)
                    {
                        ContinueAirstrike();
                    }
                    break;
                }

                case 8:
                {
                    if (IsActive)
                    {
                        ContinueArtilleryStrike();
                    }
                    break;
                }

                case 9:
                {
                    if (IsActive)
                    {
                        ContinueMineStrike();
                    }
                    break;
                }

                case 17:
                {
                    UpdatePoliceShield(player);
                    break;
                }

                case 20:
                {
                    UpdateJetPack(player);
                    break;
                }
                }
            }
示例#21
0
 public void set_lv()
 {
     this.txt_lv.GetComponent <Text>().text = GM.GetInstance().Lv.ToString();
     if (Configs.TPlayers.ContainsKey(GM.GetInstance().Lv.ToString()))
     {
         TPlayer tPlayer = Configs.TPlayers[GM.GetInstance().Lv.ToString()];
         this.img_exp.GetComponent <Image>().fillAmount = (((float)GM.GetInstance().Exp / (float)tPlayer.Exp >= 1f) ? 1f : ((float)GM.GetInstance().Exp / (float)tPlayer.Exp));
     }
 }
示例#22
0
 public Setting(TPlayer player, string index = "1")
 {
     this.player = player;
     InitializeComponent();
     this._index         = index;
     btn_refresh.Image   = FontAwesome.GetImage("4FA6", 30, Color.Black);
     btn_min.Image       = FontAwesome.GetImage("4FA9", 30, Color.Black);
     btn_close.Image     = FontAwesome.GetImage("4FA3", 30, Color.Black);
     btn_close.ImageHove = FontAwesome.GetImage("4FA3", 30, Color.White);
 }
示例#23
0
            public void SpawnDrone(TPlayer player, int id)
            {
                Area  area = GlobalGame.GetCameraArea();
                float x    = GlobalRandom.Next((int)(area.Left + area.Width / 5), (int)(area.Right - area.Width / 5));
                float y    = area.Top + 10;

                CreateTurret(id, new Vector2(x, y), player.User.GetPlayer().FacingDirection, player.Team);
                GlobalGame.PlayEffect("EXP", new Vector2(x, y));
                GlobalGame.PlaySound("Explosion", new Vector2(x, y), 1.0f);
            }
示例#24
0
 private void InitUI()
 {
     this.m_txt_lv_value.text = GM.GetInstance().Lv.ToString();
     if (Configs.TPlayers.ContainsKey(GM.GetInstance().Lv.ToString()))
     {
         TPlayer tPlayer = Configs.TPlayers[GM.GetInstance().Lv.ToString()];
         this.m_txt_awards.text = string.Format("x{0}", tPlayer.Item);
         this.m_txt_coin.text   = string.Format("x{0}", tPlayer.Item * 2);
     }
 }
示例#25
0
        public WebZimu(TPlayer player, string txt)
        {
            this.player = player;
            InitializeComponent();
            btn_close.Image     = FontAwesome.GetImage("4FA3", 30, Color.Black);
            btn_close.ImageHove = FontAwesome.GetImage("4FA3", 30, Color.White);
            text_search.Text    = txt;

            frmSearch1.CueBannerText = text_search.CueBannerText;
        }
示例#26
0
        public static int TracePath(Vector2 fromPos, Vector2 toPos, PlayerTeam team, bool fullCheck = false)
        {
            int     width      = 4;
            float   angle      = TwoPointAngle(fromPos, toPos);
            Vector2 diff       = toPos - fromPos;
            float   offsetX    = (float)Math.Cos(angle) * (width + 8);
            float   offsetY    = (float)Math.Sin(angle) * (width + 8);
            int     itCount    = (int)Math.Ceiling(diff.X / offsetX);
            Vector2 currentPos = fromPos;
            int     vision     = 0;

            for (int i = 0; i < itCount; i++)
            {
                Area      area    = new Area(currentPos.Y + width / 2.0f, currentPos.X - width / 2.0f, currentPos.Y - width / 2.0f, currentPos.X + width / 2.0f);
                IObject[] objList = GlobalGame.GetObjectsByArea(area);
                for (int j = 0; j < objList.Length; j++)
                {
                    string name = objList[j].Name;
                    if (name.StartsWith("Bg") || name.StartsWith("FarBg"))
                    {
                        continue;
                    }
                    if (IsPlayer(name))
                    {
                        TPlayer pl = GetPlayer((IPlayer)objList[j]);
                        if (pl.IsAlive() && !fullCheck)
                        {
                            if (pl.Team == team)
                            {
                                vision = 3;
                            }
                            else
                            {
                                return(vision);
                            }
                        }
                        else
                        {
                            vision = Math.Max(vision, 1);
                        }
                    }
                    else if (VisionObjects.ContainsKey(name))
                    {
                        vision = Math.Max(vision, VisionObjects[name]);
                    }
                    if (vision >= 3)
                    {
                        return(vision);
                    }
                }
                currentPos.X += offsetX;
                currentPos.Y += offsetY;
            }
            return(vision);
        }
示例#27
0
 public MainWindow()
 {
     _playerOriginX = playerCoordX;
     _playerOriginY = playerCoordY;
     InitializeComponent();
     input     = new Input();
     mapReader = new MapReader();
     tileMap   = new TileMap(mapSizeX, mapSizeY);
     player    = new TPlayer(playerCoordX, playerCoordY);
     mainCam   = new Camera();
 }
示例#28
0
        public static TWeapon PlayerDropWeaponUpdate(Vector2 pos, WeaponItem id)
        {
            float   dist   = 16;
            TPlayer player = null;
            TWeapon weapon = null;

            for (int i = 0; i < PlayerList.Count; i++)
            {
                float currentDist = (pos - PlayerList[i].Position).Length();
                if (currentDist <= dist)
                {
                    bool    hasWeapon = false;
                    IPlayer pl        = PlayerList[i].User.GetPlayer();
                    if (PlayerList[i].PrimaryWeapon != null && PlayerList[i].PrimaryWeapon.Weapon == id && (pl != null && pl.CurrentPrimaryWeapon.WeaponItem == WeaponItem.NONE) || pl == null)
                    {
                        hasWeapon = true;
                    }
                    else if (PlayerList[i].SecondaryWeapon != null && PlayerList[i].SecondaryWeapon.Weapon == id && (pl != null && pl.CurrentSecondaryWeapon.WeaponItem == WeaponItem.NONE) || pl == null)
                    {
                        hasWeapon = true;
                    }
                    else if (PlayerList[i].ThrownWeapon != null && PlayerList[i].ThrownWeapon.Weapon == id && (pl != null && pl.CurrentThrownItem.WeaponItem == WeaponItem.NONE) || pl == null)
                    {
                        hasWeapon = true;
                    }
                    if (hasWeapon)
                    {
                        player = PlayerList[i];
                        dist   = currentDist;
                    }
                }
            }
            if (player == null)
            {
                return(null);
            }
            if (player.PrimaryWeapon != null && player.PrimaryWeapon.Weapon == id)
            {
                weapon = player.PrimaryWeapon;
                player.PrimaryWeapon = null;
            }
            else if (player.SecondaryWeapon != null && player.SecondaryWeapon.Weapon == id)
            {
                weapon = player.SecondaryWeapon;
                player.SecondaryWeapon = null;
            }
            else if (player.ThrownWeapon != null && player.ThrownWeapon.Weapon == id)
            {
                weapon = player.ThrownWeapon;
                player.ThrownWeapon = null;
            }
            return(weapon);
        }
示例#29
0
 public Header(TPlayer player)
 {
     this.player = player;
     SetStyle(
         ControlStyles.UserPaint |
         ControlStyles.AllPaintingInWmPaint |
         ControlStyles.OptimizedDoubleBuffer |
         ControlStyles.ResizeRedraw |
         ControlStyles.DoubleBuffer, true);
     UpdateStyles();
     InitializeComponent();
 }
示例#30
0
        public WebBrowser(TPlayer player)
        {
            this.player = player;
            InitializeComponent();
            btn_min.Image       = FontAwesome.GetImage("4FA9", 30, Color.Black);
            btn_max.Image       = FontAwesome.GetImage("4FB2", 30, Color.Black);
            btn_close.Image     = FontAwesome.GetImage("4FA3", 30, Color.Black);
            btn_close.ImageHove = FontAwesome.GetImage("4FA3", 30, Color.White);

            btn_list.Image = FontAwesome.GetImage("4F8F", 30, Color.Black);
            btn_next.Image = FontAwesome.GetImage("50D9", 18, Color.Black);
        }