예제 #1
0
        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);
 }
예제 #4
0
 public abstract void DecreaseCurrenciesWhenRepairItem(IPlayerCharacterData character, ItemRepairPrice repairPrice);
예제 #5
0
 public abstract bool CurrenciesEnoughToRepairItem(IPlayerCharacterData character, ItemRepairPrice repairPrice);
예제 #6
0
 public bool CanRepair(IPlayerCharacterData character, float durability, out ItemRepairPrice repairPrice)
 {
     GameMessage.Type gameMessageType;
     return(CanRepair(character, durability, out repairPrice, out gameMessageType));
 }