Пример #1
0
    public game_item RandomItem(SpriteGender gender, item_rarity.rarity rarity)
    {
        item_type t      = item_type.consumable;
        int       chance = 0;

        foreach (item_type type in Enum.GetValues(typeof(item_type)))
        {
            try
            {
                if (Game_Items[gender][type].Count <= 0)
                {
                    continue;
                }


                int temp = InGameData.random_int(0, 100);
                if (temp > chance)
                {
                    chance = temp;
                    t      = type;
                }
            }
            catch
            {
            }
        }

        return(GetItemFrom(gender, t, rarity).CopyItem());
    }
Пример #2
0
    public game_item GetItemFrom(SpriteGender gender, item_type type, item_rarity.rarity rarity)
    {
        int       chance = 0;
        game_item ret    = null;

        foreach (game_item item in Game_Items[gender][type].Values)
        {
            if (item.rarity.Rarity == rarity)
            {
                int temp = InGameData.random_int(0, 100);
                if (temp >= chance)
                {
                    chance = temp;
                    ret    = item;
                }
            }
        }
        if (ret == null)
        {
            Debug.Log(" No Items in " + gender + " ," + type + " with rarity " + rarity);
        }
        return(ret);
    }
Пример #3
0
    public List <game_item> GetRandomGear(SpriteGender gender, item_rarity.rarity rarity)
    {
        List <game_item> ret = new List <game_item>();

        float     Weapon = 0;
        item_type weap   = item_type.none;

        foreach (item_type type in Enum.GetValues(typeof(item_type)))
        {
            if ((int)type <= 0)
            {
                continue;
            }
            try
            {
                if (type == item_type.melee_weapons || type == item_type.spears || type == item_type.wand || type == item_type.bow)
                {
                    float t = InGameData.rand(0, 100);
                    if (t > Weapon)
                    {
                        Weapon = t;
                        weap   = type;
                    }
                    continue;
                }
                else if (type == item_type.shilds || type == item_type.arrows)
                {
                    continue;
                }

                if (InGameData.random_int(0, 32) % 8 == 3)
                {
                    continue;
                }

                game_item ti = GetItemFrom(gender, type, rarity);
                if (ti != null)
                {
                    ret.Add(GetItemFrom(gender, type, rarity).CopyItem());
                }
            }
            catch
            {
            }
        }

        int temp2 = Game_Items[gender][weap].Count;
        int rand2 = InGameData.random_int(0, temp2);

        ret.Add(GetItemFrom(gender, weap, rarity).CopyItem());
        if (weap == item_type.bow)
        {
            ret.Add(GetItemFrom(gender, item_type.arrows, rarity).CopyItem());
        }
        else if (weap == item_type.melee_weapons || weap == item_type.spears)
        {
            if (InGameData.random_int(0, 32) % 8 == 3)
            {
                return(ret);
            }

            ret.Add(GetItemFrom(gender, item_type.shilds, rarity).CopyItem());
        }

        return(ret);
    }
Пример #4
0
    public game_item(item_type _type, int _id_sprite, SpriteGender _gender,
                     int _Order_ID, string _name, Basic_Stats stats, UseBoost pstats, item_rarity.rarity _rarity, bool Is_armor, int item_level = 0)
    {
        ID = ITEM_COUNTER;
        ITEM_COUNTER++;

        bstats      = stats;
        this.pstats = pstats;
        IsArmor     = Is_armor;

        NAME         = _name;
        type         = _type;
        id_sprite    = _id_sprite;
        gender       = _gender;
        ORD          = _Order_ID;
        slot_pointer = null;
        count        = 1;

        if (_id_sprite == -1)
        {
            id_sprite = CONSUMABLE_SP_ID;
            CONSUMABLE_SP_ID--;
        }
        if (ORD == -1)
        {
            ORD = CONSUMABLE_SP_ID;
        }

        rarity = new item_rarity(bstats, _rarity, item_level);
    }