using System.Collections; using System.Collections.Generic; using UnityEngine; using Steamworks; using Assets.Scripts; using Assets.Scripts.Player; public class SteamWorksHandler : MonoBehaviour { /* Steam Achievements * FORMAT = Requirement: Message * (Currently dropped) Playing for 5 hours: Got nothing else to do? * (Currently dropped) Playing for 10 hours: Look at THAT sunset! * (Currently dropped) Playing for 20 hours: You want coffee to your bagel? * (Currently dropped) Playing for 40 hours: I guess I have a true fan here * (Currently dropped) Playing for 80 hours: You should consider going outside */ static int counterForest = 0; public static void getForestAchievement(string tiletype) { if (counterForest != -1 && !isGodMode()) { if (tiletype.ToLower() == "forest") { counterForest++; } else { counterForest = 0; } if (counterForest >= 5) { if (SteamManager.Initialized) { SteamUserStats.SetAchievement("ForestAchievement"); SteamUserStats.StoreStats(); } counterForest = -1; } } } public static void getFirstPlayAchievement() { if (SteamManager.Initialized) { bool hasAchievement; bool success = SteamUserStats.GetAchievement("StartAchievement", out hasAchievement); if (success && !hasAchievement) { SteamUserStats.SetAchievement("StartAchievement"); SteamUserStats.StoreStats(); } } } public static void getCharacterCreationAchievement() { if (SteamManager.Initialized) { bool hasAchievement; bool success = SteamUserStats.GetAchievement("CharAchievement", out hasAchievement); if (success && !hasAchievement) { SteamUserStats.SetAchievement("CharAchievement"); SteamUserStats.StoreStats(); } } } public static void getStandardAchievement(string name) { if (!isGodMode()) { if (SteamManager.Initialized) { bool hasAchievement; bool success = SteamUserStats.GetAchievement(name, out hasAchievement); if (success && !hasAchievement) { SteamUserStats.SetAchievement(name); SteamUserStats.StoreStats(); } } } } public static void getGodModeAchievement() { if (SteamManager.Initialized) { bool hasAchievement; bool success = SteamUserStats.GetAchievement("GodAchievement", out hasAchievement); if (success && !hasAchievement) { SteamUserStats.SetAchievement("GodAchievement"); SteamUserStats.StoreStats(); } } } public static void getSlimeAchievement(int killcount) { string name = ""; switch (killcount) { case 1: name = "Kill1Slime"; break; case 10: name = "Kill10Slime"; break; case 50: name = "Kill50Slime"; break; case 100: name = "Kill100Slime"; break; case 500: name = "Kill500Slime"; break; case 1000: name = "Kill1000Slime"; break; } if (!isGodMode()) { if (SteamManager.Initialized) { bool hasAchievement; bool success = SteamUserStats.GetAchievement(name, out hasAchievement); if (success && !hasAchievement) { SteamUserStats.SetAchievement(name); SteamUserStats.StoreStats(); } } } } private static bool isGodMode() { return EasterEggHandler.isGodMode(GameObject.Find("Player").GetComponent().getPlayer()); } public static void getItemAchievement(Item item) { if (SteamManager.Initialized) { if (!isGodMode()) { bool hasAchievement; bool success = SteamUserStats.GetAchievement("ItemAchievement", out hasAchievement); if (success && !hasAchievement) { SteamUserStats.SetAchievement("ItemAchievement"); SteamUserStats.StoreStats(); } string name = ""; switch (item.getRarity()) { case ItemRarity.COMMON: name = "CommonAchievement"; break; case ItemRarity.RARE: name = "RareAchievement"; break; case ItemRarity.EPIC: name = "EpicAchievement"; break; case ItemRarity.LEGENDARY: name = "LegendaryAchievement"; break; } success = SteamUserStats.GetAchievement(name, out hasAchievement); if (success && !hasAchievement) { SteamUserStats.SetAchievement(name); SteamUserStats.StoreStats(); } } } } }