|
@@ -188,22 +188,35 @@ public class Bullet : MonoBehaviour
|
|
|
trigedObjs.Add(hitTrigger);
|
|
trigedObjs.Add(hitTrigger);
|
|
|
if (Util.CheckCanHit(owner.tag, hitTrigger.owner.tag) && !hitTrigger.owner.isDie)
|
|
if (Util.CheckCanHit(owner.tag, hitTrigger.owner.tag) && !hitTrigger.owner.isDie)
|
|
|
{
|
|
{
|
|
|
|
|
+ //计算护甲减免
|
|
|
|
|
+ int curDamage = damage;
|
|
|
|
|
+ int am = hitTrigger.owner.armor;
|
|
|
|
|
+ if (am > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ int ap = owner.armorPiercing;
|
|
|
|
|
+ int c = am - ap;
|
|
|
|
|
+ if (c < 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ c = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ curDamage *= 100 / (100 + c);
|
|
|
|
|
+ }
|
|
|
switch (bulletType)
|
|
switch (bulletType)
|
|
|
{
|
|
{
|
|
|
case BulletType.Single:
|
|
case BulletType.Single:
|
|
|
- hitTrigger.BeHit(damage, force * (-transform.right), changeHurt, repelValue);
|
|
|
|
|
|
|
+ hitTrigger.BeHit(curDamage, force * (-transform.right), changeHurt, repelValue);
|
|
|
if (hitTrigger.owner.debugAttackFrom)
|
|
if (hitTrigger.owner.debugAttackFrom)
|
|
|
{
|
|
{
|
|
|
- hitTrigger.owner.DebugAttackFrom(owner.name, damage);
|
|
|
|
|
|
|
+ hitTrigger.owner.DebugAttackFrom(owner.name, curDamage);
|
|
|
}
|
|
}
|
|
|
isGetTarget = true;
|
|
isGetTarget = true;
|
|
|
gameObject.SetActive(false);
|
|
gameObject.SetActive(false);
|
|
|
break;
|
|
break;
|
|
|
case BulletType.Penetrate:
|
|
case BulletType.Penetrate:
|
|
|
- hitTrigger.BeHit(damage, force * (-transform.right), changeHurt, repelValue);
|
|
|
|
|
|
|
+ hitTrigger.BeHit(curDamage, force * (-transform.right), changeHurt, repelValue);
|
|
|
if (hitTrigger.owner.debugAttackFrom)
|
|
if (hitTrigger.owner.debugAttackFrom)
|
|
|
{
|
|
{
|
|
|
- hitTrigger.owner.DebugAttackFrom(owner.name, damage);
|
|
|
|
|
|
|
+ hitTrigger.owner.DebugAttackFrom(owner.name, curDamage);
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
case BulletType.Bomb:
|
|
case BulletType.Bomb:
|