public bool CanRepair(IPlayerCharacterData character, float durability, out ItemRepairPrice repairPrice, out GameMessage.Type gameMessageType) { repairPrice = default(ItemRepairPrice); gameMessageType = GameMessage.Type.CannotRepair; if (!IsEquipment()) { // Cannot repair because it's not equipment item return(false); } if (itemRefine == null) { // Cannot repair because there is no item refine info return(false); } float durabilityRate = durability / maxDurability; for (int i = 0; i < itemRefine.repairPrices.Length; ++i) { repairPrice = itemRefine.repairPrices[i]; if (durabilityRate < repairPrice.DurabilityRate) { return(repairPrice.CanRepair(character, out gameMessageType)); } } return(true); }
public override void DecreaseCurrenciesWhenRepairItem(IPlayerCharacterData character, ItemRepairPrice repairPrice) { character.Gold -= repairPrice.RequireGold; }
public override bool CurrenciesEnoughToRepairItem(IPlayerCharacterData character, ItemRepairPrice repairPrice) { return(character.Gold >= repairPrice.RequireGold); }
public abstract void DecreaseCurrenciesWhenRepairItem(IPlayerCharacterData character, ItemRepairPrice repairPrice);
public abstract bool CurrenciesEnoughToRepairItem(IPlayerCharacterData character, ItemRepairPrice repairPrice);
public bool CanRepair(IPlayerCharacterData character, float durability, out ItemRepairPrice repairPrice) { GameMessage.Type gameMessageType; return(CanRepair(character, durability, out repairPrice, out gameMessageType)); }