using System;
[System.Serializable]
public class AnimationParam
{
public string run = "run";
public string death = "death";
public string idle = "idle";
public string attack01 = "attack01";
public string attack02 = "attack02";
public string attack03 = "attack03";
public string walk = "walk";
}
public class CharacterStatus: MonoBehaviour
{
[Tooltip("动画参数")]public AnimationParam animationParam;
[Tooltip("血量")]public float HP;
[Tooltip("最大血量")]public float maxHP;
[Tooltip("法力")]public float SP;
[Tooltip("最大法力")]public float maxSP;
[Tooltip("基础攻击力")]public float baseATK;
[Tooltip("防御力")]public float defence;
[Tooltip("攻击间隔")]public float attackInterval;
[Tooltip("攻击距离")]public float attackDistance;
public void Damage(float val)
{
val -= defence;
if(val <= 0) return;
HP -= val
if(HP <= 0) Death();
}
protected virtual void Death()
{
GetComponent<Animator>().SetBool(animationParam.death, true);
}
}
public class PlayerStatus : CharacterStatus
{
public override void Damage(float val)
{
}
public override void Death()
{
}
}
public class EnemyStatus: CharacterStatus
{
public override void Damage(float val)
{
}
public override void Death()
{
}
}