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()); }
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); }
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); }
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); }