コード例 #1
0
        public static bool GetScenePosByEntityPos_Path(ref Vector3 __result, BattleManager __instance, int team, int idx)
        {
            // 如果MOD状态是关闭的话
            if (!FormationMod.enable)
            {
                // 执行原本的方法
                return(true);
            }

            // 获取队伍实体
            if (mTeamEntities == null)
            {
                mTeamEntities = Traverse.Create(__instance).Field("mTeamEntities").GetValue <Dictionary <int, List <int> > >();
            }
            // 获取每个队伍中的人数
            int num = mTeamEntities[team].Count;

            // 5个人齐才能组成阵型
            if (num < 5)
            {
                // 小于5人为默认的散开阵
                __result = GetScenePosByEntityPos_sankaizhen(team, idx);
                // 返回false表示不执行原方法
                return(false);
            }
            // 默认位散开阵
            switch (FormationFileLoad.getIndexForName(ModifierUtil.ModifierNamePY))
            {
            case 0:
                __result = GetScenePosByEntityPos_sankaizhen(team, idx);
                break;

            case 1:
                __result = GetScenePosByEntityPos_yizizhen(team, idx);
                break;

            case 2:
                __result = GetScenePosByEntityPos_chongfangzhen(team, idx);
                break;

            default:
                __result = GetScenePosByEntityPos_sankaizhen(team, idx);
                break;
            }

            // 返回false表示不执行原方法
            return(false);
        }
コード例 #2
0
        public static bool Load(UnityModManager.ModEntry modEntry)
        {
            // 读取用户的配置文件
            settings = Settings.Load <Settings>(modEntry);
            // 存储日志输出对象方便以后使用
            logger = modEntry.Logger;

            // 当用户打开MOD配置的时候调用
            modEntry.OnGUI = OnGUI;
            // 当用户保存MOD配置的时候调用
            modEntry.OnSaveGUI = OnSaveGUI;
            // 当用户开关MOD的时候调用
            modEntry.OnToggle = OnToggle;

            // 读取阵型文件中的阵型信息
            FormationFileLoad.Load();


            // 将更改应用到游戏上
            var harmony = HarmonyInstance.Create(modEntry.Info.Id);

            harmony.PatchAll(Assembly.GetExecutingAssembly());
            return(true);
        }