Exemplo n.º 1
0
 public void Execute(BaseGame game, long tick)
 {
     if(m_time <= tick)
     {
         m_isFinished = true;
     }
 }
Exemplo n.º 2
0
        public static BaseGame StartGame(List<GamePlayer> red, List<GamePlayer> blue, int mapIndex,eRoomType roomType, eTeamType teamType, eGameType gameType, int timeType)
        {
            try
            {
                int index = MapMgr.GetMapIndex(mapIndex,(byte)roomType);
                Map map = MapMgr.CloneMap(index);

                if (map != null)
                {
                    BaseGame game = new BaseGame(red, blue, map,roomType,teamType,gameType,timeType);

                    lock (m_games)
                    {
                        m_games.Add(game);
                    }

                    game.Prepare();
                    return game;
                }
                else
                {
                    return null;
                }
            }
            catch (Exception e)
            {
                log.Error("Create game error:", e);
                return null;
            }
        }
Exemplo n.º 3
0
        public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
        {
            player.ShootCount += item.Property2;

            if (item.Property2 == 2)
                player.CurrentShootMinus *= 0.6f;
            else
                player.CurrentShootMinus *= 0.9f;
        }
Exemplo n.º 4
0
 public static void ExecuteSpell(BaseGame game,Player player,ItemTemplateInfo item)
 {
     try
     {
         ISpellHandler spellHandler = SpellMgr.LoadSpellHandler(item.Property1);
         spellHandler.Execute(game, player, item);
     }
     catch (Exception ex)
     {
         log.Error("Execute Spell Error:", ex);
     }
 }
 public void Execute(BaseGame game, long tick)
 {
     if (m_tick < tick && !m_isFinished)
     {
         m_isFinished = true;
         if (game.TurnIndex == m_turnIndex && m_player.IsAttacking)
         {
             m_player.StopAttacking();
             game.CheckState(0);
         }
     }
 }
Exemplo n.º 6
0
 public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
 {
     NoHoleEffect effect = (NoHoleEffect)player.EffectList.GetOfType(typeof(NoHoleEffect));
     if (effect != null)
     {
         effect.Count = item.Property3;
     }
     else
     {
         new NoHoleEffect(item.Property3).Start(player);
     }
 }
Exemplo n.º 7
0
        public SimpleBomb(int id,BombType type, Player owner,BaseGame game,BallInfo info, Tile shape,bool controled)
            :base(id,info.Mass,info.Weight,info.Wind,info.DragIndex)
        {
            m_owner = owner;
            m_game = game;
            m_info = info;

            m_shape = shape;
            m_type = type;
            m_power = info.Power;
            m_radius = info.Radii;
            m_controled = controled;

            m_lifeTime = 0;
        }
Exemplo n.º 8
0
        public void Execute(BaseGame game, long tick)
        {
            if (m_tick <= tick)
            {
                switch (game.GameState)
                {
                case eGameState.Inited:
                    game.Prepare();
                    break;

                case eGameState.Prepared:
                    game.StartLoading();
                    break;

                case eGameState.Loading:
                    if (game.IsAllComplete())
                    {
                        game.StartGame();
                    }
                    break;

                case eGameState.Playing:
                    if (game.CurrentPlayer == null || game.CurrentPlayer.IsAttacking == false)
                    {
                        if (game.CanGameOver())
                        {
                            game.GameOver();
                        }
                        else
                        {
                            game.NextTurn();
                        }
                    }
                    break;

                case eGameState.GameOver:
                    game.Stop();
                    break;
                }
                m_isFinished = true;
            }
        }
Exemplo n.º 9
0
        public Player(GamePlayer player,BaseGame game,int team)
            : base(player.PlayerId)
        {
            m_rect = new Rectangle(-15, -20, 30, 30);
            m_player = player;
            m_game = game;
            m_team = team;
            m_isCaptain = false;
            m_effectList = new EffectList(this);
            m_isActive = true;

            m_weapon = m_player.CurrentWeapon();
            m_mainBallId = m_weapon.Template.Property1;
            m_spBallId = m_weapon.Template.Property2;
            m_direction = 1;

            LoadingProcess = 0;

            Reset();
        }
Exemplo n.º 10
0
        public void Execute(BaseGame game, long tick)
        {
            if (!m_isSend)
            {
                m_isSend = true;

                GSPacketIn pkg = m_player.PlayerDetail.Out.SendPlayerMove(m_player, 2, m_target.X, m_target.Y, (byte)(m_v.X > 0 ? 1 : -1),false);

                game.SendToAll(pkg,m_player.PlayerDetail);
            }

            if (m_target.Distance(m_player.X, m_player.Y) > 2)
            {
                m_player.SetXY(m_player.X + m_v.X, m_player.Y + m_v.Y);
            }
            else
            {
                m_player.SetXY(m_target.X, m_target.Y);
                m_isFinished = true;
            }
        }
