public override void OnRequestReceived(Dictionary <string, string> data)
        {
            KCDatabase db = KCDatabase.Instance;

            ArsenalData arsenal = db.Arsenals[int.Parse(data["api_kdock_id"])];

            arsenal.State = 3;
            db.Material.InstantConstruction -= arsenal.Fuel >= 1000 ? 10 : 1;


            base.OnRequestReceived(data);
        }
Пример #2
0
        void ConstructionEnd(string apiname, dynamic data)
        {
            if (ConstructingDockID == -1)
            {
                return;
            }

            ArsenalData a         = KCDatabase.Instance.Arsenals[ConstructingDockID];
            int         emptyDock = KCDatabase.Instance.Arsenals.Values.Count(c => c.State == 0);
            ShipData    flagship  = KCDatabase.Instance.Ships[KCDatabase.Instance.Fleet[1].Members[0]];

            Record.Add(new ConstructionElement(a.ShipID, a.Fuel, a.Ammo, a.Steel, a.Bauxite, a.DevelopmentMaterial,
                                               emptyDock, flagship.ShipID, KCDatabase.Instance.Admiral.Level));
        }
Пример #3
0
        public override void OnResponseReceived(dynamic data)
        {
            KCDatabase db = KCDatabase.Instance;

            // Admiral - 各所でバグるので封印
            //db.Admiral.LoadFromResponse( APIName, data.api_basic );


            // Equipments
            db.Equipments.Clear();
            foreach (var elem in data.api_slot_item)
            {
                var eq = new EquipmentData();
                eq.LoadFromResponse(APIName, elem);
                db.Equipments.Add(eq);
            }


            // Arsenal
            foreach (var ars in data.api_kdock)
            {
                int id = (int)ars.api_id;

                if (!db.Arsenals.ContainsKey(id))
                {
                    var a = new ArsenalData();
                    a.LoadFromResponse(APIName, ars);
                    db.Arsenals.Add(a);
                }
                else
                {
                    db.Arsenals[id].LoadFromResponse(APIName, ars);
                }
            }


            // UseItem
            db.UseItems.Clear();
            if (data.api_useitem())
            {
                foreach (var elem in data.api_useitem)
                {
                    var item = new UseItem();
                    item.LoadFromResponse(APIName, elem);
                    db.UseItems.Add(item);
                }
            }

            base.OnResponseReceived((object)data);
        }
Пример #4
0
		public override void OnResponseReceived(dynamic data)
		{

			KCDatabase db = KCDatabase.Instance;

			//api_kdock
			foreach (var ars in data.api_kdock)
			{

				int id = (int)ars.api_id;

				if (!db.Arsenals.ContainsKey(id))
				{
					var a = new ArsenalData();
					a.LoadFromResponse(APIName, ars);
					db.Arsenals.Add(a);

				}
				else
				{
					db.Arsenals[id].LoadFromResponse(APIName, ars);
				}
			}

			//api_slotitem
			if (data.api_slotitem != null)
			{               //装備なしの艦はnullになる
				foreach (var elem in data.api_slotitem)
				{

					var eq = new EquipmentData();
					eq.LoadFromResponse(APIName, elem);
					db.Equipments.Add(eq);

				}
			}

			//api_ship
			{
				ShipData ship = new ShipData();
				ship.LoadFromResponse(APIName, data.api_ship);
				db.Ships.Add(ship);

				Utility.Logger.Add(2, string.Format("{0}「{1}」の建造が完了しました。", ship.MasterShip.ShipTypeName, ship.MasterShip.NameWithClass));
			}


			base.OnResponseReceived((object)data);
		}
