using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; using static BulletHellTemplate.PlayerSave; namespace BulletHellTemplate { public class BackendManager : MonoBehaviour { public static BackendManager Singleton; private static bool isInitialized; private void Awake() { if (Singleton == null) { Singleton = this; } else { Destroy(gameObject); return; } DontDestroyOnLoad(gameObject); } public void SetInitialized() { isInitialized = true; } public bool CheckInitialized() { return isInitialized; } public async Task SavePurchasedItemsAsync() { await FirebaseSave.Singleton.SavePurchasedItemsAsync(); } public async Task SaveCharacterUpgradesAsync(string characterId, Dictionary upgrades) { await FirebaseSave.Singleton.SaveCharacterUpgradesAsync(characterId, upgrades); } public async Task UpdateSelectedCharacter(int characterId) { await FirebaseSave.Singleton.UpdateSelectedCharacter(characterId); } public async Task SavePlayerCharacterFavouriteAsync(int characterId) { await FirebaseSave.Singleton.SavePlayerCharacterFavouriteAsync(characterId); } public async Task SaveCharacterUnlockedSkinsAsync(string characterId, List unlockedSkins) { await FirebaseSave.Singleton.SaveCharacterUnlockedSkinsAsync(characterId, unlockedSkins); } public async Task UpdatePlayerIcon(string newIconId) { await FirebaseSave.Singleton.UpdatePlayerIcon(newIconId); } public async Task UpdatePlayerFrame(string newFrameId) { await FirebaseSave.Singleton.UpdatePlayerFrame(newFrameId); } public async Task UpdateCurrencies(string currencyId, int newAmount) { await FirebaseSave.Singleton.UpdateCurrencies(currencyId, newAmount); } public Task CheckIfNameExists(string playerName) { return FirebaseSave.Singleton.CheckIfNameExists(playerName); } public Task UpdatePlayerName(string newName) { return FirebaseSave.Singleton.UpdatePlayerName(newName); } public async Task UpdatePlayerAccountLevel(int level, int currentExp) { await FirebaseSave.Singleton.UpdatePlayerAccountLevel(level, currentExp); } public async Task SaveUnlockedMapsAsync() { await FirebaseSave.Singleton.SaveUnlockedMapsAsync(); } public async Task SaveUsedCouponAsync(string couponId) { await FirebaseSave.Singleton.SaveUsedCouponAsync(couponId); } public async Task SaveQuestProgressAsync(int questId, int progress) { await FirebaseSave.Singleton.SaveQuestProgressAsync(questId, progress); } public async Task SaveQuestCompletionAsync(int questId) { await FirebaseSave.Singleton.SaveQuestCompletionAsync(questId); } public async Task SaveMonstersKilledAsync(int monstersKilled) { await FirebaseSave.Singleton.SaveMonstersKilledAsync(monstersKilled); } public async Task ResetBattlePassProgressAsync() { await FirebaseManager.Singleton.ResetBattlePassProgressAsync(); } public async Task SaveClaimedRewardAsync(string passItemId) { await FirebaseSave.Singleton.SaveClaimedRewardAsync(passItemId); } public async Task SaveBattlePassProgressAsync(int currentXP, int currentLevel, bool isUnlocked) { await FirebaseSave.Singleton.SaveBattlePassProgressAsync(currentXP, currentLevel, isUnlocked); } public async Task LoadBattlePassProgressAsync() { await FirebaseManager.Singleton.LoadBattlePassProgressAsync(); } public Task GetCurrentSeasonAsync() { return FirebaseManager.Singleton.GetCurrentSeasonAsync(); } public Task>> GetTopPlayersAsync() { return FirebaseManager.Singleton.GetTopPlayersAsync(); } public Task GetPlayerRankAsync() { return FirebaseManager.Singleton.GetPlayerRankAsync(); } public async Task SaveCharacterBasicInfoAsync(int characterId, int skinIndex, int level, int currentExp, int masteryLevel, int masteryExp) { await FirebaseSave.Singleton.SaveCharacterBasicInfoAsync(characterId,skinIndex,level,currentExp,masteryLevel,masteryExp); } public async Task SaveCharacterItemAsync(int characterId, string uniqueItemGuid, string slotName, string itemId, int itemLevel) { await FirebaseSave.Singleton.SaveCharacterItemAsync(characterId,uniqueItemGuid,slotName,itemId,itemLevel); } public async Task RemoveCharacterItemAsync(int characterId, string slotName, string uniqueItemGuid) { await FirebaseSave.Singleton.RemoveCharacterItemAsync(characterId,slotName,uniqueItemGuid); } public async Task SavePurchasedInventoryItemAsync(PurchasedInventoryItem purchasedItem) { await FirebaseSave.Singleton.SavePurchasedInventoryItemAsync(purchasedItem); } public async Task DeletePurchasedInventoryItemAsync(string uniqueItemGuid) { await FirebaseSave.Singleton.DeletePurchasedInventoryItemAsync(uniqueItemGuid); } public async Task SaveDailyRewardsDataAsync(DailyRewardsData data) { await FirebaseSave.Singleton.SaveDailyRewardsDataAsync(data); } public async Task SaveNewPlayerRewardsDataAsync(NewPlayerRewardsData data) { await FirebaseSave.Singleton.SaveNewPlayerRewardsDataAsync(data); } } }