Exemplo n.º 11
0
        public void Execute(BaseGame game, long tick)
        {
            if (!m_isSend)
            {
                m_isSend = true;

                GSPacketIn pkg = m_player.PlayerDetail.Out.SendPlayerMove(m_player, 2, m_target.X, m_target.Y, (byte)(m_v.X > 0 ? 1 : -1), false);

                game.SendToAll(pkg, m_player.PlayerDetail);
            }

            if (m_target.Distance(m_player.X, m_player.Y) > 2)
            {
                m_player.SetXY(m_player.X + m_v.X, m_player.Y + m_v.Y);
            }
            else
            {
                m_player.SetXY(m_target.X, m_target.Y);
                m_isFinished = true;
            }
        }
Exemplo n.º 12
0
 public void Execute(BaseGame game, long tick)
 {
     if (m_tick <= tick)
     {
         switch (game.GameState)
         {
             case eGameState.Inited:
                 game.Prepare();
                 break;
             case eGameState.Prepared:
                 game.StartLoading();
                 break;
             case eGameState.Loading:
                 if (game.IsAllComplete())
                 {
                     game.StartGame();
                 }
                 break;
             case eGameState.Playing:
                 if (game.CurrentPlayer == null || game.CurrentPlayer.IsAttacking == false)
                 {
                     if (game.CanGameOver())
                     {
                         game.GameOver();
                     }
                     else
                     {
                         game.NextTurn();
                     }
                 }
                 break;
             case eGameState.GameOver:
                 game.Stop();
                 break;
         }
         m_isFinished = true;
     }
 }
Exemplo n.º 13
0
 public void Execute(BaseGame game, long tick)
 {
     if (m_player.IsActive)
     {
         TankCmdType type = (TankCmdType)m_packet.ReadByte();
         try
         {
             ICommandHandler handleCommand = CommandMgr.LoadCommandHandler((int)type);
             if (handleCommand != null)
             {
                 handleCommand.HandleCommand(game, m_player, m_packet);
             }
             else
             {
                 log.Error(string.Format("IP: {0}", m_player.PlayerDetail.Client.TcpEndpoint));
             }
         }
         catch (Exception e)
         {
             log.Error(string.Format("IP:{1}, OnGameData is Error: {0}", e.ToString(), m_player.PlayerDetail.Client.TcpEndpoint));
         }
     }
 }
Exemplo n.º 14
0
 public void Execute(BaseGame game, long tick)
 {
     if (m_player.IsActive)
     {
         TankCmdType type = (TankCmdType)m_packet.ReadByte();
         try
         {
             ICommandHandler handleCommand = CommandMgr.LoadCommandHandler((int)type);
             if (handleCommand != null)
             {
                 handleCommand.HandleCommand(game, m_player, m_packet);
             }
             else
             {
                 log.Error(string.Format("IP: {0}", m_player.PlayerDetail.Client.TcpEndpoint));
             }
         }
         catch (Exception e)
         {
             log.Error(string.Format("IP:{1}, OnGameData is Error: {0}", e.ToString(), m_player.PlayerDetail.Client.TcpEndpoint));
         }
     }
 }
Exemplo n.º 15
0
 public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
 {
     switch(item.Property2)
     {
         case 0:
             if(player.IsLiving)
             {
                 AddHideEffect(player,item.Property3);
             }
             break;
         case 1:
             Player[] players = player.Game.GetAllFightPlayersSafe();
             foreach(Player p in players)
             {
                 if(p.IsLiving && p.Team == player.Team)
                 {
                     AddHideEffect(p, item.Property3);
                 }
             }
             break;
         default:
             break;
     }
 }
Exemplo n.º 16
0
        public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
        {
            player.IgnoreArmor = true;

        }
Exemplo n.º 17
0
 public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
 {
     player.ControlBall = true;
 }
Exemplo n.º 18
0
 public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
 {
     game.UpdateWind(- game.Wind, true);
 }
Exemplo n.º 19
0
 public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
 {
     player.SetBall(1);
 }
Exemplo n.º 20
0
 public void Execute(BaseGame game, long tick)
 {
     m_player.DeadLink();
     m_isFinished = true;
 }
Exemplo n.º 21
0
 public void Execute(BaseGame game, Player player, ItemTemplateInfo item)
 {
     player.AddDander(item.Property2, true);
 }
Exemplo n.º 22
0
 public void Execute(BaseGame game, long tick)
 {
     m_player.DeadLink();
     m_isFinished = true;
 }
Exemplo n.º 23
0
 public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
 {
     game.SendToAll(packet);
 }