using System.Collections.Generic; namespace MoleMole { public abstract class StorageDataItemBase { public int uid; public int ID; public int rarity; public int level = 1; public int exp; public int avatarID = -1; public int number = 1; public bool isProtected; public abstract StorageDataItemBase Clone(); public abstract int GetIdForKey(); public abstract float GetPriceForSell(); public abstract string GetIconPath(); public abstract string GetImagePath(); public abstract int GetCost(); public abstract float GetHPAdd(); public abstract float GetSPAdd(); public abstract float GetAttackAdd(); public abstract float GetDefenceAdd(); public abstract float GetCriticalAdd(); public abstract int GetMaxLevel(); public abstract float GetGearExp(); public abstract void UpLevel(); public abstract void UpRarity(); public abstract int GetMaxRarity(); public abstract int GetExpType(); public abstract int GetMaxExp(); public abstract string GetDisplayTitle(); public abstract string GetDescription(); public abstract List> GetEvoMaterial(); public abstract StorageDataItemBase GetEvoStorageItem(); public abstract int GetCoinNeedToUpLevel(); public abstract int GetCoinNeedToUpRarity(); public abstract int GetSubRarity(); public abstract int GetMaxSubRarity(); public abstract int GetBaseType(); public abstract string GetBaseTypeName(); public static int CompareToRarityDesc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.rarity != robj.rarity) { return robj.rarity - lobj.rarity; } if (lobj.GetSubRarity() != robj.GetSubRarity()) { return robj.GetSubRarity() - lobj.GetSubRarity(); } if (lobj.level != robj.level) { return robj.level - lobj.level; } if (lobj.exp != robj.exp) { return robj.exp - lobj.exp; } if (lobj.ID != robj.ID) { return lobj.ID - robj.ID; } return robj.uid - lobj.uid; } public static int CompareToRarityAsc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.rarity != robj.rarity) { return lobj.rarity - robj.rarity; } if (lobj.GetSubRarity() != robj.GetSubRarity()) { return lobj.GetSubRarity() - robj.GetSubRarity(); } if (lobj.level != robj.level) { return robj.level - lobj.level; } if (lobj.exp != robj.exp) { return robj.exp - lobj.exp; } if (lobj.ID != robj.ID) { return lobj.ID - robj.ID; } return robj.uid - lobj.uid; } public static int CompareToLevelDesc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.level != robj.level) { return robj.level - lobj.level; } if (lobj.exp != robj.exp) { return robj.exp - lobj.exp; } if (lobj.rarity != robj.rarity) { return robj.rarity - lobj.rarity; } if (lobj.GetSubRarity() != robj.GetSubRarity()) { return robj.GetSubRarity() - lobj.GetSubRarity(); } if (lobj.ID != robj.ID) { return lobj.ID - robj.ID; } return robj.uid - lobj.uid; } public static int CompareToLevelAsc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.level != robj.level) { return lobj.level - robj.level; } if (lobj.exp != robj.exp) { return robj.exp - lobj.exp; } if (lobj.rarity != robj.rarity) { return robj.rarity - lobj.rarity; } if (lobj.GetSubRarity() != robj.GetSubRarity()) { return robj.GetSubRarity() - lobj.GetSubRarity(); } if (lobj.ID != robj.ID) { return lobj.ID - robj.ID; } return robj.uid - lobj.uid; } public static int CompareToCostDesc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.GetCost() != robj.GetCost()) { return robj.GetCost() - lobj.GetCost(); } return CompareToRarityDesc(lobj, robj); } public static int CompareToCostAsc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.GetCost() != robj.GetCost()) { return lobj.GetCost() - robj.GetCost(); } return CompareToRarityDesc(lobj, robj); } public static int CompareToBaseTypeDesc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.GetBaseType() != robj.GetBaseType()) { return robj.GetBaseType() - lobj.GetBaseType(); } return CompareToRarityDesc(lobj, robj); } public static int CompareToBaseTypeAsc(StorageDataItemBase lobj, StorageDataItemBase robj) { if (lobj.GetBaseType() != robj.GetBaseType()) { return lobj.GetBaseType() - robj.GetBaseType(); } return CompareToRarityDesc(lobj, robj); } public static int CompareToUidDesc(StorageDataItemBase lobj, StorageDataItemBase robj) { return robj.uid - lobj.uid; } public static int CompareToUidAsc(StorageDataItemBase lobj, StorageDataItemBase robj) { return lobj.uid - robj.uid; } } }