private void HandleUpdateHP(AttackResult ar) { panel.UpdateHPNumber(ar); }
public void UpdateHPNumber(AttackResult ar) { HPNumber.Show(ar); }
public AttackResult HurtBy(AttackContext attackContext) { float randomValue = UnityEngine.Random.value; AttackResult result = new AttackResult(); float dodge = GetAttribute(BattleAttribute.Dodge) / RandomUtils.RANDOM_BASE; if (randomValue <= dodge) { result.Damage = 0; result.IsCritical = false; result.IsDodge = true; // Debug.Log(string.Format("{0} dodged...", Data.Kid)); return result; } float critical = attackContext.Critical / RandomUtils.RANDOM_BASE; result.IsCritical = randomValue <= critical; int attack = attackContext.Attack; int defense = (int)GetAttribute(BattleAttribute.Defense); int criticalRatio = result.IsCritical ? 2 : 1; result.Damage = -(attack - defense) * criticalRatio; AddHP(result.Damage); // Debug.Log(string.Format("{0} was attacked. Damage = {1}", Data.Kid, result.damage)); // Debug.Log(string.Format("{0}'s HP: {1}", Data.Kid, hp)); return result; }