public SaveGame() { // Initialize variables pawnWallet = new PawnWallet(); hasPlayerViewedDict = new Dictionary <string, bool>(); timers = new Dictionary <string, float>(); wallet = new Wallet(); // high scores are all 0 by default ClearHighScores(); }
// ========== // Pawn Fusion Logic // ========== public void FusePawns() { GameManager gm = GameManager.instance; PawnWallet pawnWallet = GameManager.instance.saveGame.pawnWallet; if (numSelected != 2) { gm.DisplayAlert("You must select 2 heroes!"); return; } Pawn pawn1 = selectedIcons[0].GetComponent <PawnIcon>().pawnData; Pawn pawn2 = selectedIcons[1].GetComponent <PawnIcon>().pawnData; Debug.Log("Pawn1:" + pawn1 + "\nPawn2:" + pawn2); if (CheckCanFusePawns(pawn1, pawn2)) { // Add the pawns to the save file Pawn pawn = GetFusedPawn(pawn1, pawn2); pawnWallet.RemovePawn(pawn1.id); pawnWallet.RemovePawn(pawn2.id); pawnWallet.AddPawn(pawn, true, 100); gm.AddPawnTimer(pawn.id); // Spend resources bool spentMoney = gm.wallet.TrySpendMoney(GetFusionCost(pawn1, pawn2)); bool spentSouls = gm.wallet.TrySpendSouls(GetFusionSoulsCost(pawn1, pawn2)); UnityEngine.Assertions.Assert.IsTrue(spentMoney && spentSouls); // Save Game SaveLoad.Save(); // Update UI fuseMatIcon1.gameObject.SetActive(false); fuseMatIcon1.pawnData = null; fuseMatIcon2.gameObject.SetActive(false); fuseMatIcon2.pawnData = null; resultIcon.gameObject.SetActive(true); resultIcon.Init(pawn); } UpdateCostText(); }