Exemple #1
0
    void OnClickRarityButton(int index)
    {
        currentRarity = (Item.Rarity)index;

        Button previouslySelectedRarityButton = selectedRarityButton;
        Text   previouslySelectedRarityText   = selectedRarityText;

        selectedRarityButton = rarityButtons[index];
        selectedRarityText   = rarityButtonsText[index];

        ColorBlock unselectedColors = selectedRarityButton.colors;

        unselectedColors.normalColor          = Color.white;
        unselectedColors.highlightedColor     = Color.gray;
        previouslySelectedRarityButton.colors = unselectedColors;
        previouslySelectedRarityText.color    = Color.black;

        ColorBlock selectedColors = selectedRarityButton.colors;

        selectedColors.normalColor      = Color.black;
        selectedColors.highlightedColor = Color.black;
        selectedRarityButton.colors     = selectedColors;
        selectedRarityText.color        = Color.white;

        RepopulateItems();

        craftDialog.SetActive(false);
        scavengeOnlyDialog.SetActive(false);
    }
Exemple #2
0
    void CheckForNextRarity()
    {
        int index = (int)(Vector3.Distance(startPos, rarityBar.localPosition) / rarityImage.sizeDelta.x);

        Item.Rarity r = (Item.Rarity)index;
        rarityText.text = r.ToString();
    }
 private void SetHighestRarity(Item.Rarity _rarity)
 {
     if (_rarity >= highestRarity)
     {
         highestRarity = _rarity;
     }
 }
Exemple #4
0
    public override Weapon Create(Weapon.WeaponType weaponType, GameObject gameObject)
    {
        Item.Rarity   rarity  = GenerateRarity();
        Item.Keywords keyword = GenerateKeyword();
        Weapon        weapon  = gameObject.GetComponent <Weapon>();

        switch (weaponType)
        {
        case Weapon.WeaponType.SWORD:
            weapon.Init(Weapon.WeaponType.SWORD, rarity, GenerateWeaponSprite(ItemSprites.swordSprites, rarity), rarity + " " + keyword + " Sword");
            return(weapon);

        case Weapon.WeaponType.MACE:
            weapon.Init(Weapon.WeaponType.MACE, rarity, GenerateWeaponSprite(ItemSprites.maceSprites, rarity), rarity + " " + keyword + " Mace");
            return(weapon);

        case Weapon.WeaponType.BOW:
            weapon.Init(Weapon.WeaponType.BOW, rarity, GenerateWeaponSprite(ItemSprites.bowSprites, rarity), rarity + " " + keyword + " Bow");
            return(weapon);

        case Weapon.WeaponType.AXE:
            weapon.Init(Weapon.WeaponType.AXE, rarity, GenerateWeaponSprite(ItemSprites.axeSprites, rarity), rarity + " " + keyword + " Axe");
            return(weapon);

        case Weapon.WeaponType.SPEAR:
            weapon.Init(Weapon.WeaponType.SPEAR, rarity, GenerateWeaponSprite(ItemSprites.spearSprites, rarity), rarity + " " + keyword + " Spear");
            return(weapon);

        default:
            Debug.Log("Weapon Type not found");
            break;
        }
        throw new System.NotImplementedException();
    }
    public Item generate()
    {
        int difficulty = 1 + GameObject.Find("Game Engine").GetComponent <EngineController>().floorNum;

        slot   = (Item.Slot)Random.Range(0, 4);
        rarity = (Item.Rarity)Random.Range(0, 5);
        float rarityImprovement = 1 + ((int)rarity * 0.25f);

        switch (slot)
        {
        case Item.Slot.Head:
            bonusHealth = bellRandom(0, 10 * rarityImprovement * difficulty);
            bonusAttack = bellRandom(0, 5 * rarityImprovement * difficulty);
            break;

        case Item.Slot.Chest:
            bonusHealth = bellRandom(0, 20 * rarityImprovement * difficulty);
            break;

        case Item.Slot.Feet:
            bonusSpeed = bellRandom(0, 1 * rarityImprovement * difficulty);
            bonusJump  = bellRandom(0, 1 * rarityImprovement * difficulty);
            break;

        case Item.Slot.Sword:
            bonusAttack = bellRandom(0, 10 * rarityImprovement * difficulty);
            break;
        }
        cost = bonusSpeed * 10 + bonusJump * 15 + bonusAttack * 2 + bonusHealth;

        return(this.getItem());
    }
