Esempio n. 1
0
 public CTFOrb(Team team, Int16 objectId)
 {
     _orbState  = CTFOrbState.InHomeShrine;
     _orbPlayer = null;
     _orbSign   = null;
     _team      = team;
     _objectId  = objectId;
 }
Esempio n. 2
0
 public void ResetOrb()
 {
     lock (SyncRoot)
     {
         _orbPlayer = null;
         _orbSign   = null;
         _orbState  = CTFOrbState.InHomeShrine;
     }
 }
Esempio n. 3
0
        public CTFOrbState ChangeState(ArenaPlayer arenaPlayer)
        {
            lock (SyncRoot)
            {
                switch (OrbState)
                {
                case CTFOrbState.InHomeShrine:
                {
                    if (arenaPlayer.ActiveTeam != _team && arenaPlayer.ActiveTeam != Team.Neutral)
                    {
                        _orbSign   = null;
                        _orbPlayer = arenaPlayer;
                        _orbState  = CTFOrbState.OnEnemyPlayer;
                    }

                    break;
                }

                case CTFOrbState.OnEnemyPlayer:
                {
                    if (arenaPlayer.ActiveTeam != _team)
                    {
                        ResetOrb();
                    }

                    break;
                }

                case CTFOrbState.OnGround:
                {
                    if (arenaPlayer.ActiveTeam != _team && arenaPlayer.ActiveTeam != Team.Neutral)
                    {
                        _orbSign   = null;
                        _orbPlayer = arenaPlayer;
                        _orbState  = CTFOrbState.OnEnemyPlayer;
                    }
                    else
                    {
                        ResetOrb();
                    }
                    break;
                }
                }
            }
            return(OrbState);
        }
Esempio n. 4
0
 public CTFOrbState ChangeState(Sign sign)
 {
     lock (SyncRoot)
     {
         switch (OrbState)
         {
         case CTFOrbState.OnEnemyPlayer:
         {
             _orbPlayer = null;
             _orbSign   = sign;
             _orbState  = CTFOrbState.OnGround;
             break;
         }
         }
     }
     return(OrbState);
 }