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); }
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); }