Unity类噩梦城 学习笔记64

Part64:Magic damage(P95)

1:效果和操作

效果:进行简单的法术攻击计算以及法抗计算
操作:DoMagicaDamage法伤计算,CheckTargetResistance法抗计算

2:代码改变

//CharacterStats代码修改
	  public Stat magicResistance;//法抗
[Header("Magic stats")]
    public Stat fireDamage;//火攻	
    public Stat iceDamage;//冰攻
    public Stat lightingDamage;//电攻
 
 
    public bool isIgnited; //被灼烧(已经完成)
    public bool isChilded;//被冰住(已经完成):减低20%的盔甲armor防御
    public bool isShocked;//被电击(已经完成):增加20%的迟缓度/命中率
		public virtual void DoDamage(CharacterStats _targetStats)
    {
        DoMagicaDamage(_targetStats);
    }
          public virtual void DoMagicaDamage(CharacterStats _targetStats)//法伤计算
    {
        int _fireDamage = fireDamage.GetValue();
        int _iceDamage = iceDamage.GetValue();
        int _lightingDamage = lightingDamage.GetValue();
 
        int totleMagicalDamage = _fireDamage + _iceDamage + _lightingDamage + intelligence.GetValue();
        totleMagicalDamage = CheckTargetResistance(_targetStats, totleMagicalDamage);
 
        _targetStats.TakeDamage(totleMagicalDamage);
    }

private static int CheckTargetResistance(CharacterStats _targetStats, int totleMagicalDamage)//法抗计算
    {
        totleMagicalDamage -= _targetStats.magicResistance.GetValue() + (_targetStats.intelgence                        .GetValue()* 3);
  //法术伤害想要减去法抗以及没1点智慧增加点3点法抗
        totleMagicalDamage = Mathf.Clamp(totleMagicalDamage, 1, int.MaxValue);
  			//设置最低伤害为1a
        return totleMagicalDamage;
    }
 
    public void ApplyAilments(bool _ignite,bool _chill,bool _shock)//判断异常状态
    {
        if(isIgnited || isChilded || isShocked)
        {
            return;
        }
 				
        isIgnited = _ignite;
        isChilded = _chill;
        isShocked = _shock;
    }

3:效果图

(假设:firedamage为5,若magicResistance为1,则magic所造成的伤害为4)
(假设:firedamage为5,若magicResistance为1,intelligent为1,则magic所造成的伤害为1,因为设置了最小法伤为1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值