38 lines
937 B
C#
38 lines
937 B
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
namespace Kryz.CharacterStats.Examples
|
|
{
|
|
public class Powerup : MonoBehaviour
|
|
{
|
|
public float MovementSpeedBonus;
|
|
public float JumpForceBonus;
|
|
public float Duration;
|
|
|
|
protected void Apply(Player player)
|
|
{
|
|
player.MovementSpeed.AddModifier(new StatModifier(MovementSpeedBonus, StatModType.Flat, this));
|
|
player.JumpForce.AddModifier(new StatModifier(JumpForceBonus, StatModType.Flat, this));
|
|
|
|
player.StartCoroutine(Timer(Duration, player));
|
|
}
|
|
|
|
protected void OnTriggerEnter(Collider other)
|
|
{
|
|
Player player = other.GetComponent<Player>();
|
|
if (player != null)
|
|
{
|
|
Apply(player);
|
|
gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
private IEnumerator Timer(float duration, Player player)
|
|
{
|
|
yield return new WaitForSeconds(duration);
|
|
player.MovementSpeed.RemoveAllModifiersFromSource(this);
|
|
player.JumpForce.RemoveAllModifiersFromSource(this);
|
|
}
|
|
}
|
|
}
|