       SupportFire enemyFleet, body.api_support_info.api_damage
   if body.api_air_base_attack?
     for airBase in body.api_air_base_attack
-      if airBase.api_stage3?.api_edam?
-        SupportFire enemyFleet, airBase.api_stage3.api_edam
+      if airBase.api_stage3?
+        AerialCombat mainFleet, enemyFleet, airBase.api_stage3
+      if airBase.api_stage3_combined?
+        AerialCombat escortFleet, enemyEscort, airBase.api_stage3_combined
   # Opening taisen
   if body.api_opening_taisen?
     if combinedFlag > 0
-      Shelling escortFleet, enemyFleet, body.api_opening_taisen
-    else
-      Shelling mainFleet, enemyFleet, body.api_opening_taisen
+      Shelling escortFleet, enemyFleet, enemyEscort, body.api_opening_taisen
+    else
+      Shelling mainFleet, enemyFleet, enemyEscort, body.api_opening_taisen
   # Opening battle
   if body.api_opening_atack?
     if combinedFlag > 0
-      TorpedoSalvo escortFleet, enemyFleet, body.api_opening_atack
-    else
-      TorpedoSalvo mainFleet, enemyFleet, body.api_opening_atack
+      TorpedoSalvo escortFleet, enemyFleet, enemyEscort, body.api_opening_atack
+    else
+      TorpedoSalvo mainFleet, enemyFleet, enemyEscort, body.api_opening_atack
   # Night battle
   if body.api_hougeki?
-    if combinedFlag > 0
-      Shelling escortFleet, enemyFleet, body.api_hougeki
-    else
-      Shelling mainFleet, enemyFleet, body.api_hougeki
+     if enemyCombined > 0
+      if body.api_active_deck[1] == 1
+        Shelling escortFleet, enemyFleet, null, body.api_hougeki
+      else
+        Shelling escortFleet, enemyEscort, null, body.api_hougeki
+     else
+      if combinedFlag > 0
+        Shelling escortFleet, enemyFleet, enemyEscort, body.api_hougeki
+      else
+        Shelling mainFleet, enemyFleet, enemyEscort, body.api_hougeki
   # First hougeki battle
   if body.api_hougeki1?
     if combinedFlag > 0 && combinedFlag != 2
-      Shelling escortFleet, enemyFleet, body.api_hougeki1
-    else
-      Shelling mainFleet, enemyFleet, body.api_hougeki1
+      Shelling escortFleet, enemyFleet, enemyEscort, body.api_hougeki1
+    else
+      Shelling mainFleet, enemyFleet, enemyEscort, body.api_hougeki1
   # Second hougeki battle
   if body.api_hougeki2?
-    Shelling mainFleet, enemyFleet, body.api_hougeki2
+    Shelling mainFleet, enemyFleet, enemyEscort, body.api_hougeki2
   # Combined hougeki battle
   if body.api_hougeki3?
     if combinedFlag == 2
-      Shelling escortFleet, enemyFleet, body.api_hougeki3
-    else
-      Shelling mainFleet, enemyFleet, body.api_hougeki3
+      Shelling escortFleet, enemyFleet, enemyEscort, body.api_hougeki3
+    else
+      Shelling mainFleet, enemyFleet, enemyEscort, body.api_hougeki3
   # Raigeki battle
   if body.api_raigeki?
     if combinedFlag > 0
-      TorpedoSalvo escortFleet, enemyFleet, body.api_raigeki
-    else
-      TorpedoSalvo mainFleet, enemyFleet, body.api_raigeki
+      TorpedoSalvo escortFleet, enemyFleet, enemyEscort, body.api_raigeki
+    else
+      TorpedoSalvo mainFleet, enemyFleet, enemyEscort, body.api_raigeki
   getResult mainFleet, enemyFleet, escortFleet
 
 escapeId = towId = -1

            getShipInfo escortFleet, 1
          enemyFormation = enemyIntercept = 0
          enemyName = __ 'Enemy Vessel'
          result = null
          getShip = null
          getItem = null

    planeCount.enemy[0] = body.api_e_count - body.api_e_lostcount
    planeCount.enemy[1] = body.api_e_count

simulateBattle = (mainFleet, escortFleet, combinedFlag, enemyFleet, enemyEscort, enemyCombined, body, planeCount) ->
  # First air battle
  if body.api_kouku?
    if body.api_kouku.api_stage1?
