MayHeCome/Assets/Scripts/GlobalBuffSystem.cs
2024-12-18 17:55:34 +08:00

60 lines
1.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class GlobalBuffSystem : Singleton<GlobalBuffSystem>, ISavable
{
public int ClickAdder = 0;
public float ClickTimeMultiplier = 1f;
public float ClickMultiplier = 1f;
public float globalMultiplier = 1f;
public float GlobalMultiplier
{
get => globalMultiplier;
set
{
globalMultiplier = value;
print($"Global Multiplier: {value}");
}
}
public List<BuffElement> GlobalBuffs = new();
public void Update()
{
GlobalBuffs.ForEach(g=>g.OnBeforeComputing());
}
public void LateUpdate()
{
GlobalBuffs.ForEach(g=>g.OnAfterComputing());
}
public string GetPath()
{
return this.GetPath();
}
public void LoadData(Dictionary<string, string> saveData)
{
ClickAdder = int.Parse(saveData.GetValueOrDefault("ClickAdder", "0"));
ClickTimeMultiplier = float.Parse(saveData.GetValueOrDefault("ClickTimeMultiplier", "1"));
ClickMultiplier = float.Parse(saveData.GetValueOrDefault("ClickMultiplier", "1"));
GlobalMultiplier = float.Parse(saveData.GetValueOrDefault("GlobalMultiplier", "1"));
}
public Dictionary<string, string> SaveData()
{
return new Dictionary<string, string>()
{
["ClickAdder"] = ClickAdder.ToString(),
["ClickTimeMultiplier"] = ClickTimeMultiplier.ToString(),
["ClickMultiplier"] = ClickMultiplier.ToString(),
["GlobalMultiplier"] = GlobalMultiplier.ToString(),
};
}
}