Exemple #6
0
    // Generates the sprite based on rarity of the item.
    public static Sprite GenerateSpriteType(Dictionary <string, Sprite> dict, Item.Rarity rarity)
    {
        switch (rarity)
        {
        case Item.Rarity.COMMON:
            return(dict["Common"]);

        case Item.Rarity.UNCOMMON:
            return(dict["Uncommon"]);

        case Item.Rarity.RARE:
            return(dict["Rare"]);

        case Item.Rarity.EPIC:
            return(dict["Epic"]);

        case Item.Rarity.LEGENDARY:
            return(dict["Legendary"]);

        default:
            Debug.Log(dict + " " + rarity);
            break;
        }
        throw new NotImplementedException();
    }
    public List <Item_And_Quantity> GetStoredItems(Item.Category category, Item.Rarity rarity)
    {
        List <Item_And_Quantity> stored = new List <Item_And_Quantity>();

        foreach (Item_And_Quantity storedItem in storedItems)
        {
            if (storedItem.item.category == category && storedItem.item.rarity == rarity)
            {
                stored.Add(storedItem);
            }
        }

        return(stored);
    }
    private void OnDisable()
    {
        for (int i = 0; i < 4; i++)
        {
            t_ItemName[i].gameObject.SetActive(false);
            i_SpriteItem[i].gameObject.SetActive(false);
            i_SpriteOuter[i].gameObject.SetActive(false);
            i_SpriteInner[i].gameObject.SetActive(false);
            t_Cost[i].gameObject.SetActive(false);
            i_Coin[i].gameObject.SetActive(false);

            tempSlots[i].transform.localScale = Vector3.one;
            tempSlots[i].SetActive(false);
        }
        highestRarity = Item.Rarity.COMMON;
    }
Exemple #9
0
    public void OverwriteInstance(Item item)
    {
        isAllocated  = true;
        uid          = ItemMD5Generator.MD5Hash(DateTime.Now.Ticks.ToString());
        timeStamp    = DateTime.Now.Ticks;
        id           = item.id;
        nameNative   = item.GetNameNative();
        rarityNative = item.GetRarityNative();
        defaultCost  = item.defaultCost;
        sellingCost  = item.sellingCost;
        rarity       = item.rarity;
        sprite       = item.sprite;

        forgeLevel        = item.forgeLevel;
        firstMarketPrice  = UnityEngine.Random.Range(0.5f, 1.5f);
        secondMarketPrice = UnityEngine.Random.Range(0.5f, 1.5f);
        thirdMarketPrice  = UnityEngine.Random.Range(0.5f, 1.5f);
    }
Exemple #10
0
    public void ClearInstance()
    {
        isAllocated  = false;
        uid          = "";
        timeStamp    = long.MaxValue;
        id           = "";
        nameNative   = "";
        rarityNative = "";
        defaultCost  = 0;
        sellingCost  = 0;
        rarity       = Item.Rarity.COMMON;
        sprite       = null;

        forgeLevel        = 0;
        firstMarketPrice  = 0f;
        secondMarketPrice = 0f;
        thirdMarketPrice  = 0f;
    }
Exemple #11
0
    public static Color GetRarityColour(Item.Rarity rarity)
    {
        switch (rarity)
        {
        case Rarity.Common:
            return(CommonColour);

        case Rarity.Uncommon:
            return(UncommonColour);

        case Rarity.Rare:
            return(RareColour);

        case Rarity.Legendary:
            return(LegendaryColour);
        }
        return(Colors.Magenta);
    }
Exemple #12
0
    public static string GetRarityName(Item.Rarity rarity)
    {
        switch (rarity)
        {
        case Rarity.Common:
            return("Common");

        case Rarity.Uncommon:
            return("Uncommon");

        case Rarity.Rare:
            return("Rare");

        case Rarity.Legendary:
            return("Legendary");
        }
        return(string.Empty);
    }
    public override Item GetItem(Item.ItemType itemType, GameObject gameObject)
    {
        Item.Rarity   rarity      = GenerateRarity();
        Item.Keywords keyword     = GenerateKeyword();
        Item          item        = gameObject.GetComponent <Item>();
        StatFactory   statFactory = new ConcreteStatFactory();

        switch (itemType)
        {
        case Item.ItemType.ARMOR:
            item.Init(Item.ItemType.ARMOR, rarity, GenerateItemSprite(ItemSprites.armorSprites, rarity), rarity + " " + keyword + " Armor", statFactory.GenerateStatAmount(rarity));
            return(item);

        case Item.ItemType.BOOTS:
            item.Init(Item.ItemType.BOOTS, rarity, GenerateItemSprite(ItemSprites.bootsSprites, rarity), rarity + " " + keyword + " Boots", statFactory.GenerateStatAmount(rarity));
            return(item);

        case Item.ItemType.HELM:
            item.Init(Item.ItemType.HELM, rarity, GenerateItemSprite(ItemSprites.helmSprites, rarity), rarity + " " + keyword + " Helm", statFactory.GenerateStatAmount(rarity));
            return(item);

        case Item.ItemType.BELT:
            item.Init(Item.ItemType.BELT, rarity, GenerateItemSprite(ItemSprites.beltsSprites, rarity), rarity + " " + keyword + " Belt", statFactory.GenerateStatAmount(rarity));
            return(item);

        case Item.ItemType.ACCESSORY:
            item.Init(Item.ItemType.ACCESSORY, rarity, GenerateItemSprite(ItemSprites.accessorySprites, rarity), rarity + " " + keyword + " Accessory", statFactory.GenerateStatAmount(rarity));
            return(item);

        case Item.ItemType.PANTS:
            item.Init(Item.ItemType.PANTS, rarity, GenerateItemSprite(ItemSprites.pantsSprites, rarity), rarity + " " + keyword + " Pants", statFactory.GenerateStatAmount(rarity));
            return(item);

        case Item.ItemType.GLOVES:
            item.Init(Item.ItemType.GLOVES, rarity, GenerateItemSprite(ItemSprites.glovesSprites, rarity), rarity + " " + keyword + " Gloves", statFactory.GenerateStatAmount(rarity));
            return(item);

        default:
            Debug.Log("Item Type not found");
            break;
        }
        throw new System.NotImplementedException();
    }
