├── .gitattributes
├── .gitignore
├── .gitmodules
├── BrowserLib
├── BrowserLib.csproj
├── IBrowser.cs
├── IBrowserHost.cs
├── PipeCommunicator.cs
├── Properties
│ └── AssemblyInfo.cs
└── VolumeManager.cs
├── ElectronicObserver.sln
├── ElectronicObserver
├── 74eo.ico
├── App.config
├── Assets.zip
├── Assets
│ ├── AppIcon.ico
│ ├── AppIcon_16.png
│ ├── AppIcon_32.png
│ ├── AppIcon_48.png
│ ├── AppIcon_64.png
│ ├── Battle
│ │ ├── FormationEnemy01.png
│ │ ├── FormationEnemy02.png
│ │ ├── FormationEnemy03.png
│ │ ├── FormationEnemy04.png
│ │ └── FormationEnemy05.png
│ ├── Browser
│ │ ├── Mute.png
│ │ ├── Navigate.png
│ │ ├── Other.png
│ │ ├── Refresh.png
│ │ ├── ScreenShot.png
│ │ ├── Unmute.png
│ │ ├── Zoom.png
│ │ ├── ZoomIn.png
│ │ └── ZoomOut.png
│ ├── Condition
│ │ ├── LittleTired.png
│ │ ├── Normal.png
│ │ ├── Sparkle.png
│ │ ├── Tired.png
│ │ └── VeryTired.png
│ ├── Equipment
│ │ ├── AADirector.png
│ │ ├── AAGun.png
│ │ ├── AAShell.png
│ │ ├── APShell.png
│ │ ├── ASPatrol.png
│ │ ├── AmphibiousVehicle.png
│ │ ├── ArmyInterceptor.png
│ │ ├── Autogyro.png
│ │ ├── Bulge.png
│ │ ├── CarrierBasedAircraft.png
│ │ ├── CarrierBasedBomber.png
│ │ ├── CarrierBasedFighter.png
│ │ ├── CarrierBasedRecon.png
│ │ ├── CarrierBasedTorpedo.png
│ │ ├── CommandFacility.png
│ │ ├── DamageControl.png
│ │ ├── DepthCharge.png
│ │ ├── DrumCanister.png
│ │ ├── Engine.png
│ │ ├── Flare.png
│ │ ├── FlyingBoat.png
│ │ ├── HighAngleGun.png
│ │ ├── Interceptor.png
│ │ ├── JetFightingBomberKeiun.png
│ │ ├── JetFightingBomberKikka.png
│ │ ├── LandASPatrol.png
│ │ ├── LandAttacker.png
│ │ ├── LandingCraft.png
│ │ ├── Locked.png
│ │ ├── MainGunL.png
│ │ ├── MainGunM.png
│ │ ├── MainGunS.png
│ │ ├── MaintenanceTeam.png
│ │ ├── NightAttacker.png
│ │ ├── NightFighter.png
│ │ ├── Nothing.png
│ │ ├── PicketCrew.png
│ │ ├── RADAR.png
│ │ ├── Ration.png
│ │ ├── RepairFacility.png
│ │ ├── RocketArtillery.png
│ │ ├── SONAR.png
│ │ ├── Seaplane.png
│ │ ├── SeaplaneFighter.png
│ │ ├── Searchlight.png
│ │ ├── SecondaryGun.png
│ │ ├── SubmarineEquipment.png
│ │ ├── Supplies.png
│ │ ├── Torpedo.png
│ │ ├── TransportMaterials.png
│ │ └── Unknown.png
│ ├── Fairy
│ │ ├── Fairy1.png
│ │ ├── Fairy2.png
│ │ ├── Fairy3.png
│ │ └── Fairy4.png
│ ├── Fleet
│ │ ├── AnchorageRepairing.png
│ │ ├── Combined.png
│ │ ├── Damaged.png
│ │ ├── Docking.png
│ │ ├── Expedition.png
│ │ ├── NoShip.png
│ │ ├── NotReplenished.png
│ │ ├── Ready.png
│ │ ├── Sortie.png
│ │ └── SortieDamaged.png
│ ├── Form
│ │ ├── AlbumEquipment.png
│ │ ├── AlbumShip.png
│ │ ├── AntiAirDefense.png
│ │ ├── Arsenal.png
│ │ ├── BaseAirCorps.png
│ │ ├── Battle.png
│ │ ├── Browser.png
│ │ ├── Compass.png
│ │ ├── Configuration.png
│ │ ├── ConstructionRecord.png
│ │ ├── DevelopmentRecord.png
│ │ ├── Dock.png
│ │ ├── DropRecord.png
│ │ ├── EquipmentList.png
│ │ ├── Fleet.png
│ │ ├── FleetImageGenerator.png
│ │ ├── Headquarters.png
│ │ ├── Information.png
│ │ ├── Json.png
│ │ ├── Log.png
│ │ ├── Main.png
│ │ ├── Quest.png
│ │ ├── ResourceChart.png
│ │ ├── ShipGroup.png
│ │ └── WindowCapture.png
│ ├── Headquarters
│ │ ├── Equipment.png
│ │ └── Ship.png
│ ├── Item
│ │ ├── ActionReport.png
│ │ ├── Blueprint.png
│ │ ├── Catapult.png
│ │ ├── DevelopmentMaterial.png
│ │ ├── FurnitureCoin.png
│ │ ├── InstantConstruction.png
│ │ ├── InstantRepair.png
│ │ ├── ModdingMaterial.png
│ │ └── PresentBox.png
│ ├── Level
│ │ ├── AircraftLevel0.png
│ │ ├── AircraftLevel1.png
│ │ ├── AircraftLevel2.png
│ │ ├── AircraftLevel3.png
│ │ ├── AircraftLevel4.png
│ │ ├── AircraftLevel5.png
│ │ ├── AircraftLevel6.png
│ │ ├── AircraftLevel7.png
│ │ ├── AircraftLevelTop0.png
│ │ ├── AircraftLevelTop1.png
│ │ ├── AircraftLevelTop2.png
│ │ ├── AircraftLevelTop3.png
│ │ ├── AircraftLevelTop4.png
│ │ ├── AircraftLevelTop5.png
│ │ ├── AircraftLevelTop6.png
│ │ └── AircraftLevelTop7.png
│ ├── Nothing.png
│ ├── Parameter
│ │ ├── AA.png
│ │ ├── ASW.png
│ │ ├── Accuracy.png
│ │ ├── Aircraft.png
│ │ ├── AircraftCost.png
│ │ ├── AircraftDistance.png
│ │ ├── Armor.png
│ │ ├── Bomber.png
│ │ ├── Evasion.png
│ │ ├── Firepower.png
│ │ ├── HP.png
│ │ ├── LOS.png
│ │ ├── Luck.png
│ │ ├── Range.png
│ │ ├── Speed.png
│ │ └── Torpedo.png
│ ├── Rarity
│ │ ├── Black.png
│ │ ├── BlueA.png
│ │ ├── BlueB.png
│ │ ├── BlueC.png
│ │ ├── Cherry.png
│ │ ├── Gold.png
│ │ ├── HoloA.png
│ │ ├── HoloB.png
│ │ ├── Red.png
│ │ └── Silver.png
│ ├── Record
│ │ ├── EnemyFleetRecord.csv
│ │ └── ShipParameterRecord.csv
│ ├── Resource
│ │ ├── Ammo.png
│ │ ├── Bauxite.png
│ │ ├── Fuel.png
│ │ └── Steel.png
│ ├── Settings
│ │ └── ShipGroups.xml
│ └── Unused
│ │ ├── Other.png
│ │ ├── Resource
│ │ ├── ammo_empty.png
│ │ ├── ammo_low.png
│ │ ├── bauxite_empty.png
│ │ ├── bauxite_low.png
│ │ ├── fuel_empty.png
│ │ ├── fuel_low.png
│ │ ├── steel_empty.png
│ │ └── steel_low.png
│ │ └── ShipState
│ │ ├── damageL.png
│ │ ├── damageM.png
│ │ ├── damageS.png
│ │ ├── escape.png
│ │ ├── expedition.png
│ │ ├── repair.png
│ │ └── sunk.png
├── Data
│ ├── APIWrapper.cs
│ ├── AdmiralData.cs
│ ├── ArsenalData.cs
│ ├── BaseAirCorpsData.cs
│ ├── BaseAirCorpsSquadron.cs
│ ├── Battle
│ │ ├── BattleAirBattle.cs
│ │ ├── BattleAirRaid.cs
│ │ ├── BattleBaseAirRaid.cs
│ │ ├── BattleCombinedAirBattle.cs
│ │ ├── BattleCombinedAirRaid.cs
│ │ ├── BattleCombinedEachDay.cs
│ │ ├── BattleCombinedEachWater.cs
│ │ ├── BattleCombinedNightOnly.cs
│ │ ├── BattleCombinedNormalDay.cs
│ │ ├── BattleCombinedNormalNight.cs
│ │ ├── BattleCombinedWater.cs
│ │ ├── BattleData.cs
│ │ ├── BattleDay.cs
│ │ ├── BattleDayFromNight.cs
│ │ ├── BattleEnemyCombinedDay.cs
│ │ ├── BattleEnemyCombinedDayFromNight.cs
│ │ ├── BattleEnemyCombinedNight.cs
│ │ ├── BattleIndex.cs
│ │ ├── BattleManager.cs
│ │ ├── BattleNight.cs
│ │ ├── BattleNightOnly.cs
│ │ ├── BattleNormalDay.cs
│ │ ├── BattleNormalDayFromNight.cs
│ │ ├── BattleNormalNight.cs
│ │ ├── BattlePracticeDay.cs
│ │ ├── BattlePracticeNight.cs
│ │ ├── BattleResultData.cs
│ │ ├── Detail
│ │ │ ├── BattleDetail.cs
│ │ │ └── BattleDetailDescriptor.cs
│ │ └── Phase
│ │ │ ├── PhaseAirBattle.cs
│ │ │ ├── PhaseAirBattleBase.cs
│ │ │ ├── PhaseBase.cs
│ │ │ ├── PhaseBaseAirAttack.cs
│ │ │ ├── PhaseBaseAirRaid.cs
│ │ │ ├── PhaseInitial.cs
│ │ │ ├── PhaseJetAirBattle.cs
│ │ │ ├── PhaseJetBaseAirAttack.cs
│ │ │ ├── PhaseNightBattle.cs
│ │ │ ├── PhaseOpeningASW.cs
│ │ │ ├── PhaseSearching.cs
│ │ │ ├── PhaseShelling.cs
│ │ │ ├── PhaseSupport.cs
│ │ │ └── PhaseTorpedo.cs
│ ├── CompassData.cs
│ ├── Constants.cs
│ ├── DockData.cs
│ ├── EquipmentData.cs
│ ├── EquipmentDataMaster.cs
│ ├── EquipmentType.cs
│ ├── EquipmentTypes.cs
│ ├── FleetData.cs
│ ├── FleetManager.cs
│ ├── IDDictionary.cs
│ ├── IIdentifiable.cs
│ ├── KCDatabase.cs
│ ├── MapAreaData.cs
│ ├── MapInfoData.cs
│ ├── MaterialData.cs
│ ├── MissionData.cs
│ ├── Quest
│ │ ├── ProgressAGo.cs
│ │ ├── ProgressBattle.cs
│ │ ├── ProgressConstruction.cs
│ │ ├── ProgressData.cs
│ │ ├── ProgressDestruction.cs
│ │ ├── ProgressDevelopment.cs
│ │ ├── ProgressDiscard.cs
│ │ ├── ProgressDocking.cs
│ │ ├── ProgressExpedition.cs
│ │ ├── ProgressImprovement.cs
│ │ ├── ProgressModernization.cs
│ │ ├── ProgressMultiBattle.cs
│ │ ├── ProgressMultiDiscard.cs
│ │ ├── ProgressPractice.cs
│ │ ├── ProgressSlaughter.cs
│ │ ├── ProgressSupply.cs
│ │ └── QuestProgressManager.cs
│ ├── QuestData.cs
│ ├── QuestManager.cs
│ ├── QuestRewards.cs
│ ├── RelocationData.cs
│ ├── ResponseWrapper.cs
│ ├── ShipData.cs
│ ├── ShipDataMaster.cs
│ ├── ShipGroup
│ │ ├── ExpressionData.cs
│ │ ├── ExpressionList.cs
│ │ └── ExpressionManager.cs
│ ├── ShipGroupData.cs
│ ├── ShipGroupManager.cs
│ ├── ShipOrders.cs
│ ├── ShipType.cs
│ ├── ShipTypes.cs
│ ├── UseItem.cs
│ └── UseItemMaster.cs
├── ElectronicObserver.csproj
├── Notifier
│ ├── NotifierAnchorageRepair.cs
│ ├── NotifierBase.cs
│ ├── NotifierCondition.cs
│ ├── NotifierConstruction.cs
│ ├── NotifierDamage.cs
│ ├── NotifierDialogData.cs
│ ├── NotifierExpedition.cs
│ ├── NotifierManager.cs
│ └── NotifierRepair.cs
├── Observer
│ ├── APIBase.cs
│ ├── APIDictionary.cs
│ ├── APIObserver.cs
│ └── kcsapi
│ │ ├── api_get_member
│ │ ├── base_air_corps.cs
│ │ ├── basic.cs
│ │ ├── deck.cs
│ │ ├── kdock.cs
│ │ ├── mapinfo.cs
│ │ ├── material.cs
│ │ ├── ndock.cs
│ │ ├── payitem.cs
│ │ ├── picture_book.cs
│ │ ├── questlist.cs
│ │ ├── record.cs
│ │ ├── require_info.cs
│ │ ├── ship2.cs
│ │ ├── ship3.cs
│ │ ├── ship_deck.cs
│ │ ├── slot_item.cs
│ │ ├── sortie_conditions.cs
│ │ └── useitem.cs
│ │ ├── api_port
│ │ └── port.cs
│ │ ├── api_req_air_corps
│ │ ├── change_name.cs
│ │ ├── expand_base.cs
│ │ ├── set_action.cs
│ │ ├── set_plane.cs
│ │ └── supply.cs
│ │ ├── api_req_battle_midnight
│ │ ├── battle.cs
│ │ └── sp_midnight.cs
│ │ ├── api_req_combined_battle
│ │ ├── airbattle.cs
│ │ ├── battle.cs
│ │ ├── battle_water.cs
│ │ ├── battleresult.cs
│ │ ├── each_battle.cs
│ │ ├── each_battle_water.cs
│ │ ├── ec_battle.cs
│ │ ├── ec_midnight_battle.cs
│ │ ├── ec_night_to_day.cs
│ │ ├── goback_port.cs
│ │ ├── ld_airbattle.cs
│ │ ├── midnight_battle.cs
│ │ └── sp_midnight.cs
│ │ ├── api_req_hensei
│ │ ├── change.cs
│ │ ├── combined.cs
│ │ └── preset_select.cs
│ │ ├── api_req_hokyu
│ │ └── charge.cs
│ │ ├── api_req_kaisou
│ │ ├── marriage.cs
│ │ ├── open_exslot.cs
│ │ ├── powerup.cs
│ │ ├── remodeling.cs
│ │ ├── slot_deprive.cs
│ │ └── slot_exchange_index.cs
│ │ ├── api_req_kousyou
│ │ ├── createitem.cs
│ │ ├── createship.cs
│ │ ├── createship_speedchange.cs
│ │ ├── destroyitem2.cs
│ │ ├── destroyship.cs
│ │ ├── getship.cs
│ │ ├── remodel_slot.cs
│ │ └── remodel_slotlist.cs
│ │ ├── api_req_map
│ │ ├── next.cs
│ │ ├── select_eventmap_rank.cs
│ │ └── start.cs
│ │ ├── api_req_member
│ │ ├── get_practice_enemyinfo.cs
│ │ ├── updatecomment.cs
│ │ └── updatedeckname.cs
│ │ ├── api_req_mission
│ │ ├── result.cs
│ │ └── start.cs
│ │ ├── api_req_nyukyo
│ │ ├── speedchange.cs
│ │ └── start.cs
│ │ ├── api_req_practice
│ │ ├── battle.cs
│ │ ├── battle_result.cs
│ │ └── midnight_battle.cs
│ │ ├── api_req_quest
│ │ ├── clearitemget.cs
│ │ └── stop.cs
│ │ ├── api_req_ranking
│ │ └── getlist.cs
│ │ ├── api_req_sortie
│ │ ├── airbattle.cs
│ │ ├── battle.cs
│ │ ├── battleresult.cs
│ │ ├── goback_port.cs
│ │ ├── ld_airbattle.cs
│ │ └── night_to_day.cs
│ │ ├── api_start2.cs
│ │ └── api_start2
│ │ └── getData.cs
├── Other
│ └── Information
│ │ ├── apilist.txt
│ │ └── kcmemo.md
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resource
│ ├── Record
│ │ ├── ConstructionRecord.cs
│ │ ├── DevelopmentRecord.cs
│ │ ├── EnemyFleetRecord.cs
│ │ ├── RecordBase.cs
│ │ ├── RecordManager.cs
│ │ ├── ResourceRecord.cs
│ │ ├── ShipDropRecord.cs
│ │ └── ShipParameterRecord.cs
│ ├── ResourceManager.cs
│ └── SwfHelper.cs
├── Settings
│ ├── ColorScheme.Solarized.json
│ └── ColorScheme.example.json
├── Utility
│ ├── Configuration.cs
│ ├── Data
│ │ ├── Calculator.cs
│ │ ├── ExpTable.cs
│ │ └── RecordHash.cs
│ ├── ErrorReporter.cs
│ ├── FleetImageGenerator.cs
│ ├── Logger.cs
│ ├── Mathematics
│ │ ├── DateTimeHelper.cs
│ │ └── Fraction.cs
│ ├── MediaPlayer.cs
│ ├── PathHelper.cs
│ ├── SoftwareInformation.cs
│ ├── Storage
│ │ ├── DataStorage.cs
│ │ ├── SerializableColor.cs
│ │ ├── SerializableFont.cs
│ │ ├── SerializableKeyValuePair.cs
│ │ └── SerializableList.cs
│ ├── SyncBGMPlayer.cs
│ ├── SystemEvents.cs
│ └── WinAPI.cs
├── Window
│ ├── Control
│ │ ├── FleetState.Designer.cs
│ │ ├── FleetState.cs
│ │ ├── FleetState.resx
│ │ ├── ImageLabel.Designer.cs
│ │ ├── ImageLabel.cs
│ │ ├── ImageLabel.resx
│ │ ├── ShipStatusEquipment.Designer.cs
│ │ ├── ShipStatusEquipment.cs
│ │ ├── ShipStatusEquipment.resx
│ │ ├── ShipStatusHP.Designer.cs
│ │ ├── ShipStatusHP.cs
│ │ ├── ShipStatusHP.resx
│ │ ├── ShipStatusLevel.Designer.cs
│ │ ├── ShipStatusLevel.cs
│ │ ├── ShipStatusLevel.resx
│ │ ├── ShipStatusResource.Designer.cs
│ │ ├── ShipStatusResource.cs
│ │ ├── ShipStatusResource.resx
│ │ ├── StatusBarModule.cs
│ │ ├── WindowCaptureButton.Designer.cs
│ │ ├── WindowCaptureButton.cs
│ │ └── WindowCaptureButton.resx
│ ├── Dialog
│ │ ├── DialogAlbumMasterEquipment.Designer.cs
│ │ ├── DialogAlbumMasterEquipment.cs
│ │ ├── DialogAlbumMasterEquipment.resx
│ │ ├── DialogAlbumMasterShip.Designer.cs
│ │ ├── DialogAlbumMasterShip.cs
│ │ ├── DialogAlbumMasterShip.resx
│ │ ├── DialogAlbumShipParameter.Designer.cs
│ │ ├── DialogAlbumShipParameter.cs
│ │ ├── DialogAlbumShipParameter.resx
│ │ ├── DialogAntiAirDefense.Designer.cs
│ │ ├── DialogAntiAirDefense.cs
│ │ ├── DialogAntiAirDefense.resx
│ │ ├── DialogBaseAirCorpsSimulation.Designer.cs
│ │ ├── DialogBaseAirCorpsSimulation.cs
│ │ ├── DialogBaseAirCorpsSimulation.resx
│ │ ├── DialogBattleDetail.Designer.cs
│ │ ├── DialogBattleDetail.cs
│ │ ├── DialogBattleDetail.resx
│ │ ├── DialogConfiguration.Designer.cs
│ │ ├── DialogConfiguration.cs
│ │ ├── DialogConfiguration.resx
│ │ ├── DialogConfigurationBGMPlayer.Designer.cs
│ │ ├── DialogConfigurationBGMPlayer.cs
│ │ ├── DialogConfigurationBGMPlayer.resx
│ │ ├── DialogConfigurationNotifier.Designer.cs
│ │ ├── DialogConfigurationNotifier.cs
│ │ ├── DialogConfigurationNotifier.resx
│ │ ├── DialogConstructionRecordViewer.Designer.cs
│ │ ├── DialogConstructionRecordViewer.cs
│ │ ├── DialogConstructionRecordViewer.resx
│ │ ├── DialogDevelopmentRecordViewer.Designer.cs
│ │ ├── DialogDevelopmentRecordViewer.cs
│ │ ├── DialogDevelopmentRecordViewer.resx
│ │ ├── DialogDropRecordViewer.Designer.cs
│ │ ├── DialogDropRecordViewer.cs
│ │ ├── DialogDropRecordViewer.resx
│ │ ├── DialogEquipmentList.Designer.cs
│ │ ├── DialogEquipmentList.cs
│ │ ├── DialogEquipmentList.resx
│ │ ├── DialogFleetImageGenerator.Designer.cs
│ │ ├── DialogFleetImageGenerator.cs
│ │ ├── DialogFleetImageGenerator.resx
│ │ ├── DialogHalloween.Designer.cs
│ │ ├── DialogHalloween.cs
│ │ ├── DialogHalloween.resx
│ │ ├── DialogLocalAPILoader.Designer.cs
│ │ ├── DialogLocalAPILoader.cs
│ │ ├── DialogLocalAPILoader.resx
│ │ ├── DialogLocalAPILoader2.Designer.cs
│ │ ├── DialogLocalAPILoader2.cs
│ │ ├── DialogLocalAPILoader2.resx
│ │ ├── DialogNotifier.Designer.cs
│ │ ├── DialogNotifier.cs
│ │ ├── DialogNotifier.resx
│ │ ├── DialogResourceChart.Designer.cs
│ │ ├── DialogResourceChart.cs
│ │ ├── DialogResourceChart.resx
│ │ ├── DialogShipGraphicViewer.Designer.cs
│ │ ├── DialogShipGraphicViewer.cs
│ │ ├── DialogShipGraphicViewer.resx
│ │ ├── DialogShipGroupCSVOutput.Designer.cs
│ │ ├── DialogShipGroupCSVOutput.cs
│ │ ├── DialogShipGroupCSVOutput.resx
│ │ ├── DialogShipGroupColumnFilter.Designer.cs
│ │ ├── DialogShipGroupColumnFilter.cs
│ │ ├── DialogShipGroupColumnFilter.resx
│ │ ├── DialogShipGroupFilter.Designer.cs
│ │ ├── DialogShipGroupFilter.cs
│ │ ├── DialogShipGroupFilter.resx
│ │ ├── DialogShipGroupLocateShip.Designer.cs
│ │ ├── DialogShipGroupLocateShip.cs
│ │ ├── DialogShipGroupLocateShip.resx
│ │ ├── DialogShipGroupSortOrder.Designer.cs
│ │ ├── DialogShipGroupSortOrder.cs
│ │ ├── DialogShipGroupSortOrder.resx
│ │ ├── DialogTextInput.Designer.cs
│ │ ├── DialogTextInput.cs
│ │ ├── DialogTextInput.resx
│ │ ├── DialogTextSelect.Designer.cs
│ │ ├── DialogTextSelect.cs
│ │ ├── DialogTextSelect.resx
│ │ ├── DialogVersion.Designer.cs
│ │ ├── DialogVersion.cs
│ │ ├── DialogVersion.resx
│ │ ├── DialogWhitecap.Designer.cs
│ │ ├── DialogWhitecap.cs
│ │ └── DialogWhitecap.resx
│ ├── FormArsenal.Designer.cs
│ ├── FormArsenal.cs
│ ├── FormArsenal.resx
│ ├── FormBaseAirCorps.Designer.cs
│ ├── FormBaseAirCorps.cs
│ ├── FormBaseAirCorps.resx
│ ├── FormBattle.Designer.cs
│ ├── FormBattle.cs
│ ├── FormBattle.resx
│ ├── FormBrowserHost.Designer.cs
│ ├── FormBrowserHost.cs
│ ├── FormBrowserHost.resx
│ ├── FormCompass.Designer.cs
│ ├── FormCompass.cs
│ ├── FormCompass.resx
│ ├── FormDock.Designer.cs
│ ├── FormDock.cs
│ ├── FormDock.resx
│ ├── FormFleet.Designer.cs
│ ├── FormFleet.cs
│ ├── FormFleet.resx
│ ├── FormFleetOverview.Designer.cs
│ ├── FormFleetOverview.cs
│ ├── FormFleetOverview.resx
│ ├── FormHeadQuarters.Designer.cs
│ ├── FormHeadquarters.cs
│ ├── FormHeadquarters.resx
│ ├── FormInformation.Designer.cs
│ ├── FormInformation.cs
│ ├── FormInformation.resx
│ ├── FormJson.Designer.cs
│ ├── FormJson.cs
│ ├── FormJson.resx
│ ├── FormLog.Designer.cs
│ ├── FormLog.cs
│ ├── FormLog.resx
│ ├── FormMain.Designer.cs
│ ├── FormMain.cs
│ ├── FormMain.resx
│ ├── FormQuest.Designer.cs
│ ├── FormQuest.cs
│ ├── FormQuest.resx
│ ├── FormShipGroup.Designer.cs
│ ├── FormShipGroup.cs
│ ├── FormShipGroup.resx
│ ├── FormWindowCapture.Designer.cs
│ ├── FormWindowCapture.cs
│ ├── FormWindowCapture.resx
│ ├── Integrate
│ │ ├── FormCandidate.Designer.cs
│ │ ├── FormCandidate.cs
│ │ ├── FormCandidate.resx
│ │ ├── FormCapturing.Designer.cs
│ │ ├── FormCapturing.cs
│ │ ├── FormCapturing.resx
│ │ ├── FormIntegrated.Designer.cs
│ │ ├── FormIntegrated.cs
│ │ └── FormIntegrated.resx
│ └── Support
│ │ ├── ControlHelper.cs
│ │ ├── CustomFloatWindowFactory.cs
│ │ └── WindowPlacementManager.cs
└── packages.config
├── LICENSE
├── Libraries
└── DynamicJson.dll
├── Licenses
├── Apache.txt
├── DockPanelSuite.txt
├── LGPL.txt
├── Ms-PL.txt
├── Nekoxy.txt
└── SwfExtractor.txt
├── README.md
├── VERSION
└── packages
└── repositories.config
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "DockPanelSuite"]
2 | path = DockPanelSuite
3 | url = https://github.com/RadarNyan/dockpanelsuite.git
4 | branch = 74eo-rn
5 | [submodule "SwfExtractor"]
6 | path = SwfExtractor
7 | url = https://github.com/andanteyk/SwfExtractor.git
8 | [submodule "CefEOBrowser"]
9 | path = CefEOBrowser
10 | url = https://github.com/RadarNyan/CefEOBrowser
11 |
--------------------------------------------------------------------------------
/BrowserLib/IBrowser.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.ServiceModel;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace BrowserLib
9 | {
10 | ///
11 | /// FormBrowserのインターフェス
12 | /// WCFでプロセス間通信用
13 | ///
14 | [ServiceContract]
15 | public interface IBrowser
16 | {
17 | [OperationContract]
18 | void ConfigurationChanged(BrowserConfiguration conf);
19 |
20 | [OperationContract]
21 | void InitialAPIReceived();
22 |
23 | [OperationContract]
24 | void SaveScreenShot();
25 |
26 | [OperationContract]
27 | void RefreshBrowser();
28 |
29 | [OperationContract]
30 | void ApplyZoom();
31 |
32 | [OperationContract]
33 | void Navigate(string url);
34 |
35 | ///
36 | /// プロキシをセット
37 | ///
38 | [OperationContract]
39 | void SetProxy(string proxy);
40 |
41 | [OperationContract]
42 | void ApplyStyleSheet();
43 |
44 | [OperationContract]
45 | void DestroyDMMreloadDialog();
46 |
47 | [OperationContract]
48 | void CloseBrowser();
49 |
50 | [OperationContract]
51 | void SetIconResource(byte[] canvas);
52 |
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/BrowserLib/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
6 | // アセンブリに関連付けられている情報を変更するには、
7 | // これらの属性値を変更してください。
8 | [assembly: AssemblyTitle("BrowserLib")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("BrowserLib")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから
18 | // 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、
19 | // その型の ComVisible 属性を true に設定してください。
20 | [assembly: ComVisible(false)]
21 |
22 | // 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です
23 | [assembly: Guid("2ed42fa2-5b91-4192-8907-917dcc57a8f5")]
24 |
25 | // アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
33 | // 既定値にすることができます:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/ElectronicObserver/74eo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/74eo.ico
--------------------------------------------------------------------------------
/ElectronicObserver/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/ElectronicObserver/Assets.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets.zip
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/AppIcon.ico
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/AppIcon_16.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/AppIcon_32.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/AppIcon_48.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/AppIcon_64.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Battle/FormationEnemy01.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Battle/FormationEnemy02.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Battle/FormationEnemy03.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Battle/FormationEnemy04.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Battle/FormationEnemy05.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Mute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/Mute.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Navigate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/Navigate.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/Other.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/Refresh.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/ScreenShot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/ScreenShot.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Unmute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/Unmute.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/Zoom.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/ZoomIn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/ZoomIn.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/ZoomOut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Browser/ZoomOut.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/LittleTired.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Condition/LittleTired.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Condition/Normal.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/Sparkle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Condition/Sparkle.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/Tired.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Condition/Tired.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/VeryTired.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Condition/VeryTired.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AADirector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/AADirector.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AAGun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/AAGun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AAShell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/AAShell.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/APShell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/APShell.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/ASPatrol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/ASPatrol.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AmphibiousVehicle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/AmphibiousVehicle.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/ArmyInterceptor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/ArmyInterceptor.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Autogyro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Autogyro.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Bulge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Bulge.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedAircraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/CarrierBasedAircraft.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedBomber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/CarrierBasedBomber.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedFighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/CarrierBasedFighter.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedRecon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/CarrierBasedRecon.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedTorpedo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/CarrierBasedTorpedo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CommandFacility.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/CommandFacility.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/DamageControl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/DamageControl.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/DepthCharge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/DepthCharge.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/DrumCanister.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/DrumCanister.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Engine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Engine.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Flare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Flare.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/FlyingBoat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/FlyingBoat.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/HighAngleGun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/HighAngleGun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Interceptor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Interceptor.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/JetFightingBomberKeiun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/JetFightingBomberKeiun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/JetFightingBomberKikka.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/JetFightingBomberKikka.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/LandASPatrol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/LandASPatrol.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/LandAttacker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/LandAttacker.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/LandingCraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/LandingCraft.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Locked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Locked.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MainGunL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/MainGunL.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MainGunM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/MainGunM.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MainGunS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/MainGunS.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MaintenanceTeam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/MaintenanceTeam.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/NightAttacker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/NightAttacker.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/NightFighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/NightFighter.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Nothing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Nothing.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/PicketCrew.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/PicketCrew.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/RADAR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/RADAR.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Ration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Ration.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/RepairFacility.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/RepairFacility.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/RocketArtillery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/RocketArtillery.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SONAR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/SONAR.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Seaplane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Seaplane.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SeaplaneFighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/SeaplaneFighter.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Searchlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Searchlight.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SecondaryGun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/SecondaryGun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SubmarineEquipment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/SubmarineEquipment.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Supplies.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Supplies.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Torpedo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Torpedo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/TransportMaterials.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/TransportMaterials.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Equipment/Unknown.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fairy/Fairy1.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fairy/Fairy2.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fairy/Fairy3.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fairy/Fairy4.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/AnchorageRepairing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/AnchorageRepairing.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Combined.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/Combined.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Damaged.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/Damaged.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Docking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/Docking.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Expedition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/Expedition.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/NoShip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/NoShip.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/NotReplenished.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/NotReplenished.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Ready.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/Ready.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Sortie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/Sortie.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/SortieDamaged.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Fleet/SortieDamaged.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/AlbumEquipment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/AlbumEquipment.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/AlbumShip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/AlbumShip.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/AntiAirDefense.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/AntiAirDefense.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Arsenal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Arsenal.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/BaseAirCorps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/BaseAirCorps.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Battle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Battle.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Browser.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Compass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Compass.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Configuration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Configuration.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ConstructionRecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/ConstructionRecord.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/DevelopmentRecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/DevelopmentRecord.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Dock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Dock.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/DropRecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/DropRecord.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/EquipmentList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/EquipmentList.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Fleet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Fleet.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/FleetImageGenerator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/FleetImageGenerator.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Headquarters.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Headquarters.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Information.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Information.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Json.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Json.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Log.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Main.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Quest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/Quest.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ResourceChart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/ResourceChart.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ShipGroup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/ShipGroup.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/WindowCapture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Form/WindowCapture.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Headquarters/Equipment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Headquarters/Equipment.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Headquarters/Ship.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Headquarters/Ship.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/ActionReport.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/ActionReport.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/Blueprint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/Blueprint.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/Catapult.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/Catapult.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/DevelopmentMaterial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/DevelopmentMaterial.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/FurnitureCoin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/FurnitureCoin.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/InstantConstruction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/InstantConstruction.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/InstantRepair.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/InstantRepair.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/ModdingMaterial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/ModdingMaterial.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/PresentBox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Item/PresentBox.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel0.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel1.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel2.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel3.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel4.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel5.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel6.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevel7.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop0.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop1.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop2.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop3.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop4.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop5.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop6.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Level/AircraftLevelTop7.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Nothing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Nothing.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/AA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/AA.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/ASW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/ASW.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Accuracy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Accuracy.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Aircraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Aircraft.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/AircraftCost.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/AircraftCost.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/AircraftDistance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/AircraftDistance.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Armor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Armor.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Bomber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Bomber.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Evasion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Evasion.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Firepower.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Firepower.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/HP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/HP.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/LOS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/LOS.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Luck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Luck.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Range.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Range.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Speed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Speed.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Torpedo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Parameter/Torpedo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/Black.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/BlueA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/BlueA.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/BlueB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/BlueB.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/BlueC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/BlueC.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Cherry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/Cherry.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Gold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/Gold.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/HoloA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/HoloA.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/HoloB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/HoloB.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/Red.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Silver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Rarity/Silver.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Record/EnemyFleetRecord.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Record/EnemyFleetRecord.csv
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Record/ShipParameterRecord.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Record/ShipParameterRecord.csv
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Ammo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Resource/Ammo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Bauxite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Resource/Bauxite.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Fuel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Resource/Fuel.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Steel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Resource/Steel.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Other.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/ammo_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/ammo_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/ammo_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/ammo_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/bauxite_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/bauxite_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/bauxite_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/bauxite_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/fuel_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/fuel_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/fuel_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/fuel_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/steel_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/steel_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/steel_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/Resource/steel_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/damageL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/ShipState/damageL.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/damageM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/ShipState/damageM.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/damageS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/ShipState/damageS.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/escape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/ShipState/escape.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/expedition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/ShipState/expedition.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/repair.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/ShipState/repair.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/sunk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/ElectronicObserver/Assets/Unused/ShipState/sunk.png
--------------------------------------------------------------------------------
/ElectronicObserver/Data/APIWrapper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Web;
7 |
8 | namespace ElectronicObserver.Data
9 | {
10 |
11 | ///
12 | /// Responseに加え、Requestも扱うことのできるクラスの基底です。
13 | ///
14 | public abstract class APIWrapper : ResponseWrapper
15 | {
16 |
17 | public Dictionary RequestData { get; private set; }
18 |
19 |
20 | public APIWrapper()
21 | : base()
22 | {
23 |
24 | RequestData = new Dictionary();
25 |
26 | }
27 |
28 |
29 | public virtual void LoadFromRequest(string apiname, Dictionary data)
30 | {
31 |
32 | /*
33 | // data is string:
34 | data = HttpUtility.UrlDecode( data );
35 |
36 | RequestData.Clear();
37 | foreach ( string unit in data.Split( "&".ToCharArray() ) ) {
38 | string[] pair = unit.Split( "=".ToCharArray() );
39 | RequestData.Add( pair[0], pair[1] );
40 | }
41 | */
42 |
43 | RequestData = data;
44 | }
45 |
46 | }
47 |
48 | }
49 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleAirBattle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 通常艦隊 vs 通常艦隊 航空戦
13 | ///
14 | public class BattleAirBattle : BattleDay
15 | {
16 |
17 | public PhaseAirBattle AirBattle2 { get; protected set; }
18 |
19 | public override void LoadFromResponse(string apiname, dynamic data)
20 | {
21 | base.LoadFromResponse(apiname, (object)data);
22 |
23 | JetBaseAirAttack = new PhaseJetBaseAirAttack(this, "喷式基地航空队攻击");
24 | JetAirBattle = new PhaseJetAirBattle(this, "喷式航空战");
25 | BaseAirAttack = new PhaseBaseAirAttack(this, "基地航空队攻击");
26 | AirBattle = new PhaseAirBattle(this, "第一次航空战");
27 | Support = new PhaseSupport(this, "支援攻击");
28 | AirBattle2 = new PhaseAirBattle(this, "第二次航空战", "2");
29 |
30 | foreach (var phase in GetPhases())
31 | phase.EmulateBattle(_resultHPs, _attackDamages);
32 |
33 | }
34 |
35 | public override string APIName => "api_req_sortie/airbattle";
36 |
37 | public override string BattleName => "通常舰队 航空战";
38 |
39 |
40 |
41 |
42 | public override IEnumerable GetPhases()
43 | {
44 | yield return Initial;
45 | yield return Searching;
46 | yield return JetBaseAirAttack;
47 | yield return JetAirBattle;
48 | yield return BaseAirAttack;
49 | yield return AirBattle;
50 | yield return Support;
51 | yield return AirBattle2;
52 | }
53 |
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleAirRaid.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 通常艦隊 vs 通常艦隊 長距離空襲戦
13 | ///
14 | public class BattleAirRaid : BattleDay
15 | {
16 |
17 | public override void LoadFromResponse(string apiname, dynamic data)
18 | {
19 | base.LoadFromResponse(apiname, (object)data);
20 |
21 | JetBaseAirAttack = new PhaseJetBaseAirAttack(this, "喷式基地航空队攻击");
22 | JetAirBattle = new PhaseJetAirBattle(this, "喷式空袭战");
23 | BaseAirAttack = new PhaseBaseAirAttack(this, "基地航空队攻击");
24 | AirBattle = new PhaseAirBattle(this, "空袭战");
25 | // 支援は出ないものとする
26 |
27 | foreach (var phase in GetPhases())
28 | phase.EmulateBattle(_resultHPs, _attackDamages);
29 |
30 | }
31 |
32 | public override string APIName => "api_req_sortie/ld_airbattle";
33 |
34 | public override string BattleName => "通常舰队 长距离空袭战";
35 |
36 |
37 | public override IEnumerable GetPhases()
38 | {
39 | yield return Initial;
40 | yield return Searching;
41 | yield return JetBaseAirAttack;
42 | yield return JetAirBattle;
43 | yield return BaseAirAttack;
44 | yield return AirBattle;
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleBaseAirRaid.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 基地防空戦
13 | ///
14 | public class BattleBaseAirRaid : BattleDay
15 | {
16 |
17 | public PhaseBaseAirRaid BaseAirRaid { get; protected set; }
18 |
19 | public override void LoadFromResponse(string apiname, dynamic data)
20 | {
21 | base.LoadFromResponse(apiname, (object)data);
22 |
23 | BaseAirRaid = new PhaseBaseAirRaid(this, "防空战");
24 |
25 | foreach (var phase in GetPhases())
26 | phase.EmulateBattle(_resultHPs, _attackDamages);
27 |
28 | }
29 |
30 |
31 | public override string APIName => "api_req_map/next";
32 |
33 | public override string BattleName => "基地防空战";
34 |
35 | public override bool IsBaseAirRaid => true;
36 |
37 | public override IEnumerable GetPhases()
38 | {
39 | yield return Initial;
40 | yield return Searching;
41 | yield return BaseAirRaid;
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleCombinedAirBattle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Collections.ObjectModel;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace ElectronicObserver.Data.Battle
10 | {
11 |
12 | ///
13 | /// 連合艦隊 vs 通常艦隊 航空戦
14 | ///
15 | public class BattleCombinedAirBattle : BattleDay
16 | {
17 |
18 | public PhaseAirBattle AirBattle2 { get; protected set; }
19 |
20 | public override void LoadFromResponse(string apiname, dynamic data)
21 | {
22 | base.LoadFromResponse(apiname, (object)data);
23 |
24 | JetBaseAirAttack = new PhaseJetBaseAirAttack(this, "喷式基地航空队攻击");
25 | JetAirBattle = new PhaseJetAirBattle(this, "喷式航空战");
26 | BaseAirAttack = new PhaseBaseAirAttack(this, "基地航空队攻击");
27 | AirBattle = new PhaseAirBattle(this, "第一次航空战");
28 | Support = new PhaseSupport(this, "支援攻击");
29 | AirBattle2 = new PhaseAirBattle(this, "第二次航空战", "2");
30 |
31 | foreach (var phase in GetPhases())
32 | phase.EmulateBattle(_resultHPs, _attackDamages);
33 |
34 | }
35 |
36 |
37 | public override string APIName => "api_req_combined_battle/airbattle";
38 |
39 | public override string BattleName => "联合舰队 航空战";
40 |
41 |
42 | public override IEnumerable GetPhases()
43 | {
44 | yield return Initial;
45 | yield return Searching;
46 | yield return JetBaseAirAttack;
47 | yield return JetAirBattle;
48 | yield return BaseAirAttack;
49 | yield return AirBattle;
50 | yield return Support;
51 | yield return AirBattle2;
52 | }
53 |
54 | }
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleCombinedAirRaid.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 連合艦隊 vs 通常艦隊 長距離空襲戦
13 | ///
14 | public class BattleCombinedAirRaid : BattleDay
15 | {
16 |
17 | public override void LoadFromResponse(string apiname, dynamic data)
18 | {
19 | base.LoadFromResponse(apiname, (object)data);
20 |
21 | JetBaseAirAttack = new PhaseJetBaseAirAttack(this, "喷式基地航空队攻击");
22 | JetAirBattle = new PhaseJetAirBattle(this, "喷式空袭战");
23 | BaseAirAttack = new PhaseBaseAirAttack(this, "基地航空队攻击");
24 | AirBattle = new PhaseAirBattle(this, "空袭战");
25 | // 支援はないものとする
26 |
27 | foreach (var phase in GetPhases())
28 | phase.EmulateBattle(_resultHPs, _attackDamages);
29 |
30 | }
31 |
32 |
33 | public override string APIName => "api_req_combined_battle/ld_airbattle";
34 |
35 | public override string BattleName => "联合舰队 长距离空袭战";
36 |
37 |
38 | public override IEnumerable GetPhases()
39 | {
40 | yield return Initial;
41 | yield return Searching;
42 | yield return JetBaseAirAttack;
43 | yield return JetAirBattle;
44 | yield return BaseAirAttack;
45 | yield return AirBattle;
46 | }
47 |
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleCombinedNightOnly.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Collections.ObjectModel;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace ElectronicObserver.Data.Battle
10 | {
11 |
12 | ///
13 | /// 連合艦隊 vs 通常艦隊 開幕夜戦
14 | ///
15 | public class BattleCombinedNightOnly : BattleNight
16 | {
17 |
18 | public override void LoadFromResponse(string apiname, dynamic data)
19 | {
20 | base.LoadFromResponse(apiname, (object)data);
21 |
22 | Support = new PhaseSupport(this, "夜间支援攻击", true);
23 | NightBattle = new PhaseNightBattle(this, "夜战", 0, true);
24 |
25 |
26 | foreach (var phase in GetPhases())
27 | phase.EmulateBattle(_resultHPs, _attackDamages);
28 | }
29 |
30 |
31 |
32 | public override string APIName => "api_req_combined_battle/sp_midnight";
33 |
34 | public override string BattleName => "联合舰队 开幕夜战";
35 |
36 |
37 | public override IEnumerable GetPhases()
38 | {
39 | yield return Initial;
40 | yield return Searching;
41 | yield return Support;
42 | yield return NightBattle;
43 | }
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleCombinedNormalNight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Collections.ObjectModel;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace ElectronicObserver.Data.Battle
10 | {
11 |
12 | ///
13 | /// 連合艦隊 vs 通常艦隊 夜戦
14 | ///
15 | public class BattleCombinedNormalNight : BattleNight
16 | {
17 |
18 | public override void LoadFromResponse(string apiname, dynamic data)
19 | {
20 | base.LoadFromResponse(apiname, (object)data);
21 |
22 | // 支援なし?
23 | NightBattle = new PhaseNightBattle(this, "夜战", 0, true);
24 |
25 |
26 | foreach (var phase in GetPhases())
27 | phase.EmulateBattle(_resultHPs, _attackDamages);
28 | }
29 |
30 |
31 | public override string APIName => "api_req_combined_battle/midnight_battle";
32 |
33 | public override string BattleName => "联合舰队 夜战";
34 |
35 |
36 | public override IEnumerable GetPhases()
37 | {
38 | yield return Initial;
39 | yield return NightBattle;
40 | }
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleDay.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 昼戦の基底クラス
13 | ///
14 | public abstract class BattleDay : BattleData
15 | {
16 |
17 | public PhaseJetBaseAirAttack JetBaseAirAttack { get; protected set; }
18 | public PhaseJetAirBattle JetAirBattle { get; protected set; }
19 | public PhaseBaseAirAttack BaseAirAttack { get; protected set; }
20 | public PhaseAirBattle AirBattle { get; protected set; }
21 | public PhaseOpeningASW OpeningASW { get; protected set; }
22 | public PhaseTorpedo OpeningTorpedo { get; protected set; }
23 | public PhaseShelling Shelling1 { get; protected set; }
24 | public PhaseShelling Shelling2 { get; protected set; }
25 | public PhaseShelling Shelling3 { get; protected set; }
26 | public PhaseTorpedo Torpedo { get; protected set; }
27 |
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleDayFromNight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 | ///
11 | /// 夜昼戦
12 | ///
13 | public abstract class BattleDayFromNight : BattleNight
14 | {
15 |
16 | public PhaseSupport NightSupport { get; protected set; }
17 | public PhaseNightBattle NightBattle2 { get; protected set; }
18 |
19 | public bool NextToDay => (int)RawData.api_day_flag != 0;
20 |
21 | public PhaseJetBaseAirAttack JetBaseAirAttack { get; protected set; }
22 | public PhaseJetAirBattle JetAirBattle { get; protected set; }
23 | public PhaseBaseAirAttack BaseAirAttack { get; protected set; }
24 | public PhaseAirBattle AirBattle { get; protected set; }
25 | public PhaseOpeningASW OpeningASW { get; protected set; }
26 | public PhaseTorpedo OpeningTorpedo { get; protected set; }
27 | public PhaseShelling Shelling1 { get; protected set; }
28 | public PhaseShelling Shelling2 { get; protected set; }
29 | public PhaseTorpedo Torpedo { get; protected set; }
30 |
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleEnemyCombinedNight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 通常/連合艦隊 vs 連合艦隊 夜戦
13 | ///
14 | public class BattleEnemyCombinedNight : BattleNight
15 | {
16 |
17 | public override void LoadFromResponse(string apiname, dynamic data)
18 | {
19 | base.LoadFromResponse(apiname, (object)data);
20 |
21 | // 支援なし?
22 | NightBattle = new PhaseNightBattle(this, "夜战", 0, false);
23 |
24 |
25 | foreach (var phase in GetPhases())
26 | phase.EmulateBattle(_resultHPs, _attackDamages);
27 | }
28 |
29 |
30 | public override string APIName => "api_req_combined_battle/ec_midnight_battle";
31 |
32 | public override string BattleName => "对联合舰队 夜战";
33 |
34 |
35 |
36 | public override IEnumerable GetPhases()
37 | {
38 | yield return Initial;
39 | yield return NightBattle;
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleNight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 夜戦の基底クラス
13 | ///
14 | public abstract class BattleNight : BattleData
15 | {
16 |
17 | public PhaseNightBattle NightBattle { get; protected set; }
18 |
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleNightOnly.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 通常/連合艦隊 vs 通常艦隊 開幕夜戦
13 | ///
14 | public class BattleNightOnly : BattleNight
15 | {
16 |
17 | public override void LoadFromResponse(string apiname, dynamic data)
18 | {
19 | base.LoadFromResponse(apiname, (object)data);
20 |
21 | Support = new PhaseSupport(this, "夜间支援攻击", true);
22 | NightBattle = new PhaseNightBattle(this, "夜战", 0, false);
23 |
24 |
25 | foreach (var phase in GetPhases())
26 | phase.EmulateBattle(_resultHPs, _attackDamages);
27 | }
28 |
29 |
30 | public override string APIName => "api_req_battle_midnight/sp_midnight";
31 |
32 | public override string BattleName => "通常舰队 开幕夜战";
33 |
34 |
35 |
36 | public override IEnumerable GetPhases()
37 | {
38 | yield return Initial;
39 | yield return Searching;
40 | yield return Support;
41 | yield return NightBattle;
42 | }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleNormalNight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 通常艦隊 vs 通常艦隊 夜戦
13 | ///
14 | public class BattleNormalNight : BattleNight
15 | {
16 |
17 | public override void LoadFromResponse(string apiname, dynamic data)
18 | {
19 | base.LoadFromResponse(apiname, (object)data);
20 |
21 | // 支援なし?
22 | NightBattle = new PhaseNightBattle(this, "夜战", 0, false);
23 |
24 | foreach (var phase in GetPhases())
25 | phase.EmulateBattle(_resultHPs, _attackDamages);
26 | }
27 |
28 |
29 | public override string APIName => "api_req_battle_midnight/battle";
30 |
31 | public override string BattleName => "通常舰队 夜战";
32 |
33 |
34 |
35 | public override IEnumerable GetPhases()
36 | {
37 | yield return Initial;
38 | yield return NightBattle;
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattlePracticeDay.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 演習 昼戦
13 | ///
14 | public class BattlePracticeDay : BattleDay
15 | {
16 |
17 | public override void LoadFromResponse(string apiname, dynamic data)
18 | {
19 | base.LoadFromResponse(apiname, (object)data);
20 |
21 | JetAirBattle = new PhaseJetAirBattle(this, "喷式航空战");
22 | AirBattle = new PhaseAirBattle(this, "航空战");
23 | OpeningASW = new PhaseOpeningASW(this, "先制对潜");
24 | OpeningTorpedo = new PhaseTorpedo(this, "开幕雷击", 0);
25 | Shelling1 = new PhaseShelling(this, "第一次炮击战", 1, "1");
26 | Shelling2 = new PhaseShelling(this, "第二次炮击战", 2, "2");
27 | Shelling3 = new PhaseShelling(this, "第三次炮击战", 3, "3");
28 | Torpedo = new PhaseTorpedo(this, "雷击战", 4);
29 |
30 |
31 | foreach (var phase in GetPhases())
32 | phase.EmulateBattle(_resultHPs, _attackDamages);
33 |
34 | }
35 |
36 |
37 | public override string APIName => "api_req_practice/battle";
38 |
39 | public override string BattleName => "演习 昼战";
40 |
41 | public override bool IsPractice => true;
42 |
43 |
44 | public override IEnumerable GetPhases()
45 | {
46 | yield return Initial;
47 | yield return Searching;
48 | yield return JetAirBattle;
49 | yield return AirBattle;
50 | yield return OpeningASW;
51 | yield return OpeningTorpedo;
52 | yield return Shelling1;
53 | yield return Shelling2;
54 | yield return Shelling3;
55 | yield return Torpedo;
56 | }
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattlePracticeNight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data.Battle.Phase;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 |
11 | ///
12 | /// 演習 夜戦
13 | ///
14 | public class BattlePracticeNight : BattleNight
15 | {
16 |
17 | public override void LoadFromResponse(string apiname, dynamic data)
18 | {
19 | base.LoadFromResponse(apiname, (object)data);
20 |
21 | NightBattle = new PhaseNightBattle(this, "夜战", 0, false);
22 |
23 | NightBattle.EmulateBattle(_resultHPs, _attackDamages);
24 |
25 | }
26 |
27 |
28 | public override string APIName => "api_req_practice/midnight_battle";
29 |
30 | public override string BattleName => "演习 夜战";
31 |
32 | public override bool IsPractice => true;
33 |
34 |
35 | public override IEnumerable GetPhases()
36 | {
37 | yield return Initial;
38 | yield return NightBattle;
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/Phase/PhaseOpeningASW.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Data.Battle.Phase
8 | {
9 |
10 | ///
11 | /// 開幕対潜攻撃フェーズの処理を行います。
12 | ///
13 | public class PhaseOpeningASW : PhaseShelling
14 | {
15 |
16 | // 砲撃戦とフォーマットが同じなので流用
17 |
18 | public PhaseOpeningASW(BattleData data, string title)
19 | : base(data, title, 0, "")
20 | {
21 |
22 | }
23 |
24 | public override bool IsAvailable => (int)RawData.api_opening_taisen_flag != 0;
25 |
26 | public override dynamic ShellingData => RawData.api_opening_taisen;
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/Phase/PhaseSearching.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Data.Battle.Phase
8 | {
9 |
10 | ///
11 | /// 索敵フェーズの処理を行います。
12 | ///
13 | public class PhaseSearching : PhaseBase
14 | {
15 |
16 |
17 | public PhaseSearching(BattleData data, string title)
18 | : base(data, title) { }
19 |
20 |
21 | public override bool IsAvailable => RawData.api_search() && RawData.api_formation();
22 |
23 | public override void EmulateBattle(int[] hps, int[] damages)
24 | {
25 | }
26 |
27 |
28 | ///
29 | /// 自軍索敵結果
30 | ///
31 | public int SearchingFriend => !RawData.api_search() ? -1 : (int)RawData.api_search[0];
32 |
33 |
34 | ///
35 | /// 敵軍索敵結果
36 | ///
37 | public int SearchingEnemy => !RawData.api_search() ? -1 : (int)RawData.api_search[1];
38 |
39 |
40 | ///
41 | /// 自軍陣形
42 | ///
43 | public int FormationFriend
44 | {
45 | get
46 | {
47 | dynamic form = RawData.api_formation[0];
48 | return form is string ? int.Parse((string)form) : (int)form;
49 | }
50 | }
51 |
52 | ///
53 | /// 敵軍陣形
54 | ///
55 | public int FormationEnemy => (int)RawData.api_formation[1];
56 |
57 | ///
58 | /// 交戦形態
59 | ///
60 | public int EngagementForm => (int)RawData.api_formation[2];
61 | }
62 | }
63 |
64 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/EquipmentType.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data
9 | {
10 |
11 | ///
12 | /// 装備種別
13 | ///
14 | public class EquipmentType : ResponseWrapper, IIdentifiable
15 | {
16 |
17 | ///
18 | /// 装備種別ID
19 | ///
20 | public int TypeID => (int)RawData.api_id;
21 |
22 | ///
23 | /// 名前
24 | ///
25 | public string Name => RawData.api_name;
26 |
27 | //show_flg
28 |
29 |
30 | ///
31 | /// 装備種別ID
32 | ///
33 | public EquipmentTypes Type => (EquipmentTypes)TypeID;
34 |
35 |
36 | public override string ToString() => $"[{TypeID}] {Name}";
37 |
38 | public int ID => TypeID;
39 |
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/IIdentifiable.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Data
8 | {
9 |
10 | ///
11 | /// 固有のIDを取得できることを示します。
12 | ///
13 | public interface IIdentifiable
14 | {
15 |
16 | int ID { get; }
17 |
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/MapAreaData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Data
8 | {
9 |
10 | public class MapAreaData : APIWrapper, IIdentifiable
11 | {
12 |
13 | ///
14 | /// 海域カテゴリID
15 | ///
16 | public int MapAreaID => (int)RawData.api_id;
17 |
18 | ///
19 | /// 海域カテゴリ名
20 | ///
21 | public string Name => RawData.api_name;
22 |
23 | ///
24 | /// 海域タイプ 0=通常, 1=イベント
25 | ///
26 | public int MapType => (int)RawData.api_type;
27 |
28 |
29 |
30 | public int ID => MapAreaID;
31 | public override string ToString() => $"[{MapAreaID}] {Name}";
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/MissionData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Data
8 | {
9 |
10 | ///
11 | /// 遠征データを保持します。
12 | ///
13 | public class MissionData : APIWrapper, IIdentifiable
14 | {
15 |
16 | ///
17 | /// 任務ID
18 | ///
19 | public int MissionID => (int)RawData.api_id;
20 |
21 | ///
22 | /// 海域カテゴリID
23 | ///
24 | public int MapAreaID => (int)RawData.api_maparea_id;
25 |
26 | ///
27 | /// 遠征名
28 | ///
29 | public string Name => RawData.api_name;
30 |
31 | ///
32 | /// 説明文
33 | ///
34 | public string Detail => RawData.api_details;
35 |
36 | ///
37 | /// 遠征時間(分単位)
38 | ///
39 | public int Time => (int)RawData.api_time;
40 |
41 | ///
42 | /// 難易度
43 | ///
44 | public int Difficulty => (int)RawData.api_difficulty;
45 |
46 | ///
47 | /// 消費燃料割合
48 | ///
49 | public double Fuel => RawData.api_use_fuel;
50 |
51 | ///
52 | /// 消費弾薬割合
53 | ///
54 | public double Ammo => RawData.api_use_bull;
55 |
56 | //win_item
57 |
58 | ///
59 | /// 遠征中断・強制帰投可能かどうか
60 | ///
61 | public bool Cancelable => (int)RawData.api_return_flag != 0;
62 |
63 |
64 |
65 | public int ID => MissionID;
66 | public override string ToString() => $"[{MissionID}] {Name}";
67 | }
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressConstruction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 艦船建造任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressConstruction")]
15 | public class ProgressConstruction : ProgressData
16 | {
17 |
18 | public ProgressConstruction(QuestData quest, int maxCount)
19 | : base(quest, maxCount)
20 | {
21 | }
22 |
23 |
24 | public override string GetClearCondition()
25 | {
26 | return "建造" + ProgressMax;
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressDestruction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 艦船解体任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressDestruction")]
15 | public class ProgressDestruction : ProgressData
16 | {
17 |
18 | public ProgressDestruction(QuestData quest, int maxCount)
19 | : base(quest, maxCount)
20 | {
21 | }
22 |
23 | public void Increment(int amount)
24 | {
25 | for (int i = 0; i < amount; i++)
26 | Increment();
27 | }
28 |
29 | public override string GetClearCondition()
30 | {
31 | return "解体" + ProgressMax;
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressDevelopment.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 装備開発任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressDevelopment")]
15 | public class ProgressDevelopment : ProgressData
16 | {
17 |
18 | public ProgressDevelopment(QuestData quest, int maxCount)
19 | : base(quest, maxCount)
20 | {
21 | }
22 |
23 | public override string GetClearCondition()
24 | {
25 | return "開発" + ProgressMax;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressDocking.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 入渠任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressDocking")]
15 | public class ProgressDocking : ProgressData
16 | {
17 |
18 | public ProgressDocking(QuestData quest, int maxCount)
19 | : base(quest, maxCount)
20 | {
21 | }
22 |
23 | public override string GetClearCondition()
24 | {
25 | return "入渠" + ProgressMax;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressExpedition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 遠征の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressExpedition")]
15 | public class ProgressExpedition : ProgressData
16 | {
17 |
18 | ///
19 | /// 対象となる海域
20 | ///
21 | [DataMember]
22 | private HashSet TargetArea { get; set; }
23 |
24 |
25 | public ProgressExpedition(QuestData quest, int maxCount, int[] targetArea)
26 | : base(quest, maxCount)
27 | {
28 |
29 | TargetArea = targetArea == null ? null : new HashSet(targetArea);
30 | }
31 |
32 |
33 | public void Increment(int areaID)
34 | {
35 |
36 | if (TargetArea != null && !TargetArea.Contains(areaID))
37 | return;
38 |
39 | Increment();
40 | }
41 |
42 |
43 | public override string GetClearCondition()
44 | {
45 | StringBuilder sb = new StringBuilder();
46 | if (TargetArea != null)
47 | {
48 | sb.Append(string.Join("・", TargetArea.OrderBy(s => s).Select(s => KCDatabase.Instance.Mission[s].Name)));
49 | }
50 | else
51 | {
52 | sb.Append("遠征");
53 | }
54 | sb.Append(ProgressMax);
55 |
56 | return sb.ToString();
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressImprovement.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 装備改修任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressImprovement")]
15 | public class ProgressImprovement : ProgressData
16 | {
17 |
18 | public ProgressImprovement(QuestData quest, int maxCount)
19 | : base(quest, maxCount)
20 | {
21 | }
22 |
23 | public override string GetClearCondition()
24 | {
25 | return "装備改修" + ProgressMax;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressModernization.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 近代化改修任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressModernization")]
15 | public class ProgressModernization : ProgressData
16 | {
17 |
18 | public ProgressModernization(QuestData quest, int maxCount)
19 | : base(quest, maxCount)
20 | {
21 | }
22 |
23 | public override string GetClearCondition()
24 | {
25 | return "近代化改修" + ProgressMax;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressMultiBattle.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | [DataContract(Name = "ProgressMultiBattle")]
12 | public class ProgressMultiBattle : ProgressData
13 | {
14 |
15 | [DataMember]
16 | private ProgressBattle[] ProgressList;
17 |
18 | public ProgressMultiBattle(QuestData quest, IEnumerable progressList)
19 | : base(quest, 1)
20 | {
21 | ProgressList = progressList.ToArray();
22 | ProgressMax = ProgressList.Sum(p => p.ProgressMax);
23 | }
24 |
25 |
26 | public void Increment(string rank, int areaID, bool isBoss)
27 | {
28 | foreach (var p in ProgressList)
29 | p.Increment(rank, areaID, isBoss);
30 |
31 | Progress = ProgressList.Sum(p => p.Progress);
32 | }
33 |
34 | public override void Increment()
35 | {
36 | throw new NotSupportedException();
37 | }
38 |
39 | public override void Decrement()
40 | {
41 | throw new NotSupportedException();
42 | }
43 |
44 | public override void CheckProgress(QuestData q)
45 | {
46 | // do nothing
47 | }
48 |
49 | public override string ToString()
50 | {
51 | if (ProgressList.All(p => p.IsCleared))
52 | return "完成!";
53 | else
54 | return string.Join(", ", ProgressList.Where(p => !p.IsCleared).Select(p => p.GetClearCondition() + ": " + p.ToString()));
55 | }
56 |
57 | public override string GetClearCondition()
58 | {
59 | return string.Join(", ", ProgressList.Select(p => p.GetClearCondition()));
60 | }
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressMultiDiscard.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 | [DataContract(Name = "ProgressMultiDiscard")]
11 | public class ProgressMultiDiscard : ProgressData
12 | {
13 |
14 | [DataMember]
15 | private ProgressDiscard[] ProgressList;
16 |
17 | public ProgressMultiDiscard(QuestData quest, IEnumerable progressList)
18 | : base(quest, 1)
19 | {
20 | ProgressList = progressList.ToArray();
21 | ProgressMax = progressList.Sum(p => p.ProgressMax);
22 | }
23 |
24 |
25 | public void Increment(IEnumerable equipments)
26 | {
27 | foreach (var p in ProgressList)
28 | p.Increment(equipments);
29 |
30 | Progress = ProgressList.Sum(p => p.Progress);
31 | }
32 |
33 |
34 | public override void Increment()
35 | {
36 | throw new NotSupportedException();
37 | }
38 |
39 | public override void Decrement()
40 | {
41 | throw new NotSupportedException();
42 | }
43 |
44 |
45 | public override void CheckProgress(QuestData q)
46 | {
47 | // do nothing
48 | }
49 |
50 |
51 | public override string ToString()
52 | {
53 | if (ProgressList.All(p => p.IsCleared))
54 | return "完成!";
55 | else
56 | return string.Join(", ", ProgressList.Where(p => !p.IsCleared).Select(p => p.GetClearCondition() + ": " + p.ToString()));
57 | }
58 |
59 |
60 | public override string GetClearCondition()
61 | {
62 | return string.Join(", ", ProgressList.Select(p => p.GetClearCondition()));
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressPractice.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 演習任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressPractice")]
15 | public class ProgressPractice : ProgressData
16 | {
17 |
18 | ///
19 | /// 勝利のみカウントする
20 | ///
21 | [DataMember]
22 | private bool WinOnly { get; set; }
23 |
24 |
25 | public ProgressPractice(QuestData quest, int maxCount, bool winOnly)
26 | : base(quest, maxCount)
27 | {
28 |
29 | WinOnly = winOnly;
30 | }
31 |
32 |
33 | public void Increment(string rank)
34 | {
35 |
36 | if (WinOnly && Constants.GetWinRank(rank) < Constants.GetWinRank("B"))
37 | return;
38 |
39 | Increment();
40 | }
41 |
42 |
43 | public override string GetClearCondition()
44 | {
45 | return "演習" + (WinOnly ? "勝利" : "") + ProgressMax;
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressSlaughter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 特定艦種撃沈任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressSlaughter")]
15 | public class ProgressSlaughter : ProgressData
16 | {
17 |
18 | ///
19 | /// 対象となる艦種リスト
20 | /// 互換性維持のため enum ではなく int で管理する
21 | ///
22 | [DataMember]
23 | private HashSet TargetShipType { get; set; }
24 |
25 | public ProgressSlaughter(QuestData quest, int maxCount, int[] targetShipType)
26 | : base(quest, maxCount)
27 | {
28 |
29 | TargetShipType = targetShipType == null ? null : new HashSet(targetShipType);
30 |
31 | }
32 |
33 |
34 | public void Increment(ShipTypes shipType)
35 | {
36 | if (TargetShipType.Contains((int)shipType))
37 | Increment();
38 | }
39 |
40 |
41 | public override string GetClearCondition()
42 | {
43 | StringBuilder sb = new StringBuilder();
44 | if (TargetShipType != null)
45 | {
46 | sb.Append(string.Join("・", TargetShipType.OrderBy(s => s).Select(s => KCDatabase.Instance.ShipTypes[s].Name)));
47 | }
48 |
49 | sb.Append("撃沈");
50 | sb.Append(ProgressMax);
51 |
52 | return sb.ToString();
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Quest/ProgressSupply.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data.Quest
9 | {
10 |
11 | ///
12 | /// 補給任務の進捗を管理します。
13 | ///
14 | [DataContract(Name = "ProgressSupply")]
15 | public class ProgressSupply : ProgressData
16 | {
17 |
18 | public ProgressSupply(QuestData quest, int maxCount)
19 | : base(quest, maxCount)
20 | {
21 | }
22 |
23 | public override string GetClearCondition()
24 | {
25 | return "補給" + ProgressMax;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/RelocationData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Data
8 | {
9 |
10 | public class RelocationData : IIdentifiable
11 | {
12 |
13 | ///
14 | /// 装備ID
15 | ///
16 | public int EquipmentID { get; set; }
17 |
18 | ///
19 | /// 配置転換を開始した時間
20 | ///
21 | public DateTime RelocatedTime { get; set; }
22 |
23 |
24 | ///
25 | /// 装備のインスタンス
26 | ///
27 | public EquipmentData EquipmentInstance => KCDatabase.Instance.Equipments[EquipmentID];
28 |
29 |
30 | public RelocationData(int equipmentID, DateTime relocatedTime)
31 | {
32 | EquipmentID = equipmentID;
33 | RelocatedTime = relocatedTime;
34 | }
35 |
36 | public int ID => EquipmentID;
37 | public override string ToString() => $"[{EquipmentID}] {EquipmentInstance.NameWithLevel} @ {RelocatedTime}";
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/ResponseWrapper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Data
8 | {
9 |
10 |
11 | ///
12 | /// Responseを受信しデータを処理するクラスの基底です。
13 | ///
14 | public abstract class ResponseWrapper
15 | {
16 |
17 | ///
18 | /// 生の受信データ(api_data)
19 | ///
20 | public dynamic RawData { get; private set; }
21 |
22 | ///
23 | /// Responseを読み込みます。
24 | ///
25 | /// 読み込むAPIの名前。
26 | /// 受信したデータ。
27 | public virtual void LoadFromResponse(string apiname, dynamic data)
28 | {
29 | RawData = data;
30 | }
31 |
32 | ///
33 | /// 現在のデータが有効かを取得します。
34 | ///
35 | public bool IsAvailable => RawData != null;
36 |
37 | public ResponseWrapper()
38 | {
39 | RawData = null;
40 | }
41 |
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/ShipTypes.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace ElectronicObserver.Data
3 | {
4 | public enum ShipTypes
5 | {
6 | /// 海防艦
7 | Escort = 1,
8 |
9 | /// 駆逐艦
10 | Destroyer = 2,
11 |
12 | /// 軽巡洋艦
13 | LightCruiser = 3,
14 |
15 | /// 重雷装巡洋艦
16 | TorpedoCruiser = 4,
17 |
18 | /// 重巡洋艦
19 | HeavyCruiser = 5,
20 |
21 | /// 航空巡洋艦
22 | AviationCruiser = 6,
23 |
24 | /// 軽空母
25 | LightAircraftCarrier = 7,
26 |
27 | /// 巡洋戦艦
28 | Battlecruiser = 8,
29 |
30 | /// 戦艦
31 | Battleship = 9,
32 |
33 | /// 航空戦艦
34 | AviationBattleship = 10,
35 |
36 | /// 正規空母
37 | AircraftCarrier = 11,
38 |
39 | /// 超弩級戦艦
40 | SuperDreadnoughts = 12,
41 |
42 | /// 潜水艦
43 | Submarine = 13,
44 |
45 | /// 潜水空母
46 | SubmarineAircraftCarrier = 14,
47 |
48 | /// 輸送艦
49 | Transport = 15,
50 |
51 | /// 水上機母艦
52 | SeaplaneTender = 16,
53 |
54 | /// 揚陸艦
55 | AmphibiousAssaultShip = 17,
56 |
57 | /// 装甲空母
58 | ArmoredAircraftCarrier = 18,
59 |
60 | /// 工作艦
61 | RepairShip = 19,
62 |
63 | /// 潜水母艦
64 | SubmarineTender = 20,
65 |
66 | /// 練習巡洋艦
67 | TrainingCruiser = 21,
68 |
69 | /// 補給艦
70 | FleetOiler = 22,
71 |
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/UseItem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data
9 | {
10 |
11 | ///
12 | /// 消費アイテムのデータを保持します。
13 | ///
14 | public class UseItem : ResponseWrapper, IIdentifiable
15 | {
16 |
17 | ///
18 | /// アイテムID
19 | ///
20 | public int ItemID => (int)RawData.api_id;
21 |
22 | ///
23 | /// 個数
24 | ///
25 | public int Count => (int)RawData.api_count;
26 |
27 |
28 | public UseItemMaster MasterUseItem => KCDatabase.Instance.MasterUseItems[ItemID];
29 |
30 |
31 | public int ID => ItemID;
32 | public override string ToString() => $"[{ItemID}] {MasterUseItem.Name} x {Count}";
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/UseItemMaster.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data
9 | {
10 |
11 | ///
12 | /// 消費アイテムのマスターデータを保持します。
13 | ///
14 | public class UseItemMaster : ResponseWrapper, IIdentifiable
15 | {
16 |
17 | ///
18 | /// アイテムID
19 | ///
20 | public int ItemID => (int)RawData.api_id;
21 |
22 | ///
23 | /// 使用形態
24 | /// 1=高速修復材, 2=高速建造材, 3=開発資材, 4=資源還元, その他
25 | ///
26 | public int UseType => (int)RawData.api_usetype;
27 |
28 | ///
29 | /// カテゴリ
30 | ///
31 | public int Category => (int)RawData.api_category;
32 |
33 | ///
34 | /// アイテム名
35 | ///
36 | public string Name => RawData.api_name;
37 |
38 | ///
39 | /// 説明
40 | ///
41 | public string Description => RawData.api_description[0];
42 |
43 | //description[1]=家具コインの内容量 省略します
44 |
45 |
46 | public int ID => ItemID;
47 | public override string ToString() => $"[{ItemID}] {Name}";
48 | }
49 |
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/ElectronicObserver/Notifier/NotifierRepair.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Notifier
9 | {
10 |
11 | ///
12 | /// 入渠完了通知を扱います。
13 | ///
14 | public class NotifierRepair : NotifierBase
15 | {
16 |
17 | private Dictionary processedFlags;
18 |
19 |
20 | public NotifierRepair()
21 | : base()
22 | {
23 | Initialize();
24 | }
25 |
26 | public NotifierRepair(Utility.Configuration.ConfigurationData.ConfigNotifierBase config)
27 | : base(config)
28 | {
29 | Initialize();
30 | }
31 |
32 |
33 | private void Initialize()
34 | {
35 | DialogData.Title = "入渠结束";
36 | processedFlags = new Dictionary();
37 | }
38 |
39 |
40 | protected override void UpdateTimerTick()
41 | {
42 |
43 | foreach (var dock in KCDatabase.Instance.Docks.Values)
44 | {
45 |
46 | if (!processedFlags.ContainsKey(dock.DockID))
47 | processedFlags.Add(dock.DockID, false);
48 |
49 | if (dock.State > 0)
50 | {
51 | if (!processedFlags[dock.DockID] && (int)(dock.CompletionTime - DateTime.Now).TotalMilliseconds <= AccelInterval)
52 | {
53 |
54 | processedFlags[dock.DockID] = true;
55 | Notify(dock.DockID, dock.ShipID);
56 |
57 | }
58 |
59 | }
60 | else
61 | {
62 | processedFlags[dock.DockID] = false;
63 | }
64 |
65 | }
66 |
67 | }
68 |
69 | public void Notify(int dockID, int shipID)
70 | {
71 |
72 | DialogData.Message = string.Format("入渠ドック #{0} で「{1}」の修復が完了しました。",
73 | dockID, KCDatabase.Instance.Ships[shipID].NameWithLevel);
74 |
75 | base.Notify();
76 | }
77 |
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/APIBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Observer
8 | {
9 |
10 | public delegate void APIReceivedEventHandler(string apiname, dynamic data);
11 |
12 | ///
13 | /// API処理部の基底となるクラスです。
14 | ///
15 | public abstract class APIBase
16 | {
17 |
18 | ///
19 | /// Requestの処理が完了した時に発生します。
20 | ///
21 | public event APIReceivedEventHandler RequestReceived = delegate { };
22 |
23 | ///
24 | /// Responseの処理が完了した時に発生します。
25 | ///
26 | public event APIReceivedEventHandler ResponseReceived = delegate { };
27 |
28 |
29 | ///
30 | /// Requestを処理し、RequestReceivedを起動します。
31 | /// 継承時は最後に呼ぶようにして下さい。
32 | ///
33 | /// 処理するデータ。
34 | public virtual void OnRequestReceived(Dictionary data)
35 | {
36 | RequestReceived(APIName, data);
37 | }
38 |
39 | ///
40 | /// Responseを処理し、ResponseReceivedを起動します。
41 | /// 継承時は最後に呼ぶようにして下さい。
42 | ///
43 | /// 処理するデータ。
44 | public virtual void OnResponseReceived(dynamic data)
45 | {
46 | ResponseReceived(APIName, data);
47 | }
48 |
49 |
50 | ///
51 | /// Requestの処理をサポートしているかを取得します。
52 | ///
53 | public virtual bool IsRequestSupported => false;
54 |
55 | ///
56 | /// Responseの処理をサポートしているかを取得します。
57 | ///
58 | public virtual bool IsResponseSupported => true;
59 |
60 |
61 |
62 | ///
63 | /// API名を取得します。
64 | ///
65 | public abstract string APIName { get; }
66 |
67 | }
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/base_air_corps.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 | public class base_air_corps : APIBase
11 | {
12 |
13 | public override void OnResponseReceived(dynamic data)
14 | {
15 |
16 | var db = KCDatabase.Instance;
17 |
18 | db.BaseAirCorps.Clear();
19 | foreach (var elem in data)
20 | {
21 |
22 | int id = BaseAirCorpsData.GetID(elem);
23 |
24 | if (!db.BaseAirCorps.ContainsKey(id))
25 | {
26 | var a = new BaseAirCorpsData();
27 | a.LoadFromResponse(APIName, elem);
28 | db.BaseAirCorps.Add(a);
29 |
30 | }
31 | else
32 | {
33 | db.BaseAirCorps[id].LoadFromResponse(APIName, elem);
34 | }
35 | }
36 |
37 | base.OnResponseReceived((object)data);
38 | }
39 |
40 | public override string APIName => "api_get_member/base_air_corps";
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/basic.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class basic : APIBase
12 | {
13 |
14 |
15 | public override void OnResponseReceived(dynamic data)
16 | {
17 |
18 | KCDatabase.Instance.Admiral.LoadFromResponse(APIName, data);
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_get_member/basic";
24 | }
25 |
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/deck.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class deck : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Fleet.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 |
23 | public override string APIName => "api_get_member/deck";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/kdock.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class kdock : APIBase
12 | {
13 |
14 |
15 | public override void OnResponseReceived(dynamic data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 | foreach (var ars in data)
21 | {
22 |
23 | int id = (int)ars.api_id;
24 |
25 | if (!db.Arsenals.ContainsKey(id))
26 | {
27 | var a = new ArsenalData();
28 | a.LoadFromResponse(APIName, ars);
29 | db.Arsenals.Add(a);
30 |
31 | }
32 | else
33 | {
34 | db.Arsenals[id].LoadFromResponse(APIName, ars);
35 | }
36 | }
37 |
38 |
39 | base.OnResponseReceived((object)data);
40 | }
41 |
42 |
43 | public override string APIName => "api_get_member/kdock";
44 | }
45 |
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/mapinfo.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class mapinfo : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase db = KCDatabase.Instance;
18 |
19 | // 旧データとの互換性確保
20 | var list = data.api_map_info() ? data.api_map_info : data;
21 |
22 | foreach (var elem in list)
23 | {
24 |
25 | int id = (int)elem.api_id;
26 |
27 | if (db.MapInfo[id] != null)
28 | {
29 | db.MapInfo[id].LoadFromResponse(APIName, elem);
30 | }
31 | }
32 |
33 | if (data.api_air_base())
34 | {
35 | db.BaseAirCorps.Clear();
36 | foreach (var elem in data.api_air_base)
37 | {
38 | int id = BaseAirCorpsData.GetID(elem);
39 |
40 | if (db.BaseAirCorps[id] == null)
41 | {
42 | var inst = new BaseAirCorpsData();
43 | inst.LoadFromResponse(APIName, elem);
44 | db.BaseAirCorps.Add(inst);
45 |
46 | }
47 | else
48 | {
49 | db.BaseAirCorps[id].LoadFromResponse(APIName, elem);
50 | }
51 | }
52 | }
53 |
54 | base.OnResponseReceived((object)data);
55 | }
56 |
57 |
58 | public override string APIName => "api_get_member/mapinfo";
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/material.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class material : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Material.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_get_member/material";
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/ndock.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class ndock : APIBase
12 | {
13 |
14 |
15 | public override void OnResponseReceived(dynamic data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 | foreach (var dock in data)
21 | {
22 |
23 | int id = (int)dock.api_id;
24 |
25 | if (!db.Docks.ContainsKey(id))
26 | {
27 | var d = new DockData();
28 | d.LoadFromResponse(APIName, dock);
29 | db.Docks.Add(d);
30 |
31 | }
32 | else
33 | {
34 | db.Docks[id].LoadFromResponse(APIName, dock);
35 | }
36 | }
37 |
38 |
39 | db.Fleet.LoadFromResponse(APIName, data);
40 |
41 | base.OnResponseReceived((object)data);
42 | }
43 |
44 | public override string APIName => "api_get_member/ndock";
45 | }
46 |
47 |
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/payitem.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
8 | {
9 | public class payitem : APIBase
10 | {
11 | public override string APIName => "api_get_member/payitem";
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/picture_book.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
8 | {
9 |
10 | public class picture_book : APIBase
11 | {
12 |
13 | public override string APIName => "api_get_member/picture_book";
14 | }
15 |
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/questlist.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class questlist : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Quest.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_get_member/questlist";
23 | }
24 |
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/record.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
8 | {
9 |
10 | public class record : APIBase
11 | {
12 | public override string APIName => "api_get_member/record";
13 | }
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/require_info.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class require_info : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase db = KCDatabase.Instance;
18 |
19 | // Admiral - 各所でバグるので封印
20 | //db.Admiral.LoadFromResponse( APIName, data.api_basic );
21 |
22 |
23 | // Equipments
24 | db.Equipments.Clear();
25 | foreach (var elem in data.api_slot_item)
26 | {
27 |
28 | var eq = new EquipmentData();
29 | eq.LoadFromResponse(APIName, elem);
30 | db.Equipments.Add(eq);
31 |
32 | }
33 |
34 |
35 | // Arsenal
36 | foreach (var ars in data.api_kdock)
37 | {
38 |
39 | int id = (int)ars.api_id;
40 |
41 | if (!db.Arsenals.ContainsKey(id))
42 | {
43 | var a = new ArsenalData();
44 | a.LoadFromResponse(APIName, ars);
45 | db.Arsenals.Add(a);
46 |
47 | }
48 | else
49 | {
50 | db.Arsenals[id].LoadFromResponse(APIName, ars);
51 | }
52 | }
53 |
54 |
55 | // UseItem
56 | db.UseItems.Clear();
57 | if (data.api_useitem())
58 | {
59 | foreach (var elem in data.api_useitem)
60 | {
61 |
62 | var item = new UseItem();
63 | item.LoadFromResponse(APIName, elem);
64 | db.UseItems.Add(item);
65 |
66 | }
67 | }
68 |
69 | base.OnResponseReceived((object)data);
70 | }
71 |
72 | public override string APIName => "api_get_member/require_info";
73 | }
74 |
75 | }
76 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/ship2.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | //一応現役、ケッコンした時などに呼ばれる
12 | public class ship2 : APIBase
13 | {
14 |
15 | public override void OnResponseReceived(dynamic data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 |
21 | //api_data
22 |
23 | var ships = (dynamic[])data.api_data;
24 |
25 | if (ships.Length > 1)
26 | db.Ships.Clear();
27 |
28 | foreach (var elem in ships)
29 | {
30 | int id = (int)elem.api_id;
31 | var ship = db.Ships[id];
32 |
33 | if (ship != null)
34 | ship.LoadFromResponse(APIName, elem);
35 | else
36 | {
37 | var a = new ShipData();
38 | a.LoadFromResponse(APIName, elem);
39 | db.Ships.Add(a);
40 | }
41 | }
42 |
43 |
44 | //api_data_deck
45 | db.Fleet.LoadFromResponse(APIName, data.api_data_deck);
46 |
47 | base.OnResponseReceived((object)data);
48 | }
49 |
50 | public override string APIName => "api_get_member/ship2";
51 | }
52 |
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/ship3.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class ship3 : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase db = KCDatabase.Instance;
18 |
19 | //api_ship_data
20 | foreach (var elem in data.api_ship_data)
21 | {
22 |
23 | int id = (int)elem.api_id;
24 |
25 | ShipData ship = db.Ships[id];
26 | ship.LoadFromResponse(APIName, elem);
27 |
28 | for (int i = 0; i < ship.Slot.Count; i++)
29 | {
30 | if (ship.Slot[i] == -1) continue;
31 | if (!db.Equipments.ContainsKey(ship.Slot[i]))
32 | { //改装時に新装備を入手するが、追加される前にIDを与えられてしまうため
33 | EquipmentData eq = new EquipmentData();
34 | eq.LoadFromResponse(APIName, ship.Slot[i]);
35 | db.Equipments.Add(eq);
36 | }
37 | }
38 |
39 | }
40 |
41 | //api_deck_data
42 | db.Fleet.LoadFromResponse(APIName, data.api_deck_data);
43 |
44 |
45 |
46 | base.OnResponseReceived((object)data);
47 | }
48 |
49 |
50 | public override string APIName => "api_get_member/ship3";
51 | }
52 |
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/ship_deck.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class ship_deck : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase db = KCDatabase.Instance;
18 |
19 |
20 | //api_ship_data
21 | foreach (var elem in data.api_ship_data)
22 | {
23 |
24 | int id = (int)elem.api_id;
25 | ShipData ship = db.Ships[id];
26 |
27 | if (ship != null)
28 | {
29 | ship.LoadFromResponse(APIName, elem);
30 |
31 | }
32 | else
33 | { //ないとは思うけど
34 | var a = new ShipData();
35 | a.LoadFromResponse(APIName, elem);
36 | db.Ships.Add(a);
37 |
38 | }
39 |
40 | }
41 |
42 |
43 | //api_deck_data
44 | db.Fleet.LoadFromResponse(APIName, data.api_deck_data);
45 |
46 | base.OnResponseReceived((object)data);
47 | }
48 |
49 | public override string APIName => "api_get_member/ship_deck";
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/slot_item.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 |
12 | public class slot_item : APIBase
13 | {
14 |
15 |
16 | public override void OnResponseReceived(dynamic data)
17 | {
18 |
19 | KCDatabase db = KCDatabase.Instance;
20 |
21 |
22 | db.Equipments.Clear();
23 | foreach (var elem in data)
24 | {
25 |
26 | var eq = new EquipmentData();
27 | eq.LoadFromResponse(APIName, elem);
28 | db.Equipments.Add(eq);
29 |
30 | }
31 |
32 | db.Battle.LoadFromResponse(APIName, data);
33 |
34 | base.OnResponseReceived((object)data);
35 | }
36 |
37 | public override string APIName => "api_get_member/slot_item";
38 | }
39 |
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/sortie_conditions.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class sortie_conditions : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 | base.OnResponseReceived((object)data);
17 | }
18 |
19 | public override string APIName => "api_get_member/sortie_conditions";
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_get_member/useitem.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_get_member
9 | {
10 |
11 | public class useitem : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase db = KCDatabase.Instance;
18 |
19 | db.UseItems.Clear();
20 |
21 | if (data != null)
22 | {
23 | foreach (var elem in data)
24 | {
25 |
26 | var item = new UseItem();
27 | item.LoadFromResponse(APIName, elem);
28 | db.UseItems.Add(item);
29 |
30 | }
31 | }
32 |
33 | base.OnResponseReceived((object)data);
34 | }
35 |
36 | public override string APIName => "api_get_member/useitem";
37 | }
38 |
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_air_corps/change_name.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_air_corps
9 | {
10 | public class change_name : APIBase
11 | {
12 |
13 | public override bool IsRequestSupported => true;
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | var corps = KCDatabase.Instance.BaseAirCorps;
19 | int aircorpsID = BaseAirCorpsData.GetID(data);
20 |
21 | if (corps.ContainsKey(aircorpsID))
22 | {
23 | corps[aircorpsID].LoadFromRequest(APIName, data);
24 | }
25 |
26 | base.OnRequestReceived(data);
27 | }
28 |
29 | public override string APIName => "api_req_air_corps/change_name";
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_air_corps/expand_base.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_air_corps
9 | {
10 |
11 | public class expand_base : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase db = KCDatabase.Instance;
18 |
19 | foreach (var elem in data)
20 | {
21 | int id = BaseAirCorpsData.GetID(elem);
22 |
23 | if (db.BaseAirCorps[id] == null)
24 | {
25 | var inst = new BaseAirCorpsData();
26 | inst.LoadFromResponse(APIName, elem);
27 | db.BaseAirCorps.Add(inst);
28 |
29 | }
30 | else
31 | {
32 | db.BaseAirCorps[id].LoadFromResponse(APIName, elem);
33 | }
34 | }
35 |
36 | base.OnResponseReceived((object)data);
37 | }
38 |
39 | public override string APIName => "api_req_air_corps/expand_base";
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_air_corps/set_action.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_air_corps
9 | {
10 | public class set_action : APIBase
11 | {
12 |
13 | public override bool IsRequestSupported => true;
14 |
15 |
16 | public override void OnRequestReceived(Dictionary data)
17 | {
18 |
19 | int areaID = int.Parse(data["api_area_id"]);
20 | foreach (var c in KCDatabase.Instance.BaseAirCorps.Values.Where(b => b.MapAreaID == areaID))
21 | {
22 | c.LoadFromRequest(APIName, data);
23 | }
24 |
25 | base.OnRequestReceived(data);
26 | }
27 |
28 |
29 | public override string APIName => "api_req_air_corps/set_action";
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_air_corps/set_plane.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_air_corps
9 | {
10 |
11 | public class set_plane : APIBase
12 | {
13 |
14 | private int _aircorpsID;
15 |
16 |
17 | public override bool IsRequestSupported => true;
18 |
19 | public override void OnRequestReceived(Dictionary data)
20 | {
21 |
22 | _aircorpsID = BaseAirCorpsData.GetID(data);
23 |
24 | base.OnRequestReceived(data);
25 | }
26 |
27 | public override void OnResponseReceived(dynamic data)
28 | {
29 |
30 | var corps = KCDatabase.Instance.BaseAirCorps;
31 |
32 | if (corps.ContainsKey(_aircorpsID))
33 | corps[_aircorpsID].LoadFromResponse(APIName, data);
34 |
35 |
36 | KCDatabase.Instance.Material.LoadFromResponse(APIName, data);
37 |
38 | base.OnResponseReceived((object)data);
39 | }
40 |
41 | public override string APIName => "api_req_air_corps/set_plane";
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_air_corps/supply.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_air_corps
9 | {
10 | public class supply : APIBase
11 | {
12 |
13 | private int _aircorpsID;
14 |
15 |
16 | public override bool IsRequestSupported => true;
17 |
18 | public override void OnRequestReceived(Dictionary data)
19 | {
20 |
21 | _aircorpsID = BaseAirCorpsData.GetID(data);
22 |
23 | base.OnRequestReceived(data);
24 | }
25 |
26 |
27 | public override void OnResponseReceived(dynamic data)
28 | {
29 |
30 | var corps = KCDatabase.Instance.BaseAirCorps;
31 |
32 | if (corps.ContainsKey(_aircorpsID))
33 | corps[_aircorpsID].LoadFromResponse(APIName, data);
34 |
35 |
36 | int fuel = KCDatabase.Instance.Material.Fuel;
37 | int baux = KCDatabase.Instance.Material.Bauxite;
38 |
39 | KCDatabase.Instance.Material.LoadFromResponse(APIName, data);
40 |
41 | fuel -= KCDatabase.Instance.Material.Fuel;
42 | baux -= KCDatabase.Instance.Material.Bauxite;
43 |
44 | if (corps.ContainsKey(_aircorpsID))
45 | Utility.Logger.Add(2, "", "对 ", string.Format("#{0}「{1}」", corps[_aircorpsID].MapAreaID, corps[_aircorpsID].Name),
46 | string.Format("进行了补给。消耗 : 燃料 x {0}, 铝土 x {1}", fuel, baux));
47 |
48 | base.OnResponseReceived((object)data);
49 | }
50 |
51 | public override string APIName => "api_req_air_corps/supply";
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_battle_midnight/battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_battle_midnight
9 | {
10 |
11 | public class battle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_battle_midnight/battle"; }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_battle_midnight/sp_midnight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_battle_midnight
9 | {
10 |
11 | public class sp_midnight : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_battle_midnight/sp_midnight";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/airbattle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class airbattle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_combined_battle/airbattle";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class battle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_combined_battle/battle";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/battle_water.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class battle_water : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 |
24 | public override string APIName => "api_req_combined_battle/battle_water";
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/battleresult.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class battleresult : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_combined_battle/battleresult";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/each_battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 | public class each_battle : APIBase
11 | {
12 |
13 | public override void OnResponseReceived(dynamic data)
14 | {
15 |
16 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
17 |
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_req_combined_battle/each_battle";
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/each_battle_water.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class each_battle_water : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_combined_battle/each_battle_water";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/ec_battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class ec_battle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_req_combined_battle/ec_battle";
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/ec_midnight_battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class ec_midnight_battle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_req_combined_battle/ec_midnight_battle";
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/ec_night_to_day.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 | public class ec_night_to_day : APIBase
11 | {
12 |
13 | public override void OnResponseReceived(dynamic data)
14 | {
15 |
16 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
17 |
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_req_combined_battle/ec_night_to_day";
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/goback_port.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class goback_port : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 | KCDatabase.Instance.Fleet.LoadFromResponse(APIName, data);
17 |
18 | base.OnResponseReceived((object)data);
19 | }
20 |
21 | public override string APIName => "api_req_combined_battle/goback_port";
22 | }
23 |
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/ld_airbattle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class ld_airbattle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_combined_battle/ld_airbattle";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/midnight_battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class midnight_battle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 |
24 | public override string APIName => "api_req_combined_battle/midnight_battle";
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_combined_battle/sp_midnight.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_combined_battle
9 | {
10 |
11 | public class sp_midnight : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 |
24 | public override string APIName => "api_req_combined_battle/sp_midnight";
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_hensei/change.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_hensei
9 | {
10 |
11 | public class change : APIBase
12 | {
13 |
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | KCDatabase.Instance.Fleet.LoadFromRequest(APIName, data);
19 |
20 | base.OnRequestReceived(data);
21 | }
22 |
23 |
24 | public override bool IsRequestSupported => true;
25 | public override bool IsResponseSupported => false;
26 |
27 |
28 |
29 | public override string APIName => "api_req_hensei/change";
30 | }
31 |
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_hensei/combined.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_hensei
9 | {
10 |
11 | public class combined : APIBase
12 | {
13 |
14 | public override bool IsRequestSupported => true;
15 | public override bool IsResponseSupported => true;
16 |
17 | public override void OnRequestReceived(Dictionary data)
18 | {
19 |
20 | KCDatabase.Instance.Fleet.LoadFromRequest(APIName, data);
21 |
22 | base.OnRequestReceived(data);
23 | }
24 |
25 | public override string APIName => "api_req_hensei/combined";
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_hensei/preset_select.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_hensei
9 | {
10 |
11 | public class preset_select : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Fleet.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_req_hensei/preset_select";
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_hokyu/charge.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_hokyu
9 | {
10 |
11 | public class charge : APIBase
12 | {
13 |
14 |
15 | public override void OnResponseReceived(dynamic data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 |
21 | //api_ship
22 | foreach (var elem in data.api_ship)
23 | {
24 |
25 | int shipID = (int)elem.api_id;
26 | ShipData ship = db.Ships[shipID];
27 |
28 | ship.LoadFromResponse(APIName, elem);
29 | }
30 |
31 |
32 | int[] material = new int[]{
33 | db.Material.Fuel,
34 | db.Material.Ammo,
35 | db.Material.Steel,
36 | db.Material.Bauxite,
37 | };
38 |
39 | //api_material
40 | db.Material.LoadFromResponse(APIName, data.api_material);
41 |
42 | material[0] -= db.Material.Fuel;
43 | material[1] -= db.Material.Ammo;
44 | material[2] -= db.Material.Steel;
45 | material[3] -= db.Material.Bauxite;
46 |
47 | {
48 | var sb = new StringBuilder("补给完成。消耗 : ");
49 |
50 | for (int i = 0; i < 4; i++)
51 | {
52 | if (material[i] > 0)
53 | {
54 | sb.Append(Constants.GetMaterialName(i + 1)).Append(" x ").Append(material[i]).Append(", ");
55 | }
56 | }
57 |
58 |
59 | sb.Remove(sb.Length - 2, 2);
60 | Utility.Logger.Add(2, "", sb.ToString());
61 | }
62 |
63 |
64 | base.OnResponseReceived((object)data);
65 | }
66 |
67 | public override string APIName => "api_req_hokyu/charge";
68 | }
69 |
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kaisou/marriage.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kaisou
9 | {
10 |
11 | public class marriage : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | Utility.Logger.Add(2, "", "同 ", KCDatabase.Instance.Ships[(int)data.api_id].Name, " 进行了婚礼 ( 伪 ) 。", "おめでとうございます!");
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_req_kaisou/marriage";
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kaisou/open_exslot.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kaisou
9 | {
10 |
11 | public class open_exslot : APIBase
12 | {
13 |
14 | public override void OnRequestReceived(Dictionary data)
15 | {
16 |
17 | var ship = KCDatabase.Instance.Ships[Convert.ToInt32(data["api_id"])];
18 | if (ship != null)
19 | {
20 | ship.LoadFromRequest(APIName, data);
21 | }
22 |
23 | base.OnRequestReceived(data);
24 | }
25 |
26 |
27 | public override bool IsRequestSupported => true;
28 | public override bool IsResponseSupported => false;
29 |
30 | public override string APIName => "api_req_kaisou/open_exslot";
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kaisou/remodeling.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kaisou
9 | {
10 |
11 | public class remodeling : APIBase
12 | {
13 |
14 | public override bool IsRequestSupported => true;
15 | public override bool IsResponseSupported => false;
16 |
17 | public override void OnRequestReceived(Dictionary data)
18 | {
19 |
20 | int id = int.Parse(data["api_id"]);
21 | var ship = KCDatabase.Instance.Ships[id];
22 | Utility.Logger.Add(2, "", "已将 ", string.Format("{0}「{1}」 Lv. {2}", ship.MasterShip.ShipTypeName, ship.MasterShip.NameWithClass, ship.Level),
23 | " 改造为 : ", string.Format("{0}「{1}」", ship.MasterShip.RemodelAfterShip.ShipTypeName, ship.MasterShip.RemodelAfterShip.NameWithClass));
24 |
25 | KCDatabase.Instance.Fleet.LoadFromRequest(APIName, data);
26 |
27 | base.OnRequestReceived(data);
28 | }
29 |
30 | public override string APIName => "api_req_kaisou/remodeling";
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kaisou/slot_deprive.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kaisou
9 | {
10 |
11 | public class slot_deprive : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase db = KCDatabase.Instance;
18 |
19 | int setid = (int)data.api_ship_data.api_set_ship.api_id;
20 | int unsetid = (int)data.api_ship_data.api_unset_ship.api_id;
21 |
22 | // 念のため
23 | if (!db.Ships.ContainsKey(setid))
24 | {
25 | var a = new ShipData();
26 | a.LoadFromResponse(APIName, data.api_ship_data.api_set_ship);
27 | db.Ships.Add(a);
28 |
29 | }
30 | else
31 | {
32 | db.Ships[setid].LoadFromResponse(APIName, data.api_ship_data.api_set_ship);
33 | }
34 |
35 |
36 | if (!db.Ships.ContainsKey(unsetid))
37 | {
38 | var a = new ShipData();
39 | a.LoadFromResponse(APIName, data.api_ship_data.api_unset_ship);
40 | db.Ships.Add(a);
41 |
42 | }
43 | else
44 | {
45 | db.Ships[unsetid].LoadFromResponse(APIName, data.api_ship_data.api_unset_ship);
46 | }
47 |
48 | base.OnResponseReceived((object)data);
49 | }
50 |
51 | public override string APIName => "api_req_kaisou/slot_deprive";
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kaisou/slot_exchange_index.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kaisou
9 | {
10 |
11 | public class slot_exchange_index : APIBase
12 | {
13 |
14 | private int shipID = -1;
15 |
16 | public override bool IsRequestSupported => true;
17 | public override bool IsResponseSupported => true;
18 |
19 | public override void OnRequestReceived(Dictionary data)
20 | {
21 |
22 | shipID = int.Parse(data["api_id"]);
23 |
24 | base.OnRequestReceived(data);
25 | }
26 |
27 | public override void OnResponseReceived(dynamic data)
28 | {
29 |
30 | var ship = KCDatabase.Instance.Ships[shipID];
31 | if (ship != null)
32 | ship.LoadFromResponse(APIName, data);
33 |
34 | base.OnResponseReceived((object)data);
35 | }
36 |
37 | public override string APIName => "api_req_kaisou/slot_exchange_index";
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kousyou/createship.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kousyou
9 | {
10 |
11 | public class createship : APIBase
12 | {
13 |
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | //undone: このAPIが呼ばれた後 api_get_member/kdock が呼ばれ情報自体は更新されるので、建造ログのために使用?
19 |
20 | KCDatabase.Instance.Material.LoadFromRequest(APIName, data);
21 |
22 | base.OnRequestReceived(data);
23 | }
24 |
25 | public override bool IsRequestSupported => true;
26 | public override bool IsResponseSupported => false;
27 |
28 |
29 | public override string APIName => "api_req_kousyou/createship";
30 | }
31 |
32 |
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kousyou/createship_speedchange.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kousyou
9 | {
10 |
11 | public class createship_speedchange : APIBase
12 | {
13 |
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 | ArsenalData arsenal = db.Arsenals[int.Parse(data["api_kdock_id"])];
21 |
22 | arsenal.State = 3;
23 | db.Material.InstantConstruction -= arsenal.Fuel >= 1000 ? 10 : 1;
24 |
25 |
26 | base.OnRequestReceived(data);
27 | }
28 |
29 |
30 | public override bool IsRequestSupported => true;
31 | public override bool IsResponseSupported => false;
32 |
33 |
34 | public override string APIName => "api_req_kousyou/createship_speedchange";
35 | }
36 |
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kousyou/destroyitem2.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kousyou
9 | {
10 |
11 | public class destroyitem2 : APIBase
12 | {
13 |
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 | // 削除処理が終わってからだと装備データが取れないため
21 | db.QuestProgress.EquipmentDiscarded(APIName, data);
22 |
23 | Dictionary itemsToDestroy = new Dictionary();
24 |
25 | foreach (int id in data["api_slotitem_ids"].Split(",".ToCharArray()).Select(str => int.Parse(str)))
26 | {
27 | string name = KCDatabase.Instance.Equipments[id].NameWithLevel;
28 | itemsToDestroy.TryGetValue(name, out int amount);
29 | itemsToDestroy[name] = amount + 1;
30 |
31 | db.Equipments.Remove(id);
32 | }
33 |
34 | var itemsDestroyed = new List();
35 |
36 | foreach (var item in itemsToDestroy) {
37 | itemsDestroyed.Add(String.Format("{0}{1}", item.Key, item.Value > 1 ? " x " + item.Value : ""));
38 | }
39 | Utility.Logger.Add(2, "", "已废弃装备 : ", String.Join(" , ", itemsDestroyed));
40 |
41 | base.OnRequestReceived(data);
42 | }
43 |
44 |
45 | public override void OnResponseReceived(dynamic data)
46 | {
47 |
48 | KCDatabase.Instance.Material.LoadFromResponse(APIName, data);
49 |
50 | base.OnResponseReceived((object)data);
51 | }
52 |
53 |
54 | public override bool IsRequestSupported => true;
55 | public override bool IsResponseSupported => true;
56 |
57 | public override string APIName => "api_req_kousyou/destroyitem2";
58 | }
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kousyou/getship.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kousyou
9 | {
10 |
11 | public class getship : APIBase
12 | {
13 |
14 |
15 | public override void OnResponseReceived(dynamic data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 | //api_kdock
21 | foreach (var ars in data.api_kdock)
22 | {
23 |
24 | int id = (int)ars.api_id;
25 |
26 | if (!db.Arsenals.ContainsKey(id))
27 | {
28 | var a = new ArsenalData();
29 | a.LoadFromResponse(APIName, ars);
30 | db.Arsenals.Add(a);
31 |
32 | }
33 | else
34 | {
35 | db.Arsenals[id].LoadFromResponse(APIName, ars);
36 | }
37 | }
38 |
39 | //api_slotitem
40 | if (data.api_slotitem != null)
41 | { //装備なしの艦はnullになる
42 | foreach (var elem in data.api_slotitem)
43 | {
44 |
45 | var eq = new EquipmentData();
46 | eq.LoadFromResponse(APIName, elem);
47 | db.Equipments.Add(eq);
48 |
49 | }
50 | }
51 |
52 | //api_ship
53 | {
54 | ShipData ship = new ShipData();
55 | ship.LoadFromResponse(APIName, data.api_ship);
56 | db.Ships.Add(ship);
57 |
58 | Utility.Logger.Add(2, "", "已完成建造 : ", string.Format("{0}「{1}」", ship.MasterShip.ShipTypeName, ship.MasterShip.NameWithClass));
59 | }
60 |
61 |
62 | base.OnResponseReceived((object)data);
63 | }
64 |
65 | public override string APIName => "api_req_kousyou/getship";
66 | }
67 |
68 |
69 | }
70 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kousyou/remodel_slot.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_kousyou
9 | {
10 |
11 | public class remodel_slot : APIBase
12 | {
13 |
14 | private int _equipmentID;
15 |
16 | public override bool IsRequestSupported => true;
17 |
18 | public override void OnRequestReceived(Dictionary data)
19 | {
20 |
21 | _equipmentID = int.Parse(data["api_slot_id"]);
22 |
23 | base.OnRequestReceived(data);
24 | }
25 |
26 | public override void OnResponseReceived(dynamic data)
27 | {
28 |
29 | KCDatabase db = KCDatabase.Instance;
30 |
31 | db.Material.LoadFromResponse(APIName, data.api_after_material);
32 |
33 |
34 | if (data.api_after_slot())
35 | { //改修成功時のみ存在
36 | EquipmentData eq = db.Equipments[(int)data.api_after_slot.api_id];
37 | if (eq != null)
38 | {
39 | eq.LoadFromResponse(APIName, data.api_after_slot);
40 |
41 | if (Utility.Configuration.Config.Log.ShowSpoiler)
42 | Utility.Logger.Add(2, "", "改修成功 : ", eq.NameWithLevel);
43 | }
44 |
45 | }
46 | else if (Utility.Configuration.Config.Log.ShowSpoiler)
47 | {
48 | Utility.Logger.Add(2, "", "对 ", db.Equipments[_equipmentID].NameWithLevel, " 的改修失败了。");
49 | }
50 |
51 |
52 | if (data.api_use_slot_id())
53 | {
54 | foreach (int id in data.api_use_slot_id)
55 | {
56 | db.Equipments.Remove(id);
57 | }
58 | }
59 |
60 | base.OnResponseReceived((object)data);
61 | }
62 |
63 |
64 | public override string APIName => "api_req_kousyou/remodel_slot";
65 | }
66 |
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_kousyou/remodel_slotlist.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Observer.kcsapi.api_req_kousyou
8 | {
9 | public class remodel_slotlist : APIBase
10 | {
11 | public override string APIName => "api_req_kousyou/remodel_slotlist";
12 | }
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_map/select_eventmap_rank.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_map
9 | {
10 |
11 | public class select_eventmap_rank : APIBase
12 | {
13 |
14 | public override void OnRequestReceived(Dictionary data)
15 | {
16 |
17 | var mapinfo = KCDatabase.Instance.MapInfo[int.Parse(data["api_maparea_id"]) * 10 + int.Parse(data["api_map_no"])];
18 | if (mapinfo != null)
19 | mapinfo.LoadFromRequest(APIName, data);
20 |
21 | base.OnRequestReceived(data);
22 | }
23 |
24 |
25 | public override bool IsRequestSupported => true;
26 | public override bool IsResponseSupported => false;
27 |
28 |
29 | public override string APIName => "api_req_map/select_eventmap_rank";
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_map/start.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_map
9 | {
10 |
11 | public class start : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 |
21 |
22 | // 表示順の関係上、UIの更新をしてからデータを更新する
23 | if (KCDatabase.Instance.Battle.Compass.EventID == 3)
24 | {
25 | next.EmulateWhirlpool();
26 | }
27 |
28 | }
29 |
30 |
31 | public override bool IsRequestSupported => true;
32 |
33 | public override void OnRequestReceived(Dictionary data)
34 | {
35 |
36 | KCDatabase.Instance.Fleet.LoadFromRequest(APIName, data);
37 |
38 | int deckID = int.Parse(data["api_deck_id"]);
39 | int maparea = int.Parse(data["api_maparea_id"]);
40 | int mapinfo = int.Parse(data["api_mapinfo_no"]);
41 |
42 | Utility.Logger.Add(2, string.Format("#{0}「{1}」", deckID, KCDatabase.Instance.Fleet[deckID].Name), "已出击海域",
43 | string.Format("「{0}-{1} {2}」。", maparea, mapinfo, KCDatabase.Instance.MapInfo[maparea * 10 + mapinfo].Name));
44 |
45 | base.OnRequestReceived(data);
46 | }
47 |
48 |
49 | public override string APIName => "api_req_map/start";
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_member/get_practice_enemyinfo.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_member
9 | {
10 |
11 | public class get_practice_enemyinfo : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 | public override string APIName => "api_req_member/get_practice_enemyinfo";
23 | }
24 |
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_member/updatecomment.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_member
9 | {
10 |
11 | public class updatecomment : APIBase
12 | {
13 |
14 | public override bool IsRequestSupported => true;
15 | public override bool IsResponseSupported => false;
16 |
17 | public override void OnRequestReceived(Dictionary data)
18 | {
19 |
20 | // 🎃
21 | if (data["api_cmt"].ToLower() == "jackolantern")
22 | {
23 | new Window.Dialog.DialogHalloween().Show();
24 | }
25 |
26 | KCDatabase.Instance.Admiral.LoadFromRequest(APIName, data);
27 |
28 | base.OnRequestReceived(data);
29 | }
30 |
31 | public override string APIName => "api_req_member/updatecomment";
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_member/updatedeckname.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_member
9 | {
10 |
11 | public class updatedeckname : APIBase
12 | {
13 |
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | KCDatabase.Instance.Fleet.Fleets[int.Parse(data["api_deck_id"])].LoadFromRequest(APIName, data);
19 |
20 | base.OnRequestReceived(data);
21 | }
22 |
23 |
24 | public override bool IsRequestSupported => true;
25 | public override bool IsResponseSupported => false;
26 |
27 | public override string APIName => "api_req_member/updatedeckname";
28 | }
29 |
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_mission/start.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_mission
9 | {
10 |
11 | public class start : APIBase
12 | {
13 |
14 | //private int FleetID;
15 |
16 |
17 | public override void OnRequestReceived(Dictionary data)
18 | {
19 |
20 | /* //checkme: どちらにせよあとで deck が呼ばれるので不要?
21 | FleetID = int.Parse( data["api_deck_id"] );
22 | KCDatabase.Instance.Fleet.Fleets[FleetID].LoadFromRequest( APIName, data );
23 | */
24 |
25 | int deckID = int.Parse(data["api_deck_id"]);
26 | int destination = int.Parse(data["api_mission_id"]);
27 |
28 | Utility.Logger.Add(2, string.Format("#{0}「{1}」", deckID, KCDatabase.Instance.Fleet[deckID].Name), "已开始远征",
29 | string.Format("「{0}: {1}」。",destination, KCDatabase.Instance.Mission[destination].Name));
30 |
31 | base.OnRequestReceived(data);
32 | }
33 |
34 | public override void OnResponseReceived(dynamic data)
35 | {
36 |
37 | /*
38 | KCDatabase.Instance.Fleet.Fleets[FleetID].LoadFromResponse( APIName, data );
39 | */
40 |
41 | base.OnResponseReceived((object)data);
42 |
43 | }
44 |
45 |
46 | public override bool IsRequestSupported => true;
47 | public override bool IsResponseSupported => true;
48 |
49 | public override string APIName => "api_req_mission/start";
50 | }
51 |
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_nyukyo/speedchange.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_nyukyo
9 | {
10 |
11 | public class speedchange : APIBase
12 | {
13 |
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | KCDatabase db = KCDatabase.Instance;
19 |
20 | db.Docks[int.Parse(data["api_ndock_id"])].LoadFromResponse(APIName, data);
21 | db.Material.InstantRepair--;
22 |
23 |
24 | db.Fleet.LoadFromRequest(APIName, data);
25 |
26 | base.OnRequestReceived(data);
27 | }
28 |
29 |
30 | public override bool IsRequestSupported => true;
31 | public override bool IsResponseSupported => false;
32 |
33 | public override string APIName => "api_req_nyukyo/speedchange";
34 | }
35 |
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_practice/battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_practice
9 | {
10 | public class battle : APIBase
11 | {
12 |
13 | public override bool IsRequestSupported => true;
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | KCDatabase.Instance.Fleet.LoadFromRequest(APIName, data);
19 |
20 | base.OnRequestReceived(data);
21 | }
22 |
23 |
24 | public override void OnResponseReceived(dynamic data)
25 | {
26 |
27 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
28 |
29 |
30 | base.OnResponseReceived((object)data);
31 | }
32 |
33 | public override string APIName => "api_req_practice/battle";
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_practice/battle_result.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_practice
9 | {
10 |
11 | public class battle_result : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 |
24 | public override string APIName => "api_req_practice/battle_result";
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_practice/midnight_battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_practice
9 | {
10 |
11 | public class midnight_battle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_practice/midnight_battle";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_quest/clearitemget.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_quest
9 | {
10 |
11 | public class clearitemget : APIBase
12 | {
13 |
14 | public override void OnRequestReceived(Dictionary data)
15 | {
16 |
17 | KCDatabase.Instance.Quest.LoadFromRequest(APIName, data);
18 |
19 | base.OnRequestReceived(data);
20 | }
21 |
22 |
23 | public override bool IsRequestSupported => true;
24 | public override bool IsResponseSupported => false;
25 |
26 |
27 | public override string APIName => "api_req_quest/clearitemget";
28 | }
29 |
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_quest/stop.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_quest
9 | {
10 | public class stop : APIBase
11 | {
12 |
13 | public override bool IsRequestSupported => true;
14 |
15 | public override void OnRequestReceived(Dictionary data)
16 | {
17 |
18 | KCDatabase.Instance.Quest.LoadFromRequest(APIName, data);
19 |
20 | base.OnRequestReceived(data);
21 | }
22 |
23 |
24 | public override string APIName => "api_req_quest/stop";
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_ranking/getlist.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Observer.kcsapi.api_req_ranking
8 | {
9 |
10 | public class getlist : APIBase
11 | {
12 |
13 | public override string APIName => "api_req_ranking/getlist";
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_sortie/airbattle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_sortie
9 | {
10 |
11 | public class airbattle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_sortie/airbattle";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_sortie/battle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_sortie
9 | {
10 |
11 | public class battle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_sortie/battle";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_sortie/battleresult.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_sortie
9 | {
10 |
11 | public class battleresult : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 |
24 | public override string APIName => "api_req_sortie/battleresult";
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_sortie/goback_port.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_sortie
9 | {
10 | public class goback_port : APIBase
11 | {
12 | public override void OnResponseReceived(dynamic data)
13 | {
14 | KCDatabase.Instance.Fleet.LoadFromResponse(APIName, data);
15 |
16 | base.OnResponseReceived((object)data);
17 | }
18 |
19 | public override string APIName => "api_req_sortie/goback_port";
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_sortie/ld_airbattle.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_sortie
9 | {
10 |
11 | public class ld_airbattle : APIBase
12 | {
13 |
14 | public override void OnResponseReceived(dynamic data)
15 | {
16 |
17 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
18 |
19 |
20 | base.OnResponseReceived((object)data);
21 | }
22 |
23 | public override string APIName => "api_req_sortie/ld_airbattle";
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_sortie/night_to_day.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Data;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Observer.kcsapi.api_req_sortie
9 | {
10 | public class night_to_day : APIBase
11 | {
12 |
13 | public override void OnResponseReceived(dynamic data)
14 | {
15 |
16 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
17 |
18 |
19 | base.OnResponseReceived((object)data);
20 | }
21 |
22 |
23 | public override string APIName => "api_req_sortie/night_to_day";
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/ElectronicObserver/Program.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Window;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using System.Windows.Forms;
7 | using System.Threading;
8 |
9 | namespace ElectronicObserver
10 | {
11 | static class Program
12 | {
13 | ///
14 | /// アプリケーションのメイン エントリ ポイントです。
15 | ///
16 | [STAThread]
17 | static void Main(string[] args)
18 | {
19 |
20 | bool allowMultiInstance = args.Contains("-m") || args.Contains("--multi-instance");
21 |
22 |
23 | using (var mutex = new Mutex(false, Application.ExecutablePath.Replace('\\', '/'), out var created))
24 | {
25 |
26 | /*
27 | bool hasHandle = false;
28 |
29 | try
30 | {
31 | hasHandle = mutex.WaitOne(0, false);
32 | }
33 | catch (AbandonedMutexException)
34 | {
35 | hasHandle = true;
36 | }
37 | */
38 |
39 | if (!created && !allowMultiInstance)
40 | {
41 | // 多重起動禁止
42 | MessageBox.Show("既に起動しています。多重起動はできません。\r\n誤検出の場合は、コマンドラインから -m オプションを付けて起動してください。", "七四式電子観測儀", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
43 | return;
44 | }
45 |
46 | Application.EnableVisualStyles();
47 | Application.SetCompatibleTextRenderingDefault(false);
48 | Application.Run(new FormMain());
49 |
50 | }
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/ElectronicObserver/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
6 | // アセンブリに関連付けられている情報を変更するには、
7 | // これらの属性値を変更してください。
8 | [assembly: AssemblyTitle("ElectronicObserver")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("ElectronicObserver")]
13 | [assembly: AssemblyCopyright("Copyright © 2014 Andante")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから
18 | // 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、
19 | // その型の ComVisible 属性を true に設定してください。
20 | [assembly: ComVisible(false)]
21 |
22 | // 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です
23 | [assembly: Guid("bee10a07-cace-44fe-8a74-53ae44d224c2")]
24 |
25 | // アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を
33 | // 既定値にすることができます:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/ElectronicObserver/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.18444
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ElectronicObserver.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/ElectronicObserver/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ElectronicObserver/Utility/Mathematics/Fraction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Utility.Mathematics
8 | {
9 |
10 | public class Fraction
11 | {
12 | public int Current { get; set; }
13 | public int Max { get; set; }
14 |
15 | public double Rate => (double)Current / Math.Max(Max, 1);
16 |
17 |
18 | public Fraction()
19 | {
20 | Current = Max = 0;
21 | }
22 |
23 | public Fraction(int current, int max)
24 | {
25 | Current = current;
26 | Max = max;
27 | }
28 |
29 | public override string ToString() => $"{Current}/{Max}";
30 |
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/ElectronicObserver/Utility/Storage/SerializableKeyValuePair.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.Serialization;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Utility.Storage
9 | {
10 |
11 | [DataContract(Name = "SerializableKeyValuePair")]
12 | public struct SerializableKeyValuePair
13 | {
14 |
15 |
16 | public SerializableKeyValuePair(TKey key, TValue value)
17 | {
18 | Key = key;
19 | Value = value;
20 | }
21 |
22 | public SerializableKeyValuePair(KeyValuePair value)
23 | {
24 | Key = value.Key;
25 | Value = value.Value;
26 | }
27 |
28 |
29 | [DataMember]
30 | public TKey Key;
31 |
32 | [DataMember]
33 | public TValue Value;
34 |
35 |
36 | public static implicit operator KeyValuePair(SerializableKeyValuePair value)
37 | {
38 | return new KeyValuePair(value.Key, value.Value);
39 | }
40 |
41 | public static implicit operator SerializableKeyValuePair(KeyValuePair value)
42 | {
43 | return new SerializableKeyValuePair(value.Key, value.Value);
44 | }
45 |
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/ElectronicObserver/Utility/SystemEvents.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ElectronicObserver.Utility
8 | {
9 |
10 | ///
11 | /// システムイベントを扱います。
12 | ///
13 | public static class SystemEvents
14 | {
15 |
16 | public static bool UpdateTimerEnabled { get; set; }
17 |
18 | public static event Action UpdateTimerTick = delegate { };
19 | public static event Action SystemShuttingDown = delegate { };
20 |
21 |
22 | static SystemEvents()
23 | {
24 | UpdateTimerEnabled = true;
25 | }
26 |
27 | internal static void OnUpdateTimerTick()
28 | {
29 | if (UpdateTimerEnabled)
30 | UpdateTimerTick();
31 | }
32 | internal static void OnSystemShuttingDown() { SystemShuttingDown(); }
33 |
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Control/ImageLabel.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Control
2 | {
3 | partial class ImageLabel
4 | {
5 | ///
6 | /// 必要なデザイナー変数です。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 使用中のリソースをすべてクリーンアップします。
12 | ///
13 | /// マネージ リソースが破棄される場合 true、破棄されない場合は false です。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region コンポーネント デザイナーで生成されたコード
24 |
25 | ///
26 | /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27 | /// コード エディターで変更しないでください。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | this.ResumeLayout(false);
33 |
34 | }
35 |
36 | #endregion
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Control/ShipStatusEquipment.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Control
2 | {
3 | partial class ShipStatusEquipment
4 | {
5 | ///
6 | /// 必要なデザイナー変数です。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 |
11 |
12 | #region コンポーネント デザイナーで生成されたコード
13 |
14 | ///
15 | /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
16 | /// コード エディターで変更しないでください。
17 | ///
18 | private void InitializeComponent()
19 | {
20 | this.SuspendLayout();
21 | //
22 | // ShipStatusEquipment
23 | //
24 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
25 | this.BackColor = System.Drawing.Color.Transparent;
26 | this.DoubleBuffered = true;
27 | this.Font = new System.Drawing.Font("Meiryo UI", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
28 | this.Name = "ShipStatusEquipment";
29 | this.Size = new System.Drawing.Size(100, 20);
30 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.ShipStatusEquipment_Paint);
31 | this.MouseEnter += new System.EventHandler(this.ShipStatusEquipment_MouseEnter);
32 | this.MouseLeave += new System.EventHandler(this.ShipStatusEquipment_MouseLeave);
33 | this.ResumeLayout(false);
34 |
35 | }
36 |
37 | #endregion
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Control/ShipStatusHP.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Control
2 | {
3 | partial class ShipStatusHP
4 | {
5 | ///
6 | /// 必要なデザイナー変数です。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 使用中のリソースをすべてクリーンアップします。
12 | ///
13 | /// マネージ リソースが破棄される場合 true、破棄されない場合は false です。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region コンポーネント デザイナーで生成されたコード
24 |
25 | ///
26 | /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27 | /// コード エディターで変更しないでください。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | //
33 | // ShipStatusHP
34 | //
35 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
36 | this.DoubleBuffered = true;
37 | this.Name = "ShipStatusHP";
38 | this.Size = new System.Drawing.Size(80, 20);
39 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.ShipStatusHP_Paint);
40 | this.MouseEnter += new System.EventHandler(this.ShipStatusHP_MouseEnter);
41 | this.MouseLeave += new System.EventHandler(this.ShipStatusHP_MouseLeave);
42 | this.ResumeLayout(false);
43 |
44 | }
45 |
46 | #endregion
47 |
48 |
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Control/ShipStatusLevel.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Control
2 | {
3 | partial class ShipStatusLevel
4 | {
5 | ///
6 | /// 必要なデザイナー変数です。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 使用中のリソースをすべてクリーンアップします。
12 | ///
13 | /// マネージ リソースが破棄される場合 true、破棄されない場合は false です。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region コンポーネント デザイナーで生成されたコード
24 |
25 | ///
26 | /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27 | /// コード エディターで変更しないでください。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | //
33 | // ShipStatusLevel
34 | //
35 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
36 | this.DoubleBuffered = true;
37 | this.Name = "ShipStatusLevel";
38 | this.Size = new System.Drawing.Size(80, 20);
39 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.ShipStatusLevel_Paint);
40 | this.ResumeLayout(false);
41 |
42 | }
43 |
44 | #endregion
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Control/ShipStatusResource.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Control
2 | {
3 | partial class ShipStatusResource
4 | {
5 | ///
6 | /// 必要なデザイナー変数です。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 使用中のリソースをすべてクリーンアップします。
12 | ///
13 | /// マネージ リソースが破棄される場合 true、破棄されない場合は false です。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region コンポーネント デザイナーで生成されたコード
24 |
25 | ///
26 | /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27 | /// コード エディターで変更しないでください。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | //
33 | // ShipStatusResource
34 | //
35 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
36 | this.DoubleBuffered = true;
37 | this.Name = "ShipStatusResource";
38 | this.Size = new System.Drawing.Size(60, 20);
39 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.ShipStatusResource_Paint);
40 | this.ResumeLayout(false);
41 |
42 | }
43 |
44 | #endregion
45 |
46 |
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Control/WindowCaptureButton.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Control
2 | {
3 | partial class WindowCaptureButton
4 | {
5 | ///
6 | /// 必要なデザイナー変数です。
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// 使用中のリソースをすべてクリーンアップします。
12 | ///
13 | /// マネージ リソースが破棄される場合 true、破棄されない場合は false です。
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region コンポーネント デザイナーで生成されたコード
24 |
25 | ///
26 | /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27 | /// コード エディターで変更しないでください。
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | //
33 | // WindowCaptureButton
34 | //
35 | this.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
36 | this.ResumeLayout(false);
37 |
38 | }
39 |
40 | #endregion
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Dialog/DialogTextSelect.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Window.Support;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Data;
6 | using System.Drawing;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace ElectronicObserver.Window.Dialog
13 | {
14 | public partial class DialogTextSelect : Form
15 | {
16 |
17 | public int SelectedIndex => TextSelect.SelectedIndex;
18 |
19 | public object SelectedItem => TextSelect.SelectedItem;
20 |
21 | public DialogTextSelect()
22 | {
23 | InitializeComponent();
24 |
25 | ControlHelper.SetDoubleBuffered(tableLayoutPanel1);
26 | }
27 |
28 | public DialogTextSelect(string title, string description, object[] items)
29 | : this()
30 | {
31 |
32 | Initialize(title, description, items);
33 | }
34 |
35 | public void Initialize(string title, string description, object[] items)
36 | {
37 | this.Text = title;
38 |
39 | tableLayoutPanel1.SuspendLayout();
40 |
41 | Description.Text = description;
42 |
43 | TextSelect.BeginUpdate();
44 | TextSelect.Items.Clear();
45 | TextSelect.Items.AddRange(items);
46 | if (TextSelect.Items.Count > 0)
47 | TextSelect.SelectedIndex = 0;
48 | TextSelect.EndUpdate();
49 |
50 | tableLayoutPanel1.ResumeLayout();
51 |
52 | }
53 |
54 |
55 | private void ButtonOK_Click(object sender, EventArgs e)
56 | {
57 | DialogResult = System.Windows.Forms.DialogResult.OK;
58 | }
59 |
60 | private void ButtonCancel_Click(object sender, EventArgs e)
61 | {
62 | DialogResult = System.Windows.Forms.DialogResult.Cancel;
63 | }
64 |
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Dialog/DialogVersion.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Resource;
2 | using ElectronicObserver.Utility;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.ComponentModel;
6 | using System.Data;
7 | using System.Drawing;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 | using System.Windows.Forms;
12 |
13 | namespace ElectronicObserver.Window.Dialog
14 | {
15 | public partial class DialogVersion : Form
16 | {
17 | public DialogVersion()
18 | {
19 | InitializeComponent();
20 |
21 | TextVersion.Text = string.Format("{0} (ver. {1} - {2} Release)", SoftwareInformation.VersionJapanese, SoftwareInformation.VersionEnglish, SoftwareInformation.UpdateTime.ToString("d"));
22 | }
23 |
24 | private void TextAuthor_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
25 | {
26 |
27 | System.Diagnostics.Process.Start("https://twitter.com/andanteyk");
28 |
29 | }
30 |
31 | private void ButtonClose_Click(object sender, EventArgs e)
32 | {
33 |
34 | this.Close();
35 |
36 | }
37 |
38 | private void TextInformation_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
39 | {
40 |
41 | System.Diagnostics.Process.Start("http://electronicobserver.blog.fc2.com/");
42 |
43 | }
44 |
45 | private void DialogVersion_Load(object sender, EventArgs e)
46 | {
47 |
48 | this.Icon = ResourceManager.Instance.AppIcon;
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/FormBrowserHost.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window
2 | {
3 | partial class FormBrowserHost
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | //
33 | // FormBrowserHost
34 | //
35 | this.AutoHidePortion = 150D;
36 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
37 | this.ClientSize = new System.Drawing.Size(300, 200);
38 | this.DoubleBuffered = true;
39 | this.Font = new System.Drawing.Font("Microsoft YaHei", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
40 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
41 | this.HideOnClose = true;
42 | this.Name = "FormBrowserHost";
43 | this.Text = "浏览器";
44 | this.Load += new System.EventHandler(this.FormBrowser_Load);
45 | this.Resize += new System.EventHandler(this.FormBrowserHost_Resize);
46 | this.ResumeLayout(false);
47 |
48 | }
49 |
50 | #endregion
51 |
52 |
53 | }
54 | }
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Integrate/FormCandidate.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Integrate
2 | {
3 | partial class FormCandidate
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | //
33 | // FormCandidate
34 | //
35 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
36 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
37 | this.BackColor = System.Drawing.Color.Blue;
38 | this.ClientSize = new System.Drawing.Size(284, 261);
39 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
40 | this.Name = "FormCandidate";
41 | this.ShowInTaskbar = false;
42 | this.Text = "FormCandidate";
43 | this.TransparencyKey = System.Drawing.Color.Blue;
44 | this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormCandidate_FormClosed);
45 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.FormCandidate_Paint);
46 | this.Resize += new System.EventHandler(this.FormCandidate_Resize);
47 | this.ResumeLayout(false);
48 |
49 | }
50 |
51 | #endregion
52 | }
53 | }
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Integrate/FormCandidate.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace ElectronicObserver.Window.Integrate
12 | {
13 |
14 | ///
15 | /// 選択中のウィンドウに表示する枠
16 | ///
17 | public partial class FormCandidate : Form
18 | {
19 |
20 | private Pen blackPen = new Pen(Color.Black, 5);
21 |
22 | public FormCandidate()
23 | {
24 | InitializeComponent();
25 | }
26 |
27 | private void FormCandidate_Paint(object sender, PaintEventArgs e)
28 | {
29 | Graphics g = e.Graphics;
30 | g.DrawRectangle(blackPen, 2, 2, Width - 4, Height - 4);
31 | }
32 |
33 | private void FormCandidate_FormClosed(object sender, FormClosedEventArgs e)
34 | {
35 | blackPen.Dispose();
36 | }
37 |
38 | private void FormCandidate_Resize(object sender, EventArgs e)
39 | {
40 | Invalidate();
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Integrate/FormCapturing.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ElectronicObserver.Window.Integrate
2 | {
3 | partial class FormCapturing
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.SuspendLayout();
32 | //
33 | // FormCapturing
34 | //
35 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
36 | this.BackColor = System.Drawing.Color.Blue;
37 | this.ClientSize = new System.Drawing.Size(133, 112);
38 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
39 | this.Name = "FormCapturing";
40 | this.ShowInTaskbar = false;
41 | this.Text = "FormCapturing";
42 | this.TopMost = true;
43 | this.TransparencyKey = System.Drawing.Color.Blue;
44 | this.ResumeLayout(false);
45 |
46 | }
47 |
48 | #endregion
49 | }
50 | }
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Integrate/FormCapturing.cs:
--------------------------------------------------------------------------------
1 | using ElectronicObserver.Resource;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Data;
6 | using System.Drawing;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace ElectronicObserver.Window.Integrate
13 | {
14 |
15 | ///
16 | /// マウスドラッグ中のポインタ表示
17 | ///
18 | public partial class FormCapturing : Form
19 | {
20 | public FormCapturing()
21 | {
22 | InitializeComponent();
23 | }
24 | }
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Support/CustomFloatWindowFactory.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Drawing;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using WeifenLuo.WinFormsUI.Docking;
8 |
9 | namespace ElectronicObserver.Window.Support
10 | {
11 |
12 | public class CustomFloatWindowFactory : DockPanelExtender.IFloatWindowFactory
13 | {
14 |
15 | public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane, System.Drawing.Rectangle bounds)
16 | {
17 | return new CustomFloatWindow(dockPanel, pane, bounds);
18 | }
19 |
20 | public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane)
21 | {
22 | return new CustomFloatWindow(dockPanel, pane);
23 | }
24 |
25 | }
26 |
27 |
28 | public class CustomFloatWindow : FloatWindow
29 | {
30 |
31 | public CustomFloatWindow(DockPanel dockPanel, DockPane pane)
32 | : base(dockPanel, pane)
33 | {
34 |
35 | //FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
36 | DoubleClickTitleBarToDock = false;
37 | }
38 |
39 | public CustomFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds)
40 | : base(dockPanel, pane, bounds)
41 | {
42 |
43 | //FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
44 | DoubleClickTitleBarToDock = false;
45 | }
46 |
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/ElectronicObserver/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Andante
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Libraries/DynamicJson.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RadarNyan/ElectronicObserver-ML/f13a3a5b1af74288fe95da33b9ef4f80d4463e75/Libraries/DynamicJson.dll
--------------------------------------------------------------------------------
/Licenses/DockPanelSuite.txt:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright (c) 2007-2012 Weifen Luo (email: weifenluo@yahoo.com) and other contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6 |
7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 |
--------------------------------------------------------------------------------
/Licenses/Nekoxy.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 veigr
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Licenses/SwfExtractor.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Andante
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | 2018/08/28 18:57:00
2 | 3.0.7-m5
3 | 替换内置浏览器为自制 Chromium 核心
4 | 舰队编成-定位舰娘功能对应「艦これ」二期
5 |
6 | 此为汉化版七四式电子观测仪 3.0 的最终版,
7 | 已实现对应「艦これ」二期的大部分功能,
8 | 无影响正常游戏的恶性 BUG 将不再更新。
9 |
10 | 下一版本将以原版 4.0 为基础从头开发,
11 | 浏览器也将换用原版新浏览器(同为 Chromium 核心)
12 |
--------------------------------------------------------------------------------
/packages/repositories.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------