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;
                }
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #4
0
        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);
        }