예제 #1
0
        // Token: 0x06003B28 RID: 15144 RVA: 0x0010EC1C File Offset: 0x0010CE1C
        public static void ModifyClimbTowerBattleTeamSetups(IConfigDataLoader configDataLoader, int floorId, int bonusHeroGroupId, int battleRuleId, BattleTeamSetup mineTime, BattleTeamSetup opponentTeam)
        {
            ConfigDataTowerFloorInfo configDataTowerFloorInfo = configDataLoader.GetConfigDataTowerFloorInfo(floorId);

            if (configDataTowerFloorInfo == null)
            {
                return;
            }
            ConfigDataTowerBonusHeroGroupInfo configDataTowerBonusHeroGroupInfo = configDataLoader.GetConfigDataTowerBonusHeroGroupInfo(bonusHeroGroupId);

            if (configDataTowerBonusHeroGroupInfo != null)
            {
                ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(configDataTowerFloorInfo.BonusSkill_ID);
                if (configDataSkillInfo != null)
                {
                    foreach (BattleActorSetup battleActorSetup in mineTime.m_actors)
                    {
                        if (configDataTowerBonusHeroGroupInfo.BonusHeroIdList.Contains(battleActorSetup.HeroInfo.ID))
                        {
                            BattleUtility.AppendExtraSkillToBattleActorSetup(configDataSkillInfo, battleActorSetup);
                        }
                    }
                }
            }
            ConfigDataTowerBattleRuleInfo configDataTowerBattleRuleInfo = configDataLoader.GetConfigDataTowerBattleRuleInfo(battleRuleId);

            if (configDataTowerBattleRuleInfo != null)
            {
                ConfigDataSkillInfo configDataSkillInfo2 = configDataLoader.GetConfigDataSkillInfo(configDataTowerBattleRuleInfo.Skill_ID);
                if (configDataSkillInfo2 != null)
                {
                    if (configDataTowerBattleRuleInfo.Target == 1 || configDataTowerBattleRuleInfo.Target == 3)
                    {
                        foreach (BattleActorSetup a in opponentTeam.m_actors)
                        {
                            BattleUtility.AppendExtraSkillToBattleActorSetup(configDataSkillInfo2, a);
                        }
                    }
                    if (configDataTowerBattleRuleInfo.Target == 2 || configDataTowerBattleRuleInfo.Target == 3)
                    {
                        foreach (BattleActorSetup a2 in mineTime.m_actors)
                        {
                            BattleUtility.AppendExtraSkillToBattleActorSetup(configDataSkillInfo2, a2);
                        }
                    }
                }
            }
        }
예제 #2
0
        // Token: 0x06003B29 RID: 15145 RVA: 0x0010EDC0 File Offset: 0x0010CFC0
        public static void ModifyGuildMassiveCombatBattleTeamSetups(IConfigDataLoader configDataLoader, int strongholdId, List <int> preferredHeroTagIds, BattleTeamSetup mineTime)
        {
            ConfigDataGuildMassiveCombatStrongholdInfo configDataGuildMassiveCombatStrongholdInfo = configDataLoader.GetConfigDataGuildMassiveCombatStrongholdInfo(strongholdId);

            if (configDataGuildMassiveCombatStrongholdInfo == null)
            {
                return;
            }
            if (preferredHeroTagIds == null)
            {
                return;
            }
            ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(configDataGuildMassiveCombatStrongholdInfo.UpSkill_ID);

            if (configDataSkillInfo != null)
            {
                foreach (BattleActorSetup battleActorSetup in mineTime.m_actors)
                {
                    foreach (int item in preferredHeroTagIds)
                    {
                        if (battleActorSetup.HeroInfo.m_heroTagIds.Contains(item))
                        {
                            BattleUtility.AppendExtraSkillToBattleActorSetup(configDataSkillInfo, battleActorSetup);
                            break;
                        }
                    }
                }
            }
        }