Exemple #14
0
    protected int GenerateStatValue(Item.Rarity rarity)
    {
        switch (rarity)
        {
        case Item.Rarity.COMMON:
            return(UnityEngine.Random.Range(1, 10));

        case Item.Rarity.UNCOMMON:
            return(UnityEngine.Random.Range(11, 21));

        case Item.Rarity.RARE:
            return(UnityEngine.Random.Range(24, 50));

        case Item.Rarity.EPIC:
            return(UnityEngine.Random.Range(75, 100));

        case Item.Rarity.LEGENDARY:
            return(UnityEngine.Random.Range(100, 300));
        }
        throw new NotImplementedException();
    }
Exemple #15
0
    public int GenerateStatAmount(Item.Rarity rarity)
    {
        switch (rarity)
        {
        case Item.Rarity.COMMON:
            return(1);

        case Item.Rarity.UNCOMMON:
            return(2);

        case Item.Rarity.RARE:
            return(3);

        case Item.Rarity.EPIC:
            return(4);

        case Item.Rarity.LEGENDARY:
            return(5);
        }
        throw new NotImplementedException();
    }
Exemple #16
0
    protected Sprite GenerateWeaponSprite(Dictionary <string, Sprite> dict, Item.Rarity rarity)
    {
        switch (rarity)
        {
        case Item.Rarity.COMMON:
            return(dict["Common"]);

        case Item.Rarity.UNCOMMON:
            return(dict["Uncommon"]);

        case Item.Rarity.RARE:
            return(dict["Rare"]);

        case Item.Rarity.EPIC:
            return(dict["Epic"]);

        case Item.Rarity.LEGENDARY:
            return(dict["Legendary"]);
        }
        throw new NotImplementedException();
    }
Exemple #17
0
    public Item GetItem(Item.Rarity rarity)
    {
        int ind;

        if (rarity == Item.Rarity.common)
        {
            ind = Random.Range(0, commonItemsList.Count - 1);
            return(commonItemsList[ind]);
        }
        else if (rarity == Item.Rarity.uncommon)
        {
            ind = Random.Range(0, uncommonItemsList.Count - 1);
            return(uncommonItemsList[ind]);
        }
        else if (rarity == Item.Rarity.rare)
        {
            ind = Random.Range(0, rareItemsList.Count - 1);
            return(rareItemsList[ind]);
        }
        ind = Random.Range(0, legendaryItemsList.Count - 1);
        return(legendaryItemsList[ind]);
    }
Exemple #18
0
    /// <summary>
    /// Open this instance.
    /// Chest cannot drop legendary or rare loot!
    /// Hardcoded
    /// </summary>
    public void Open()
    {
        // Detach this item from tile.
        DungeonGenerator.instance.UpdateTileItem(position, null);

        // attach this to vanity item slot.
        DungeonGenerator.instance.UpdateVanityItem(position, this.gameObject);

        VanityItem vi = gameObject.AddComponent <VanityItem>();

        vi.position = position;

        // stop bouncing effect.
        Destroy(GetComponent <ItemBounce>());

        // randomize loot type
        Item.Type randomType = PrefabManager.instance.RandomizeItemType();
        while (randomType == Type.Container)
        {
            randomType = PrefabManager.instance.RandomizeItemType();
        }

        // randomize loot rarity.
        Item.Rarity randomRarity = PrefabManager.instance.RandomizeItemRarity();
        while (randomRarity == Item.Rarity.Legendary || randomRarity == Item.Rarity.Rare)
        {
            randomRarity = PrefabManager.instance.RandomizeItemRarity();
        }

        // instantiate random type of loot.
        PrefabManager.instance.InstantiateRandomItemInCategory(randomType, position, randomRarity);

        // Update the sprite.
        updateGraphics();

        // play sound effect
        SoundManager.instance.PlaySound(SoundManager.Sound.OpenChest);
    }
