private void AISquadManagerHook(On.AISquadManager.orig_Update orig, AISquadManager self) { if (global.IsGameplayStarted && global.CurrentTime > 0) { return; } orig(self); }
private void AISquadManager_TryActivateSquad(On.AISquadManager.orig_TryActivateSquad orig, AISquadManager self, AISquad _squad, bool _resetPositions) { List <AISquad> _reserve = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInReserve").GetValue(self); List <AISquad> _play = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInPlay").GetValue(self); DictionaryExt <UID, AISquad> _all = (DictionaryExt <UID, AISquad>)AccessTools.Field(typeof(AISquadManager), "m_allSquads").GetValue(self); OLogger.Log($"TryActivateSquad {(_squad != null ? _squad.name : "(null)")}"); OLogger.Log($" > All={_all.Count} Play={_play.Count} Reserve={_reserve.Count}"); OLogger.Log($" > InReserve={_reserve.Contains(_squad)}"); /*if (_squad != null && !_reserve.Contains(_squad)) * { * _reserve.Add(_squad); * AccessTools.Field(typeof(AISquadManager), "m_squadsInReserve").SetValue(self, _reserve); * }*/ orig(self, _squad, _resetPositions); }
private void AISquadManager_TryDeactivateSquad(On.AISquadManager.orig_TryDeactivateSquad orig, AISquadManager self, AISquad _squad) { List <AISquad> _reserve = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInReserve").GetValue(self); List <AISquad> _play = (List <AISquad>)AccessTools.Field(typeof(AISquadManager), "m_squadsInPlay").GetValue(self); DictionaryExt <UID, AISquad> _all = (DictionaryExt <UID, AISquad>)AccessTools.Field(typeof(AISquadManager), "m_allSquads").GetValue(self); OLogger.Log($"TryDeactivateSquad {(_squad != null ? _squad.name : "(null)")}"); OLogger.Log($" > All={_all.Count} Play={_play.Count} Reserve={_reserve.Count}"); orig(self, _squad); }
private bool AISquadManager_CheckActiveSquadsCap(On.AISquadManager.orig_CheckActiveSquadsCap orig, AISquadManager self) { bool res = orig(self); OLogger.Log($"CheckActiveSquadsCap {res}"); return(res); }
private void AISquadManager_FirstSpawn(On.AISquadManager.orig_FirstSpawn orig, AISquadManager self) { OLogger.Log("FirstSpawn"); orig(self); }
private void AISquadManager_FindSpawn(On.AISquadManager.orig_FindSpawn orig, AISquadManager self, bool _ignoreSight) { OLogger.Log("FindSpawn"); orig(self, _ignoreSight); }