예제 #3
0
        // Token: 0x06003B20 RID: 15136 RVA: 0x0010E594 File Offset: 0x0010C794
        public static List <ConfigDataSkillInfo> GetEquipmentResonanceSkillInfos(IConfigDataLoader configDataLoader, List <BattleHeroEquipment> equipments)
        {
            List <ConfigDataSkillInfo> list       = new List <ConfigDataSkillInfo>();
            Dictionary <int, int>      dictionary = new Dictionary <int, int>();

            foreach (BattleHeroEquipment battleHeroEquipment in equipments)
            {
                if (battleHeroEquipment.ResonanceId != 0)
                {
                    int num;
                    if (dictionary.TryGetValue(battleHeroEquipment.ResonanceId, out num))
                    {
                        dictionary[battleHeroEquipment.ResonanceId] = num + 1;
                    }
                    else
                    {
                        dictionary.Add(battleHeroEquipment.ResonanceId, 1);
                    }
                }
            }
            foreach (KeyValuePair <int, int> keyValuePair in dictionary)
            {
                ConfigDataResonanceInfo configDataResonanceInfo = configDataLoader.GetConfigDataResonanceInfo(keyValuePair.Key);
                if (configDataResonanceInfo != null)
                {
                    if (keyValuePair.Value >= 2)
                    {
                        ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(configDataResonanceInfo.Effect1);
                        if (configDataSkillInfo != null)
                        {
                            list.Add(configDataSkillInfo);
                        }
                    }
                    if (keyValuePair.Value >= 4)
                    {
                        ConfigDataSkillInfo configDataSkillInfo2 = configDataLoader.GetConfigDataSkillInfo(configDataResonanceInfo.Effect2);
                        if (configDataSkillInfo2 != null)
                        {
                            list.Add(configDataSkillInfo2);
                        }
                    }
                }
            }
            return(list);
        }
예제 #4
0
        // Token: 0x06003B21 RID: 15137 RVA: 0x0010E6E8 File Offset: 0x0010C8E8
        public static List <ConfigDataSkillInfo> GetTrainingTechSoldierSkillInfos(IConfigDataLoader configDataLoader, List <TrainingTech> techs, ConfigDataSoldierInfo soldierInfo, out int soldierSkillLevelUp)
        {
            List <ConfigDataSkillInfo> list = new List <ConfigDataSkillInfo>();

            soldierSkillLevelUp = 0;
            if (techs == null || soldierInfo == null)
            {
                return(list);
            }
            foreach (TrainingTech trainingTech in techs)
            {
                if (trainingTech.ConfigDataLoader == null)
                {
                    trainingTech.ConfigDataLoader = configDataLoader;
                }
                if (trainingTech.Config != null)
                {
                    ConfigDataTrainingTechInfo config = trainingTech.Config;
                    if (!config.IsSummon)
                    {
                        if (config.SoldierIDRelated.Contains(soldierInfo.ID) || config.ArmyIDRelated.Contains(soldierInfo.Army_ID))
                        {
                            int num  = 0;
                            int num2 = 0;
                            while (num2 < trainingTech.Level && num2 < trainingTech.Infos.Count)
                            {
                                ConfigDataTrainingTechLevelInfo config2 = trainingTech.Infos[num2].Config;
                                if (config2.SoldierSkillID != 0)
                                {
                                    num = config2.SoldierSkillID;
                                }
                                if (config2.SoldierSkillLevelup > soldierSkillLevelUp)
                                {
                                    soldierSkillLevelUp = config2.SoldierSkillLevelup;
                                }
                                num2++;
                            }
                            if (num != 0)
                            {
                                ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(num);
                                if (configDataSkillInfo != null)
                                {
                                    list.Add(configDataSkillInfo);
                                }
                            }
                        }
                    }
                }
            }
            return(list);
        }
