Esempio n. 1
0
        public AddData AddItem(AddItem ItemAddData)
        {
            Object  TPlayerItemData;
            AddData Result;

            Result = new AddData()
            {
                Status = false
            };


            if (UID == 0)
            {
                return(Result);
            }
            switch ((TITEMGROUP)GetPartGroup(ItemAddData.ItemIffId))
            {
            case TITEMGROUP.ITEM_TYPE_CHARACTER:
            {
                TPlayerItemData = ItemCharacter.GetChar(ItemAddData.ItemIffId, CharType.bTypeID);

                if (TPlayerItemData == null)
                {
                    return(AddItemToDB(ItemAddData));
                }

                else if (!(TPlayerItemData != null))
                {
                    Result.Status      = true;
                    Result.ItemIndex   = ((PlayerCharacterData)(TPlayerItemData)).Index;
                    Result.ItemTypeID  = ((PlayerCharacterData)(TPlayerItemData)).TypeID;
                    Result.ItemOldQty  = 1;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = string.Empty;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = null;

                    if (ItemAddData.Transaction)
                    {
                        ItemTransaction.AddChar(2, (PlayerCharacterData)TPlayerItemData);
                    }
                }
            }
            break;

            case TITEMGROUP.ITEM_TYPE_HAIR_STYLE:
            {
                var IffHair   = IffEntry.GetByHairColor(ItemAddData.ItemIffId);
                var character = ItemCharacter.GetCharByType((byte)IffHair.CharType);
                if (character != null)
                {
                    character.HairColour = IffHair.HairColor;
                    character.Update(character);
                    Result.Status      = true;
                    Result.ItemIndex   = character.Index;
                    Result.ItemTypeID  = ItemAddData.ItemIffId;
                    Result.ItemOldQty  = 0;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = null;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = null;
                }
            }
            break;

            case TITEMGROUP.ITEM_TYPE_PART:
            {
                return(AddItemToDB(ItemAddData));
            }

            case TITEMGROUP.ITEM_TYPE_CLUB:
            {
                return(AddItemToDB(ItemAddData));
            }

            case TITEMGROUP.ITEM_TYPE_AUX:
            case TITEMGROUP.ITEM_TYPE_BALL:
            case TITEMGROUP.ITEM_TYPE_USE:
            {
                TPlayerItemData = ItemWarehouse.GetItem(ItemAddData.ItemIffId, 1);
                if (TPlayerItemData != null)
                {
                    Result.Status      = true;
                    Result.ItemIndex   = ((PlayerItemData)(TPlayerItemData)).ItemIndex;
                    Result.ItemTypeID  = ((PlayerItemData)(TPlayerItemData)).ItemTypeID;
                    Result.ItemOldQty  = ((PlayerItemData)(TPlayerItemData)).ItemC0;
                    Result.ItemNewQty  = ((PlayerItemData)(TPlayerItemData)).ItemC0 + ItemAddData.Quantity;
                    Result.ItemUCCKey  = ((PlayerItemData)(TPlayerItemData)).ItemUCCUnique;
                    Result.ItemFlag    = (byte)((PlayerItemData)(TPlayerItemData)).ItemFlag;
                    Result.ItemEndDate = null;
                    //Add
                    ((PlayerItemData)(TPlayerItemData)).AddQuantity(ItemAddData.Quantity);

                    if (ItemAddData.Transaction)
                    {
                        ItemTransaction.AddItem(0x02, (PlayerItemData)TPlayerItemData, ItemAddData.Quantity);
                    }
                }

                else if (TPlayerItemData == null)
                {
                    return(AddItemToDB(ItemAddData));
                }
            }
            break;

            case TITEMGROUP.ITEM_TYPE_CADDIE:
            {
                return(AddItemToDB(ItemAddData));
            }

            case TITEMGROUP.ITEM_TYPE_CADDIE_ITEM:
            {
                TPlayerItemData = ItemCaddie.GetCaddieBySkinId(ItemAddData.ItemIffId);

                if (!(TPlayerItemData == null))
                {
                    ((PlayerCaddieData)(TPlayerItemData)).Update();
                    ((PlayerCaddieData)(TPlayerItemData)).UpdateCaddieSkin(ItemAddData.ItemIffId, ItemAddData.Day);
                    Result.Status      = true;
                    Result.ItemIndex   = ((PlayerCaddieData)(TPlayerItemData)).CaddieIdx;
                    Result.ItemTypeID  = ((PlayerCaddieData)(TPlayerItemData)).CaddieSkin;
                    Result.ItemOldQty  = 1;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = string.Empty;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = DateTime.Now.AddDays(ItemAddData.Day);
                }
            }
            break;

            case TITEMGROUP.ITEM_TYPE_SKIN:
            {
                return(AddItemToDB(ItemAddData));
            }

            case TITEMGROUP.ITEM_TYPE_MASCOT:
            {
                TPlayerItemData = ItemMascot.GetMascotByTypeId(ItemAddData.ItemIffId);

                if (TPlayerItemData != null)
                {
                    ((PlayerMascotData)(TPlayerItemData)).AddDay(ItemAddData.Day);
                    Result.Status      = true;
                    Result.ItemIndex   = ((PlayerMascotData)(TPlayerItemData)).MascotIndex;
                    Result.ItemTypeID  = ((PlayerMascotData)(TPlayerItemData)).MascotTypeID;
                    Result.ItemOldQty  = 1;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = "";
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = ((PlayerMascotData)(TPlayerItemData)).MascotEndDate;
                }
                else if (TPlayerItemData == null)
                {
                    return(AddItemToDB(ItemAddData));
                }
            }
            break;

            case TITEMGROUP.ITEM_TYPE_CARD:
            {
                TPlayerItemData = ItemCard.GetCard(ItemAddData.ItemIffId, 1);

                if (TPlayerItemData == null)
                {
                    AddItemToDB(ItemAddData);
                }
                else if (TPlayerItemData != null)
                {
                    Result.Status      = true;
                    Result.ItemIndex   = ((PlayerCardData)(TPlayerItemData)).CardIndex;
                    Result.ItemTypeID  = ((PlayerCardData)(TPlayerItemData)).CardTypeID;
                    Result.ItemOldQty  = ((PlayerCardData)(TPlayerItemData)).CardQuantity;
                    Result.ItemNewQty  = ((PlayerCardData)(TPlayerItemData)).CardQuantity + ItemAddData.Quantity;
                    Result.ItemUCCKey  = string.Empty;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = null;

                    ((PlayerCardData)(TPlayerItemData)).AddQuantity(ItemAddData.Quantity);

                    if (ItemAddData.Transaction)
                    {
                        ItemTransaction.AddCard(0x02, (PlayerCardData)TPlayerItemData, ItemAddData.Quantity);
                    }
                }
            }
            break;
            }
            return(Result);
        }