Exemple #19
0
    public float GetCostFromRarity(Item.Rarity r)
    {
        switch (r)
        {
        case Item.Rarity.COMMON:
            return(commonItemChance);

        case Item.Rarity.UNCOMMON:
            return(uncommonItemChance);

        case Item.Rarity.RARE:
            return(rareItemChance);

        case Item.Rarity.EPIC:
            return(epicItemChance);

        case Item.Rarity.LEGENDARY:
            return(legendaryItemChance);

        default:
            return(commonItemChance);
        }
    }
Exemple #20
0
 public ReagentTotal(Reagent.ReagentType rt, int ss, Item.Rarity r)
 {
     rType     = rt;
     stackSize = ss;
     rarity    = r;
 }
Exemple #21
0
    public void InstantiateRandomItemInCategory(Item.Type itemType, Vector2 pos, Item.Rarity rarity, bool isShopItem = false, Transform parent = null)
    {
        GameObject instObj = null;
        GameObject prefab  = null;

        int safetyCounter = 0;
        int safetyCount   = 50;

        switch (itemType)
        {
        case Item.Type.Armor:

            while (true)
            {
                prefab = listOfArmors[Random.Range(0, listOfArmors.Count)];
                if (prefab.GetComponent <Item>().myRarity == rarity)
                {
                    break;
                }

                if (safetyCounter > listOfArmors.Count + safetyCount)
                {
                    prefab = null;
                    break;
                }

                safetyCounter++;
            }
            break;

        case Item.Type.Gold:
            prefab = listOfGold[Random.Range(0, listOfGold.Count)];
            break;

        case Item.Type.Weapon:

            while (true)
            {
                prefab = listOfWeapons[Random.Range(0, listOfWeapons.Count)];
                if (prefab.GetComponent <Item>().myRarity == rarity)
                {
                    break;
                }

                if (safetyCounter > listOfWeapons.Count + safetyCount)
                {
                    prefab = null;
                    break;
                }

                safetyCounter++;
            }
            break;

        case Item.Type.UsableItem:

            // create a list.
            List <GameObject> useItems = null;

            // randomize if it spawns potions or some other use item.
            // currently 50 - 50 chance
            if (Random.Range(0, 100) > 50)
            {
                useItems = listOfPotions;
            }
            else
            {
                useItems = listOfScrolls;
            }

            while (true)
            {
                prefab = useItems[Random.Range(0, useItems.Count)];
                if (prefab.GetComponent <Item>().myRarity == rarity)
                {
                    break;
                }

                if (safetyCounter > listOfPotions.Count + safetyCount)
                {
                    prefab = null;
                    break;
                }

                safetyCounter++;
            }
            break;

        case Item.Type.Spell:

            while (true)
            {
                prefab = listOfSpells[Random.Range(0, listOfSpells.Count)];
                if (prefab.GetComponent <Item>().myRarity == rarity)
                {
                    break;
                }

                if (safetyCounter > listOfSpells.Count + safetyCount)
                {
                    prefab = null;
                    break;
                }

                safetyCounter++;
            }

            break;

        case Item.Type.Container:
            prefab = chestGoldenPrefab;
            break;
        }

        if (prefab == null)
        {
            return;
        }

        // instantiate object.
        instObj = (GameObject)Instantiate(prefab);

        // creates item that takes money before it can be picked up.
        if (isShopItem)
        {
            instObj.GetComponent <Item>().myState = Item.State.Shop;
        }

        GameObject tileGO = DungeonGenerator.instance.GetTileAtPos(pos);
        Tile       tile   = tileGO.GetComponent <Tile>();

        // attach item to tile.
        tile.item = instObj;

        // update positions.
        instObj.GetComponent <Item>().position = pos;
        instObj.transform.position             = new Vector3(pos.x, pos.y, GameMaster.instance.itemZLevel);

        // set owner to null.
        instObj.GetComponent <Item>().owner = null;

        // save startcolor.
        instObj.GetComponent <Item>().startColor = instObj.GetComponentInChildren <SpriteRenderer>().color;

        // parent
        instObj.transform.SetParent(parent);

        // add to list.
        itemInstances.Add(instObj);
    }