Unity类噩梦城 学习笔记63

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:代码改变

//CharacterStats修改
    public Stats critChance;//暴击率
    public Stats critPower;//1.5倍暴击
 		protected virtual void Start()
    {

        critPower.SetDefaultValue(150);//设置默认暴击为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;//计算暴击率
        //总criticalpower由总criticalpower和强度组成,将其化为百分数用于攻击计算
        float critDamage = _damage * totleCirticalPower;

        return Mathf.RoundToInt(critDamage);//取整
    }

//Stats修改
    public void SetDefaultValue(int _value)//设置默认值
    {
        baseValue = _value;
    }

3:效果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值