Beispiel #1
0
        private Player GetPlayer(PlayerDataContext playerDataContext)
        {
            Player player = Player.Create(playerDataContext);

            player.transform.parent = transform;
            player.Wait();

            return(player);
        }
Beispiel #2
0
 public void SetDataContext(PlayerDataContext dataContext)
 {
     if (DataContext == null)
     {
         DataContext = dataContext;
     }
     else
     {
         Debug.LogWarning("'DataContext' cannot be changed.");
     }
 }
Beispiel #3
0
        public virtual void AddPlayer(PlayerDataContext playerDataContext)
        {
            if (Players.Count == GetMaxPlayerCount())
            {
                throw new Exception("The maximum number of players has been reached.");
            }

            Players.Add(GetPlayer(playerDataContext));

            Player player = Players.Last();

            player.Ball = GetPlayerBall();
        }
Beispiel #4
0
        private void Play(GameMode mode)
        {
            Game = PoolGameFactory.Create(mode);
            Game.transform.parent = transform;

            // başka oyuncular da eklenebilir.
            var playerData = new PlayerDataContext("aliozer")
            {
                Name = "Ali"
            };

            UIManager.AddPlayer(playerData);

            Game.AddPlayer(playerData);

            playerData = new PlayerDataContext("ezgi")
            {
                Name          = "Ezgi",
                CuePrefabName = "BlueCue"
            };

            UIManager.AddPlayer(playerData);
            Game.AddPlayer(playerData);

            foreach (var player in Game.GetPlayers())
            {
                player.BallHit     += Player_BallHit;
                player.ShotStarted += Player_ShotStarted;
            }


            Game.AddFinishingRule(new TotalPointFinishingRule(Game.GetPlayers(), 5));
            // aşağıdaki gibi başka bitirme kuralları da eklenebilir.
            // Game.AddFinishingRule(new PlayerFirstMaxPointFinishingRule(CurrentGame.GetPlayers(), 25));

            Game.ShotCompleted += Game_ShotCompleted;
            Game.Completed     += Game_Completed;
            Game.Started       += Game_Started;
            Game.ChangePlayer  += Game_ChangePlayer;


            Game.Play();

            ClockTimer.StartTime();

            UIManager.GamePlayingState();
        }
Beispiel #5
0
        public static Player Create(PlayerDataContext dataContext)
        {
            GameObject go     = new GameObject(dataContext.UserName);
            Player     player = go.AddComponent <Player>();

            player.SetDataContext(dataContext);

            player.OffsetGO = new GameObject("offset");
            player.OffsetGO.transform.parent        = player.transform;
            player.OffsetGO.transform.localPosition = player.OFFSET;

            GameObject cue = Instantiate(PrefabUtil.Create <GameObject>(dataContext.CuePrefabName, "cue"));

            cue.transform.parent    = player.transform;
            player.Cue              = cue.transform.Find("Spin").Find("Cue").GetComponent <BaseCue>();
            player.Cue.TriggerStay += player.Cue_TriggerStay;

            return(player);
        }