예제 #1
0
 public void Read(WorldPacket data)
 {
     data.ResetBitPos();
     LootItemType = (LootItemType)data.ReadBits <byte>(2);
     Item         = new ItemInstance();
     Item.Read(data);
     Quantity = data.ReadUInt32();
 }
예제 #2
0
        private static ILootContentContent CreateContent(LootItemType type)
        {
            switch (type)
            {
            case LootItemType.None:
                return(new LootContentEmptyContent());

            case LootItemType.SomeMoney:
                return(new LootContent_SomeMoney());

            case LootItemType.Fuel:
                return(new LootContent_Fuel());

            case LootItemType.Money:
                return(new LootContent_Money());

            case LootItemType.Stars:
                return(new LootContent_Stars());

            case LootItemType.StarMap:
                return(new LootContentEmptyContent());

            case LootItemType.RandomComponents:
                return(new LootContent_RandomComponents());

            case LootItemType.RandomItems:
                return(new LootContent_RandomItems());

            case LootItemType.AllItems:
                return(new LootContent_AllItems());

            case LootItemType.ItemsWithChance:
                return(new LootContent_ItemsWithChance());

            case LootItemType.QuestItem:
                return(new LootContent_QuestItem());

            case LootItemType.Ship:
                return(new LootContent_Ship());

            case LootItemType.EmptyShip:
                return(new LootContent_EmptyShip());

            case LootItemType.Component:
                return(new LootContent_Component());

            default:
                throw new DatabaseException("LootContent: Invalid content type - " + type);
            }
        }
예제 #3
0
        public static ILootContent CreateLoot(LootItemType type)
        {
            switch (type)
            {
            case LootItemType.None:
            case LootItemType.StarMap:
                return(new EmptyLootContent());

            case LootItemType.SomeMoney:
                return(new ResourceByLevelLootContent());

            case LootItemType.Money:
            case LootItemType.Fuel:
            case LootItemType.Stars:
                return(new ResourceLootContent());

            case LootItemType.RandomComponents:
                return(new RandomComponentsLootContent());

            case LootItemType.ItemsWithChance:
                return(new ItemsWithChanceLootContent());

            case LootItemType.RandomItems:
                return(new RandomItemsLootContent());

            case LootItemType.AllItems:
                return(new ItemGroupLootContent());

            case LootItemType.QuestItem:
                return(new QuestItemLootContent());

            case LootItemType.Ship:
                return(new ShipBuildLootContent());

            case LootItemType.EmptyShip:
                return(new ShipLootContent());

            case LootItemType.Component:
                return(new ComponentLootContent());

            default:
                throw new System.ArgumentException("Unknown loot item type - " + type);
            }
        }
예제 #4
0
 /// <summary>
 /// Called when a player completes a quest and is rewarded, opt is the selected item's index or 0
 /// </summary>
 public virtual void QuestReward(Player player, Quest quest, LootItemType type, uint opt)
 {
 }