Files
TalesOfNovariel/Assets/Scripts/Handler/SteamWorksHandler.cs
2026-01-25 12:49:13 +01:00

187 lines
5.6 KiB
C#

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<PlayerGameObject>().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();
}
}
}
}
}