using System.Collections; using System.Collections.Generic; using CodeStage.AntiCheat.ObscuredTypes; using Steamworks; using UnityEngine; public class AchievementManager : MonoBehaviour { public enum AchievementId { TEST_ACHIEVEMENT = 0, EVENT_POO_01 = 1, EVENT_MAKE_HOOK_01 = 2, EVENT_MAKE_FILLET_01 = 3, EVENT_FRY_FILLET_01 = 4, PLAYER_LEVEL_01 = 5, PLAYER_LEVEL_02 = 6, PLAYER_LEVEL_03 = 7, FISH_AMOUNT_01 = 8, FISH_AMOUNT_02 = 9, FISH_AMOUNT_03 = 10, FISH_AMOUNT_04 = 11, FISH_AMOUNT_05 = 12, JUNK_AMOUNT_01 = 13, JUNK_AMOUNT_02 = 14, JUNK_AMOUNT_03 = 15, SKILLS_AMOUNT_01 = 16, SKILLS_AMOUNT_02 = 17, SKILLS_AMOUNT_03 = 18, FISH_RAINBOW_TROUT_01 = 19, FISH_BROWN_TROUT_01 = 20, FISH_BROOK_TROUT_01 = 21, FISH_BULL_TROUT_01 = 22, FISH_LAKE_WHITEFISH_01 = 23, FISH_BLACK_MARLIN_01 = 24, FISH_BLUE_MARLIN_01 = 25, FISH_STRIPED_MARLIN_01 = 26, FISH_WHITE_MARLIN_01 = 27, FISH_DORADO_01 = 28, FISH_AMBERJACK_01 = 29, FISH_RAINBOW_RUNNER_01 = 30, FISH_PIKE_01 = 31, FISH_PERCH_01 = 32, FISH_BAIKAL_OMUL_01 = 33, FISH_BLUEGILL_01 = 34, FISH_CHANNEL_CATFISH_01 = 35, FISH_BLACK_CRAPPIE_01 = 36, FISH_LARGEMOUTH_BASS_01 = 37, FISH_SMALLMOUTH_BASS_01 = 38, FISH_STRIPPED_BASS_01 = 39, FISH_SPOTTED_BASS_01 = 40, FISH_BREAM_01 = 41, FISH_CHUB_01 = 42, FISH_GRASS_CARP_01 = 43, FISH_MIRROR_CARP_01 = 44, FISH_CRUCIAN_CARP_01 = 45, FISH_STURGEON_01 = 46, FISH_CUTTHROAT_TROUT_01 = 47, FISH_ROOSTERFISH_01 = 48, FISH_ZANDER_01 = 49, FISH_BARBEL_01 = 50, FISH_HUCHEN_01 = 51, FISH_NASE_01 = 52, FISH_WALLEYE_01 = 53, FISH_SAUGER_01 = 54, FISH_YELLOW_PERCH_01 = 55, FISH_GOLDEN_TROUT_01 = 56, FISH_TIGER_TROUT_01 = 57, FISH_AFRICAN_TIGERFISH_01 = 58, FISH_ELECTRIC_CATFISH_01 = 59, FISH_VUNDU_CATFISH_01 = 60, FISH_AFRICAN_CATFISH_01 = 61, FISH_REDBREASTED_TILAPIA_01 = 62, FISH_KARIBA_TILAPIA_01 = 63, FISH_THREESPOT_TILAPIA_01 = 64, FISH_GREEN_BREAM_01 = 65, FISH_PINK_BREAM_01 = 66, FISH_RAINBOW_BREAM_01 = 67, FISH_ZAMBEZI_BREAM_01 = 68, FISH_AFRICAN_BARB_01 = 69, FISH_PURPLE_LABEO_01 = 70, FISH_LARGESCALED_YELLOWFISH_01 = 71, FISH_KAFUE_KILLIFISH_01 = 72, FISH_CAPRIVI_KILLIFISH_01 = 73, FISH_ATLANTIC_SALMON_01 = 74, FISH_ATLANTIC_COD_01 = 75, FISH_GREENLAND_COD_01 = 76, FISH_ATLANTIC_HALIBUT_01 = 77, FISH_GREENLAND_HALIBUT_01 = 78, FISH_FOURHORNED_SCULPIN_01 = 79, FISH_CAPELIN_01 = 80, FISH_ATLANTIC_WOLFFISH_01 = 81, FISH_GREENLAND_SHARK_01 = 82, FISH_GOBLIN_SHARK_01 = 83, FISH_LUMPFISH_01 = 84, FISH_DEEPWATER_REDFISH_01 = 85, FISH_ALIGATOR_GAR_01 = 86, FISH_APAPA_01 = 87, FISH_ARAPAIMA_01 = 88, FISH_AROWANA_01 = 89, FISH_ELECTRIC_EEL_01 = 90, FISH_OSCAR_01 = 91, FISH_PAYARA_01 = 92, FISH_PEACOCK_BASS_01 = 93, FISH_PIRAIBA_CATFISH_01 = 94, FISH_PIRANHA_01 = 95, FISH_REDTAIL_CATFISH_01 = 96, FISH_SURUBIM_01 = 97, FISH_TAMBAQUI_01 = 98, FISH_CARP_KOI_01 = 99, FISH_GIANT_BARB_01 = 100, FISH_JAPANESE_EEL_01 = 101, FISH_SNAKEHEAD_01 = 102, FISH_SOCKEYE_SALMON_01 = 103, FISH_SPOTTED_SEATROUT_01 = 104, FISH_TENCH_01 = 105, FISH_WAKASAGI_01 = 106, FISH_WELS_CATFISH_01 = 107, FISH_BEAKED_CORAL_FISH_01 = 108, FISH_BLACKTIP_REEF_SHARK_01 = 109, FISH_COMMON_LIONFISH_01 = 110, FISH_CROCODILE_NEEDLEFISH_01 = 111, FISH_GIANT_GROUPER_01 = 112, FISH_GREAT_BARRACUDA_01 = 113, FISH_GREYFACE_MORAY_EEL_01 = 114, FISH_GREY_SNAPER_01 = 115, FISH_INDIAN_THREADFISH_01 = 116, FISH_LONGFIN_BANNERFISH_01 = 117, FISH_MALABAR_GROUPER_01 = 118, FISH_YELLOWTAIL_BARRACUDA_01 = 119, FISH_ASP_01 = 120, FISH_BLACK_GRAYLING_01 = 121, FISH_BLEAK_01 = 122, FISH_BURBOT_01 = 123, FISH_FLATHEAD_CATFISH_01 = 124, FISH_GIANT_TRAVELLY_01 = 125, FISH_IDE_01 = 126, FISH_PUMPKINSEED_01 = 127, FISH_ROACH_01 = 128, FISH_SAILFISH_01 = 129, FISH_SEA_BREAM_01 = 130, FISH_SILVER_BREAM_01 = 131, FISH_SILVER_CARP_01 = 132, FISH_WHITE_CRAPPIE_01 = 133, FISH_WHITE_GRAYLING_01 = 134, FISH_YELLOWFIN_TUNA_01 = 135, FISH_RUDD_01 = 136, FISH_FLATHEAD_GREY_MULLET_01 = 137, FISH_GIANT_KOKOPU_01 = 138, FISH_BROWN_BULLHEAD_CATFISH_01 = 139, FISH_LONGFIN_EEL_01 = 140, FISH_CHINOOK_SALMON_01 = 141, UNKNOWN = 142 } private static AchievementManager instance; public Sprite defaultIcon; public List achievements = new List(); public GameObject achievementWidget; public float showSpeed = 2f; public float showDelay = 5f; public static AchievementManager Instance { get { return instance; } } private AchievementManager() { } private void Awake() { if (instance == null) { instance = this; Object.DontDestroyOnLoad(base.gameObject); } else { Object.Destroy(base.gameObject); } } private void Start() { if ((bool)achievementWidget) { achievementWidget.SetActive(false); } } private void OnDestroy() { } private void Update() { if ((GlobalSettings.Instance == null || ((bool)GlobalSettings.Instance && GlobalSettings.Instance.turnOnMyCheats)) && Input.GetKey(KeyCode.LeftShift)) { if (Input.GetKeyDown(KeyCode.Alpha0)) { UpdateAchievement(AchievementId.PLAYER_LEVEL_01, 1); } else if (Input.GetKeyDown(KeyCode.Alpha1)) { GetAchievement(AchievementId.FISH_CHUB_01).CompleteAchievement(true); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { CompleteAchievement(AchievementId.FISH_BREAM_01); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { UpdateAchievement(FishToAchievementID(Fish.Species.AMBERJACK), 1); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { SetPlayersLevelProgress(4); } if (Input.GetKeyDown(KeyCode.N)) { Reset(); } } } public void ShowAchievement(AchievementId achievementId) { if ((bool)achievementWidget && !achievementWidget.activeSelf) { Achievement achievement = GetAchievement(achievementId); StartCoroutine(ShowAnimation()); } } public IEnumerator ShowAnimation() { if ((bool)achievementWidget) { achievementWidget.SetActive(true); iTween.MoveTo(achievementWidget, iTween.Hash("y", 440f, "time", showSpeed, "easeType", iTween.EaseType.easeInOutCubic, "islocal", true)); yield return new WaitForSeconds(showSpeed); yield return new WaitForSeconds(showDelay); iTween.MoveTo(achievementWidget, iTween.Hash("y", 590f, "time", showSpeed, "easeType", iTween.EaseType.easeInOutCubic, "islocal", true)); yield return new WaitForSeconds(showSpeed); achievementWidget.SetActive(false); } } public Achievement GetAchievement(AchievementId achievementId) { foreach (Achievement achievement in achievements) { if (achievement.achievementId == achievementId) { return achievement; } } return null; } public void CompleteAchievement(AchievementId achievementId) { if (!GlobalSettings.Instance.playerSettings.IsSandbox()) { Achievement achievement = GetAchievement(achievementId); if (achievement != null) { achievement.CompleteAchievement(false); Save(); } else { Debug.LogError("Achievement not found: " + achievementId); } } } public void ResetAchievement(AchievementId achievementId) { Achievement achievement = GetAchievement(achievementId); if (achievement != null) { achievement.ResetAchievement(); } } public void UpdateAchievement(AchievementId achievementId, int progress) { if (!GlobalSettings.Instance.playerSettings.IsSandbox()) { Achievement achievement = GetAchievement(achievementId); if (achievement != null) { achievement.UpdateAchievement(progress); Save(); } else { Debug.LogError("Achievement not found: " + achievementId); } } } public void SetAchievementProgress(AchievementId achievementId, int progress) { if (!GlobalSettings.Instance.playerSettings.IsSandbox()) { Achievement achievement = GetAchievement(achievementId); if (achievement != null) { achievement.SetAchievementProgress(progress); Save(); } else { Debug.LogError("Achievement not found: " + achievementId); } } } public void SetPlayersLevelProgress(int playersLevel) { if (!GlobalSettings.Instance.playerSettings.IsSandbox()) { Instance.SetAchievementProgress(AchievementId.PLAYER_LEVEL_01, playersLevel); Instance.SetAchievementProgress(AchievementId.PLAYER_LEVEL_02, playersLevel); Instance.SetAchievementProgress(AchievementId.PLAYER_LEVEL_03, playersLevel); } } public void SetFishAmountProgress(int fishAmount) { if (!GlobalSettings.Instance.playerSettings.IsSandbox()) { Instance.SetAchievementProgress(AchievementId.FISH_AMOUNT_01, fishAmount); Instance.SetAchievementProgress(AchievementId.FISH_AMOUNT_02, fishAmount); Instance.SetAchievementProgress(AchievementId.FISH_AMOUNT_03, fishAmount); Instance.SetAchievementProgress(AchievementId.FISH_AMOUNT_04, fishAmount); Instance.SetAchievementProgress(AchievementId.FISH_AMOUNT_05, fishAmount); } } public void UnlockSteamAchievement(string achievementId) { if (!GlobalSettings.Instance.playerSettings.IsSandbox()) { string empty = string.Empty; if (SteamManager.Initialized) { empty = ((!SteamUserStats.SetAchievement(achievementId)) ? ("SetAchievement Fail: " + achievementId) : ("SetAchievement Success: " + achievementId)); SteamUserStats.StoreStats(); Debug.Log(empty); } } } public void ResetSteamAchievement(string achievementId) { if ((bool)GlobalSettings.Instance && GlobalSettings.Instance.turnOnMyCheats) { string empty = string.Empty; if (SteamManager.Initialized) { empty = ((!SteamUserStats.ClearAchievement(achievementId)) ? ("ResetAchievement Fail: " + achievementId) : ("ResetAchievement Success: " + achievementId)); SteamUserStats.StoreStats(); Debug.Log(empty); } } } public static AchievementId FishToAchievementID(Fish.Species species) { switch (species) { case Fish.Species.RAINBOW_TROUT: case Fish.Species.RAINBOW_TROUT_B: return AchievementId.FISH_RAINBOW_TROUT_01; case Fish.Species.BROWN_TROUT: case Fish.Species.BROWN_TROUT_B: return AchievementId.FISH_BROWN_TROUT_01; case Fish.Species.BROOK_TROUT: case Fish.Species.BROOK_TROUT_B: return AchievementId.FISH_BROOK_TROUT_01; case Fish.Species.BULL_TROUT: return AchievementId.FISH_BULL_TROUT_01; case Fish.Species.LAKE_WHITEFISH: return AchievementId.FISH_LAKE_WHITEFISH_01; case Fish.Species.BLACK_MARLIN: return AchievementId.FISH_BLACK_MARLIN_01; case Fish.Species.BLUE_MARLIN: return AchievementId.FISH_BLUE_MARLIN_01; case Fish.Species.STRIPED_MARLIN: return AchievementId.FISH_STRIPED_MARLIN_01; case Fish.Species.WHITE_MARLIN: return AchievementId.FISH_WHITE_MARLIN_01; case Fish.Species.DORADO: return AchievementId.FISH_DORADO_01; case Fish.Species.AMBERJACK: return AchievementId.FISH_AMBERJACK_01; case Fish.Species.RAINBOW_RUNNER: return AchievementId.FISH_RAINBOW_RUNNER_01; case Fish.Species.PIKE: return AchievementId.FISH_PIKE_01; case Fish.Species.PERCH: return AchievementId.FISH_PERCH_01; case Fish.Species.BAIKAL_OMUL: return AchievementId.FISH_BAIKAL_OMUL_01; case Fish.Species.BLUEGILL: return AchievementId.FISH_BLUEGILL_01; case Fish.Species.CHANNEL_CATFISH: return AchievementId.FISH_CHANNEL_CATFISH_01; case Fish.Species.BLACK_CRAPPIE: return AchievementId.FISH_BLACK_CRAPPIE_01; case Fish.Species.LARGEMOUTH_BASS: return AchievementId.FISH_LARGEMOUTH_BASS_01; case Fish.Species.SMALLMOUTH_BASS: return AchievementId.FISH_SMALLMOUTH_BASS_01; case Fish.Species.STRIPPED_BASS: return AchievementId.FISH_STRIPPED_BASS_01; case Fish.Species.SPOTTED_BASS: return AchievementId.FISH_SPOTTED_BASS_01; case Fish.Species.BREAM: return AchievementId.FISH_BREAM_01; case Fish.Species.CHUB: return AchievementId.FISH_CHUB_01; case Fish.Species.GRASS_CARP: return AchievementId.FISH_GRASS_CARP_01; case Fish.Species.MIRROR_CARP: return AchievementId.FISH_MIRROR_CARP_01; case Fish.Species.CRUCIAN_CARP: return AchievementId.FISH_CRUCIAN_CARP_01; case Fish.Species.STURGEON: return AchievementId.FISH_STURGEON_01; case Fish.Species.CUTTHROAT_TROUT: return AchievementId.FISH_CUTTHROAT_TROUT_01; case Fish.Species.ROOSTERFISH: return AchievementId.FISH_ROOSTERFISH_01; case Fish.Species.ZANDER: return AchievementId.FISH_ZANDER_01; case Fish.Species.BARBEL: return AchievementId.FISH_BARBEL_01; case Fish.Species.HUCHEN: return AchievementId.FISH_HUCHEN_01; case Fish.Species.NASE: return AchievementId.FISH_NASE_01; case Fish.Species.WALLEYE: return AchievementId.FISH_WALLEYE_01; case Fish.Species.SAUGER: return AchievementId.FISH_SAUGER_01; case Fish.Species.YELLOW_PERCH: return AchievementId.FISH_YELLOW_PERCH_01; case Fish.Species.GOLDEN_TROUT: return AchievementId.FISH_GOLDEN_TROUT_01; case Fish.Species.TIGER_TROUT: return AchievementId.FISH_TIGER_TROUT_01; case Fish.Species.AFRICAN_TIGERFISH: return AchievementId.FISH_AFRICAN_TIGERFISH_01; case Fish.Species.ELECTRIC_CATFISH: return AchievementId.FISH_ELECTRIC_CATFISH_01; case Fish.Species.VUNDU_CATFISH: return AchievementId.FISH_VUNDU_CATFISH_01; case Fish.Species.AFRICAN_CATFISH: return AchievementId.FISH_AFRICAN_CATFISH_01; case Fish.Species.REDBREASTED_TILAPIA: return AchievementId.FISH_REDBREASTED_TILAPIA_01; case Fish.Species.KARIBA_TILAPIA: return AchievementId.FISH_KARIBA_TILAPIA_01; case Fish.Species.THREESPOT_TILAPIA: return AchievementId.FISH_THREESPOT_TILAPIA_01; case Fish.Species.GREEN_BREAM: return AchievementId.FISH_GREEN_BREAM_01; case Fish.Species.PINK_BREAM: return AchievementId.FISH_PINK_BREAM_01; case Fish.Species.RAINBOW_BREAM: return AchievementId.FISH_RAINBOW_BREAM_01; case Fish.Species.ZAMBEZI_BREAM: return AchievementId.FISH_ZAMBEZI_BREAM_01; case Fish.Species.AFRICAN_BARB: return AchievementId.FISH_AFRICAN_BARB_01; case Fish.Species.PURPLE_LABEO: return AchievementId.FISH_PURPLE_LABEO_01; case Fish.Species.LARGESCALED_YELLOWFISH: return AchievementId.FISH_LARGESCALED_YELLOWFISH_01; case Fish.Species.KAFUE_KILLIFISH: return AchievementId.FISH_KAFUE_KILLIFISH_01; case Fish.Species.CAPRIVI_KILLIFISH: return AchievementId.FISH_CAPRIVI_KILLIFISH_01; case Fish.Species.ATLANTIC_SALMON: return AchievementId.FISH_ATLANTIC_SALMON_01; case Fish.Species.ATLANTIC_COD: return AchievementId.FISH_ATLANTIC_COD_01; case Fish.Species.GREENLAND_COD: return AchievementId.FISH_GREENLAND_COD_01; case Fish.Species.ATLANTIC_HALIBUT: return AchievementId.FISH_ATLANTIC_HALIBUT_01; case Fish.Species.GREENLAND_HALIBUT: return AchievementId.FISH_GREENLAND_HALIBUT_01; case Fish.Species.FOURHORNED_SCULPIN: return AchievementId.FISH_FOURHORNED_SCULPIN_01; case Fish.Species.CAPELIN: return AchievementId.FISH_CAPELIN_01; case Fish.Species.ATLANTIC_WOLFFISH: return AchievementId.FISH_ATLANTIC_WOLFFISH_01; case Fish.Species.GREENLAND_SHARK: return AchievementId.FISH_GREENLAND_SHARK_01; case Fish.Species.GOBLIN_SHARK: return AchievementId.FISH_GOBLIN_SHARK_01; case Fish.Species.LUMPFISH: return AchievementId.FISH_LUMPFISH_01; case Fish.Species.DEEPWATER_REDFISH: return AchievementId.FISH_DEEPWATER_REDFISH_01; case Fish.Species.ALIGATOR_GAR: return AchievementId.FISH_ALIGATOR_GAR_01; case Fish.Species.APAPA: return AchievementId.FISH_APAPA_01; case Fish.Species.ARAPAIMA: return AchievementId.FISH_ARAPAIMA_01; case Fish.Species.AROWANA: return AchievementId.FISH_AROWANA_01; case Fish.Species.ELECTRIC_EEL: return AchievementId.FISH_ELECTRIC_EEL_01; case Fish.Species.OSCAR: return AchievementId.FISH_OSCAR_01; case Fish.Species.PAYARA: return AchievementId.FISH_PAYARA_01; case Fish.Species.PEACOCK_BASS: return AchievementId.FISH_PEACOCK_BASS_01; case Fish.Species.PIRAIBA_CATFISH: return AchievementId.FISH_PIRAIBA_CATFISH_01; case Fish.Species.PIRANHA: return AchievementId.FISH_PIRANHA_01; case Fish.Species.REDTAIL_CATFISH: return AchievementId.FISH_REDTAIL_CATFISH_01; case Fish.Species.SURUBIM: return AchievementId.FISH_SURUBIM_01; case Fish.Species.TAMBAQUI: return AchievementId.FISH_TAMBAQUI_01; case Fish.Species.CARP_KOI: case Fish.Species.KOI_CARP: return AchievementId.FISH_CARP_KOI_01; case Fish.Species.GIANT_BARB: return AchievementId.FISH_GIANT_BARB_01; case Fish.Species.JAPANESE_EEL: return AchievementId.FISH_JAPANESE_EEL_01; case Fish.Species.SNAKEHEAD: return AchievementId.FISH_SNAKEHEAD_01; case Fish.Species.SOCKEYE_SALMON: case Fish.Species.SOCKEYE_SALMON_B: return AchievementId.FISH_SOCKEYE_SALMON_01; case Fish.Species.SPOTTED_SEATROUT: return AchievementId.FISH_SPOTTED_SEATROUT_01; case Fish.Species.TENCH: case Fish.Species.TENCH_B: return AchievementId.FISH_TENCH_01; case Fish.Species.WAKASAGI: return AchievementId.FISH_WAKASAGI_01; case Fish.Species.WELS_CATFISH: return AchievementId.FISH_WELS_CATFISH_01; case Fish.Species.BEAKED_CORAL_FISH: return AchievementId.FISH_BEAKED_CORAL_FISH_01; case Fish.Species.BLACKTIP_REEF_SHARK: return AchievementId.FISH_BLACKTIP_REEF_SHARK_01; case Fish.Species.COMMON_LIONFISH: return AchievementId.FISH_COMMON_LIONFISH_01; case Fish.Species.CROCODILE_NEEDLEFISH: return AchievementId.FISH_CROCODILE_NEEDLEFISH_01; case Fish.Species.GIANT_GROUPER: return AchievementId.FISH_GIANT_GROUPER_01; case Fish.Species.GREAT_BARRACUDA: return AchievementId.FISH_GREAT_BARRACUDA_01; case Fish.Species.GREYFACE_MORAY_EEL: return AchievementId.FISH_GREYFACE_MORAY_EEL_01; case Fish.Species.GREY_SNAPER: return AchievementId.FISH_GREY_SNAPER_01; case Fish.Species.INDIAN_THREADFISH: return AchievementId.FISH_INDIAN_THREADFISH_01; case Fish.Species.LONGFIN_BANNERFISH: return AchievementId.FISH_LONGFIN_BANNERFISH_01; case Fish.Species.MALABAR_GROUPER: return AchievementId.FISH_MALABAR_GROUPER_01; case Fish.Species.YELLOWTAIL_BARRACUDA: return AchievementId.FISH_YELLOWTAIL_BARRACUDA_01; case Fish.Species.ASP: return AchievementId.FISH_ASP_01; case Fish.Species.BLACK_GRAYLING: return AchievementId.FISH_BLACK_GRAYLING_01; case Fish.Species.BLEAK: return AchievementId.FISH_BLEAK_01; case Fish.Species.BURBOT: return AchievementId.FISH_BURBOT_01; case Fish.Species.FLATHEAD_CATFISH: return AchievementId.FISH_FLATHEAD_CATFISH_01; case Fish.Species.GIANT_TRAVELLY: return AchievementId.FISH_GIANT_TRAVELLY_01; case Fish.Species.IDE: return AchievementId.FISH_IDE_01; case Fish.Species.PUMPKINSEED: return AchievementId.FISH_PUMPKINSEED_01; case Fish.Species.ROACH: return AchievementId.FISH_ROACH_01; case Fish.Species.SAILFISH: return AchievementId.FISH_SAILFISH_01; case Fish.Species.SEA_BREAM: return AchievementId.FISH_SEA_BREAM_01; case Fish.Species.SILVER_BREAM: return AchievementId.FISH_SILVER_BREAM_01; case Fish.Species.SILVER_CARP: return AchievementId.FISH_SILVER_CARP_01; case Fish.Species.WHITE_CRAPPIE: return AchievementId.FISH_WHITE_CRAPPIE_01; case Fish.Species.WHITE_GRAYLING: return AchievementId.FISH_WHITE_GRAYLING_01; case Fish.Species.YELLOWFIN_TUNA: return AchievementId.FISH_YELLOWFIN_TUNA_01; case Fish.Species.RUDD: return AchievementId.FISH_RUDD_01; case Fish.Species.FLATHEAD_GREY_MULLET: return AchievementId.FISH_FLATHEAD_GREY_MULLET_01; case Fish.Species.GIANT_KOKOPU: return AchievementId.FISH_GIANT_KOKOPU_01; case Fish.Species.BROWN_BULLHEAD_CATFISH: return AchievementId.FISH_BROWN_BULLHEAD_CATFISH_01; case Fish.Species.LONGFIN_EEL: return AchievementId.FISH_LONGFIN_EEL_01; case Fish.Species.CHINOOK_SALMON: return AchievementId.FISH_CHINOOK_SALMON_01; default: return AchievementId.UNKNOWN; } } public void Save() { if ((bool)GlobalSettings.Instance) { string currentProfilePrefix = GlobalSettings.Instance.saveManager.GetCurrentProfilePrefix(); for (int i = 0; i < achievements.Count; i++) { ObscuredPrefs.SetBool(currentProfilePrefix + "achievement_completed_" + i, achievements[i].isCompleted); ObscuredPrefs.SetInt(currentProfilePrefix + "achievement_progress_" + i, achievements[i].progressCurrent); } } } public void Load() { if ((bool)GlobalSettings.Instance) { string currentProfilePrefix = GlobalSettings.Instance.saveManager.GetCurrentProfilePrefix(); for (int i = 0; i < achievements.Count; i++) { achievements[i].isCompleted = ObscuredPrefs.GetBool(currentProfilePrefix + "achievement_completed_" + i, false); achievements[i].progressCurrent = ObscuredPrefs.GetInt(currentProfilePrefix + "achievement_progress_" + i, 0); } SetPlayersLevelProgress(GlobalSettings.Instance.playerSettings.playersLevel); SetFishAmountProgress(GlobalSettings.Instance.fishManager.GetTotalFishCount()); } } public void Reset() { for (int i = 0; i < achievements.Count; i++) { achievements[i].ResetAchievement(); } Save(); } }