public static long GetSortPriority(UnitListWindow.Data data, UnitListSortWindow.SelectType type) { if (data.param == null) { return(0); } UnitParam unitParam = data.param; UnitData unit = data.unit; UnitListSortWindow.SelectType selectType = type; switch (selectType) { case UnitListSortWindow.SelectType.TIME: return(0); case UnitListSortWindow.SelectType.RARITY: return(UnitListSortWindow.GetSortPriority(UnitListSortWindow.GetSortStatus(data, type), unit.Lv, 0, unit.CurrentJob.Rank, (int)unitParam.raremax, (int)unitParam.rare)); case UnitListSortWindow.SelectType.LEVEL: return(UnitListSortWindow.GetSortPriority(UnitListSortWindow.GetSortStatus(data, type), 0, unit.Rarity, unit.CurrentJob.Rank, (int)unitParam.raremax, (int)unitParam.rare)); case UnitListSortWindow.SelectType.TOTAL: return(UnitListSortWindow.GetSortPriority(UnitListSortWindow.GetSortStatus(data, type), unit.Lv, unit.Rarity, unit.CurrentJob.Rank, (int)unitParam.raremax, (int)unitParam.rare)); default: if (selectType != UnitListSortWindow.SelectType.ATK && selectType != UnitListSortWindow.SelectType.DEF && (selectType != UnitListSortWindow.SelectType.MAG && selectType != UnitListSortWindow.SelectType.MND) && (selectType != UnitListSortWindow.SelectType.HP && selectType != UnitListSortWindow.SelectType.SPD && selectType != UnitListSortWindow.SelectType.COMBINATION)) { if (selectType == UnitListSortWindow.SelectType.JOBRANK) { return(UnitListSortWindow.GetSortPriority(UnitListSortWindow.GetSortStatus(data, type), unit.Lv, unit.Rarity, 0, (int)unitParam.raremax, (int)unitParam.rare)); } if (selectType == UnitListSortWindow.SelectType.AWAKE) { goto case UnitListSortWindow.SelectType.TOTAL; } else { goto case UnitListSortWindow.SelectType.TIME; } } else { goto case UnitListSortWindow.SelectType.TOTAL; } } }
private List <long> GetDefaultUnitList(long selectUniq) { List <long> longList = new List <long>(); if (Object.op_Inequality((Object)this.mUEMain, (Object)null)) { List <UnitData> units = MonoSingleton <GameManager> .Instance.Player.Units; List <UnitListWindow.Data> list = new List <UnitListWindow.Data>(); for (int index = 0; index < units.Count; ++index) { if (units[index] != null) { UnitListWindow.Data data = new UnitListWindow.Data(units[index]); data.Refresh(); if (data.GetUniq() == selectUniq) { data.filterMask = UnitListFilterWindow.SelectType.NONE; } list.Add(data); } } if (Object.op_Inequality((Object)this.mUnitListWindow, (Object)null)) { if (this.mUnitListWindow.filterWindow != null) { this.mUnitListWindow.filterWindow.CalcUnit(list); } if (this.mUnitListWindow.sortWindow != null) { this.mUnitListWindow.sortWindow.CalcUnit(list); } } for (int index = 0; index < list.Count; ++index) { longList.Add(list[index].GetUniq()); } } return(longList); }
public static int GetSortStatus(UnitListWindow.Data data, UnitListSortWindow.SelectType type) { if (data.param == null) { return(0); } UnitParam unitParam = data.param; UnitData unit = data.unit; BaseStatus baseStatus = unitParam.ini_status; if (unit != null) { baseStatus = unit.Status; } UnitListSortWindow.SelectType selectType = type; switch (selectType) { case UnitListSortWindow.SelectType.TIME: return(0); case UnitListSortWindow.SelectType.RARITY: if (unit != null) { return(unit.Rarity); } return(1); case UnitListSortWindow.SelectType.LEVEL: if (unit != null) { return(unit.Lv); } return(1); case UnitListSortWindow.SelectType.TOTAL: return((int)baseStatus.param.atk + (int)baseStatus.param.def + (int)baseStatus.param.mag + (int)baseStatus.param.mnd + (int)baseStatus.param.spd + (int)baseStatus.param.dex + (int)baseStatus.param.cri + (int)baseStatus.param.luk); default: if (selectType == UnitListSortWindow.SelectType.ATK) { return((int)baseStatus.param.atk); } if (selectType == UnitListSortWindow.SelectType.DEF) { return((int)baseStatus.param.def); } if (selectType == UnitListSortWindow.SelectType.MAG) { return((int)baseStatus.param.mag); } if (selectType == UnitListSortWindow.SelectType.MND) { return((int)baseStatus.param.mnd); } if (selectType == UnitListSortWindow.SelectType.HP) { return((int)baseStatus.param.hp); } if (selectType == UnitListSortWindow.SelectType.SPD) { return((int)baseStatus.param.spd); } if (selectType != UnitListSortWindow.SelectType.COMBINATION) { if (selectType != UnitListSortWindow.SelectType.JOBRANK) { if (selectType == UnitListSortWindow.SelectType.AWAKE) { if (unit != null) { return(unit.AwakeLv); } return(1); } goto case UnitListSortWindow.SelectType.TIME; } else { if (unit != null) { return(unit.CurrentJob.Rank); } return(1); } } else { if (unit != null) { return(unit.GetCombination()); } return(1); } } }
public static UnitListFilterWindow.SelectType GetFilterMask(UnitListWindow.Data data) { if (data.param == null) { return(UnitListFilterWindow.SelectType.RARITY_1 | UnitListFilterWindow.SelectType.RARITY_2 | UnitListFilterWindow.SelectType.RARITY_3 | UnitListFilterWindow.SelectType.RARITY_4 | UnitListFilterWindow.SelectType.RARITY_5 | UnitListFilterWindow.SelectType.WEAPON_SLASH | UnitListFilterWindow.SelectType.WEAPON_STAB | UnitListFilterWindow.SelectType.WEAPON_BLOW | UnitListFilterWindow.SelectType.WEAPON_SHOT | UnitListFilterWindow.SelectType.WEAPON_MAG | UnitListFilterWindow.SelectType.WEAPON_NONE | UnitListFilterWindow.SelectType.BIRTH_ENV | UnitListFilterWindow.SelectType.BIRTH_WRATH | UnitListFilterWindow.SelectType.BIRTH_SAGA | UnitListFilterWindow.SelectType.BIRTH_SLOTH | UnitListFilterWindow.SelectType.BIRTH_LUST | UnitListFilterWindow.SelectType.BIRTH_WADATSUMI | UnitListFilterWindow.SelectType.BIRTH_DESERT | UnitListFilterWindow.SelectType.BIRTH_GREED | UnitListFilterWindow.SelectType.BIRTH_GLUTTONY | UnitListFilterWindow.SelectType.BIRTH_OTHER | UnitListFilterWindow.SelectType.BIRTH_NOZ); } MasterParam masterParam = MonoSingleton <GameManager> .Instance.MasterParam; UnitParam unitParam = data.param; UnitListFilterWindow.SelectType selectType = UnitListFilterWindow.SelectType.NONE; AttackDetailTypes attackDetailTypes = AttackDetailTypes.None; if (data.unit != null) { UnitData unit = data.unit; if (unit.CurrentJob.GetAttackSkill() != null) { attackDetailTypes = unit.CurrentJob.GetAttackSkill().AttackDetailType; } if (unit.Rarity == 0) { selectType |= UnitListFilterWindow.SelectType.RARITY_1; } else if (unit.Rarity == 1) { selectType |= UnitListFilterWindow.SelectType.RARITY_2; } else if (unit.Rarity == 2) { selectType |= UnitListFilterWindow.SelectType.RARITY_3; } else if (unit.Rarity == 3) { selectType |= UnitListFilterWindow.SelectType.RARITY_4; } else if (unit.Rarity == 4) { selectType |= UnitListFilterWindow.SelectType.RARITY_5; } else if (unit.Rarity == 5) { selectType |= UnitListFilterWindow.SelectType.RARITY_6; } } else { if (unitParam.jobsets != null && unitParam.jobsets.Length > 0) { JobSetParam jobSetParam = MonoSingleton <GameManager> .Instance.GetJobSetParam(unitParam.jobsets[0]); if (jobSetParam != null) { JobParam jobParam = MonoSingleton <GameManager> .Instance.GetJobParam(jobSetParam.job); if (jobParam != null && jobParam.atkskill != null && jobParam.atkskill.Length > 0) { string key = jobParam.atkskill[0]; if (!string.IsNullOrEmpty(key)) { SkillParam skillParam = masterParam.GetSkillParam(key); if (skillParam != null) { attackDetailTypes = skillParam.attack_detail; } } } } } if (unitParam.rare == (byte)0) { selectType |= UnitListFilterWindow.SelectType.RARITY_1; } else if (unitParam.rare == (byte)1) { selectType |= UnitListFilterWindow.SelectType.RARITY_2; } else if (unitParam.rare == (byte)2) { selectType |= UnitListFilterWindow.SelectType.RARITY_3; } else if (unitParam.rare == (byte)3) { selectType |= UnitListFilterWindow.SelectType.RARITY_4; } else if (unitParam.rare == (byte)4) { selectType |= UnitListFilterWindow.SelectType.RARITY_5; } else if (unitParam.rare == (byte)5) { selectType |= UnitListFilterWindow.SelectType.RARITY_6; } } switch (attackDetailTypes) { case AttackDetailTypes.None: selectType |= UnitListFilterWindow.SelectType.WEAPON_NONE; break; case AttackDetailTypes.Slash: selectType |= UnitListFilterWindow.SelectType.WEAPON_SLASH; break; case AttackDetailTypes.Stab: selectType |= UnitListFilterWindow.SelectType.WEAPON_STAB; break; case AttackDetailTypes.Blow: selectType |= UnitListFilterWindow.SelectType.WEAPON_BLOW; break; case AttackDetailTypes.Shot: selectType |= UnitListFilterWindow.SelectType.WEAPON_SHOT; break; case AttackDetailTypes.Magic: selectType |= UnitListFilterWindow.SelectType.WEAPON_MAG; break; } if (!string.IsNullOrEmpty((string)unitParam.birth)) { string birth = (string)unitParam.birth; if (birth == "エンヴィリア") { selectType |= UnitListFilterWindow.SelectType.BIRTH_ENV; } else if (birth == "ラーストリス") { selectType |= UnitListFilterWindow.SelectType.BIRTH_WRATH; } else if (birth == "サガ地方") { selectType |= UnitListFilterWindow.SelectType.BIRTH_SAGA; } else if (birth == "スロウスシュタイン") { selectType |= UnitListFilterWindow.SelectType.BIRTH_SLOTH; } else if (birth == "ルストブルグ") { selectType |= UnitListFilterWindow.SelectType.BIRTH_LUST; } else if (birth == "ワダツミ") { selectType |= UnitListFilterWindow.SelectType.BIRTH_WADATSUMI; } else if (birth == "砂漠地帯") { selectType |= UnitListFilterWindow.SelectType.BIRTH_DESERT; } else if (birth == "グリードダイク") { selectType |= UnitListFilterWindow.SelectType.BIRTH_GREED; } else if (birth == "グラトニー=フォス") { selectType |= UnitListFilterWindow.SelectType.BIRTH_GLUTTONY; } else if (birth == "その他") { selectType |= UnitListFilterWindow.SelectType.BIRTH_OTHER; } else if (birth == "ノーザンブライド") { selectType |= UnitListFilterWindow.SelectType.BIRTH_NOZ; } } return(selectType); }