battle.consts.AntiAircraftEffectType
なし = -1
通常 = 0
高角砲 = 1
噴進砲 = 2
噴進砲改二 = 3
三式弾 = 4
三式弾 + 噴進砲改二 = 5
battle.phase.day.PhaseKouku
対空艦数 = 0;
((存在しない or 退避中)の艦を除く全味方艦に対して) {
対空砲火ID = 対空砲火ID取得(対象艦); // 後述
if (対空砲火ID != -1) {
対空艦数++;
if(対象艦.航空戦での被ダメージ <= 0 && 対空砲火ID == (3, 5)) // 噴進砲改二カットインの時
対空噴進弾幕表示();
else if(対空砲火ID == (4, 5)) // 三式弾カットインの時
三式弾炸裂表示();
対空砲火表示();
}
}
if (対空艦数 == 0)
旗艦.対空砲火表示();
battle.util.SlotitemUtil.hasAntiAircraftAbility
int 対空砲火ID取得(対象艦) {
if (対象艦 == null) return -1;
if (対象艦.現在HP <= 0) return -1;
if (対象艦.退避中) return -1;
艦種フラグ = 対象艦.艦種 == (6, 7, 10, 11, 16, 18); // 航巡, 軽母, 航戦, 空母, 水母, 装母
装備 = 対象艦.拡張スロットも含む装備リスト;
if (装備.Contains(eq => eq.Category == 18)) { // 対空強化弾(≒三式弾)
if (艦種フラグ && 装備.Contains(eq => eq.ID == 274)) // 12cm30連装噴進砲改二
return 5;
else
return 4;
}
if (艦種フラグ && 装備.Contains(eq => eq.ID == 274)) // 12cm30連装噴進砲改二
return 3;
if (装備.Contains(eq => eq.ID == 51)) // 12cm30連装噴進砲
return 2;
if (装備.Contains(eq => eq.Icon == 16)) // 高角砲
return 1;
if (装備.Contains(eq => eq.Category == 21)) // 対空機銃
return 0;
if (装備.Contains(eq => eq.Icon == 11)) { // 電探
if (装備.Contains(eq => eq.Category == 11 && eq.AntiAir > 0) // 対空 > 0 の水上爆撃機 ...?
return 0;
}
return -1;
}