public void Populate(RealmManager manager, Enemy enemy, Tuple <Player, int> playerDat, Random rand, string lootState, IList <LootDef> lootDefs) { Lootstate = lootState; if (playerDat != null) { return; } OldItem[] candidates = manager.GameData.Items .Where(item => Array.IndexOf(types, item.Value.SlotType) != -1) .Where(item => item.Value.Tier == tier) .Select(item => item.Value) .ToArray(); string DroppedIn = "Error"; if (enemy != null) { DroppedIn = enemy.Owner.Name; } DroppedIn = DroppedIn.Replace("'", ""); foreach (OldItem i in candidates) { lootDefs.Add(new LootDef(manager.CreateSerial(i, insert: false, DroppedIn: DroppedIn), probability / candidates.Length, lootState)); } }
public Container(RealmManager manager, XElement node) : base(manager, (ushort)Utils.FromString(node.Attribute("type").Value), null, false, false, false) { SlotTypes = Utils.FromCommaSepString32(node.Element("SlotTypes").Value); XElement eq = node.Element("Equipment"); if (eq != null) { Item[] inv = manager.CreateSerial(Utils.FromCommaSepString16(eq.Value) .Select(_ => _ == -1 ? null : manager.GameData.Items[(ushort)_]) .ToArray(), insert: false, DroppedIn: Owner.Name); Array.Resize(ref inv, 8); Inventory = inv; } }
public void Populate(RealmManager manager, Enemy enemy, Tuple <Player, int> playerDat, Random rand, string lootState, IList <LootDef> lootDefs) { if (probability > 1) { probability = 1; } Lootstate = lootState; if (playerDat != null) { return; } XmlData dat = manager.GameData; string DroppedIn = "Error"; if (enemy != null) { DroppedIn = enemy.Owner.Name; } DroppedIn = DroppedIn.Replace("'", ""); lootDefs.Add(new LootDef(manager.CreateSerial(dat.Items[dat.IdToObjectType[item]], insert: false, DroppedIn: DroppedIn), probability, lootState)); }
public void Populate(RealmManager manager, Enemy enemy, Tuple <Player, int> playerDat, Random rand, string lootState, IList <LootDef> lootDefs) { Lootstate = lootState; //if (playerDat != null && playerDat.Item2/enemy.ObjectDesc.MaxHP >= threshold) if (playerDat != null && playerDat.Item2 / enemy.ObjectDesc.MaxHp >= 0) //Removes Loot Threshhold { foreach (ILootDef i in children) { i.Populate(manager, enemy, null, rand, lootState, lootDefs); } } { Lootstate = lootState; if (playerDat != null) { return; } OldItem[] candidates = manager.GameData.Items .Where(item => item.Value.Description == "A shovel that digs deep into the sand to find hidden treasure.") .Select(item => item.Value) .ToArray(); string DroppedIn = "Error"; if (enemy != null) { DroppedIn = enemy.Owner.Name; } DroppedIn = DroppedIn.Replace("'", ""); foreach (OldItem i in candidates) { if (i.Tier != -1) { lootDefs.Add(new LootDef(manager.CreateSerial(i, insert: false, DroppedIn: DroppedIn), (i.Tier * -2 + 10) * 0.0005, lootState)); } } } }