Exemple #1
0
        public IBall ApplyPowerup(PoweredUpData data)
        {
            IBall result = this;

            PoweredUpData.Add(data);
            if (data.ChangeBallDirection)
            {
                result = new BallDirectionDecorator(this);
            }
            if (data.ChangeBallSpeed)
            {
                result = new BallSpeedDecorator(this);
            }
            if (data.ChangePaddleSpeed)
            {
                result = new PaddleSpeedDecorator(this);
            }
            if (data.GivePlayerLife)
            {
                result = new PlayerLifeDecorator(this);
            }
            if (data.MakeBallDeadly)
            {
                result = new DeadlyBallDecorator(this);
            }
            return(result);
        }
Exemple #2
0
        public void AddTest()
        {
            PoweredUpData data = new PoweredUpData();

            data.MakeBallDeadly      = true;
            data.ChangeBallSpeed     = true;
            data.ChangeBallDirection = true;
            data.GivePlayerLife      = true;
            data.ChangePaddleSpeed   = true;
            data.UndoPlayerMove      = true;

            PoweredUpData data2 = new PoweredUpData();

            data.MakeBallDeadly      = false;
            data.ChangeBallSpeed     = false;
            data.ChangeBallDirection = false;
            data.GivePlayerLife      = false;
            data.ChangePaddleSpeed   = false;
            data.UndoPlayerMove      = false;

            data.Add(data2);

            Assert.IsTrue(
                data.MakeBallDeadly == false && data.ChangeBallSpeed == false &&
                data.ChangeBallDirection == false && data.GivePlayerLife == false &&
                data.ChangePaddleSpeed == false && data.UndoPlayerMove == false
                );
        }
Exemple #3
0
        public void GetPoweredUpDataTest()
        {
            PoweredUpData powerups = new PoweredUpData();
            Ball          testBall = Ball.CreateBall(0, BallType.Normal, new Vector2(0, 0), GameData.DefaultBallSpeed, Vector2.RandomInUnitCircle(), GameData.DefaultBallSize);

            testBall.ApplyPowerup(powerups);
            Assert.IsNotNull(testBall.GetPoweredUpData());
        }
Exemple #4
0
 public void TransferPowerUp(PoweredUpData data)
 {
     if (data.IsValid())
     {
         obj.CancellPowerupDisposal();
         obj.ExtendPowerups();
     }
 }
        public override PowerUp CreatePowerup(IArenaObjectBuilder builder)
        {
            PowerUp powerup = builder.CreateObject() as PowerUp;

            powerup.SetTypeParams(ArenaObjectType.NonPassable);
            powerup.Init(GameData.PowerupColors[ArenaObjectType.NonPassable], PoweredUpData.RollRandom());
            return(powerup);
        }
Exemple #6
0
        public PowerUp DecodePowerupData(byte[] data, out byte id, out PoweredUpData powerUppedData)
        {
            Converter.DecodePowerupData(data, out id, out float radius, out float duration, out float posX, out float posY, out byte type, out byte[] powerUppedDataArray);
            powerUppedData = PoweredUpData.FromByteArray(powerUppedDataArray);
            var obs = new PowerUp(duration, posX, posY, radius * 2f, radius * 2f);

            obs.SetTypeParams((ArenaObjectType)type);
            return(obs);
        }
Exemple #7
0
        public void InitTest()
        {
            PoweredUpData data    = new PoweredUpData();
            PowerUp       powerUp = new PowerUp(10, 10, 10, 10, 10);

            powerUp.Init(Color.Red, data);

            Assert.IsTrue(powerUp.Color == Color.Red && powerUp.PowerUppedData != null);
        }
Exemple #8
0
        public void ApplyPowerupTest()
        {
            PoweredUpData powerups = new PoweredUpData();

            powerups.GivePlayerLife = true;
            Ball testBall = Ball.CreateBall(0, BallType.Normal, new Vector2(0, 0), GameData.DefaultBallSpeed, Vector2.RandomInUnitCircle(), GameData.DefaultBallSize);

            testBall.ApplyPowerup(powerups);
            Assert.AreEqual(powerups.GivePlayerLife, testBall.GetPoweredUpData().GivePlayerLife);
        }
Exemple #9
0
        public void GetDurationOnPaddleTest2()
        {
            PoweredUpData data = new PoweredUpData();

            data.GivePlayerLife    = false;
            data.ChangePaddleSpeed = false;
            data.UndoPlayerMove    = false;

            Assert.AreEqual(0, data.GetDurationOnPaddle());
        }
