示例#1
0
 void kclib_GetReqkousyouCreateitem(object sender, KanColleLib.TransmissionRequest.api_req_kousyou.CreateitemRequest request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_req_kousyou.Createitem> response)
 {
     if (response.data.slot_item != null)
     {
         slotdata.Add(new SlotData()
         {
             id = response.data.slot_item.id, itemid = response.data.slot_item.slotitem_id
         });
         basicdata.now_equipment_number = slotdata.Count;
     }
 }
示例#2
0
        async void kclib_GetGetmemberSlotItem(object sender, KanColleLib.TransmissionRequest.RequestBase request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_get_member.SlotItem> response)
        {
            await Task.Run(() =>
            {
                foreach (var item in response.data.slotitems)
                {
                    if (!slotdata.Any(_ => _.id == item.id))
                    {
                        slotdata.Add(new SlotData()
                        {
                            id = item.id, itemid = item.slotitem_id
                        });
                    }
                }

                var deletelist = (from _ in slotdata where !response.data.slotitems.Any(__ => __.id == _.id) select _).ToList();

                foreach (var item in deletelist)
                {
                    slotdata.Remove(item);
                }

                basicdata.now_equipment_number = slotdata.Count;
            });
        }
示例#3
0
        async void kclib_GetPortPort(object sender, KanColleLib.TransmissionRequest.api_port.PortRequest request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_port.Port> response)
        {
            basicdata.FromMaterial(response.data.material);
            await AppendShipDataFromList(response.data.ship.ships);
            await DeleteShipDataFromList(response.data.ship.ships);

            AppendDeckValue(response.data.deck_port);
            AppendNDockValue(response.data.ndock);
            InitializeConfirm();
        }
示例#4
0
        async void kclib_GetStart2(object sender, KanColleLib.TransmissionRequest.RequestBase request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_start2.Start2> response)
        {
            await Task.Run(() =>
            {
                charamaster = new Dictionary <int, CharacterData>();
                foreach (var chara in response.data.mst_ship)
                {
                    charamaster.Add(chara.id, CharacterData.fromKanColleLib(chara));
                }
                System.Diagnostics.Debug.WriteLine("Get: api_start2/mst_ship");
                InitializeConfirm();
            });

            await Task.Run(() =>
            {
                shiptypemaster = new Dictionary <int, ShiptypeData>();
                foreach (var stype in response.data.mst_stype)
                {
                    shiptypemaster.Add(stype.id, new ShiptypeData()
                    {
                        name = stype.name
                    });
                }
                System.Diagnostics.Debug.WriteLine("Get: api_start2/mst_stype");
                InitializeConfirm();
            });

            await Task.Run(() =>
            {
                missionmaster = new Dictionary <int, MissionData>();
                foreach (var mission in response.data.mst_mission)
                {
                    missionmaster.Add(mission.id, new MissionData()
                    {
                        name        = mission.name,
                        time_minute = mission.time
                    });
                }
                System.Diagnostics.Debug.WriteLine("Get: api_start2/mst_mission");
                InitializeConfirm();
            });

            await Task.Run(() =>
            {
                slotitemmaster = new Dictionary <int, ItemData>();
                foreach (var item in response.data.mst_slotitem)
                {
                    slotitemmaster.Add(item.id, new ItemData()
                    {
                        name           = item.name,
                        type_equiptype = item.type[2],
                        taiku          = item.tyku
                    });
                }
                InitializeConfirm();
            });

            await Task.Run(() =>
            {
                slotitem_equiptypemaster = new Dictionary <int, ItemEquipTypeData>();
                foreach (var item in response.data.mst_slotitem_equiptype)
                {
                    slotitem_equiptypemaster.Add(item.id, new ItemEquipTypeData()
                    {
                        name      = item.name,
                        typebrush = KanColleTools.GetSlotItemEquipTypeBrush(item.id)
                    });
                }
            });
        }
示例#5
0
 void kclib_GetGetmemberDeck(object sender, KanColleLib.TransmissionRequest.RequestBase request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_get_member.Deck> response)
 {
     AppendDeckValue(response.data);
 }
示例#6
0
 async void kclib_GetGetmemberShip2(object sender, KanColleLib.TransmissionRequest.api_get_member.Ship2Request request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_get_member.Ship2> response)
 {
     await AppendShipDataFromList(response.data.ships);
 }
示例#7
0
 void kclib_GetReqmissionReturnInstruction(object sender, KanColleLib.TransmissionRequest.api_req_mission.ReturnInstructionRequest request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_req_mission.ReturnInstruction> response)
 {
     if (fleetdata.Count > request.deck_id - 1)
     {
         if (response.data.mission.Length >= 3)
         {
             fleetdata[request.deck_id - 1].ChangeMissionStatus((int)response.data.mission[0], (int)response.data.mission[1], response.data.mission[2]);
         }
         else
         {
             fleetdata[request.deck_id - 1].ChangeMissionStatus(-1, -1, -1);
         }
     }
 }