Пример #5
0
            public void Update(int arsenalID)
            {
                KCDatabase  db           = KCDatabase.Instance;
                ArsenalData arsenal      = db.Arsenals[arsenalID];
                bool        showShipName = Utility.Configuration.Config.FormArsenal.ShowShipName;

                CompletionTime.BackColor = Color.Transparent;
                CompletionTime.ForeColor = Utility.Configuration.Config.UI.ForeColor;
                tooltip.SetToolTip(ShipName, null);
                tooltip.SetToolTip(CompletionTime, null);

                if (arsenal == null || arsenal.State == -1)
                {
                    //locked
                    ShipName.Text       = "";
                    CompletionTime.Text = "";
                    CompletionTime.Tag  = null;
                }
                else if (arsenal.State == 0)
                {
                    //empty
                    ShipName.Text       = "----";
                    CompletionTime.Text = "";
                    CompletionTime.Tag  = null;
                }
                else if (arsenal.State == 2)
                {
                    //building
                    string name = showShipName ? db.MasterShips[arsenal.ShipID].Name : "???";
                    ShipName.Text = name;
                    tooltip.SetToolTip(ShipName, name);
                    CompletionTime.Text = DateTimeHelper.ToTimeRemainString(arsenal.CompletionTime);
                    CompletionTime.Tag  = arsenal.CompletionTime;
                    tooltip.SetToolTip(CompletionTime, GeneralRes.TimeToCompletion + ":" + DateTimeHelper.TimeToCSVString(arsenal.CompletionTime));
                }
                else if (arsenal.State == 3)
                {
                    //complete!
                    string name = showShipName ? db.MasterShips[arsenal.ShipID].Name : "???";
                    ShipName.Text = name;
                    tooltip.SetToolTip(ShipName, name);
                    CompletionTime.Text = GeneralRes.Complete + "!";
                    CompletionTime.Tag  = null;
                }
            }
Пример #6
0
            public void Update(int arsenalID)
            {
                KCDatabase  db           = KCDatabase.Instance;
                ArsenalData arsenal      = db.Arsenals[arsenalID];
                bool        showShipName = Utility.Configuration.Config.FormArsenal.ShowShipName;


                tooltip.SetToolTip(ShipName, null);
                tooltip.SetToolTip(CompletionTime, null);

                if (arsenal == null || arsenal.State == -1)
                {
                    //locked
                    ShipName.Text       = "";
                    CompletionTime.Text = "";
                    CompletionTime.Tag  = null;
                }
                else if (arsenal.State == 0)
                {
                    //empty
                    ShipName.Text       = "----";
                    CompletionTime.Text = "";
                    CompletionTime.Tag  = null;
                }
                else if (arsenal.State == 2)
                {
                    //building
                    string name = showShipName ? db.MasterShips[arsenal.ShipID].Name : "???";
                    ShipName.Text = name;
                    tooltip.SetToolTip(ShipName, name);
                    CompletionTime.Text = DateTimeHelper.ToTimeRemainString(arsenal.CompletionTime);
                    CompletionTime.Tag  = arsenal.CompletionTime;
                    tooltip.SetToolTip(CompletionTime, "完了日時 : " + arsenal.CompletionTime.ToString());
                }
                else if (arsenal.State == 3)
                {
                    //complete!
                    string name = showShipName ? db.MasterShips[arsenal.ShipID].Name : "???";
                    ShipName.Text = name;
                    tooltip.SetToolTip(ShipName, name);
                    CompletionTime.Text = "完成!";
                    CompletionTime.Tag  = null;
                }
            }
Пример #7
0
        public override void OnResponseReceived(dynamic data)
        {
            KCDatabase db = KCDatabase.Instance;

            //api_kdock
            foreach (var ars in data.api_kdock)
            {
                int id = (int)ars.api_id;

                if (!db.Arsenals.ContainsKey(id))
                {
                    var a = new ArsenalData();
                    a.LoadFromResponse(APIName, ars);
                    db.Arsenals.Add(a);
                }
                else
                {
                    db.Arsenals[id].LoadFromResponse(APIName, ars);
                }
            }

            //api_slotitem
            if (data.api_slotitem != null)                                              //装備なしの艦はnullになる
            {
                foreach (var elem in data.api_slotitem)
                {
                    var eq = new EquipmentData();
                    eq.LoadFromResponse(APIName, elem);
                    db.Equipments.Add(eq);
                }
            }

            //api_ship
            {
                ShipData ship = new ShipData();
                ship.LoadFromResponse(APIName, data.api_ship);
                db.Ships.Add(ship);
            }


            base.OnResponseReceived((object)data);
        }
        void Updated(string apiname, dynamic data)
        {
            if (_buildingID != -1 && apiname == "api_get_member/kdock")
            {
                ArsenalData    arsenal = KCDatabase.Instance.Arsenals[_buildingID];
                ShipDataMaster ship    = KCDatabase.Instance.MasterShips[arsenal.ShipID];
                string         name;

                if (Utility.Configuration.Config.Log.ShowSpoiler && Utility.Configuration.Config.FormArsenal.ShowShipName)
                {
                    name = string.Format("{0}「{1}」", ship.ShipTypeName, ship.NameWithClass);

                    Utility.Logger.Add(2, "", string.Format("工厂船坞 #{0} 开始建造 : ", _buildingID),
                                       string.Format("{0}。({1}/{2}/{3}/{4}-{5})", name, arsenal.Fuel, arsenal.Ammo,
                                                     arsenal.Steel, arsenal.Bauxite, arsenal.DevelopmentMaterial),
                                       " 秘书舰 : ", string.Format("{0}「{1}」 Lv. {2}",
                                                                KCDatabase.Instance.Fleet[1].MembersInstance[0].MasterShip.ShipTypeName,
                                                                KCDatabase.Instance.Fleet[1].MembersInstance[0].MasterShip.NameWithClass,
                                                                KCDatabase.Instance.Fleet[1].MembersInstance[0].Level));
                }
                else
                {
                    Utility.Logger.Add(2, "", string.Format("工厂船坞 #{0} 开始建造新舰娘。", _buildingID),
                                       string.Format("({0}/{1}/{2}/{3}-{4})", arsenal.Fuel, arsenal.Ammo,
                                                     arsenal.Steel, arsenal.Bauxite, arsenal.DevelopmentMaterial),
                                       " 秘书舰 : ", string.Format("{0}「{1}」 Lv. {2}",
                                                                KCDatabase.Instance.Fleet[1].MembersInstance[0].MasterShip.ShipTypeName,
                                                                KCDatabase.Instance.Fleet[1].MembersInstance[0].MasterShip.NameWithClass,
                                                                KCDatabase.Instance.Fleet[1].MembersInstance[0].Level));
                }

                _buildingID = -1;
            }

            if (apiname == "api_req_kousyou/createship")
            {
                _buildingID = int.Parse(data["api_kdock_id"]);
            }

            UpdateUI();
        }
