示例#1
0
 public void DestroyGameLogic()
 {
     IsInitted = false;
     PlayerPaddles.Clear();
     ArenaBalls.Clear();
     UpdatableRoot.Clear();
     ArenaObjects.Clear();
     LocalPaddle = null;
     PlayerCount = 0;
 }
示例#2
0
 public void OnReceivedBallPowerUpMessage(byte ballId, byte powerUpId, PoweredUpData data)
 {
     if (ArenaObjects.TryGetValue(powerUpId, out ArenaObject pwp))
     {
         var ball          = ArenaBalls[ballId];
         var poweredUpBall = ball.ApplyPowerup(data);
         DoAfterGameLoop.Add(() => {
             ArenaBalls[ball.GetId()] = poweredUpBall;
         });
         // remove after a duration
         SafeInvoke.Instance.DelayedInvoke(data.GetDurationOnBall(), () =>
         {
             RemoveBallPowerUp(poweredUpBall, data);
         });
         (pwp as PowerUp).Use();
     }
 }
示例#3
0
        public void OnArenaObjectCreated(ArenaObject obj)
        {
            byte id = idTmp++;

            UpdatableRoot.GetChild(ObjectBranchId).Add(id, obj);
            ArenaObjects.Add(id, obj);
            obj.SetId(id);

            if (Mediator.GetBool("IsRoomMaster", null))
            {
                if (obj is Obstacle)
                {
                    Mediator.Notify("SendObstacleSpawnedMessage", new object[] { id, obj });
                }
                else if (obj is PowerUp)
                {
                    Mediator.Notify("SendPowerupSpawnedMessage", new object[] { id, obj });
                }
            }
        }
示例#4
0
 public void PowerUpSpawnedMessageReceived(byte id, PowerUp powerUp, PoweredUpData data)
 {
     powerUp.Init(GameData.PowerupColors[powerUp.Type], data);
     ArenaObjects.Add(id, powerUp);
     powerUp.SetId(id);
 }
示例#5
0
 public void ObstacleSpawnedMessageReceived(byte id, Obstacle obstacle)
 {
     obstacle.Init(GameData.ObstacleColors[obstacle.Type]);
     ArenaObjects.Add(id, obstacle);
     obstacle.SetId(id);
 }
示例#6
0
 public void OnArenaObjectExpired(byte id)
 {
     DoAfterGameLoop.Add(() => ArenaObjects.Remove(id));
 }