public void HasToughness()      // is runned if you have toughnees and checks if it as a toughness card to update, or if it has to make one.
    {
        bool toughnessIsInPlay = false;
        int  toughnessPlace    = 0;

        for (int i = 0; i < currentEquipmentArmor.Count; i++)
        {
            GameObject          card       = currentEquipmentArmor[i];
            Sc_DefenceEquipment cardScript = card.GetComponent <Sc_DefenceEquipment>();
            if (cardScript.id == -10)
            {
                toughnessIsInPlay = true;
                toughnessPlace    = i;
            }
        }
        if (toughnessIsInPlay == true)
        {
            GameObject          card       = currentEquipmentArmor[toughnessPlace];
            Sc_DefenceEquipment cardScript = card.GetComponent <Sc_DefenceEquipment>();
            currentTotalDefence += currentToughness - cardScript.defence;
            cardScript.UpdateToughness();
        }
        else
        {
            GameObject          newEquipment = (GameObject)Instantiate(armor, transform.position, transform.rotation);
            Sc_DefenceEquipment CardScript   = newEquipment.GetComponent <Sc_DefenceEquipment>();
            CardScript.id        = -10;
            currentTotalDefence += currentToughness;
            CardScript.UpdateToughness();
        }
        defenceText.text = "" + currentTotalDefence;
    }
    public void Defence(int id, int defence, int spiked)
    {
        currentTotalDefence += defence;
        GameObject          newEquipment  = (GameObject)Instantiate(armor, transform.position, transform.rotation);
        Sc_DefenceEquipment newCardScript = newEquipment.GetComponent <Sc_DefenceEquipment>();

        newCardScript.id = id;
        defenceText.text = "" + currentTotalDefence;
        currentEquimentDamage.Add(defence);
    }
