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); }
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 ); }
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()); }
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); }
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); }
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); }
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); }
public void GetDurationOnPaddleTest2() { PoweredUpData data = new PoweredUpData(); data.GivePlayerLife = false; data.ChangePaddleSpeed = false; data.UndoPlayerMove = false; Assert.AreEqual(0, data.GetDurationOnPaddle()); }
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>(); }
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); } }
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); } }
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); }); }
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); }
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); }
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); }
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()); }
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()); }
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()); }
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()); }
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); }
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(); } }
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)); } }
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 ); }
public void Init(Color color, PoweredUpData powerUppedData) { Color = color; PowerUppedData = powerUppedData; }
public byte[] EncodePaddlePoweredUpData(byte paddleId, byte ballId, PoweredUpData powerUppedData) { return(Converter.EncodePaddlePoweredUpData(paddleId, ballId, powerUppedData.ToByteArray())); }
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); }
public void RollRandomTest() { PoweredUpData data = PoweredUpData.RollRandom(); Assert.IsTrue(data != null); }
public void PoweredUpDataTest() { PoweredUpData data = new PoweredUpData(); Assert.IsTrue(data.RndDirection != null && data.RndSpeed != 0); }
public IBall RemovePowerUpData(PoweredUpData data) { PoweredUpData.Remove(data); return(this); }