Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/StorageDataItemBase.cs
2025-08-13 09:26:42 +08:00

226 lines
4.8 KiB
C#

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<KeyValuePair<int, int>> 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;
}
}
}