     continue if i > 6
     updateInjure enemyFleet.ship[i - 1], damage
 
-TorpedoSalvo = (mainFleet, enemyFleet, raigeki) ->
+# TODO: our combined fleet
+TorpedoSalvo = (mainFleet, enemyFleet, enemyEscort, raigeki) ->
   # 雷撃ターゲット
   for target, i in raigeki.api_frai
     continue if target <= 0
-    mainFleet.ship[i - 1].hp.damage += updateInjure(enemyFleet.ship[target - 1], raigeki.api_fydam[i])
+    if target <= 6
+      mainFleet.ship[i - 1].hp.damage += updateInjure(enemyFleet.ship[target - 1], raigeki.api_fydam[i])
+    else
+      mainFleet.ship[i - 1].hp.damage += updateInjure(enemyEscort.ship[target - 7], raigeki.api_fydam[i])
   # 雷撃ターゲット
   for target, i in raigeki.api_erai
     continue if target <= 0
-    enemyFleet.ship[i - 1].hp.damage += updateInjure(mainFleet.ship[target - 1], raigeki.api_eydam[i])
-
-Shelling = (mainFleet, enemyFleet, hougeki) ->
-  for damageFrom, i in hougeki.api_at_list
-    continue if damageFrom == -1
+    if i <= 6
+      enemyFleet.ship[i - 1].hp.damage += updateInjure(mainFleet.ship[target - 1], raigeki.api_eydam[i])
+    else
+      enemyEscort.ship[i - 7].hp.damage += updateInjure(mainFleet.ship[target - 1], raigeki.api_eydam[i])
+
+Shelling = (mainFleet, enemyFleet, enemyEscort, hougeki) ->
+  for at, i in hougeki.api_at_list
+    continue if at == -1
+    at -= 1                             # Attacker
+    df = hougeki.api_df_list[i][0] - 1  # Defender
+    if hougeki.api_at_eflag?
+      fromEnemy = hougeki.api_at_eflag[i] == 1
+    else
+      fromEnemy = df < 6
+      if at >= 6 then at -= 6
+      if df >= 6 then df -= 6
     for damage, j in hougeki.api_damage[i]
-      target = hougeki.api_df_list[i][0]
-      if target < 7
-        enemyFleet.ship[damageFrom - 7].hp.damage += updateInjure(mainFleet.ship[target - 1], damage)
+      if fromEnemy
+        if at < 6
+          enemyFleet.ship[at].hp.damage += updateInjure(mainFleet.ship[df], damage)
+        else
+          enemyEscort.ship[at - 6].hp.damage += updateInjure(mainFleet.ship[df], damage)
       else
-        mainFleet.ship[damageFrom - 1].hp.damage += updateInjure(enemyFleet.ship[target - 7], damage)
+        if df < 6
+          mainFleet.ship[at].hp.damage += updateInjure(enemyFleet.ship[df], damage)
+        else
+          mainFleet.ship[at].hp.damage += updateInjure(enemyEscort.ship[df - 6], damage)
 
 getShipInfo = (mainFleet, deckId) ->
   {_ships} = window

      enableProphetDamaged: config.get 'plugin.prophet.notify.damaged', true
      prophetCondShow: config.get 'plugin.prophet.show.cond', true
      combinedFlag: 0
      compactMode: false
      destructionBattleFlag: false
      # Compass

          # Destruction battle
          if body.api_destruction_battle?
            destructionBattleFlag = true
            getEnemyInfo enemyFleet, enemyEscort, body.api_destruction_battle, false
            simulateDestructionBattle airBaseFleet, enemyFleet, body.api_destruction_battle, planeCount
          # Compass
          nowSpot = nextSpot
          nextSpot = body.api_no
          nextSpotKind = getCellInfo body.api_event_id, body.api_event_kind, body.api_bosscell_no, body.api_no
        # Normal battle
        when '/kcsapi/api_req_sortie/airbattle', '/kcsapi/api_req_battle_midnight/sp_midnight', '/kcsapi/api_req_sortie/battle', '/kcsapi/api_req_battle_midnight/battle', '/kcsapi/api_req_sortie/ld_airbattle', '/kcsapi/api_req_combined_battle/ec_battle', '/kcsapi/api_req_combined_battle/ec_midnight_battle'
          shouldRender = true
          # The damage in day battle
          if path not in ['/kcsapi/api_req_battle_midnight/battle', '/kcsapi/api_req_combined_battle/ec_midnight_battle']
            getEnemyInfo enemyFleet, enemyEscort, body, false
          if path in ['/kcsapi/api_req_combined_battle/ec_battle', '/kcsapi/api_req_combined_battle/ec_midnight_battle']
            enemyCombined = 1
          else
            enemyCombined = 0
          for i in [0..5]
            saveDayInjure mainFleet.ship[i]
            saveDayInjure escortFleet.ship[i]
            saveDayInjure enemyFleet.ship[i]
            saveDayInjure enemyEscort.ship[i]
          result = simulateBattle mainFleet, escortFleet, combinedFlag, enemyFleet, enemyEscort, enemyCombined, body, planeCount
          for i in [0..5]
            loadDayInjure mainFleet.ship[i]
            loadDayInjure escortFleet.ship[i]
            loadDayInjure enemyFleet.ship[i]
            loadDayInjure enemyEscort.ship[i]
        # Practice battle
        when '/kcsapi/api_req_practice/battle', '/kcsapi/api_req_practice/midnight_battle'
          shouldRender = true
