       continue if damage <= 0
       afterHp[i - 1] -= damage
   afterHp
+combinedOpenAttack = (combinedAfterHp, afterHp, openingAttack) ->
+  if openingAttack.api_edam?
+    for damage, i in openingAttack.api_edam
+      damage = Math.floor(damage)
+      continue if damage <= 0
+      afterHp[i + 5] -= damage
+  if openingAttack.api_fdam?
+    for damage, i in openingAttack.api_fdam
+      damage = Math.floor(damage)
+      continue if damage <= 0
+      combinedAfterHp[i - 1] -= damage
+  [combinedAfterHp, afterHp]
 
 hougekiAttack = (afterHp, hougeki) ->
   for damageFrom, i in hougeki.api_at_list

          result = body.api_win_rank
        when '/kcsapi/api_port/port'
          flag = true
          _deck = window._decks[deckId]
          {_ships} = window
          enemyFormation = 0
          shipLv[i] = -1 for i in [0..11]
          for shipId, i in _deck.api_ship
            continue if shipId == -1
            shipName[i] = _ships[shipId].api_name
            shipLv[i] = _ships[shipId].api_lv
            maxHp[i] = _ships[shipId].api_maxhp
            nowHp[i] = _ships[shipId].api_nowhp
            damageHp[i] = 0
            shipCond[i] = _ships[shipId].api_cond
          shipLv[i] = -1 for i in [6..11]
      return unless flag
      @setState

            enemyTyku = jsonContent.totalTyku
          if body.api_kouku.api_stage3?
            afterHp = koukuAttack afterHp, body.api_kouku.api_stage3
          if body.api_kouku? && body.api_kouku.api_stage3_combined?
            combinedAfterHp = koukuAttack combinedAfterHp, body.api_kouku.api_stage3_combined
          if body.api_opening_atack?
            afterHp = openAttack afterHp, body.api_opening_atack
          if body.api_hougeki1?
