예제 #1
0
 void Start()
 {
     displayItem   = GetComponent <DisplayItem>();
     artifacts     = GameObject.Find("PlayerShip").GetComponent <Artifacts>();
     playerScript  = GameObject.Find("PlayerShip").GetComponent <PlayerScript>();
     artifactBonus = GetComponent <ArtifactBonus>();
 }
예제 #2
0
 public void OnPointerEnter(PointerEventData eventData)
 {
     if (displayInfo != null)
     {
         if (!displayInfo.isArtifact)
         {
             PlayerProperties.toolTip.SetTextAndPosition(displayInfo.GetComponent <Text>().text, transform.position);
         }
         else
         {
             ArtifactBonus artifactBonus = displayInfo.GetComponent <ArtifactBonus>();
             PlayerProperties.artifactToolTip.SetTextAndPosition(
                 artifactBonus.artifactName,
                 artifactBonus.descriptionText.text,
                 artifactBonus.effectText == null ? "" : artifactBonus.effectText.text,
                 artifactBonus.attackBonus,
                 artifactBonus.speedBonus,
                 artifactBonus.healthBonus,
                 artifactBonus.defenseBonus,
                 artifactBonus.periodicHealing,
                 displayInfo.hasActive,
                 displayInfo.soulBound,
                 artifactBonus.killRequirement,
                 artifactBonus.whatRarity,
                 transform.position);
         }
     }
 }
예제 #3
0
 void Start()
 {
     displayItem    = GetComponent <DisplayItem>();
     artifacts      = GameObject.Find("PlayerShip").GetComponent <Artifacts>();
     playerScript   = GameObject.Find("PlayerShip").GetComponent <PlayerScript>();
     artifactBonus  = GetComponent <ArtifactBonus>();
     oniAuraInstant = Instantiate(oniAura, playerScript.transform.position, Quaternion.identity);
     oniAura.GetComponent <FollowObject>().objectToFollow = playerScript.gameObject;
     oniAuraInstant.SetActive(false);
 }
예제 #4
0
 public void Initialize(GameObject artifact, ArticraftingConfirmationModal modal, ArticraftingCraftingMenu menu)
 {
     targetArtifact           = artifact;
     artifactBonus            = artifact.GetComponent <ArtifactBonus>();
     artifactText             = artifact.GetComponent <Text>();
     artifactDisplayItem      = artifact.GetComponent <DisplayItem>();
     tileImage.sprite         = artifactDisplayItem.displayIcon;
     tileImage.preserveAspect = true;
     toolTip      = PlayerProperties.playerInventory.toolTip;
     confirmModal = modal;
     UpdatePrice();
     this.craftingMenu = menu;
 }
예제 #5
0
    public void DisenchantArtifact()
    {
        if (targetDisplayItem != null)
        {
            disenchantAudio.Play();
            StartCoroutine(playFigureAnimation());
            ArtifactBonus artifactBonus = targetDisplayItem.GetComponent <ArtifactBonus>();
            int           price         = determinePrice(artifactBonus.whatRarity, artifactBonus.whatDungeonArtifact);
            PlayerUpgrades.numberArtifragments += price;
            Destroy(targetDisplayItem);
            targetDisplayItem = null;
            UpdateUI();
            StartCoroutine(textClimb(price));

            SaveSystem.SaveGame();
        }
    }
예제 #6
0
 void spawnSellingItems()
 {
     foreach (GameObject item in sellingItemsList)
     {
         GameObject newItem = Instantiate(item);
         newItem.transform.parent = GameObject.Find("PresentItems").transform;
         sellingItems.Add(newItem);
         if (priceMultiplier == 0)
         {
             sellingItemsPrices.Add(newItem.GetComponent <ConsumableBonus>().priceBase + Random.Range(0, 3) * 50);
         }
         else
         {
             ArtifactBonus artifactBonus = newItem.GetComponent <ArtifactBonus>();
             sellingItemsPrices.Add(priceMultiplier * Random.Range(3, 9) + artifactBonus.whatRarity * 800 + (artifactBonus.whatDungeonArtifact - 1) * 800);
         }
     }
 }
예제 #7
0
 void UpdateUI()
 {
     artifragmentsText.text = PlayerUpgrades.numberArtifragments.ToString();
     if (targetDisplayItem == null)
     {
         artifactIcon.enabled        = false;
         fragmentsReceivedText.color = new Color(0, 1, 0.9717827f, 0);
         fragmentsTextActive         = false;
     }
     else
     {
         artifactIcon.enabled = true;
         artifactIcon.sprite  = targetDisplayItem.displayIcon;
         ArtifactBonus artifactBonus = targetDisplayItem.GetComponent <ArtifactBonus>();
         fragmentsReceivedText.text  = determinePrice(artifactBonus.whatRarity, artifactBonus.whatDungeonArtifact).ToString() + " Fragments";
         fragmentsTextActive         = true;
         fragmentsReceivedText.color = variedColor;
     }
 }
