コード例 #1
0
        public static bool PrepareBattleEntities_Path(BattleManager __instance, List <int> chrIDList, int team)
        {
            // 如果MOD状态是关闭的话
            if (!FormationMod.enable)
            {
                // 执行原本的方法
                return(true);
            }
            if (chrIDList.Count == 5)
            {
                // 启用阵法
                ModifierUtil.enableModifier[team] = true;
            }
            else
            {
                // 不启用阵法
                ModifierUtil.enableModifier[team] = false;
            }
            for (int i = 0; i < chrIDList.Count; i++)
            {
                int       chrID   = chrIDList[i];
                Character chrByID = SingletonMonoBehaviour <CharacterModel> .Instance.GetChrByID(chrID);

                bool flag = chrByID != null;
                if (flag)
                {
                    // 先移除已有buff,再添加
                    chrByID.RemoveAllMartialModifier();
                    chrByID.AddAllMartialModifier();
                    // 添加指定阵法buff
                    chrByID.AddMartialModifier(0, ModifierUtil.ModifierNamePY + i);

                    global::CharacterInfo chrInfoByID = SingletonMonoBehaviour <CharacterModel> .Instance.GetChrInfoByID(chrByID.InfoID);

                    bool flag2 = chrInfoByID != null && chrInfoByID.ItemsUseForBattle != null;
                    if (flag2)
                    {
                        foreach (string itemInfoID in chrInfoByID.ItemsUseForBattle)
                        {
                            chrByID.NPCUseItem(itemInfoID);
                        }
                    }
                    // 如果为敌人,则判断难度,添加buff
                    bool flag3 = team == 1 && SingletonMonoBehaviour <SchoolModel> .Instance.mUserData.IronmanMode;
                    if (flag3)
                    {
                        chrByID.AddModifier(SingletonMonoBehaviour <ModifierModel> .Instance.mGameData.MasterBuff, -1);
                    }
                    BattleEntity entity = __instance.GenerateEntity(chrByID, team, i);
                    __instance.AddEntity(entity);
                }
            }

            // 返回false表示不执行原方法
            return(false);
        }