Example #1
0
 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();
 }
Example #2
0
    // ==========
    // 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();
    }