private List <IReward> _CreateRewardModels(int used_useitem_mst_id, User_ItemUseFmt fmt, out bool has_use_item_reward)
        {
            has_use_item_reward = false;
            List <IReward> list = new List <IReward>();

            if (fmt.Material != null && fmt.Material.get_Count() > 0)
            {
                List <IReward_Material> list2            = new List <IReward_Material>();
                Reward_Materials        reward_Materials = new Reward_Materials(list2);
                list.Add(reward_Materials);
                this._AddMaterialReward(list2, enumMaterialCategory.Fuel, fmt.Material);
                this._AddMaterialReward(list2, enumMaterialCategory.Bull, fmt.Material);
                this._AddMaterialReward(list2, enumMaterialCategory.Steel, fmt.Material);
                this._AddMaterialReward(list2, enumMaterialCategory.Bauxite, fmt.Material);
                this._AddMaterialReward(list2, enumMaterialCategory.Build_Kit, fmt.Material);
                this._AddMaterialReward(list2, enumMaterialCategory.Repair_Kit, fmt.Material);
                this._AddMaterialReward(list2, enumMaterialCategory.Dev_Kit, fmt.Material);
                this._AddMaterialReward(list2, enumMaterialCategory.Revamp_Kit, fmt.Material);
            }
            if (fmt.GetItem != null && fmt.GetItem.get_Count() > 0)
            {
                using (List <ItemGetFmt> .Enumerator enumerator = fmt.GetItem.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        ItemGetFmt current = enumerator.get_Current();
                        has_use_item_reward = true;
                        Reward_Useitem reward_Useitem = new Reward_Useitem(current.Id, current.Count);
                        if (reward_Useitem.Id == 53 && used_useitem_mst_id == 53)
                        {
                            Reward_PortExtend reward_PortExtend = new Reward_PortExtend();
                            list.Add(reward_PortExtend);
                        }
                        else if (reward_Useitem.Id == 63 && used_useitem_mst_id == 63)
                        {
                            Reward_DutyExtend reward_DutyExtend = new Reward_DutyExtend(base.UserInfo.MaxDutyExecuteCount);
                            list.Add(reward_DutyExtend);
                        }
                        else
                        {
                            list.Add(reward_Useitem);
                        }
                    }
                }
            }
            return(list);
        }
示例#2
0
        private List <IReward> _CreateRewardModels(int used_useitem_mst_id, User_ItemUseFmt fmt, out bool has_use_item_reward)
        {
            has_use_item_reward = false;
            List <IReward> list = new List <IReward>();

            if (fmt.Material != null && fmt.Material.Count > 0)
            {
                List <IReward_Material> list2 = new List <IReward_Material>();
                Reward_Materials        item  = new Reward_Materials(list2);
                list.Add(item);
                _AddMaterialReward(list2, enumMaterialCategory.Fuel, fmt.Material);
                _AddMaterialReward(list2, enumMaterialCategory.Bull, fmt.Material);
                _AddMaterialReward(list2, enumMaterialCategory.Steel, fmt.Material);
                _AddMaterialReward(list2, enumMaterialCategory.Bauxite, fmt.Material);
                _AddMaterialReward(list2, enumMaterialCategory.Build_Kit, fmt.Material);
                _AddMaterialReward(list2, enumMaterialCategory.Repair_Kit, fmt.Material);
                _AddMaterialReward(list2, enumMaterialCategory.Dev_Kit, fmt.Material);
                _AddMaterialReward(list2, enumMaterialCategory.Revamp_Kit, fmt.Material);
            }
            if (fmt.GetItem != null && fmt.GetItem.Count > 0)
            {
                foreach (ItemGetFmt item4 in fmt.GetItem)
                {
                    has_use_item_reward = true;
                    Reward_Useitem reward_Useitem = new Reward_Useitem(item4.Id, item4.Count);
                    if (reward_Useitem.Id == 53 && used_useitem_mst_id == 53)
                    {
                        Reward_PortExtend item2 = new Reward_PortExtend();
                        list.Add(item2);
                    }
                    else if (reward_Useitem.Id == 63 && used_useitem_mst_id == 63)
                    {
                        Reward_DutyExtend item3 = new Reward_DutyExtend(base.UserInfo.MaxDutyExecuteCount);
                        list.Add(item3);
                    }
                    else
                    {
                        list.Add(reward_Useitem);
                    }
                }
                return(list);
            }
            return(list);
        }
