Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
andanteyk committed Apr 29, 2015
2 parents 680c4ad + 137dae2 commit 58de16a
Show file tree
Hide file tree
Showing 15 changed files with 127 additions and 61 deletions.
12 changes: 2 additions & 10 deletions Browser/FormBrowser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -397,20 +397,12 @@ private void SaveScreenShot( string path, System.Drawing.Imaging.ImageFormat for
}

try {

var document = wb.Document.DomDocument as HTMLDocument;
if ( document == null ) {
throw new InvalidOperationException( "Document が取得できませんでした。" );
}


IViewObject viewobj = null;
//int width = 0, height = 0;

if ( wb.Document.Url.AbsolutePath.Contains( ".swf?" ) ) {

if ( document.url.Contains( ".swf?" ) ) {

viewobj = document.getElementsByTagName( "embed" ).item( 0, 0 ) as IViewObject;
viewobj = wb.Document.GetElementsByTagName( "embed" )[0].DomElement as IViewObject;
if ( viewobj == null ) {
throw new InvalidOperationException( "embed 要素の取得に失敗しました。" );
}
Expand Down
Binary file modified ElectronicObserver/Assets.zip
Binary file not shown.
Binary file added ElectronicObserver/Assets/Equipment/FlyingBoat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions ElectronicObserver/Data/Battle/BattleManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public enum BattleModes {
/// 戦闘種別
/// </summary>
public BattleModes BattleMode { get; private set; }



public override void LoadFromResponse( string apiname, dynamic data ) {
Expand Down Expand Up @@ -209,7 +209,7 @@ private void BattleFinished() {

if ( dropID == -1 && (
KCDatabase.Instance.Admiral.MaxShipCount - KCDatabase.Instance.Ships.Count <= 0 ||
KCDatabase.Instance.Admiral.MaxEquipmentCount - KCDatabase.Instance.Equipments.Count <= 3 ) ) {
KCDatabase.Instance.Admiral.MaxEquipmentCount - KCDatabase.Instance.Equipments.Count <= 0 ) ) {
dropID = -2;
}

Expand Down
13 changes: 13 additions & 0 deletions ElectronicObserver/Data/CompassData.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Expand Down Expand Up @@ -193,6 +194,18 @@ public bool WhirlpoolRadarFlag {
}
}

/// <summary>
/// 能動分岐の選択肢
/// </summary>
public ReadOnlyCollection<int> RouteChoices {
get {
if ( RawData.api_select_route() ) {
return Array.AsReadOnly( (int[])RawData.api_select_route.api_select_cells );
} else {
return null;
}
}
}
}


Expand Down
13 changes: 7 additions & 6 deletions ElectronicObserver/Data/FleetManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,13 @@ public override void LoadFromRequest( string apiname, Dictionary<string, string>

} break;

case "api_req_map/start":
if ( CombinedFlag != 0 ) {
Fleets[2].IsInSortie = true;
}
Fleets[int.Parse( data["api_deck_id"] )].IsInSortie = true;
goto default;
case "api_req_map/start": {
int fleetID = int.Parse( data["api_deck_id"] );
if ( CombinedFlag != 0 && fleetID == 1 ) {
Fleets[2].IsInSortie = true;
}
Fleets[fleetID].IsInSortie = true;
} goto default;

default:
foreach ( int i in Fleets.Keys )
Expand Down
5 changes: 5 additions & 0 deletions ElectronicObserver/Other/Information/apilist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ api_start2 :艦娘・装備固有データその他
14=高射装置
15=対地装備
16=水上艦要員
17=大型飛行艇

[1]:図鑑表示
1=Primary Armament
Expand Down Expand Up @@ -147,6 +148,7 @@ api_start2 :艦娘・装備固有データその他
30=Damage Control
31=Engine Upgrades
32=Depth Charge
33=Flying Boat

1=主砲
2=副砲
Expand Down Expand Up @@ -177,6 +179,7 @@ api_start2 :艦娘・装備固有データその他
30=応急修理要員
31=機関部強化
32=爆雷
33=大型飛行艇

[2]:カテゴリ
(api_mst_slotitem_equiptype を参照)
Expand Down Expand Up @@ -220,6 +223,7 @@ api_start2 :艦娘・装備固有データその他
38=大口径主砲(II)
39=水上艦要員
40=大型ソナー
41=大型飛行艇

[3]:アイコンID
1=小口径主砲
Expand Down Expand Up @@ -254,6 +258,7 @@ api_start2 :艦娘・装備固有データその他
30=高射装置
31=対地装備
32=水上艦要員
33=大型飛行艇

api_taik :耐久(0)
api_souk :装甲
Expand Down
40 changes: 28 additions & 12 deletions ElectronicObserver/Other/Information/kcmemo.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,9 +112,11 @@ R' = G' = B' = ( R + G + B ) / 3
- 応急修理女神 : HP = HPMax ( +燃料・弾薬全回復 )

#### 保有数による出撃時の制限
- 艦船がドロップしない条件
艦船空き == 0 or 装備空き <= 2
- イベント海域出撃不可条件
なお、「装備空き」は補正後の値(艦これクライアントの表示値)に従う。

* 艦船がドロップしない条件
艦船空き == 0 or 装備空き <= 3
* イベント海域出撃不可条件
艦船空き < 5 or 装備空き < 20

#### 攻撃種別
Expand Down Expand Up @@ -328,11 +330,18 @@ C敗北判定の 敵損害率 >= 50 は試験実装。
* E-4 : 1925 (旗艦HP350; 最低6回撃破)
* E-5 : 3000 (旗艦HP500; 最低6回撃破)

#### '15 春イベントの海域ゲージHP
全て甲作戦のもの。

* E-1 : 440 (旗艦HP88; 最低5回撃破)
* E-2 : 1620 (旗艦HP270; 最低6回撃破)

#### 海域HPゲージ
わずかでもダメージを与えないと正常な値にならない。
(ex. 初期は300/300でも、30ダメージ与えると2370/2400になる、など)
と思ったが、最大HPが1000以上だと正しく取得できる?
'15冬イベ以前は初期値300、'15冬イベは9999
'15冬イベ以前は初期値300、'15冬イベ以降は9999
'15春イベでは難易度を選択した時点で決定される?

#### 猫った時のAPIレスポンス
練習巡洋艦旗艦で開発すると落ちる不具合を利用したもの。(2015/02/08)
Expand All @@ -341,14 +350,18 @@ C敗北判定の 敵損害率 >= 50 は試験実装。
* `api_result_msg` : "申し訳ありませんがブラウザを再起動し再ログインしてください。"

#### 特殊な装備判定
Bismarck dreiに対する魚雷装備・試製51cm連装砲の装備判定は、改装UIシステムの中で*例外的に決め打ち*されている。
Bismarck dreiに対する魚雷装備・試製51cm連装砲といったものの装備判定は、改装UIシステムの中で*例外的に決め打ち*されている。
具体的には、

* Bismarck drei : 魚雷
* 大和(改), 武蔵(改), 長門改, 陸奥改 : 大口径主砲(II)
|対象艦|装備可能|装備不可能|
|:--|:--|:--|
|Bismarck drei|魚雷||
|大和(改), 武蔵(改), 長門改, 陸奥改|大口径主砲(II)||
|秋津洲|大型飛行艇|特殊潜航艇・上陸用舟艇・対地装備|
|秋津洲改|大型飛行艇・ソナー・航空要員|特殊潜航艇・上陸用舟艇|

が装備可能になるようになっている
(艦船IDが装備可能リストに含まれていた場合は*マスターデータの内容にかかわらず*装備可能にする、というコードになっている)
となっている
(艦船IDが特殊装備リストに含まれていた場合は*マスターデータの内容にかかわらず*装備可能・不可能にする、というコードになっている)
つまりある意味では不正な装備ともいえる(?)
~~そのために新艦種を追加するのも面倒なのは分かるが、ちょっとこれはひどい気がする~~

Expand Down Expand Up @@ -425,20 +438,22 @@ Bismarck dreiに対する魚雷装備・試製51cm連装砲の装備判定は、
オンメンテ前のテーブルで確保してある「なし」領域を埋めるように実装される。
そのため、メンテ前の情報を保持した蔵が新規実装艦を持つ艦隊と演習しても落ちることはない。

但しその際、当然ながらパラメータ及び処理は「なし」のデータに基づくため、以下のような現象が発生する。
但しその際、当然ながら(表示上の)パラメータ及び処理は「なし」のデータに基づくため、以下のような現象が発生する。

* 艦種は駆逐艦、艦名は「なし」
* グラフィック自体は新規艦のものが表示される
* 演習開始時のカットインでグラフィックが左上に大きくずれる
* 速力が0のため(もちろん表示上のみだが)陸上基地扱い。当然バナーも「混乱」「損壊」といった表示になる

当然ではあるが、戦闘自体はサーバ側の演算によるので全く問題はない(潜水艦が駆逐艦扱いになって砲撃する、などといったことはない)。

具体的な「なし」のパラメータについては以下のとおりである。ほぼ0で埋められている。

|パラメータ||
|:--|:--|
|図鑑番号|0|
|艦名|なし|
|読み|なし|
|艦名|"なし"|
|読み|"なし"|
|艦種|駆逐艦|
|改装|不可|
|耐久|0(戦闘時に与えられる)|
Expand All @@ -458,3 +473,4 @@ Bismarck dreiに対する魚雷装備・試製51cm連装砲の装備判定は、

また、新規実装ボイスを持つ艦は、母港については再読み込みしなくても新しいボイスが再生される。
但し時報・放置ボイスまで適用されるかは未確認。データ上は未実装扱いのはずなので再生されない?

2 changes: 2 additions & 0 deletions ElectronicObserver/Resource/ResourceManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ public enum EquipmentContent {
AADirector,
RocketArtillery,
PicketCrew,
FlyingBoat,
Locked,
Unknown,
}
Expand Down Expand Up @@ -332,6 +333,7 @@ private void LoadFromArchive( string path ) {
LoadImageFromArchive( Equipments, archive, mstpath + @"Equipment/AADirector.png", "Equipment_AADirector" );
LoadImageFromArchive( Equipments, archive, mstpath + @"Equipment/RocketArtillery.png", "Equipment_RocketArtillery" );
LoadImageFromArchive( Equipments, archive, mstpath + @"Equipment/PicketCrew.png", "Equipment_PicketCrew" );
LoadImageFromArchive( Equipments, archive, mstpath + @"Equipment/FlyingBoat.png", "Equipment_FlyingBoat" );
LoadImageFromArchive( Equipments, archive, mstpath + @"Equipment/Locked.png", "Equipment_Locked" );
LoadImageFromArchive( Equipments, archive, mstpath + @"Equipment/Unknown.png", "Equipment_Unknown" );

Expand Down
33 changes: 33 additions & 0 deletions ElectronicObserver/Utility/Data/Calculator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,39 @@ public static int GetAACutinKind( int shipID, int[] slot ) {
return 0;
}


/// <summary>
/// 装備が艦載機であるかを取得します。
/// </summary>
/// <param name="equipmentID">装備ID。</param>
/// <param name="containsRecon">偵察機(非攻撃機)を含めるか。</param>
public static bool IsAircraft( int equipmentID, bool containsRecon ) {

var eq = KCDatabase.Instance.MasterEquipments[equipmentID];

if ( eq == null ) return false;

switch ( eq.CategoryType ) {
case 6: //艦上戦闘機
case 7: //艦上爆撃機
case 8: //艦上攻撃機
case 11: //水上爆撃機
case 25: //オートジャイロ
case 26: //対潜哨戒機
return true;

case 9: //艦上偵察機
case 10: //水上偵察機
case 41: //大型飛行艇
return containsRecon;

default:
return false;
}

}


}


Expand Down
6 changes: 3 additions & 3 deletions ElectronicObserver/Utility/SoftwareInformation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public static string SoftwareNameEnglish {
/// </summary>
public static string VersionJapanese {
get {
return SoftwareNameJapanese + "一二型改";
return SoftwareNameJapanese + "一二型改二";
}
}

Expand All @@ -44,7 +44,7 @@ public static string VersionJapanese {
/// </summary>
public static string VersionEnglish {
get {
return "1.2.1";
return "1.2.2";
}
}

Expand All @@ -54,7 +54,7 @@ public static string VersionEnglish {
/// </summary>
public static DateTime UpdateTime {
get {
return DateTimeHelper.CSVStringToTime( "2015/04/27 22:00:00" );
return DateTimeHelper.CSVStringToTime( "2015/04/29 20:00:00" );
}
}

Expand Down
39 changes: 15 additions & 24 deletions ElectronicObserver/Window/Control/ShipStatusEquipment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using ElectronicObserver.Data;
using System.Drawing.Design;
using ElectronicObserver.Resource;
using ElectronicObserver.Utility.Data;

namespace ElectronicObserver.Window.Control {

Expand Down Expand Up @@ -354,31 +355,21 @@ private void ShipStatusEquipment_Paint( object sender, PaintEventArgs e ) {

if ( slot.EquipmentID != -1 ) {

switch ( slot.Equipment.CategoryType ) {
case 6: //艦戦
case 7: //艦爆
case 8: //艦攻
case 9: //艦偵
case 10: //水偵
case 11: //水爆
case 25: //オートジャイロ
case 26: //対潜哨戒機

if ( slot.AircraftMax == 0 ) {
aircraftColor = AircraftColorDisabled;
} else if ( slot.AircraftCurrent == 0 ) {
aircraftColor = AircraftColorLost;
} else if ( slot.AircraftCurrent < slot.AircraftMax ) {
aircraftColor = AircraftColorDamaged;
} else {
aircraftColor = AircraftColorFull;
}
break;
if ( Calculator.IsAircraft( slot.EquipmentID, true ) ) {

if ( slot.AircraftMax == 0 ) {
aircraftColor = AircraftColorDisabled;
} else if ( slot.AircraftCurrent == 0 ) {
aircraftColor = AircraftColorLost;
} else if ( slot.AircraftCurrent < slot.AircraftMax ) {
aircraftColor = AircraftColorDamaged;
} else {
aircraftColor = AircraftColorFull;
}

default:
if ( slot.AircraftMax == 0 )
drawAircraftSlot = false;
break;
} else {
if ( slot.AircraftMax == 0 )
drawAircraftSlot = false;
}

} else if ( slot.AircraftMax == 0 ) {
Expand Down
17 changes: 15 additions & 2 deletions ElectronicObserver/Window/FormCompass.cs
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,21 @@ private void Updated( string apiname, dynamic data ) {
break;

case 6: //気のせいだった
TextEventDetail.Text = "";
switch ( compass.EventKind ) {

case 0: //気のせいだった
default:
TextEventDetail.Text = "";
break;
case 1: //敵影を見ず
eventkind = "敵影を見ず";
TextEventDetail.Text = "";
break;
case 2: //能動分岐
eventkind = "能動分岐";
TextEventDetail.Text = string.Join( "/", compass.RouteChoices );
break;
}
break;

case 7: //航空戦(連合艦隊)
Expand All @@ -480,7 +494,6 @@ private void Updated( string apiname, dynamic data ) {


default:
eventkind += "不明";
TextEventDetail.Text = "";
break;

Expand Down
2 changes: 1 addition & 1 deletion ElectronicObserver/Window/FormHeadquarters.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ void Updated( string apiname, dynamic data ) {
ShipCount.BackColor = Color.Transparent;

EquipmentCount.Text = string.Format( "{0}/{1}", db.Equipments.Count, db.Admiral.MaxEquipmentCount );
if ( db.Equipments.Count > db.Admiral.MaxEquipmentCount - 20 )
if ( db.Equipments.Count > db.Admiral.MaxEquipmentCount + 3 - 20 )
EquipmentCount.BackColor = Color.LightCoral;
else
EquipmentCount.BackColor = Color.Transparent;
Expand Down
Loading

0 comments on commit 58de16a

Please sign in to comment.