/* * Removes items with matching type and name. * If max is greater than zero, will return up to that many items. */ public List <ItemData> RetrieveItems(Item.Types itemType, string itemName, int max = 0) { List <ItemData> ret = new List <ItemData>(); foreach (ItemData data in items) { if (max > 0 && ret.Count >= max) { break; } if (data.type != itemType || itemName != data.name) { continue; } if (data.stackable) { int startingQuantity = data.GetQuantity(); ret.Add(data.Pop(max)); } else { ret.Add(data); } } foreach (ItemData data in ret) { items.Remove(data); } return(ret); }
public void SpawnItem(Item.Types type, int quantity = 1) { Vector3 pos = RandomItemSpawn(); Item item = Item.Factory(type); item.Translation = pos; AddChild(item); }
public ItemData GenerateItem(Item.Types type, Vector3 pos) { Item item = Item.Factory(type); ItemData data = item.GetData(); data.id = NextItemId(); data.pos = pos; return(data); }
public int IndexOf(Item.Types type, string name) { for (int i = 0; i < items.Count; i++) { ItemData item = items[i]; if (item.type == type && item.name == name) { return(i); } } return(-1); }
public int GetQuantity(Item.Types itemType, string itemName) { int ret = 0; foreach (ItemData data in items) { if (data.type == itemType && itemName == data.name) { ret += data.GetQuantity(); } } return(ret); }
public Item DeferredSpawnItem(Item.Types type, string name, float x, float y, float z) { Vector3 pos = new Vector3(x, y, z); Item item = Item.Factory(type); item.Translation = pos; Node itemNode = item as Node; itemNode.Name = name; AddChild(item); return(item); }
public void EquipActor(Actor actor, Item.Types itemType, string itemName) { int index = actor.IndexOf(itemType, itemName); if (index == -1) { GD.Print("Actor doesn't have this weapon."); } else { GD.Print("Equipping Actor with " + itemType.ToString()); actor.EquipItem(index); } }
public void SpawnItem(Item.Types type) { if (Session.NetActive() && !Session.IsServer()) { return; } Vector3 pos = RandomItemSpawn(); Item item = Item.Factory(type); item.Translation = pos; AddChild(item); if (Session.IsServer()) { string name = NextItemName(); Node itemNode = item as Node; itemNode.Name = name; Rpc(nameof(DeferredSpawnItem), type, name, pos.x, pos.y, pos.z); } }
public List <Item.Types> GetAvailableSpells() { StatsManager stats = GetPlayerStats(); List <Item.Types> ret = new List <Item.Types>(); List <StatsManager.Facts> spellSlots = new List <StatsManager.Facts> { StatsManager.Facts.SpellSlot1, StatsManager.Facts.SpellSlot2, StatsManager.Facts.SpellSlot3, StatsManager.Facts.SpellSlot4, StatsManager.Facts.SpellSlot5, StatsManager.Facts.SpellSlot6, StatsManager.Facts.SpellSlot7, StatsManager.Facts.SpellSlot8, StatsManager.Facts.SpellSlot9, StatsManager.Facts.SpellSlot10 }; int slotsMax = stats.GetStat(StatsManager.Stats.SlotsMax); for (int i = 0; i < slotsMax; i++) { string slotContents = stats.GetFact(spellSlots[i]); Item.Types spell = Item.GetTypeFromString(slotContents); if (spell != Item.Types.None) { ret.Add(spell); } } return(ret); return(new List <Item.Types> { Item.Types.FireballSpell, Item.Types.HealSpell, Item.Types.StaminaSpell, Item.Types.ManaSpell }); }
public WallBuild(Item.Types itemType) : base(new Inventory(new[] { new Item(itemType, WALL_BUILD_AMOUNT) })) { wallType = itemType; }
private bool MatchType(Item.Types mask, Item.Types type) { return((mask & type) != (Item.Types) 0); }
public static IEnumerable <Item> ItemsByType(Item.Types typeMask) { return(from i in ItemDatabase._instance._items where (i._type & typeMask) != (Item.Types) 0 select i); }
public int IndexOf(Item.Types type, string name) { return(inventory.IndexOf(type, name)); }
public bool MatchType(Item.Types type) { return((this._type & type) != (Item.Types) 0); }
public ItemIdPicker(Item.Types restrictedToType) { this.Type = restrictedToType; this.Restricted = true; }
public ItemTypeFilter(Item.Types type) { this.Type = type; }