Пример #9
0
        void Updated(string apiname, dynamic data)
        {
            if (_buildingID != -1 && apiname == "api_get_member/kdock")
            {
                ArsenalData    arsenal = KCDatabase.Instance.Arsenals[_buildingID];
                ShipDataMaster ship    = KCDatabase.Instance.MasterShips[arsenal.ShipID];
                string         name;

                if (Utility.Configuration.Config.Log.ShowSpoiler && Utility.Configuration.Config.FormArsenal.ShowShipName)
                {
                    name = string.Format("{0} {1}", ship.ShipTypeName, ship.NameWithClass);
                }
                else
                {
                    name = GeneralRes.ShipGirl;
                }

                Utility.Logger.Add(2, string.Format(GeneralRes.ArsenalLog,
                                                    _buildingID,
                                                    name,
                                                    arsenal.Fuel,
                                                    arsenal.Ammo,
                                                    arsenal.Steel,
                                                    arsenal.Bauxite,
                                                    arsenal.DevelopmentMaterial,
                                                    KCDatabase.Instance.Fleet[1].MembersInstance[0].NameWithLevel
                                                    ));

                _buildingID = -1;
            }

            if (apiname == "api_req_kousyou/createship")
            {
                _buildingID = int.Parse(data["api_kdock_id"]);
            }

            UpdateUI();
        }
Пример #10
0
        public override void OnResponseReceived(dynamic data)
        {
            KCDatabase db = KCDatabase.Instance;

            foreach (var ars in data)
            {
                int id = (int)ars.api_id;

                if (!db.Arsenals.ContainsKey(id))
                {
                    var a = new ArsenalData();
                    a.LoadFromResponse(APIName, ars);
                    db.Arsenals.Add(a);
                }
                else
                {
                    db.Arsenals[id].LoadFromResponse(APIName, ars);
                }
            }


            base.OnResponseReceived((object)data);
        }
Пример #11
0
        public MapData(string text_boundary
		               , string text_obstacles
		               , string text_arsenals
		               )
        {
            string[] data_boundary = text_boundary.Split(',');
            width = Convert.ToInt32(data_boundary[0]);
            height = Convert.ToInt32(data_boundary[1]);

            string[] obstacleText = text_obstacles.Split('*');
            if(obstacleText[0] != "")
            {
                obstacleData = new ObstacleData[obstacleText.Length];
                for(int i = 0; i<obstacleText.Length; i++)
                {
                    obstacleData[i] = new ObstacleData(obstacleText[i]);
                }
            }
            else
            {
                obstacleData = null;
            }

            string[] arsenalText = text_arsenals.Split('*');
            if(arsenalText[0] != "")
            {
                arsenalData = new ArsenalData[arsenalText.Length];
                for(int i = 0; i<arsenalText.Length; i++)
                {
                    arsenalData[i] = new ArsenalData(arsenalText[i]);
                }
            }
            else
            {
                arsenalData = null;
            }
        }