Skip to content

Instantly share code, notes, and snippets.

@andanteyk
Last active February 6, 2018 01:50
Show Gist options
  • Save andanteyk/b46d8877ff1000132e389babac6e8057 to your computer and use it in GitHub Desktop.
Save andanteyk/b46d8877ff1000132e389babac6e8057 to your computer and use it in GitHub Desktop.

2018/02/05 update 対空砲火表示について

対空砲火ID

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;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment