public override object Process(TankManager manager, object state = null) { PlayerTankControllerState convertedState = (state as PlayerTankControllerState); if (convertedState == null) { convertedState = new PlayerTankControllerState(); } if (manager.isDead) { return(convertedState); } InputDevice inputDevice = GameInput.GetPlayerDevice(convertedState.player); if (inputDevice == null) { return(convertedState); } Vector2 leftStickInput = inputDevice.LeftStick.Vector; Vector2 rightStickInput = inputDevice.RightStick.Vector; if (!manager.isDead) { manager.tankMovement.targetVector = leftStickInput; manager.tankMovement.targetSpeed = leftStickInput.magnitude; manager.AimTurrets(rightStickInput); if (inputDevice.LeftBumper.IsPressed) { manager.armourPickupManager.EjectArmourPickups(); manager.armourPickupManager.refusePickups = true; } else { manager.armourPickupManager.refusePickups = false; } if (inputDevice.RightTrigger.WasPressed) { manager.FireTurrets(TankManager.FiringInputType.Down); } else if (inputDevice.RightTrigger.WasReleased) { manager.FireTurrets(TankManager.FiringInputType.Up); } if (inputDevice.RightTrigger.IsPressed) { manager.FireTurrets(TankManager.FiringInputType.Held); } } return(convertedState); }
public void OnCreated(PlayerTankData playerData, int playerIndex) { this.playerIndex = playerIndex; data = playerData; data.SetIsInGame(true); data.SetHealthPercentage(health / maxHealth); quipSystem = data.quipSystem; controllerState = new PlayerTankControllerState() { player = playerIndex }; colour = GameDataMonobehaviour.instance.playerColour[playerIndex]; Color colourEnd = new Color(colour.r, colour.g, colour.b, 0); //MaterialPropertyBlock props = new MaterialPropertyBlock(); //tankSprite.GetPropertyBlock(props); //props.SetColor("_TintColour", colour); //tankSprite.SetPropertyBlock(props); for (int i = 0; i < trails.Length; i++) { trails[i].startColor = colour; trails[i].endColor = colourEnd; } quipSystem.SetColour(colour); armourManager.SetColour(colour); tankSprite.SetColour(colour); var main = deathParticles.transform.GetChild(0).GetComponent <ParticleSystem>().main; main.startColor = colour; respawnSpriteController.SetColour(colour); }
public override void Process() { controllerState = (PlayerTankControllerState)controller.Process(this, controllerState); data.SetHealthPercentage(health / maxHealth); }