Exemple #10
0
 public Paddle(PaddleSettings settings, byte id)
 {
     Id                  = id;
     PowerUppedData      = new PoweredUpData();
     Life                = settings.Life;
     CurrentAngularSpeed = 0;
     Settings            = settings;
     state               = new NoPowerState(this);
     tokens              = new List <CancellationTokenSource>();
 }
Exemple #11
0
 public void OnReceivedTransferPowerUpMessage(byte paddleId, byte ballId, PoweredUpData poweredUpData)
 {
     if (PlayerPaddles.TryGetValue(paddleId, out Paddle paddle))
     {
         paddle.TransferPowerUp(poweredUpData);
     }
     if (ArenaBalls.TryGetValue(ballId, out IBall ball))
     {
         ball.RemovePowerUpData(poweredUpData);
     }
 }
Exemple #12
0
 public void TransferPowerUpToPaddle(byte paddleId, byte ballId, PoweredUpData poweredUpData)
 {
     if (poweredUpData.IsValid())
     {
         if (Mediator.GetBool("IsRoomMaster", null))
         {
             Mediator.Notify("SendPowerUpToPaddle", new object[] { paddleId, ballId, poweredUpData });
         }
         OnReceivedTransferPowerUpMessage(paddleId, ballId, poweredUpData);
     }
 }
Exemple #13
0
        public void TransferPowerUpTest()
        {
            PoweredUpData data = new PoweredUpData();

            data.ChangePaddleSpeed = true;
            data.GivePlayerLife    = true;
            data.UndoPlayerMove    = true;
            Paddle paddle = new ShortPaddle(0, PaddleDataFactory.GetPaddleData(PaddleType.Short));

            Assert.ThrowsException <System.TypeInitializationException>(() => { paddle.TransferPowerUp(data); });
        }
Exemple #14
0
        public void SendBallPoweredUpMessage(byte ballId, byte powerUpId, PoweredUpData poweredUp)
        {
            if (!ServerConnection.Instance.IsConnected())
            {
                return;
            }

            var            data    = Converter.EncodeBallPoweredUpData(ballId, powerUpId, poweredUp);
            NetworkMessage message = new NetworkMessage(Id, MessageType.BallPoweredUp, data);

            ServerConnection.Instance.SendDataToServer(message);
        }
Exemple #15
0
        public void RemovePowerUpDataTest()
        {
            PoweredUpData powerups = new PoweredUpData();

            powerups.GivePlayerLife = true;
            Ball          testBall  = Ball.CreateBall(0, BallType.Normal, new Vector2(0, 0), GameData.DefaultBallSpeed, Vector2.RandomInUnitCircle(), GameData.DefaultBallSize);
            BallDecorator decorator = new BallDecorator(testBall);

            decorator.ApplyPowerup(powerups);
            decorator.RemovePowerUpData(powerups);
            Assert.AreNotEqual(powerups.GivePlayerLife, decorator.GetPoweredUpData().GivePlayerLife);
        }
Exemple #16
0
        public void SendTranferPowerUpToPaddle(byte paddleId, byte ballId, PoweredUpData poweredUp)
        {
            if (!ServerConnection.Instance.IsConnected())
            {
                return;
            }

            var            data    = Converter.EncodePaddlePoweredUpData(paddleId, ballId, poweredUp);
            NetworkMessage message = new NetworkMessage(Id, MessageType.PaddlePowerUp, data);

            ServerConnection.Instance.SendDataToServer(message);
        }
Exemple #17
0
        public void IsValidTest1()
        {
            PoweredUpData data = new PoweredUpData();

            data.MakeBallDeadly      = false;
            data.ChangeBallSpeed     = false;
            data.ChangeBallDirection = false;
            data.GivePlayerLife      = false;
            data.ChangePaddleSpeed   = false;
            data.UndoPlayerMove      = false;

            Assert.AreEqual(false, data.IsValid());
        }
Exemple #18
0
        public void GetDurationOnBallTest2()
        {
            PoweredUpData data = new PoweredUpData();

            data.MakeBallDeadly      = false;
            data.ChangeBallDirection = false;
            data.ChangeBallSpeed     = false;
            data.GivePlayerLife      = false;
            data.ChangePaddleSpeed   = false;
            data.UndoPlayerMove      = false;

            Assert.AreEqual(0, data.GetDurationOnBall());
        }
