private static void FSPatch_InitiateGraphicsModule(On.Player.orig_InitiateGraphicsModule orig, Player self) { try { // First, try running it as normal orig(self); } catch { // If that fails, try running it with a modified character index int oldChar = self.playerState.slugcatCharacter; try { SlugBaseCharacter ply = PlayerManager.GetCustomPlayer(self.playerState.slugcatCharacter); if (ply != null) { // For SlugBase characters, use the character that it copies from self.playerState.slugcatCharacter = ply.useSpawns; } else { // For other characters, use the player number self.playerState.slugcatCharacter = self.playerState.playerNumber; } orig(self); } finally { self.playerState.slugcatCharacter = oldChar; } } }
private static Color FSPatch_SlugcatColor(On.PlayerGraphics.orig_SlugcatColor orig, int i) { try { return(orig(i)); } catch { SlugBaseCharacter ply = PlayerManager.GetCustomPlayer(i) ?? PlayerManager.CurrentCharacter; if (ply != null) { try { // Bypass SlugBase colors when using FancySlugcats PlayerManager.useOriginalColor = true; return(orig(ply.WorldCharacter)); } catch { } PlayerManager.useOriginalColor = false; } return(Color.white); } }
public SprinterSaveState(PlayerProgression progression, SlugBaseCharacter character) : base(progression, character) { }