Beispiel #3
0
    public void SaveGameData()
    {
        saveData.isNewGame = false;

        if (scene.name == "Battle")
        {
            saveData.currentDeckSave      = battleManager.currentDeck;
            saveData.currentDiscardSave   = battleManager.currentDiscard;
            saveData.currentBanishedSave  = battleManager.currentBanished;
            saveData.currentStageSave     = battleManager.currentStage;
            saveData.currentApUsedSave    = battleManager.currentApUsed;
            saveData.currentUtilityAPSave = battleManager.currentUtilityAP;
            saveData.currentApMaxSave     = battleManager.currentApMax;
            saveData.currentMonsterSave   = battleManager.monster.monsterID;
            print("Monster id is " + battleManager.monster.monsterID);


            saveData.currentHandObjectsSave.Clear();
            for (int i = 0; i < Sc_BattleManager.currentHandObjects.Count; i++)
            {
                cardInHand = Sc_BattleManager.currentHandObjects[i].GetComponent <Sc_Card>();
                Debug.Log(cardInHand.cardID);
                saveData.currentHandObjectsSave.Add(cardInHand.cardID);
            }

            saveData.currentEquipmentArmorSave.Clear();
            for (int i = 0; i < battleManager.currentEquipmentArmor.Count; i++)
            {
                armorEquipmentSave = battleManager.currentEquipmentArmor[i].GetComponent <Sc_DefenceEquipment>();
                Debug.Log(armorEquipmentSave.id);
                saveData.currentEquipmentArmorSave.Add(armorEquipmentSave.id);
            }
            saveData.currentEquipmentMeleeSave.Clear();
            for (int i = 0; i < battleManager.currentEquipmentMelee.Count; i++)
            {
                meleeEquipmentSave = battleManager.currentEquipmentMelee[i].GetComponent <Sc_MeleeEquipment>();
                Debug.Log(meleeEquipmentSave.id);
                saveData.currentEquipmentMeleeSave.Add(meleeEquipmentSave.id);
            }

            saveData.currentEffectsSave.Clear();
            for (int i = 0; i < battleManager.currentEffects.Count; i++)
            {
                effectSave = battleManager.currentEffects[i];
                Debug.Log(effectSave);
                saveData.currentEffectsSave.Add(effectSave);
            }
        }

        if (scene.name == "Navigation" || scene.name == "Battle")
        {
            saveData.eventsDoneSave  = gameManager.eventsDone;
            saveData.monsterDoneSave = gameManager.monsterDone;
            saveData.fullDeckSave    = gameManager.fullDeck;


            saveData.slayCountSave = gameManager.slayCount;
            saveData.lostCardsSave = gameManager.lostCards;
        }
        if (scene.name == "Navigation")
        {
            saveData.firstEventSave   = navManager.firstEvent;
            saveData.currentEventSave = gameManager.currentEvent;
        }

        SaveDataWrapper wrapper = new SaveDataWrapper();

        wrapper.saveData = saveData;
        string contents = JsonUtility.ToJson(wrapper, true);

        System.IO.File.WriteAllText(path, contents);
    }
 public void TakeDamage(int damage, int type)   // type blunt = 0 normal = 1 piercing = 2
 {
     for (int i = 0; i < damage; i++)           // run though ones for every damage taken
     {
         int damageDealt = 0;
         if (type == 0 || type == 1)
         {
             if (currentTotalDefence > 0)
             {
                 currentTotalDefence -= 1;
                 damageDealt          = 1;
                 defenceText.text     = "" + currentTotalDefence;
                 if (currentEquipmentArmor.Count > 0)
                 {
                     Sc_DefenceEquipment ArmorScript = currentEquipmentArmor[0].GetComponent <Sc_DefenceEquipment>();
                     ArmorScript.defence -= 1;
                     ArmorScript.UpdateText();
                     if (ArmorScript.defence <= 0)
                     {
                         // Sc_DefenceEquipment defenceScript = currentEquipmentArmor[i].GetComponent<Sc_DefenceEquipment>();
                         ArmorScript.moveToDiscard = true;
                         // Destroy(currentEquipmentArmor[0]);
                         currentEquipmentArmor.RemoveAt(0);
                         GameObject[] _armor = GameObject.FindGameObjectsWithTag("Armor");
                         for (int j = 0; j < _armor.Length; j++)
                         {
                             Sc_DefenceEquipment otherScript = _armor[j].GetComponent <Sc_DefenceEquipment>();
                             otherScript.placementInEquipent -= 1;
                         }
                     }
                 }
             }
         }
         if (type == 1 && damageDealt == 0 || type == 2)
         {
             if (currentDeck.Count > 0)                  // check if there are still cards in the deck
             {
                 currentBanished.Add(currentDeck[0]);
                 // if banished pile is > 0 then make banishpile visable
                 // make discard pile sprite be last discarded card
                 currentDeck.RemoveAt(0);
             }
             else if (currentDiscard.Count > 0)                    // Check if there are cards in discard pile.
             {
                 PrintLog("Dicard pile is being shuffled into deck", "black");
                 for (int j = 0; j < currentDiscard.Count; j++)
                 {
                     currentDeck.Add(currentDiscard[j]);
                 }
                 ShuffleDeck();
                 currentDiscard.Clear();
                 currentBanished.Add(currentDeck[0]);
                 // if banished pile is > 0 then make banishpile visable
                 // make discard pile sprite be last discarded card
                 currentDeck.RemoveAt(0);
             }
             else if (currentHandObjects.Count > 0)
             {
                 int targetCard = Random.Range(0, currentHandObjects.Count);
                 Destroy(currentHandObjects[targetCard]);
                 currentHandObjects.RemoveAt(targetCard);
                 GameObject[] _cards = GameObject.FindGameObjectsWithTag("Card");
                 for (int j = 0; j < _cards.Length; j++)
                 {
                     Sc_Card otherScript = _cards[j].GetComponent <Sc_Card>();
                     if (otherScript.placementInHand > targetCard + 1)
                     {
                         otherScript.placementInHand -= 1;
                     }
                     // if banished pile is > 0 then make banishpile visable
                     // make discard pile sprite be last discarded card
                 }
             }
             else
             {
                 PrintLog("you lost", "red");
                 playerLost();
             }
         }
     }
 }