示例#3
0
        public List <IReward> RecieveRewards(int duty_no)
        {
            DutyModel duty = this.GetDuty(duty_no);

            if (duty.State != QuestState.COMPLETE)
            {
                return(null);
            }
            List <QuestItemGetFmt> list = this._quest.ClearItemGet(((__DutyModel__)duty).Fmt);

            if (list == null)
            {
                return(null);
            }
            List <IReward>          list2           = new List <IReward>();
            List <IReward_Material> list3           = null;
            Reward_Useitems         reward_Useitems = null;

            for (int i = 0; i < list.get_Count(); i++)
            {
                if (list.get_Item(i).Category == QuestItemGetKind.Material && list.get_Item(i).Count > 0)
                {
                    if (list3 == null)
                    {
                        list3 = new List <IReward_Material>();
                        Reward_Materials reward_Materials = new Reward_Materials(list3);
                        list2.Add(reward_Materials);
                    }
                    list3.Add(new Reward_Material((enumMaterialCategory)list.get_Item(i).Id, list.get_Item(i).Count));
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.Deck)
                {
                    list2.Add(new Reward_Deck(list.get_Item(i).Id));
                    base.UserInfo.__UpdateDeck__(new Api_get_Member());
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.FurnitureBox)
                {
                    if (reward_Useitems == null)
                    {
                        reward_Useitems = new Reward_Useitems();
                        list2.Add(reward_Useitems);
                    }
                    reward_Useitems.__Add__(list.get_Item(i).Id, list.get_Item(i).Count);
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.LargeBuild)
                {
                    list2.Add(new Reward_LargeBuild());
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.Ship)
                {
                    for (int j = 0; j < list.get_Item(i).Count; j++)
                    {
                        list2.Add(new Reward_Ship(list.get_Item(i).Id));
                    }
                    base.UserInfo.__UpdateShips__(new Api_get_Member());
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.SlotItem)
                {
                    for (int k = 0; k < list.get_Item(i).Count; k++)
                    {
                        list2.Add(new Reward_Slotitem(list.get_Item(i).Id));
                    }
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.UseItem)
                {
                    list2.Add(new Reward_Useitem(list.get_Item(i).Id, list.get_Item(i).Count));
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.Furniture)
                {
                    list2.Add(new Reward_Furniture(list.get_Item(i).Id));
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.Exchange)
                {
                    list2.Add(new Reward_Exchange_Slotitem(list.get_Item(i).FromId, list.get_Item(i).Id, list.get_Item(i).IsUseCrewItem));
                    List <SlotitemModel> slotitemList = base.UserInfo.GetDeck(1).GetFlagShip().SlotitemList;
                    for (int l = 0; l < slotitemList.get_Count(); l++)
                    {
                        if (slotitemList.get_Item(l) != null)
                        {
                            slotitemList.get_Item(l).__update__();
                        }
                    }
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.Spoint)
                {
                    list2.Add(new Reward_SPoint(list.get_Item(i).Count));
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.DeckPractice)
                {
                    list2.Add(new Reward_DeckPracitce(list.get_Item(i).Id));
                }
                else if (list.get_Item(i).Category == QuestItemGetKind.Tanker)
                {
                    list2.Add(new Reward_TransportCraft(list.get_Item(i).Count));
                    base._UpdateTankerManager();
                }
            }
            List <IReward> list4 = list2.FindAll((IReward reward) => reward is Reward_Furniture);

            if (list4.get_Count() > 0)
            {
                Api_Result <Dictionary <FurnitureKinds, List <Mst_furniture> > > api_Result = new Api_get_Member().FurnitureList();
                if (api_Result.state == Api_Result_State.Success)
                {
                    for (int m = 0; m < list4.get_Count(); m++)
                    {
                        Reward_Furniture reward_Furniture = (Reward_Furniture)list4.get_Item(m);
                        reward_Furniture.__Init__(api_Result.data);
                    }
                }
            }
            this._UpdateDutyData();
            return(list2);
        }