예제 #5
0
        // Token: 0x0600370E RID: 14094 RVA: 0x000F5424 File Offset: 0x000F3624
        public List <ConfigDataSkillInfo> GetTrainingTechSummonSkills(IConfigDataLoader configDataLoader, ConfigDataHeroInfo heroInfo)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_GetTrainingTechSummonSkillsIConfigDataLoaderConfigDataHeroInfo_hotfix != null)
            {
                return((List <ConfigDataSkillInfo>) this.m_GetTrainingTechSummonSkillsIConfigDataLoaderConfigDataHeroInfo_hotfix.call(new object[]
                {
                    this,
                    configDataLoader,
                    heroInfo
                }));
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            List <ConfigDataSkillInfo> list = new List <ConfigDataSkillInfo>();

            if (this.TrainingTechs == null || heroInfo == null)
            {
                return(list);
            }
            foreach (BattlePlayerTrainingTech battlePlayerTrainingTech in this.TrainingTechs)
            {
                ConfigDataTrainingTechInfo trainingTechInfo = battlePlayerTrainingTech.TrainingTechInfo;
                if (trainingTechInfo.IsSummon)
                {
                    if (trainingTechInfo.SoldierIDRelated.Contains(heroInfo.ID) || trainingTechInfo.ArmyIDRelated.Contains(heroInfo.m_jobConnectionInfo.m_jobInfo.Army_ID))
                    {
                        int num  = 0;
                        int num2 = 0;
                        while (num2 < battlePlayerTrainingTech.Level && num2 < trainingTechInfo.m_techLevelupInfo.Count)
                        {
                            ConfigDataTrainingTechLevelInfo configDataTrainingTechLevelInfo = trainingTechInfo.m_techLevelupInfo[num2];
                            if (configDataTrainingTechLevelInfo.SoldierSkillID != 0)
                            {
                                num = configDataTrainingTechLevelInfo.SoldierSkillID;
                            }
                            num2++;
                        }
                        if (num != 0)
                        {
                            ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(num);
                            if (configDataSkillInfo != null)
                            {
                                list.Add(configDataSkillInfo);
                            }
                        }
                    }
                }
            }
            return(list);
        }
예제 #6
0
        // Token: 0x0600370D RID: 14093 RVA: 0x000F52B4 File Offset: 0x000F34B4
        public List <ConfigDataSkillInfo> GetTrainingTechSoldierSkillInfos(IConfigDataLoader configDataLoader, ConfigDataSoldierInfo soldierInfo, out int soldierSkillLevelUp)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_GetTrainingTechSoldierSkillInfosIConfigDataLoaderConfigDataSoldierInfoInt32__hotfix != null)
            {
                return(LuaDelegation.Lua_BlackJack_ProjectL_Battle_BattlePlayer_GetTrainingTechSoldierSkillInfos_IConfigDataLoader_ConfigDataSoldierInfo_Int32(this, this.m_GetTrainingTechSoldierSkillInfosIConfigDataLoaderConfigDataSoldierInfoInt32__hotfix, configDataLoader, soldierInfo, out soldierSkillLevelUp));
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            List <ConfigDataSkillInfo> list = new List <ConfigDataSkillInfo>();

            soldierSkillLevelUp = 0;
            if (this.TrainingTechs == null || soldierInfo == null)
            {
                return(list);
            }
            foreach (BattlePlayerTrainingTech battlePlayerTrainingTech in this.TrainingTechs)
            {
                ConfigDataTrainingTechInfo trainingTechInfo = battlePlayerTrainingTech.TrainingTechInfo;
                if (!trainingTechInfo.IsSummon)
                {
                    if (trainingTechInfo.SoldierIDRelated.Contains(soldierInfo.ID) || trainingTechInfo.ArmyIDRelated.Contains(soldierInfo.Army_ID))
                    {
                        int num  = 0;
                        int num2 = 0;
                        while (num2 < battlePlayerTrainingTech.Level && num2 < trainingTechInfo.m_techLevelupInfo.Count)
                        {
                            ConfigDataTrainingTechLevelInfo configDataTrainingTechLevelInfo = trainingTechInfo.m_techLevelupInfo[num2];
                            if (configDataTrainingTechLevelInfo.SoldierSkillID != 0)
                            {
                                num = configDataTrainingTechLevelInfo.SoldierSkillID;
                            }
                            if (configDataTrainingTechLevelInfo.SoldierSkillLevelup > soldierSkillLevelUp)
                            {
                                soldierSkillLevelUp = configDataTrainingTechLevelInfo.SoldierSkillLevelup;
                            }
                            num2++;
                        }
                        if (num != 0)
                        {
                            ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(num);
                            if (configDataSkillInfo != null)
                            {
                                list.Add(configDataSkillInfo);
                            }
                        }
                    }
                }
            }
            return(list);
        }
