예제 #1
0
        public void ReachTerminus(Champion champion)
        {
            if (champion.mazeResult != Champion.MazeResult.Nan)
            {
                return;
            }
            champion.BeginMove(FVec3.zero);
            SyncEvent.Terminus(champion.rid);
            champion.mazeResult = Champion.MazeResult.Win;
            int count = this._entityManager.championCount;

            for (int i = 0; i < count; i++)
            {
                Champion other = this._entityManager.GetChampionAt(i);
                if (other.team == champion.team &&
                    other.mazeResult != Champion.MazeResult.Win)
                {
                    return;
                }
            }
            for (int i = 0; i < count; i++)
            {
                Champion other = this._entityManager.GetChampionAt(i);
                if (other.team != champion.team)
                {
                    other.mazeResult = Champion.MazeResult.Lose;
                }
            }
            this.Win(champion.team);
        }
예제 #2
0
        public void HandleBeginMove(string rid, FVec3 direction)
        {
            Champion entity = this._entityManager.GetChampion(rid);

            entity.BeginMove(direction);
        }