├── .editorconfig
├── .gitattributes
├── .gitignore
├── .gitmodules
├── Browser
├── App.config
├── Browser.csproj
├── CefOp
│ ├── CustomRequestHandler.cs
│ ├── CustomResourceRequestHandler.cs
│ ├── DragHandler.cs
│ ├── KeyboardHandler.cs
│ ├── MenuHandler.cs
│ ├── ResponseFilterPixiSetting.cs
│ └── ScreenShotPacket.cs
├── FormBrowser.Designer.cs
├── FormBrowser.cs
├── FormBrowser.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
└── packages.config
├── 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
│ │ ├── HeavyBomber.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
│ │ ├── ExpChecker.png
│ │ ├── ExpeditionCheck.png
│ │ ├── Fleet.png
│ │ ├── FleetImageGenerator.png
│ │ ├── FleetPreset.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
│ │ ├── AviationMaterial.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
│ │ ├── AntiBomber.png
│ │ ├── Armor.png
│ │ ├── Bomber.png
│ │ ├── Evasion.png
│ │ ├── Firepower.png
│ │ ├── HP.png
│ │ ├── Interception.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
│ │ ├── BattleCombinedRadar.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
│ │ ├── BattleNormalRadar.cs
│ │ ├── BattlePracticeDay.cs
│ │ ├── BattlePracticeNight.cs
│ │ ├── BattleResultData.cs
│ │ ├── Detail
│ │ │ ├── BattleDetail.cs
│ │ │ └── BattleDetailDescriptor.cs
│ │ └── Phase
│ │ │ ├── PhaseAirBattle.cs
│ │ │ ├── PhaseAirBattleBase.cs
│ │ │ ├── PhaseBase.cs
│ │ │ ├── PhaseBaseAirAttack.cs
│ │ │ ├── PhaseBaseAirRaid.cs
│ │ │ ├── PhaseFriendlyAirBattle.cs
│ │ │ ├── PhaseFriendlyShelling.cs
│ │ │ ├── PhaseFriendlySupportInfo.cs
│ │ │ ├── PhaseInitial.cs
│ │ │ ├── PhaseJetAirBattle.cs
│ │ │ ├── PhaseJetBaseAirAttack.cs
│ │ │ ├── PhaseNightBattle.cs
│ │ │ ├── PhaseNightInitial.cs
│ │ │ ├── PhaseOpeningASW.cs
│ │ │ ├── PhaseRadar.cs
│ │ │ ├── PhaseSearching.cs
│ │ │ ├── PhaseShelling.cs
│ │ │ ├── PhaseSupport.cs
│ │ │ └── PhaseTorpedo.cs
│ ├── CompassData.cs
│ ├── Constants.cs
│ ├── DevelopmentData.cs
│ ├── DockData.cs
│ ├── EquipmentData.cs
│ ├── EquipmentDataMaster.cs
│ ├── EquipmentType.cs
│ ├── EquipmentTypes.cs
│ ├── FleetData.cs
│ ├── FleetManager.cs
│ ├── FleetPresetData.cs
│ ├── FleetPresetManager.cs
│ ├── IDDictionary.cs
│ ├── IIdentifiable.cs
│ ├── KCDatabase.cs
│ ├── MapAreaData.cs
│ ├── MapInfoData.cs
│ ├── MaterialData.cs
│ ├── MissionClearCondition.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
│ │ ├── ProgressMultiExpedition.cs
│ │ ├── ProgressPractice.cs
│ │ ├── ProgressSlaughter.cs
│ │ ├── ProgressSpecialBattle.cs
│ │ ├── ProgressSupply.cs
│ │ └── QuestProgressManager.cs
│ ├── QuestData.cs
│ ├── QuestManager.cs
│ ├── RelocationData.cs
│ ├── ResponseWrapper.cs
│ ├── ShipData.cs
│ ├── ShipDataMaster.cs
│ ├── ShipGraphicData.cs
│ ├── ShipGroup
│ │ ├── ExpressionData.cs
│ │ ├── ExpressionList.cs
│ │ └── ExpressionManager.cs
│ ├── ShipGroupData.cs
│ ├── ShipGroupManager.cs
│ ├── ShipType.cs
│ ├── ShipTypes.cs
│ ├── UseItem.cs
│ └── UseItemMaster.cs
├── DynamicJson.cs
├── ElectronicObserver.csproj
├── Notifier
│ ├── NotifierAnchorageRepair.cs
│ ├── NotifierBase.cs
│ ├── NotifierBaseAirCorps.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
│ │ ├── preset_deck.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
│ │ ├── ld_shooting.cs
│ │ ├── midnight_battle.cs
│ │ └── sp_midnight.cs
│ │ ├── api_req_hensei
│ │ ├── change.cs
│ │ ├── combined.cs
│ │ ├── preset_delete.cs
│ │ ├── preset_register.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
│ │ ├── anchorage_repair.cs
│ │ ├── next.cs
│ │ ├── select_eventmap_rank.cs
│ │ └── start.cs
│ │ ├── api_req_member
│ │ ├── get_practice_enemyinfo.cs
│ │ ├── itemuse.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
│ │ ├── ld_shooting.cs
│ │ └── night_to_day.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
│ ├── KCResourceHelper.cs
│ ├── Record
│ │ ├── ConstructionRecord.cs
│ │ ├── DevelopmentRecord.cs
│ │ ├── EnemyFleetRecord.cs
│ │ ├── RecordBase.cs
│ │ ├── RecordManager.cs
│ │ ├── ResourceRecord.cs
│ │ ├── ShipDropRecord.cs
│ │ └── ShipParameterRecord.cs
│ └── ResourceManager.cs
├── Resources
│ └── MapCell.json
├── Utility
│ ├── Configuration.cs
│ ├── Data
│ │ ├── Calculator.cs
│ │ ├── ExpTable.cs
│ │ ├── MapCell2WikiPoint.cs
│ │ └── RecordHash.cs
│ ├── ErrorReporter.cs
│ ├── FleetImageGenerator.cs
│ ├── Logger.cs
│ ├── Mathematics
│ │ ├── DateTimeHelper.cs
│ │ └── Fraction.cs
│ ├── MediaPlayer.cs
│ ├── PathHelper.cs
│ ├── SoftwareInformation.cs
│ ├── Storage
│ │ ├── CsvHelper.cs
│ │ ├── DataStorage.cs
│ │ ├── SerializableColor.cs
│ │ ├── SerializableFont.cs
│ │ ├── SerializableKeyValuePair.cs
│ │ └── SerializableList.cs
│ ├── SyncBGMPlayer.cs
│ ├── SystemEvents.cs
│ └── WinAPI.cs
├── Window
│ ├── Control
│ │ ├── ColorPicker.Designer.cs
│ │ ├── ColorPicker.cs
│ │ ├── ColorPicker.resx
│ │ ├── 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
│ │ ├── DialogExpChecker.Designer.cs
│ │ ├── DialogExpChecker.cs
│ │ ├── DialogExpChecker.resx
│ │ ├── DialogExpeditionCheck.Designer.cs
│ │ ├── DialogExpeditionCheck.cs
│ │ ├── DialogExpeditionCheck.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
│ │ ├── DialogPlugins.Designer.cs
│ │ ├── DialogPlugins.cs
│ │ ├── DialogPlugins.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
│ │ ├── 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
│ ├── FormFleetPreset.Designer.cs
│ ├── FormFleetPreset.cs
│ ├── FormFleetPreset.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
│ ├── Plugins
│ │ ├── DialogPlugin.cs
│ │ ├── DockPlugin.cs
│ │ ├── ElectronicPlugin.cs
│ │ ├── IPluginHost.cs
│ │ ├── ObserverPlugin.cs
│ │ ├── PluginSettingControl.cs
│ │ └── ServerPlugin.cs
│ └── Support
│ │ ├── ControlHelper.cs
│ │ ├── CustomFloatWindowFactory.cs
│ │ └── WindowPlacementManager.cs
└── packages.config
├── LICENSE
├── Licenses
├── Apache.txt
├── CefSharp.txt
├── DockPanelSuite.txt
├── DynaJson.txt
├── FiddlerCore.txt
├── LGPL.txt
├── MPL.txt
├── Ms-PL.txt
└── Nekoxy.txt
├── README.md
├── appveyor.yml
└── packages
└── repositories.config
/.editorconfig:
--------------------------------------------------------------------------------
1 | # .editorconfig について詳しくは、次をご覧ください https://aka.ms/editorconfigdocs
2 |
3 | # All files
4 | [*]
5 | indent_style = tab
6 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "DockPanelSuite"]
2 | path = DockPanelSuite
3 | url = https://github.com/andanteyk/dockpanelsuite.git
4 | [submodule "SwfExtractor"]
5 | path = SwfExtractor
6 | url = https://github.com/andanteyk/SwfExtractor.git
7 | [submodule "GeckoBrowser"]
8 | path = GeckoBrowser
9 | url = https://github.com/CAWAS/GeckoBrowser.git
10 | branch = master
11 |
--------------------------------------------------------------------------------
/Browser/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Browser/CefOp/CustomResourceRequestHandler.cs:
--------------------------------------------------------------------------------
1 | using CefSharp;
2 | using CefSharp.Handler;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Browser.CefOp
10 | {
11 | public class CustomResourceRequestHandler : ResourceRequestHandler
12 | {
13 |
14 | bool pixiSettingEnabled;
15 |
16 | public CustomResourceRequestHandler(bool pixiSettingEnabled) : base()
17 | {
18 | this.pixiSettingEnabled = pixiSettingEnabled;
19 | }
20 |
21 |
22 | ///
23 | /// レスポンスの置換制御を行います。
24 | ///
25 | protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
26 | {
27 | if (pixiSettingEnabled && request.Url.Contains(@"/kcs2/index.php"))
28 | return new ResponseFilterPixiSetting();
29 |
30 | return base.GetResourceResponseFilter(chromiumWebBrowser, browser, frame, request, response);
31 | }
32 |
33 | ///
34 | /// 特定の通信をブロックします。
35 | ///
36 | protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
37 | {
38 | // ログイン直後に勝手に遷移させられ、ブラウザがホワイトアウトすることがあるためブロックする
39 | if (request.Url.Contains(@"/rt.gsspat.jp/"))
40 | {
41 | return CefReturnValue.Cancel;
42 | }
43 |
44 | return base.OnBeforeResourceLoad(chromiumWebBrowser, browser, frame, request, callback);
45 | }
46 |
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Browser/CefOp/DragHandler.cs:
--------------------------------------------------------------------------------
1 | using CefSharp;
2 | using CefSharp.Enums;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Browser.CefOp
10 | {
11 | ///
12 | /// (たぶん)ドラッグ&ドロップを無効化します。
13 | ///
14 | public class DragHandler : IDragHandler
15 | {
16 | public bool OnDragEnter(IWebBrowser browserControl, IBrowser browser, IDragData dragData, DragOperationsMask mask)
17 | {
18 | return true;
19 | }
20 |
21 | public void OnDraggableRegionsChanged(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IList regions)
22 | {
23 | // nop
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Browser/CefOp/MenuHandler.cs:
--------------------------------------------------------------------------------
1 | using CefSharp;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 |
9 | namespace Browser.CefOp
10 | {
11 | ///
12 | /// コンテキストメニューを無効化します。
13 | ///
14 | public class MenuHandler : IContextMenuHandler
15 | {
16 | public MenuHandler()
17 | {
18 | }
19 |
20 |
21 | public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
22 | {
23 | model.Clear();
24 | }
25 |
26 | public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
27 | {
28 | return false;
29 | }
30 |
31 | public void OnContextMenuDismissed(IWebBrowser browserControl, IBrowser browser, IFrame frame)
32 | {
33 | // nop
34 | }
35 |
36 | public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback)
37 | {
38 | return false;
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/Browser/CefOp/ResponseFilterPixiSetting.cs:
--------------------------------------------------------------------------------
1 | using CefSharp;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Browser.CefOp
10 | {
11 | ///
12 | /// スクリーンショット撮影に必要なデータを挿入します。
13 | ///
14 | public class ResponseFilterPixiSetting : IResponseFilter
15 | {
16 | public bool InitFilter() => true;
17 |
18 | public FilterStatus Filter(Stream dataIn, out long dataInRead, Stream dataOut, out long dataOutWritten)
19 | {
20 | if (dataIn == null)
21 | {
22 | dataInRead = 0;
23 | dataOutWritten = 0;
24 | return FilterStatus.Done;
25 | }
26 |
27 | using (var reader = new StreamReader(dataIn))
28 | {
29 | string raw = reader.ReadToEnd();
30 |
31 | // note: preserveDrawingBuffer = true 設定時に動作が重くなる可能性がある
32 | // が、 false だとスクリーンショットがハードコピー(Graphics.CopyFromScreen 等)でしか取れなくなる
33 | // 描画直後に保存処理(toDataUrl)を行うと false でも撮れるらしいが、外部からの操作でそれができるかは不明
34 | string replaced = raw.Replace(
35 | @"/pixi.js"">",
36 | @"/pixi.js"">");
37 |
38 | var bytes = Encoding.UTF8.GetBytes(replaced);
39 | dataOut.Write(bytes, 0, bytes.Length);
40 |
41 | dataInRead = dataIn.Length;
42 | dataOutWritten = Math.Min(bytes.Length, dataOut.Length);
43 | }
44 |
45 | return FilterStatus.Done;
46 | }
47 |
48 | public void Dispose() { }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/Browser/CefOp/ScreenShotPacket.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Drawing;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace Browser.CefOp
10 | {
11 | public class ScreenShotPacket
12 | {
13 | public string ID { get; }
14 | public string DataUrl;
15 | public TaskCompletionSource TaskSource { get; }
16 |
17 | public ScreenShotPacket() : this("ss_" + Guid.NewGuid().ToString("N")) { }
18 | public ScreenShotPacket(string id)
19 | {
20 | ID = id;
21 | TaskSource = new TaskCompletionSource();
22 | }
23 |
24 | public void Complete(string dataurl)
25 | {
26 | DataUrl = dataurl;
27 | TaskSource.SetResult(this);
28 | }
29 |
30 | public Bitmap GetImage() => ConvertToImage(DataUrl);
31 |
32 |
33 | public static Bitmap ConvertToImage(string dataurl)
34 | {
35 | if (dataurl == null || !dataurl.StartsWith("data:image/png"))
36 | return null;
37 |
38 | var s = dataurl.Substring(dataurl.IndexOf(',') + 1);
39 | var bytes = Convert.FromBase64String(s);
40 |
41 | Bitmap bitmap;
42 | using (var ms = new MemoryStream(bytes))
43 | bitmap = new Bitmap(ms);
44 |
45 | return bitmap;
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/Browser/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
6 | // アセンブリに関連付けられている情報を変更するには、
7 | // これらの属性値を変更してください。
8 | [assembly: AssemblyTitle("EOBrowser")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("ElectronicObserver")]
13 | [assembly: AssemblyCopyright("Copyright © 2015 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("e5c1a717-5d59-44a4-81f0-1742d4b963a8")]
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 |
--------------------------------------------------------------------------------
/Browser/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // このコードはツールによって生成されました。
4 | // ランタイム バージョン:4.0.30319.42000
5 | //
6 | // このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7 | // コードが再生成されるときに損失したりします。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Browser.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Browser/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Browser/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 | Task 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 | [OperationContract]
54 | void SendMouseEvent(string type, double x, double y);
55 |
56 | [OperationContract]
57 | byte[] TakeScreenShotAsPngBytes();
58 |
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/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/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/74eo.ico
--------------------------------------------------------------------------------
/ElectronicObserver/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/ElectronicObserver/Assets.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets.zip
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/AppIcon.ico
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/AppIcon_16.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/AppIcon_32.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/AppIcon_48.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/AppIcon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/AppIcon_64.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Battle/FormationEnemy01.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Battle/FormationEnemy02.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Battle/FormationEnemy03.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Battle/FormationEnemy04.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Battle/FormationEnemy05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Battle/FormationEnemy05.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Mute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/Mute.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Navigate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/Navigate.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/Other.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/Refresh.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/ScreenShot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/ScreenShot.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Unmute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/Unmute.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/Zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/Zoom.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/ZoomIn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/ZoomIn.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Browser/ZoomOut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Browser/ZoomOut.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/LittleTired.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Condition/LittleTired.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/Normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Condition/Normal.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/Sparkle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Condition/Sparkle.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/Tired.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Condition/Tired.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Condition/VeryTired.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Condition/VeryTired.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AADirector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/AADirector.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AAGun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/AAGun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AAShell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/AAShell.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/APShell.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/APShell.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/ASPatrol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/ASPatrol.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/AmphibiousVehicle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/AmphibiousVehicle.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/ArmyInterceptor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/ArmyInterceptor.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Autogyro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Autogyro.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Bulge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Bulge.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedAircraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/CarrierBasedAircraft.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedBomber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/CarrierBasedBomber.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedFighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/CarrierBasedFighter.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedRecon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/CarrierBasedRecon.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CarrierBasedTorpedo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/CarrierBasedTorpedo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/CommandFacility.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/CommandFacility.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/DamageControl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/DamageControl.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/DepthCharge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/DepthCharge.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/DrumCanister.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/DrumCanister.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Engine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Engine.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Flare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Flare.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/FlyingBoat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/FlyingBoat.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/HeavyBomber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/HeavyBomber.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/HighAngleGun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/HighAngleGun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Interceptor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Interceptor.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/JetFightingBomberKeiun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/JetFightingBomberKeiun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/JetFightingBomberKikka.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/JetFightingBomberKikka.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/LandASPatrol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/LandASPatrol.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/LandAttacker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/LandAttacker.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/LandingCraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/LandingCraft.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Locked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Locked.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MainGunL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/MainGunL.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MainGunM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/MainGunM.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MainGunS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/MainGunS.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/MaintenanceTeam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/MaintenanceTeam.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/NightAttacker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/NightAttacker.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/NightFighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/NightFighter.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Nothing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Nothing.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/PicketCrew.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/PicketCrew.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/RADAR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/RADAR.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Ration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Ration.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/RepairFacility.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/RepairFacility.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/RocketArtillery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/RocketArtillery.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SONAR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/SONAR.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Seaplane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Seaplane.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SeaplaneFighter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/SeaplaneFighter.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Searchlight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Searchlight.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SecondaryGun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/SecondaryGun.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/SubmarineEquipment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/SubmarineEquipment.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Supplies.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Supplies.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Torpedo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Torpedo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/TransportMaterials.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/TransportMaterials.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Equipment/Unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Equipment/Unknown.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fairy/Fairy1.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fairy/Fairy2.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fairy/Fairy3.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fairy/Fairy4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fairy/Fairy4.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/AnchorageRepairing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/AnchorageRepairing.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Combined.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/Combined.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Damaged.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/Damaged.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Docking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/Docking.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Expedition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/Expedition.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/NoShip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/NoShip.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/NotReplenished.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/NotReplenished.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Ready.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/Ready.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/Sortie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/Sortie.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Fleet/SortieDamaged.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Fleet/SortieDamaged.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/AlbumEquipment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/AlbumEquipment.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/AlbumShip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/AlbumShip.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/AntiAirDefense.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/AntiAirDefense.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Arsenal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Arsenal.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/BaseAirCorps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/BaseAirCorps.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Battle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Battle.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Browser.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Compass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Compass.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Configuration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Configuration.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ConstructionRecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/ConstructionRecord.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/DevelopmentRecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/DevelopmentRecord.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Dock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Dock.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/DropRecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/DropRecord.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/EquipmentList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/EquipmentList.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ExpChecker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/ExpChecker.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ExpeditionCheck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/ExpeditionCheck.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Fleet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Fleet.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/FleetImageGenerator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/FleetImageGenerator.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/FleetPreset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/FleetPreset.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Headquarters.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Headquarters.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Information.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Information.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Json.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Json.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Log.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Main.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/Quest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/Quest.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ResourceChart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/ResourceChart.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/ShipGroup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/ShipGroup.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Form/WindowCapture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Form/WindowCapture.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Headquarters/Equipment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Headquarters/Equipment.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Headquarters/Ship.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Headquarters/Ship.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/ActionReport.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/ActionReport.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/AviationMaterial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/AviationMaterial.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/Blueprint.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/Blueprint.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/Catapult.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/Catapult.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/DevelopmentMaterial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/DevelopmentMaterial.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/FurnitureCoin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/FurnitureCoin.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/InstantConstruction.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/InstantConstruction.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/InstantRepair.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/InstantRepair.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/ModdingMaterial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/ModdingMaterial.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Item/PresentBox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Item/PresentBox.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel0.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel1.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel2.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel3.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel4.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel5.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel6.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevel7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevel7.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop0.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop1.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop2.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop3.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop4.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop5.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop6.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Level/AircraftLevelTop7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Level/AircraftLevelTop7.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Nothing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Nothing.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/AA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/AA.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/ASW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/ASW.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Accuracy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Accuracy.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Aircraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Aircraft.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/AircraftCost.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/AircraftCost.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/AircraftDistance.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/AircraftDistance.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/AntiBomber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/AntiBomber.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Armor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Armor.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Bomber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Bomber.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Evasion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Evasion.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Firepower.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Firepower.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/HP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/HP.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Interception.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Interception.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/LOS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/LOS.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Luck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Luck.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Range.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Range.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Speed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Speed.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Parameter/Torpedo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Parameter/Torpedo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/Black.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/BlueA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/BlueA.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/BlueB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/BlueB.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/BlueC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/BlueC.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Cherry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/Cherry.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Gold.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/Gold.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/HoloA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/HoloA.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/HoloB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/HoloB.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Red.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/Red.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Rarity/Silver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Rarity/Silver.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Record/EnemyFleetRecord.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Record/EnemyFleetRecord.csv
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Record/ShipParameterRecord.csv:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Record/ShipParameterRecord.csv
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Ammo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Resource/Ammo.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Bauxite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Resource/Bauxite.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Fuel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Resource/Fuel.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Resource/Steel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Resource/Steel.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Other.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Other.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/ammo_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/ammo_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/ammo_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/ammo_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/bauxite_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/bauxite_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/bauxite_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/bauxite_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/fuel_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/fuel_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/fuel_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/fuel_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/steel_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/steel_empty.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/Resource/steel_low.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/Resource/steel_low.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/damageL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/ShipState/damageL.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/damageM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/ShipState/damageM.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/damageS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/ShipState/damageS.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/escape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/ShipState/escape.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/expedition.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/ShipState/expedition.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/repair.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/ElectronicObserver/Assets/Unused/ShipState/repair.png
--------------------------------------------------------------------------------
/ElectronicObserver/Assets/Unused/ShipState/sunk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/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/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/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 | NightInitial = new PhaseNightInitial(this, "夜戦開始", true);
23 | FriendlySupportInfo = new PhaseFriendlySupportInfo(this, "友軍艦隊");
24 | FriendlyShelling = new PhaseFriendlyShelling(this, "友軍艦隊援護");
25 | Support = new PhaseSupport(this, "夜間支援攻撃", true);
26 | NightBattle = new PhaseNightBattle(this, "夜戦", 0);
27 |
28 |
29 | foreach (var phase in GetPhases())
30 | phase.EmulateBattle(_resultHPs, _attackDamages);
31 | }
32 |
33 |
34 |
35 | public override string APIName => "api_req_combined_battle/sp_midnight";
36 |
37 | public override string BattleName => "連合艦隊 開幕夜戦";
38 |
39 |
40 | public override IEnumerable GetPhases()
41 | {
42 | yield return Initial;
43 | yield return Searching;
44 | yield return NightInitial;
45 | yield return FriendlySupportInfo;
46 | yield return FriendlyShelling;
47 | yield return Support;
48 | yield return NightBattle;
49 | }
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/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 | NightInitial = new PhaseNightInitial(this, "夜戦開始", true);
23 | FriendlySupportInfo = new PhaseFriendlySupportInfo(this, "友軍艦隊");
24 | FriendlyShelling = new PhaseFriendlyShelling(this, "友軍艦隊援護");
25 | // 支援なし?
26 | NightBattle = new PhaseNightBattle(this, "夜戦", 0);
27 |
28 |
29 | foreach (var phase in GetPhases())
30 | phase.EmulateBattle(_resultHPs, _attackDamages);
31 | }
32 |
33 |
34 | public override string APIName => "api_req_combined_battle/midnight_battle";
35 |
36 | public override string BattleName => "連合艦隊 夜戦";
37 |
38 |
39 | public override IEnumerable GetPhases()
40 | {
41 | yield return Initial;
42 | yield return NightInitial;
43 | yield return FriendlySupportInfo;
44 | yield return FriendlyShelling;
45 | yield return NightBattle;
46 | }
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleCombinedRadar.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using ElectronicObserver.Data.Battle.Phase;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 | ///
11 | /// 連合艦隊 vs 通常艦隊 レーダー射撃
12 | ///
13 | public class BattleCombinedRadar : BattleDay
14 | {
15 | public override void LoadFromResponse(string apiname, dynamic data)
16 | {
17 | base.LoadFromResponse(apiname, (object)data);
18 |
19 | JetBaseAirAttack = new PhaseJetBaseAirAttack(this, "噴式基地航空隊攻撃");
20 | BaseAirAttack = new PhaseBaseAirAttack(this, "基地航空隊攻撃");
21 | Shelling1 = new PhaseRadar(this, "レーダー射撃");
22 |
23 | foreach (var phase in GetPhases())
24 | phase.EmulateBattle(_resultHPs, _attackDamages);
25 | }
26 |
27 | public override string APIName => "api_req_combined_battle/ld_shooting";
28 |
29 | public override string BattleName => "連合艦隊 レーダー射撃";
30 |
31 | public override IEnumerable GetPhases()
32 | {
33 | yield return Initial;
34 | yield return Searching; // ?
35 | yield return JetBaseAirAttack;
36 | yield return BaseAirAttack;
37 | yield return Shelling1;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/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 PhaseFriendlyAirBattle FriendlyAirBattle { get; protected set; }
21 | public PhaseAirBattle AirBattle { get; protected set; }
22 | public PhaseOpeningASW OpeningASW { get; protected set; }
23 | public PhaseTorpedo OpeningTorpedo { get; protected set; }
24 | public PhaseShelling Shelling1 { get; protected set; }
25 | public PhaseShelling Shelling2 { get; protected set; }
26 | public PhaseShelling Shelling3 { get; protected set; }
27 | public PhaseTorpedo Torpedo { get; protected set; }
28 |
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/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 | NightInitial = new PhaseNightInitial(this, "夜戦開始", false);
22 | FriendlySupportInfo = new PhaseFriendlySupportInfo(this, "友軍艦隊");
23 | FriendlyShelling = new PhaseFriendlyShelling(this, "友軍艦隊援護");
24 | // 支援なし?
25 | NightBattle = new PhaseNightBattle(this, "夜戦", 0);
26 |
27 |
28 | foreach (var phase in GetPhases())
29 | phase.EmulateBattle(_resultHPs, _attackDamages);
30 | }
31 |
32 |
33 | public override string APIName => "api_req_combined_battle/ec_midnight_battle";
34 |
35 | public override string BattleName => "対連合艦隊 夜戦";
36 |
37 |
38 |
39 | public override IEnumerable GetPhases()
40 | {
41 | yield return Initial;
42 | yield return NightInitial;
43 | yield return FriendlySupportInfo;
44 | yield return FriendlyShelling;
45 | yield return NightBattle;
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/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 | public PhaseNightInitial NightInitial { get; protected set; }
17 | public PhaseFriendlyShelling FriendlyShelling { get; protected set; }
18 | public PhaseNightBattle NightBattle { get; protected set; }
19 |
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/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 | NightInitial = new PhaseNightInitial(this, "夜戦開始", false);
22 | FriendlySupportInfo = new PhaseFriendlySupportInfo(this, "友軍艦隊");
23 | FriendlyShelling = new PhaseFriendlyShelling(this, "友軍艦隊援護");
24 | Support = new PhaseSupport(this, "夜間支援攻撃", true);
25 | NightBattle = new PhaseNightBattle(this, "夜戦", 0);
26 |
27 |
28 | foreach (var phase in GetPhases())
29 | phase.EmulateBattle(_resultHPs, _attackDamages);
30 | }
31 |
32 |
33 | public override string APIName => "api_req_battle_midnight/sp_midnight";
34 |
35 | public override string BattleName => "通常艦隊 開幕夜戦";
36 |
37 |
38 |
39 | public override IEnumerable GetPhases()
40 | {
41 | yield return Initial;
42 | yield return Searching;
43 | yield return NightInitial;
44 | yield return FriendlySupportInfo;
45 | yield return FriendlyShelling;
46 | yield return Support;
47 | yield return NightBattle;
48 | }
49 | }
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/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 | NightInitial = new PhaseNightInitial(this, "夜戦開始", false);
22 | FriendlySupportInfo = new PhaseFriendlySupportInfo(this, "友軍艦隊");
23 | FriendlyShelling = new PhaseFriendlyShelling(this, "友軍艦隊援護");
24 | // 支援なし?
25 | NightBattle = new PhaseNightBattle(this, "夜戦", 0);
26 |
27 | foreach (var phase in GetPhases())
28 | phase.EmulateBattle(_resultHPs, _attackDamages);
29 | }
30 |
31 |
32 | public override string APIName => "api_req_battle_midnight/battle";
33 |
34 | public override string BattleName => "通常艦隊 夜戦";
35 |
36 |
37 |
38 | public override IEnumerable GetPhases()
39 | {
40 | yield return Initial;
41 | yield return NightInitial;
42 | yield return FriendlySupportInfo;
43 | yield return FriendlyShelling;
44 | yield return NightBattle;
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/ElectronicObserver/Data/Battle/BattleNormalRadar.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using ElectronicObserver.Data.Battle.Phase;
7 |
8 | namespace ElectronicObserver.Data.Battle
9 | {
10 | ///
11 | /// 通常艦隊 vs 通常艦隊 レーダー射撃
12 | ///
13 | public class BattleNormalRadar : BattleDay
14 | {
15 | public override void LoadFromResponse(string apiname, dynamic data)
16 | {
17 | base.LoadFromResponse(apiname, (object)data);
18 |
19 | JetBaseAirAttack = new PhaseJetBaseAirAttack(this, "噴式基地航空隊攻撃");
20 | BaseAirAttack = new PhaseBaseAirAttack(this, "基地航空隊攻撃");
21 | Shelling1 = new PhaseRadar(this, "レーダー射撃");
22 |
23 | foreach (var phase in GetPhases())
24 | phase.EmulateBattle(_resultHPs, _attackDamages);
25 | }
26 |
27 | public override string APIName => "api_req_sortie/ld_shooting";
28 |
29 | public override string BattleName => "通常艦隊 レーダー射撃";
30 |
31 | public override IEnumerable GetPhases()
32 | {
33 | yield return Initial;
34 | yield return Searching; // ?
35 | yield return JetBaseAirAttack;
36 | yield return BaseAirAttack;
37 | yield return Shelling1;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/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 | NightInitial = new PhaseNightInitial(this, "夜戦開始", false);
22 | NightBattle = new PhaseNightBattle(this, "夜戦", 0);
23 |
24 | NightBattle.EmulateBattle(_resultHPs, _attackDamages);
25 |
26 | }
27 |
28 |
29 | public override string APIName => "api_req_practice/midnight_battle";
30 |
31 | public override string BattleName => "演習 夜戦";
32 |
33 | public override bool IsPractice => true;
34 |
35 |
36 | public override IEnumerable GetPhases()
37 | {
38 | yield return Initial;
39 | yield return NightInitial;
40 | yield return NightBattle;
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/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/PhaseRadar.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 | public class PhaseRadar : PhaseShelling
13 | {
14 |
15 | // 砲撃戦とフォーマットが同じなので流用
16 |
17 | public PhaseRadar(BattleData data, string title)
18 | : base(data, title, 1, "1")
19 | {
20 | }
21 |
22 | public override bool IsAvailable => RawData.api_hougeki1() && RawData.api_hougeki1 != null;
23 |
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/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/FleetPresetData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Collections.ObjectModel;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace ElectronicObserver.Data
9 | {
10 | public class FleetPresetData : APIWrapper, IIdentifiable
11 | {
12 | public int PresetID => (int)RawData.api_preset_no;
13 |
14 | public string Name => RawData.api_name;
15 |
16 | private int[] _members;
17 | public ReadOnlyCollection Members => Array.AsReadOnly(_members);
18 |
19 | public IEnumerable MembersInstance => Members.Select(id => KCDatabase.Instance.Ships[id]);
20 |
21 |
22 | public override void LoadFromResponse(string apiname, dynamic data)
23 | {
24 | _members = (int[])data.api_ship;
25 | base.LoadFromResponse(apiname, (object)data);
26 | }
27 |
28 |
29 | public int ID => PresetID;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/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/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/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/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/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/preset_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 | public class preset_deck : APIBase
11 | {
12 | public override void OnResponseReceived(dynamic data)
13 | {
14 | KCDatabase.Instance.FleetPreset.LoadFromResponse(APIName, data);
15 |
16 | base.OnResponseReceived((object)data);
17 | }
18 |
19 | public override string APIName => "api_get_member/preset_deck";
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/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/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/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 | if (data.api_after_bauxite())
36 | {
37 | var db = KCDatabase.Instance;
38 | int consumed = db.Material.Bauxite - (int)data.api_after_bauxite;
39 | Utility.Logger.Add(1, $"基地航空隊の編成により、ボーキ {consumed} が消費されました。");
40 | }
41 |
42 | KCDatabase.Instance.Material.LoadFromResponse(APIName, data);
43 |
44 | base.OnResponseReceived((object)data);
45 | }
46 |
47 | public override string APIName => "api_req_air_corps/set_plane";
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/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}」へ補給を行いました。消費: 燃料x{2}, ボーキサイトx{3}",
46 | corps[_aircorpsID].MapAreaID, corps[_aircorpsID].Name, 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/ld_shooting.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 ld_shooting : APIBase
11 | {
12 | public override void OnResponseReceived(dynamic data)
13 | {
14 |
15 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
16 |
17 |
18 | base.OnResponseReceived((object)data);
19 | }
20 |
21 | public override string APIName => "api_req_combined_battle/ld_shooting";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/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_delete.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 | public class preset_delete : APIBase
11 | {
12 | public override void OnRequestReceived(Dictionary data)
13 | {
14 | KCDatabase.Instance.FleetPreset.LoadFromRequest(APIName, data);
15 |
16 | base.OnRequestReceived(data);
17 | }
18 |
19 | public override bool IsRequestSupported => true;
20 |
21 | public override string APIName => "api_req_hensei/preset_delete";
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ElectronicObserver/Observer/kcsapi/api_req_hensei/preset_register.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 | public class preset_register : APIBase
11 | {
12 | public override void OnResponseReceived(dynamic data)
13 | {
14 | KCDatabase.Instance.FleetPreset.LoadFromResponse(APIName, data);
15 |
16 | base.OnResponseReceived((object)data);
17 | }
18 |
19 | public override string APIName => "api_req_hensei/preset_register";
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/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_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 | Utility.Logger.Add(2, string.Format("{0} とケッコンカッコカリしました。おめでとうございます!", KCDatabase.Instance.Ships[(int)data.api_id].Name));
17 |
18 |
19 | var db = KCDatabase.Instance;
20 | int id = (int)data.api_id;
21 | var ship = db.Ships[id];
22 |
23 | if (ship != null)
24 | ship.LoadFromResponse(APIName, data);
25 | else
26 | {
27 | var a = new ShipData();
28 | a.LoadFromResponse(APIName, data);
29 | db.Ships.Add(a);
30 | }
31 |
32 | base.OnResponseReceived((object)data);
33 | }
34 |
35 | public override string APIName => "api_req_kaisou/marriage";
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/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 | Utility.Logger.Add(2, $"{ship.NameWithLevel} の補強装備増設改修が完了しました。");
23 | }
24 |
25 | base.OnRequestReceived(data);
26 | }
27 |
28 |
29 | public override bool IsRequestSupported => true;
30 | public override bool IsResponseSupported => false;
31 |
32 | public override string APIName => "api_req_kaisou/open_exslot";
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/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} Lv. {1} への改装が完了しました。", ship.MasterShip.RemodelAfterShip.NameWithClass, ship.Level));
23 |
24 | KCDatabase.Instance.Fleet.LoadFromRequest(APIName, data);
25 |
26 | base.OnRequestReceived(data);
27 | }
28 |
29 | public override string APIName => "api_req_kaisou/remodeling";
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/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 | public override bool IsResponseSupported => true;
14 |
15 |
16 | public override void OnResponseReceived(dynamic data)
17 | {
18 | int shipID = (int)data.api_ship_data.api_id;
19 |
20 | var ship = KCDatabase.Instance.Ships[shipID];
21 | if (ship != null)
22 | ship.LoadFromResponse(APIName, data.api_ship_data);
23 |
24 | base.OnResponseReceived((object)data);
25 | }
26 |
27 | public override string APIName => "api_req_kaisou/slot_exchange_index";
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/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/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/anchorage_repair.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 | public class anchorage_repair : APIBase
11 | {
12 | public override void OnResponseReceived(dynamic data)
13 | {
14 |
15 | var db = KCDatabase.Instance;
16 |
17 | foreach (var elem in data.api_ship_data)
18 | {
19 | int id = (int)elem.api_id;
20 |
21 | var ship = db.Ships[id];
22 | if (ship != null)
23 | ship.LoadFromResponse(APIName, elem);
24 | else
25 | {
26 | ship = new ShipData();
27 | ship.LoadFromResponse(APIName, elem);
28 | db.Ships.Add(ship);
29 | }
30 | }
31 |
32 | base.OnResponseReceived((object)data);
33 | }
34 |
35 | public override string APIName => "api_req_map/anchorage_repair";
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/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}」が「{2}-{3} {4}」へ出撃しました。", deckID, KCDatabase.Instance.Fleet[deckID].Name, maparea, mapinfo, KCDatabase.Instance.MapInfo[maparea * 10 + mapinfo].Name));
43 |
44 | base.OnRequestReceived(data);
45 | }
46 |
47 |
48 | public override string APIName => "api_req_map/start";
49 | }
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/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/itemuse.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 | public class itemuse : APIBase
11 | {
12 | public override void OnResponseReceived(dynamic data)
13 | {
14 | if (data != null && data.api_getitem())
15 | {
16 | foreach (var elem in data.api_getitem)
17 | {
18 | if (elem != null && elem.api_slotitem())
19 | {
20 | var eq = new EquipmentData();
21 | eq.LoadFromResponse(APIName, elem.api_slotitem);
22 | KCDatabase.Instance.Equipments.Add(eq);
23 | }
24 | }
25 | }
26 |
27 | base.OnResponseReceived((object)data);
28 | }
29 |
30 | public override bool IsRequestSupported => true;
31 | public override bool IsResponseSupported => true;
32 |
33 | public override string APIName => "api_req_member/itemuse";
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/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}」が遠征「{2}: {3}」へ出撃しました。", deckID, KCDatabase.Instance.Fleet[deckID].Name, destination, KCDatabase.Instance.Mission[destination].Name));
29 |
30 | base.OnRequestReceived(data);
31 | }
32 |
33 | public override void OnResponseReceived(dynamic data)
34 | {
35 |
36 | /*
37 | KCDatabase.Instance.Fleet.Fleets[FleetID].LoadFromResponse( APIName, data );
38 | */
39 |
40 | base.OnResponseReceived((object)data);
41 |
42 | }
43 |
44 |
45 | public override bool IsRequestSupported => true;
46 | public override bool IsResponseSupported => true;
47 |
48 | public override string APIName => "api_req_mission/start";
49 | }
50 |
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/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 => true;
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/ld_shooting.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 ld_shooting : APIBase
11 | {
12 |
13 | public override void OnResponseReceived(dynamic data)
14 | {
15 | KCDatabase.Instance.Battle.LoadFromResponse(APIName, data);
16 | base.OnResponseReceived((object)data);
17 | }
18 |
19 | public override string APIName => "api_req_sortie/ld_shooting";
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/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/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 | // このコードはツールによって生成されました。
4 | // ランタイム バージョン:4.0.30319.42000
5 | //
6 | // このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7 | // コードが再生成されるときに損失したりします。
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ElectronicObserver.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/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/CsvHelper.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.Storage
8 | {
9 | public static class CsvHelper
10 | {
11 | ///
12 | /// 雰囲気で CSV の行をパースします。
13 | ///
14 | public static IEnumerable ParseCsvLine(string line)
15 | {
16 | string[] splitted = line.Split(",".ToCharArray());
17 | for (int i = 0; i < splitted.Length; i++)
18 | {
19 | if (splitted[i].Length == 0 || splitted[i][0] != '"')
20 | yield return splitted[i];
21 | else
22 | {
23 | if (splitted[i].Last() == '"' && splitted[i].Count(c => c == '"') % 2 == 0)
24 | yield return splitted[i].Substring(1, splitted[i].Length - 2).Replace("\"\"", "\"");
25 | else
26 | splitted[i + 1] = splitted[i] + "," + splitted[i + 1];
27 | }
28 | }
29 | }
30 |
31 | ///
32 | /// 雰囲気で CSV の文字列セルをエスケープします。
33 | ///
34 | public static string EscapeCsvCell(string cell)
35 | {
36 | if (cell == null) return "null";
37 | var sb = new StringBuilder();
38 | sb.Append("\"").Append(cell.Replace("\"", "\"\"").Replace("\r\n", "
")).Append("\"");
39 | return sb.ToString();
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/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.DoubleClick += new System.EventHandler(this.ShipStatusLevel_DoubleClick);
41 | this.ResumeLayout(false);
42 |
43 | }
44 |
45 | #endregion
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/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/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.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/Plugins/DialogPlugin.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.Windows.Forms;
7 |
8 | namespace ElectronicObserver.Window.Plugins
9 | {
10 | public abstract class DialogPlugin : IPluginHost
11 | {
12 | public virtual PluginType PluginType => PluginType.Dialog;
13 |
14 | public abstract string MenuTitle { get; }
15 |
16 | public abstract Form GetToolWindow();
17 |
18 | public virtual PluginSettingControl GetSettings()
19 | {
20 | return null;
21 | }
22 |
23 | public virtual string Version => "1.0.0.0";
24 |
25 | public virtual bool RunService(FormMain main)
26 | {
27 | return false;
28 | }
29 |
30 | public virtual System.Drawing.Image MenuIcon => null;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Plugins/DockPlugin.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.Windows.Forms;
7 |
8 | namespace ElectronicObserver.Window.Plugins
9 | {
10 | public abstract class DockPlugin : IPluginHost
11 | {
12 | public virtual PluginType PluginType => PluginType.DockContent;
13 |
14 | public abstract string MenuTitle { get; }
15 |
16 | public virtual Form GetToolWindow()
17 | {
18 | return null;
19 | }
20 |
21 | public virtual PluginSettingControl GetSettings()
22 | {
23 | return null;
24 | }
25 |
26 | public virtual string Version => "1.0.0.0";
27 |
28 | public virtual bool RunService(FormMain main)
29 | {
30 | return false;
31 | }
32 |
33 | public virtual System.Drawing.Image MenuIcon => null;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Plugins/ElectronicPlugin.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Drawing;
6 | using System.Windows.Forms;
7 |
8 | namespace ElectronicObserver.Window.Plugins
9 | {
10 | [Serializable]
11 | public abstract class ElectronicPlugin
12 | {
13 | [Obsolete] public bool Active { get; set; }
14 |
15 | public virtual Image MenuIcon => null;
16 |
17 | public abstract string PluginName { get; }
18 |
19 | public virtual string Version => "1.0.0.0";
20 |
21 | public virtual bool StartPlugin(FormMain main)
22 | {
23 | return true;
24 | }
25 |
26 | public virtual bool StopPlugin()
27 | {
28 | return true;
29 | }
30 |
31 | public virtual PluginSettingControl GetSettings()
32 | {
33 | return null;
34 | }
35 | }
36 |
37 | public interface IDialogPlugin
38 | {
39 | string ToolMenuTitle { get; }
40 | Form GetToolWindow();
41 | }
42 |
43 | public interface IDockPlugin
44 | {
45 | string ViewMenuTitle { get; }
46 | Form GetDockWindow();
47 | }
48 |
49 | public interface IObserverPlugin
50 | {
51 | bool OnBeforeRequest(Fiddler.Session oSession);
52 |
53 | bool OnBeforeResponse(Fiddler.Session oSession);
54 |
55 | bool OnAfterSessionComplete(Fiddler.Session oSession);
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Plugins/IPluginHost.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 System.Windows.Forms;
8 |
9 | namespace ElectronicObserver.Window.Plugins
10 | {
11 | public enum PluginType
12 | {
13 | DockContent = 0,
14 | Dialog,
15 | Service,
16 | Observer,
17 |
18 | DockContentPlugin = 4,
19 | DialogPlugin = 8,
20 | ServicePlugin = 16,
21 | ObserverPlugin = 32
22 | }
23 |
24 | public interface IPluginHost
25 | {
26 | PluginType PluginType { get; }
27 |
28 | string MenuTitle { get; }
29 |
30 | Form GetToolWindow();
31 |
32 | PluginSettingControl GetSettings();
33 |
34 | bool RunService( FormMain main );
35 |
36 | string Version { get; }
37 |
38 | Image MenuIcon { get; }
39 | }
40 |
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Plugins/ObserverPlugin.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.Windows.Forms;
7 |
8 | namespace ElectronicObserver.Window.Plugins
9 | {
10 | public abstract class ObserverPlugin : IPluginHost
11 | {
12 | public virtual PluginType PluginType => PluginType.Observer;
13 |
14 | public abstract string MenuTitle { get; }
15 |
16 | public virtual Form GetToolWindow()
17 | {
18 | return null;
19 | }
20 |
21 | public virtual PluginSettingControl GetSettings()
22 | {
23 | return null;
24 | }
25 |
26 | public virtual string Version => "1.0.0.0";
27 |
28 | public virtual bool RunService(FormMain main)
29 | {
30 | return false;
31 | }
32 |
33 | public virtual System.Drawing.Image MenuIcon => null;
34 |
35 | public abstract bool OnBeforeRequest(Fiddler.Session oSession);
36 |
37 | public abstract bool OnBeforeResponse(Fiddler.Session oSession);
38 |
39 | public abstract bool OnAfterSessionComplete(Fiddler.Session oSession);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Plugins/PluginSettingControl.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.Windows.Forms;
7 |
8 | namespace ElectronicObserver.Window.Plugins
9 | {
10 | public class PluginSettingControl : UserControl
11 | {
12 | public virtual bool Save()
13 | {
14 | throw new NotImplementedException();
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ElectronicObserver/Window/Plugins/ServerPlugin.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.Windows.Forms;
7 |
8 | namespace ElectronicObserver.Window.Plugins
9 | {
10 | public abstract class ServerPlugin : IPluginHost
11 | {
12 | public virtual PluginType PluginType => PluginType.Service;
13 |
14 | public abstract string MenuTitle { get; }
15 |
16 | public virtual Form GetToolWindow()
17 | {
18 | return null;
19 | }
20 |
21 | public virtual PluginSettingControl GetSettings()
22 | {
23 | return null;
24 | }
25 |
26 | public virtual string Version => "1.0.0.0";
27 |
28 | public abstract bool RunService(FormMain main);
29 |
30 | public virtual System.Drawing.Image MenuIcon => null;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/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 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/Licenses/CefSharp.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/Licenses/CefSharp.txt
--------------------------------------------------------------------------------
/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/DynaJson.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2019 Kazuhiro Fujieda
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.
--------------------------------------------------------------------------------
/Licenses/FiddlerCore.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CAWAS/ElectronicObserverExtended/7bd0bb079b33bda33f5561d9725cd88a1b9c54ac/Licenses/FiddlerCore.txt
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/packages/repositories.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------