예제 #7
0
        // Token: 0x06003B1F RID: 15135 RVA: 0x0010E4F8 File Offset: 0x0010C6F8
        public static void GetRandomTalentSkills(IConfigDataLoader configDataLoader, int randomTalentId, List <int> randomTalentProbilities, RandomNumber randomNumber, out List <ConfigDataSkillInfo> actorTalentSkillInfos)
        {
            actorTalentSkillInfos = new List <ConfigDataSkillInfo>();
            int randomTalentSkillId = BattleUtility.GetRandomTalentSkillId(configDataLoader, randomNumber, randomTalentId);
            ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(randomTalentSkillId);

            if (configDataSkillInfo == null)
            {
                return;
            }
            foreach (int num in randomTalentProbilities)
            {
                if (randomNumber.Next(0, 10000) < num)
                {
                    actorTalentSkillInfos.Add(configDataSkillInfo);
                }
                else
                {
                    actorTalentSkillInfos.Add(null);
                }
            }
        }
예제 #8
0
        // Token: 0x06003B16 RID: 15126 RVA: 0x0010D864 File Offset: 0x0010BA64
        public static BattleActorSetup CreateBattleActorSetupFromBattleHero(IConfigDataLoader configDataLoader, BattleHero hero, int level = 0, int behaviorId = -1, int groupId = 0)
        {
            BattleActorSetup battleActorSetup = new BattleActorSetup();

            battleActorSetup.HeroInfo          = configDataLoader.GetConfigDataHeroInfo(hero.HeroId);
            battleActorSetup.JobConnectionInfo = configDataLoader.GetConfigDataJobConnectionInfo(hero.ActiveHeroJobRelatedId);
            battleActorSetup.SoldierInfo       = configDataLoader.GetConfigDataSoldierInfo(hero.SelectedSoldierId);
            battleActorSetup.HeroStar          = hero.StarLevel;
            battleActorSetup.JobLevel          = hero.GetJob(hero.ActiveHeroJobRelatedId).JobLevel;
            battleActorSetup.SoldierCount      = configDataLoader.Const_SoldierCountMax;
            battleActorSetup.ActionValue       = hero.ActionValue;
            battleActorSetup.BehaviorId        = behaviorId;
            battleActorSetup.GroupId           = groupId;
            battleActorSetup.PlayerIndex       = -1;
            if (level > 0)
            {
                battleActorSetup.HeroLevel = level;
            }
            else
            {
                battleActorSetup.HeroLevel = hero.Level;
            }
            if (hero.SelectedSkillList.Count > 0)
            {
                List <ConfigDataSkillInfo> list = new List <ConfigDataSkillInfo>();
                foreach (int key in hero.SelectedSkillList)
                {
                    ConfigDataSkillInfo configDataSkillInfo = configDataLoader.GetConfigDataSkillInfo(key);
                    if (configDataSkillInfo != null)
                    {
                        list.Add(configDataSkillInfo);
                    }
                }
                if (list.Count > 0)
                {
                    battleActorSetup.SkillInfos = list.ToArray();
                }
            }
            if (hero.Jobs.Count > 0)
            {
                List <ConfigDataJobInfo> list2 = new List <ConfigDataJobInfo>();
                foreach (BattleHeroJob battleHeroJob in hero.Jobs)
                {
                    ConfigDataJobConnectionInfo configDataJobConnectionInfo = configDataLoader.GetConfigDataJobConnectionInfo(battleHeroJob.JobRelatedId);
                    if (configDataJobConnectionInfo.IsJobLevelMax(battleHeroJob.JobLevel))
                    {
                        list2.Add(configDataJobConnectionInfo.m_jobInfo);
                    }
                }
                if (list2.Count > 0)
                {
                    battleActorSetup.MasterJobInfos = list2.ToArray();
                }
            }
            if (hero.Fetters.Count > 0)
            {
                List <ConfigDataSkillInfo> list3 = new List <ConfigDataSkillInfo>();
                foreach (KeyValuePair <int, int> keyValuePair in hero.Fetters)
                {
                    ConfigDataHeroFetterInfo configDataHeroFetterInfo = configDataLoader.GetConfigDataHeroFetterInfo(keyValuePair.Key);
                    if (configDataHeroFetterInfo != null)
                    {
                        int num = keyValuePair.Value - 1;
                        if (num < configDataHeroFetterInfo.GotSkills_ID.Count)
                        {
                            ConfigDataSkillInfo configDataSkillInfo2 = configDataLoader.GetConfigDataSkillInfo(configDataHeroFetterInfo.GotSkills_ID[num]);
                            if (configDataSkillInfo2 != null)
                            {
                                list3.Add(configDataSkillInfo2);
                            }
                        }
                    }
                }
                if (list3.Count > 0)
                {
                    battleActorSetup.FetterSkillInfos = list3.ToArray();
                }
            }
            if (hero.Equipments.Count > 0)
            {
                List <BattleActorEquipment> list4 = new List <BattleActorEquipment>();
                foreach (BattleHeroEquipment battleHeroEquipment in hero.Equipments)
                {
                    ConfigDataEquipmentInfo configDataEquipmentInfo = configDataLoader.GetConfigDataEquipmentInfo(battleHeroEquipment.Id);
                    if (configDataEquipmentInfo != null)
                    {
                        BattleActorEquipment battleActorEquipment = new BattleActorEquipment();
                        battleActorEquipment.EquipmentInfo = configDataEquipmentInfo;
                        battleActorEquipment.Level         = battleHeroEquipment.Level;
                        if (battleHeroEquipment.EnchantProperties.Count > 0)
                        {
                            battleActorEquipment.EnchantProperties = new CommonBattleProperty[battleHeroEquipment.EnchantProperties.Count];
                            for (int i = 0; i < battleHeroEquipment.EnchantProperties.Count; i++)
                            {
                                battleActorEquipment.EnchantProperties[i] = battleHeroEquipment.EnchantProperties[i];
                            }
                        }
                        list4.Add(battleActorEquipment);
                    }
                }
                if (list4.Count > 0)
                {
                    battleActorSetup.Equipments = list4.ToArray();
                }
                List <ConfigDataSkillInfo> equipmentResonanceSkillInfos = BattleUtility.GetEquipmentResonanceSkillInfos(configDataLoader, hero.Equipments);
                if (equipmentResonanceSkillInfos.Count > 0)
                {
                    battleActorSetup.ResonanceSkillInfos = equipmentResonanceSkillInfos.ToArray();
                }
            }
            battleActorSetup.HeroCharImageSkinResourceInfo = hero.GetHeroCharImageSkinResourceInfo(configDataLoader);
            battleActorSetup.HeroModelSkinResourceInfo     = hero.GetHeroActiveJobModelSkinResourceInfo(configDataLoader);
            battleActorSetup.SoldierModelSkinResourceInfo  = hero.GetSelectedSoldierModelSkinResourceInfo(configDataLoader);
            return(battleActorSetup);
        }