예제 #8
0
 public void enterToolTip()
 {
     if (displayInfo != null)
     {
         if (displayInfo.isArtifact)
         {
             ArtifactBonus artifactBonus = displayInfo.GetComponent <ArtifactBonus>();
             PlayerProperties.artifactToolTip.SetTextAndPosition(
                 artifactBonus.artifactName,
                 artifactBonus.descriptionText.text,
                 artifactBonus.effectText == null ? "" : artifactBonus.effectText.text,
                 artifactBonus.attackBonus,
                 artifactBonus.speedBonus,
                 artifactBonus.healthBonus,
                 artifactBonus.defenseBonus,
                 artifactBonus.periodicHealing,
                 displayInfo.hasActive,
                 displayInfo.soulBound,
                 artifactBonus.killRequirement,
                 artifactBonus.whatRarity,
                 transform.position);
         }
         else if (displayInfo.isConsumable)
         {
             ConsumableBonus consumableBonus = displayInfo.GetComponent <ConsumableBonus>();
             PlayerProperties.consumableToolTip.SetTextAndPosition(
                 consumableBonus.consumableName,
                 consumableBonus.loreText.text,
                 consumableBonus.effectText == null ? "" : consumableBonus.effectText.text,
                 consumableBonus.attackBonus,
                 consumableBonus.speedBonus,
                 consumableBonus.defenseBonus,
                 consumableBonus.restoredHealth,
                 consumableBonus.duration,
                 transform.position);
         }
         else
         {
             PlayerProperties.toolTip.SetTextAndPosition(displayInfo.GetComponent <Text>().text, transform.position);
         }
     }
 }
예제 #9
0
    public void UpdateStats()
    {
        float speedBonus          = 0;
        float defenseBonus        = 0;
        int   attackBonus         = 0;
        int   healthBonus         = 0;
        int   periodicHealing     = 0;
        int   bonusArtifactChance = 0;
        int   bonusGold           = 0;

        for (int i = 0; i < activeArtifacts.Count; i++)
        {
            ArtifactBonus artifactBonus = activeArtifacts[i].GetComponent <ArtifactBonus>();
            speedBonus          += artifactBonus.speedBonus;
            defenseBonus        += artifactBonus.defenseBonus;
            attackBonus         += artifactBonus.attackBonus;
            healthBonus         += artifactBonus.healthBonus;
            periodicHealing     += artifactBonus.periodicHealing;
            bonusArtifactChance += artifactBonus.artifactChanceBonus;
            bonusGold           += bonusArtifactChance += artifactBonus.goldBonus;
        }

        PlayerScript playerScript = PlayerProperties.playerScript;

        playerScript.healthBonus     = healthBonus;
        playerScript.defenseBonus    = defenseBonus;
        playerScript.attackBonus     = attackBonus;
        playerScript.speedBonus      = speedBonus;
        playerScript.periodicHealing = periodicHealing;
        Chest.bonusArtifactChance    = bonusArtifactChance;
        Chest.bonusGold = bonusGold;

        foreach (GameObject artifact in activeArtifacts)
        {
            artifact.GetComponent <ArtifactEffect>()?.updatedArtifactStats();
        }

        playerScript.CheckAndUpdateHealth();
    }
예제 #10
0
    public void UpdateUI()
    {
        PlayerItems.inventoryItemsIDs.Clear();
        PlayerItems.totalGoldAmount = tallyGold();
        int totalGoldAmount = PlayerItems.totalGoldAmount;

        List <GameObject> itemsToRemove = new List <GameObject>();

        foreach (GameObject item in itemList)
        {
            DisplayItem itemDisplay = item.GetComponent <DisplayItem>();
            if (itemDisplay.goldValue > 0)
            {
                if (totalGoldAmount > 0)
                {
                    if (totalGoldAmount > 1000)
                    {
                        totalGoldAmount      -= 1000;
                        itemDisplay.goldValue = 1000;
                    }
                    else
                    {
                        itemDisplay.goldValue = totalGoldAmount;
                        totalGoldAmount       = 0;
                    }
                }
                else
                {
                    itemsToRemove.Add(item);
                }
            }

            if (itemDisplay.isArtifact)
            {
                ArtifactBonus artifactBonus = item.GetComponent <ArtifactBonus>();
                if (!PlayerItems.pastArtifacts.ContainsKey(artifactBonus.whatDungeonArtifact))
                {
                    PlayerItems.pastArtifacts.Add(artifactBonus.whatDungeonArtifact, new List <string>());
                }

                if (!PlayerItems.pastArtifacts[artifactBonus.whatDungeonArtifact].Contains(item.name.Replace("(Clone)", "").Trim()))
                {
                    PlayerItems.pastArtifacts[artifactBonus.whatDungeonArtifact].Add(item.name.Replace("(Clone)", "").Trim());
                }
            }
        }

        foreach (GameObject item in itemsToRemove)
        {
            itemList.Remove(item);
            Destroy(item);
        }

        if (itemList.Count > 0)
        {
            for (int i = 0; i < inventorySize; i++)
            {
                if (i < itemList.Count)
                {
                    inventorySlots[i].addSlot(itemList[i].GetComponent <DisplayItem>());
                    PlayerItems.inventoryItemsIDs.Add(itemList[i].name);
                }
                else
                {
                    inventorySlots[i].deleteSlot();
                }
                inventorySlots[i].unlockSlot();
            }

            for (int i = inventorySize; i < 25; i++)
            {
                inventorySlots[i].deleteSlot();
                inventorySlots[i].lockSlot();
            }
        }
        else
        {
            for (int i = 0; i < inventorySize; i++)
            {
                inventorySlots[i].deleteSlot(); // error handling
                inventorySlots[i].unlockSlot();
            }

            for (int i = inventorySize; i < 25; i++)
            {
                inventorySlots[i].lockSlot();
            }
        }

        foreach (ArtifactSlot slot in FindObjectOfType <Artifacts>().artifactSlots)
        {
            if (slot.displayInfo != null && slot.displayInfo.GetComponent <ArtifactEffect>())
            {
                slot.displayInfo.GetComponent <ArtifactEffect>().updatedInventory();
            }
        }
        SaveSystem.SaveGame();
    }