Beispiel #1
0
    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);
 }