示例#8
0
 void kclib_GetReqmissionStart(object sender, KanColleLib.TransmissionRequest.api_req_mission.StartRequest request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_req_mission.Start> response)
 {
     if (fleetdata.Count > request.deck_id - 1)
     {
         fleetdata[request.deck_id - 1].ChangeMissionStatus(1, request.mission_id, response.data.complatetime); // 遠征中の1は固定
     }
 }
示例#9
0
 void kclib_GetReqkousyouGetship(object sender, KanColleLib.TransmissionRequest.api_req_kousyou.GetshipRequest request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_req_kousyou.Getship> response)
 {
     AppendKDockValue(response.data.kdock);
     AppendShipData(response.data.ship);
 }
示例#10
0
 void kclib_GetReqkousyouDestroyship(object sender, KanColleLib.TransmissionRequest.api_req_kousyou.DestroyshipRequest request, KanColleLib.TransmissionData.Svdata <object> response)
 {
     DestroyShip(request.ship_id);
 }
示例#11
0
 void kclib_GetGetmemberBasic(object sender, KanColleLib.TransmissionRequest.RequestBase request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_get_member.Basic> response)
 {
     basicdata.admiral_name    = response.data.nickname;
     basicdata.admiral_comment = response.data.comment;
     basicdata.AppendRank(response.data.rank);
     basicdata.admiral_level  = response.data.level;
     basicdata.admiral_exp    = response.data.experience;
     basicdata.furniture_coin = response.data.fcoin;
     basicdata.max_ship       = response.data.max_chara;
     basicdata.max_equipment  = response.data.max_slotitem;
 }
示例#12
0
 void kclib_GetGetmemberMaterial(object sender, KanColleLib.TransmissionRequest.RequestBase request, KanColleLib.TransmissionData.Svdata <KanColleLib.TransmissionData.api_get_member.Material> response)
 {
     basicdata.FromMaterial(response.data);
 }
示例#13
0
        void kclib_GetReqhenseiChange(object sender, KanColleLib.TransmissionRequest.api_req_hensei.ChangeRequest request, KanColleLib.TransmissionData.Svdata <object> response)
        {
            if (request.id - 1 < fleetdata.Count)
            {
                if (request.ship_id == -2)
                {
                    // 旗艦以外全部解除
                    int removecount = fleetdata[request.id - 1].ships.Count - 1;
                    for (int i = 0; i < removecount; i++)
                    {
                        fleetdata[request.id - 1].ships.RemoveAt(1);
                    }
                }
                else if (request.ship_id == -1)
                {
                    // その艦をはずす
                    fleetdata[request.id - 1].ships.RemoveAt(request.ship_idx);
                }
                else
                {
                    int replaceindex = fleetdata[request.id - 1].ships.IndexOf(request.ship_id);

                    if (replaceindex != -1)
                    {
                        // 艦隊の中に指定艦がいる場合
                        if (fleetdata[request.id - 1].ships.Count > request.ship_idx)
                        {
                            // 他の艦との交代である場合
                            int replaceshipid = fleetdata[request.id - 1].ships[request.ship_idx];
                            fleetdata[request.id - 1].ships[request.ship_idx] = request.ship_id;
                            fleetdata[request.id - 1].ships[replaceindex]     = replaceshipid;
                        }
                        else
                        {
                            // なにもないところに宣言した場合
                            fleetdata[request.id - 1].ships.RemoveAt(request.ship_idx);
                            fleetdata[request.id - 1].ships.Add(request.ship_id);
                        }
                    }
                    else
                    {
                        if (fleetdata[request.id - 1].ships.Count > request.ship_idx)
                        {
                            // 他の艦との交代である場合
                            // もとの艦のID
                            int replaceshipid = fleetdata[request.id - 1].ships[request.ship_idx];
                            fleetdata[request.id - 1].ships[request.ship_idx] = request.ship_id;

                            // 他の艦隊に同艦がいないかどうか確かめる
                            for (int i = 0; i < fleetdata.Count; i++)
                            {
                                if (i == request.id - 1)
                                {
                                    continue;
                                }
                                int rplidx = fleetdata[i].ships.IndexOf(request.ship_id);
                                if (rplidx != -1)
                                {
                                    fleetdata[i].ships[rplidx] = replaceshipid;
                                }
                            }
                        }
                        else
                        {
                            // なにもないところに宣言した場合
                            fleetdata[request.id - 1].ships.Add(request.ship_id);

                            // 他の艦隊に同艦がいないかどうか確かめる
                            for (int i = 0; i < fleetdata.Count; i++)
                            {
                                if (i == request.id - 1)
                                {
                                    continue;
                                }
                                int rplidx = fleetdata[i].ships.IndexOf(request.ship_id);
                                if (rplidx != -1)
                                {
                                    fleetdata[i].ships.RemoveAt(rplidx);
                                }
                            }
                        }
                    }
                }
            }
        }