public override void OnKill(IDamagable target) { base.OnKill(target); if (target is CreatureActor) { CreatureActor creature = target as CreatureActor; AwardXP(creature.ExpAward); if (weapon != null) { if (weapon.characterData[id].GainSkill()) { UI.DamageNumber.Display(transform, "Wpn UP!"); } } PlayerController.Instance.playerData.gp += creature.GpAward; } }
public override int Damage(int amount, IDamageSource damageSource) { if (timeLeftRooted < 0f) { byte rnd = (byte)UnityEngine.Random.Range(0, 100); if (rnd < evadeChance) { Animation.SetAnimation("Dodge", true); UI.DamageNumber.Display(transform, "dodge"); audioSource.PlayOneShot(soundDodge.GetRandom()); return(0); } if (damageSource is CreatureActor) { CreatureActor creature = damageSource as CreatureActor; Move(-creature.movementDirection); } } int dmg = System.Math.Max(amount - (int)defense, 0); return(base.Damage(dmg, damageSource)); }