示例#1
0
        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));
            }
        }
示例#2
0
        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;
            }
        }
示例#3
0
        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));
        }
示例#4
0
 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));
             }
         }
     }
 }