public static bool TeammateCountPatchAdd(ref TeammatesController __instance, string entityId) { CharacterData component = Game.EntityManager.GetComponent <CharacterData>(entityId); if (component == null) { return(false); } orderedTeammates.Add(component.Character); teammates.SetValue(orderedTeammates.GetRange(0, orderedTeammates.Count)); var teammatesValue = teammates.GetValue <List <ICharacter> >(); if (teammatesValue.Count > 6) { teammatesValue.RemoveRange(6, teammatesValue.Count - 6); } __instance.UpdateView(); return(false); }
public static void TeammateCountBegin(ref TeammatesController __instance, ITeammate model) { Console.WriteLine("TeammatesController.ctor()"); teammatesController = __instance; teammates = Traverse.Create(__instance).Field("teammates"); var teammatesValue = teammates.GetValue <List <ICharacter> >(); if (orderedTeammates.Count == 0) { orderedTeammates = teammatesValue.GetRange(0, teammatesValue.Count); } else { teammates.SetValue(orderedTeammates.GetRange(0, orderedTeammates.Count)); teammatesValue = teammates.GetValue <List <ICharacter> >(); } if (teammatesValue.Count > 6) { teammatesValue.RemoveRange(6, teammatesValue.Count - 6); } }
public static void TeammateCountClose(ref TeammatesController __instance) { Console.WriteLine("TeammatesController.OnClose()"); teammates = null; teammatesController = null; }