Part63:Critical attack(P94)
1:效果和操作
效果:增加暴击效果以及暴击概率
操作:先根据critChance和agility判断是否能暴击,如果可以则CalculateCriticalDamage算出暴击之后的总伤害,故假设strength为5,damage为10,critPower为150则totalDamage1=10+5,则final total Damage=(150+5)*0.1f *15=23.23=23
2:代码改变
public Stats critChance;
public Stats critPower;
protected virtual void Start ( )
{
critPower. SetDefaultValue ( 150 ) ;
currentHealth = maxHealth. GetValue ( ) ;
}
public virtual void DoDamage ( CharacterStats _targetStats)
{
if ( CanCrit ( ) )
{
totleDamage = CalculateCriticalDamage ( totleDamage) ;
Debug. Log ( "Cirtical Damage" + totleDamage) ;
} }
private bool CanCrit ( )
{
int totleCriticalChance = critChance. GetValue ( ) + agility. GetValue ( ) ;
if ( Random. Range ( 0 , 100 ) <= totleCriticalChance)
{
return true;
}
return false;
}
private int CalculateCriticalDamage ( int _damage)
{
float totleCirticalPower = ( critPower. GetValue ( ) + strength. GetValue ( ) ) * .01f ;
float critDamage = _damage * totleCirticalPower;
return Mathf. RoundToInt ( critDamage) ;
}
public void SetDefaultValue ( int _value)
{
baseValue = _value;
}
3:效果图