Exemple #19
0
        public void GetAsArrayTest()
        {
            PoweredUpData data = new PoweredUpData();

            bool[] test = new bool[] { true, true, false, false, true, false };
            data.MakeBallDeadly      = true;
            data.ChangeBallSpeed     = true;
            data.ChangeBallDirection = false;
            data.GivePlayerLife      = false;
            data.ChangePaddleSpeed   = true;
            data.UndoPlayerMove      = false;

            CollectionAssert.AreEqual(test, data.GetAsArray());
        }
Exemple #20
0
        public void ToByteArrayTest()
        {
            PoweredUpData data = new PoweredUpData();

            byte[] test = new byte[] { 1, 1, 0, 0, 1, 0 };
            data.MakeBallDeadly      = true;
            data.ChangeBallSpeed     = true;
            data.ChangeBallDirection = false;
            data.GivePlayerLife      = false;
            data.ChangePaddleSpeed   = true;
            data.UndoPlayerMove      = false;

            CollectionAssert.AreEqual(test, data.ToByteArray());
        }
Exemple #21
0
        public void ToStringTest()
        {
            PoweredUpData data = new PoweredUpData();

            data.MakeBallDeadly      = true;
            data.ChangeBallSpeed     = true;
            data.ChangeBallDirection = false;
            data.GivePlayerLife      = false;
            data.ChangePaddleSpeed   = true;
            data.UndoPlayerMove      = false;
            String s    = $"(MakeBallDeadly: 1; ChangeBallSpeed: 1; ChangeBallDirection: 0; GivePlayerLife: 0; ChangePaddleSpeed: 1); UndoPlayerMove: 0";
            String test = data.ToString();

            Assert.AreEqual(s, test);
        }
Exemple #22
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();
     }
 }
Exemple #23
0
 public void TransferPowerUp(PoweredUpData data)
 {
     if (data.IsValid())
     {
         if (data.ChangePaddleSpeed)
         {
             obj.ApplySpeedPowerup();
         }
         if (data.GivePlayerLife)
         {
             obj.ApplyLifePowerup();
         }
         if(data.UndoPlayerMove)
         {
             obj.ApplyUndoPowerup();
         }
         obj.ChangeState(new HalfPowerState(obj));
     }
 }
Exemple #24
0
        public void FromByteArrayTest()
        {
            PoweredUpData data = new PoweredUpData();

            byte[] test = new byte[] { 1, 1, 0, 0, 1, 0 };
            data.MakeBallDeadly      = true;
            data.ChangeBallSpeed     = true;
            data.ChangeBallDirection = false;
            data.GivePlayerLife      = false;
            data.ChangePaddleSpeed   = true;
            data.UndoPlayerMove      = false;

            PoweredUpData result = PoweredUpData.FromByteArray(test);

            Assert.IsTrue(
                result.MakeBallDeadly == true && result.ChangeBallSpeed == true &&
                result.ChangeBallDirection == false && result.GivePlayerLife == false &&
                result.ChangePaddleSpeed == true && result.UndoPlayerMove == false
                );
        }
Exemple #25
0
 public void Init(Color color, PoweredUpData powerUppedData)
 {
     Color          = color;
     PowerUppedData = powerUppedData;
 }
Exemple #26
0
 public byte[] EncodePaddlePoweredUpData(byte paddleId, byte ballId, PoweredUpData powerUppedData)
 {
     return(Converter.EncodePaddlePoweredUpData(paddleId, ballId, powerUppedData.ToByteArray()));
 }
Exemple #27
0
 public void DecodePaddlePoweredUpData(byte[] data, out byte paddleId, out byte ballId, out PoweredUpData powerUppedData)
 {
     Converter.DecodePaddlePoweredUpData(data, out paddleId, out ballId, out byte[] powerUppedDataArray);
     powerUppedData = PoweredUpData.FromByteArray(powerUppedDataArray);
 }
Exemple #28
0
        public void RollRandomTest()
        {
            PoweredUpData data = PoweredUpData.RollRandom();

            Assert.IsTrue(data != null);
        }
Exemple #29
0
        public void PoweredUpDataTest()
        {
            PoweredUpData data = new PoweredUpData();

            Assert.IsTrue(data.RndDirection != null && data.RndSpeed != 0);
        }
Exemple #30
0
 public IBall RemovePowerUpData(PoweredUpData data)
 {
     PoweredUpData.Remove(data);
     return(this);
 }