         afterHp = Object.clone nowHp
         if body.api_hougeki?
           afterHp = hougekiAttack afterHp, body.api_hougeki
-        [dangerFlag, dangerInfo] = judgeDanger afterHp, maxHp, @_deck, @_ships
+        [dangerFlag, dangerInfo] = judgeDanger afterHp, maxHp, @_deckShip, @_ships
         @dangerousShip = dangerInfo if dangerFlag
         @notDemageFlag = @notDemageFlag and judgeFace nowHp, afterHp
+      when "/kcsapi/api_req_combined_battle/airbattle"
+        [maxHp, nowHp] = getHp body.api_maxhps, body.api_nowhps
+        [combinedMaxHp, combinedNowHp] = getHp body.api_maxhps_combined, body.api_nowhps_combined
+        afterHp = Object.clone nowHp
+        combinedAfterHp = Object.clone combinedNowHp
+        if body.api_kouku? && 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_kouku2? && body.api_kouku2.api_stage3?
+          afterHp = koukuAttack afterHp, body.api_kouku2.api_stage3
+        if body.api_kouku2? && body.api_kouku2.api_stage3_combined?
+          combinedAfterHp = koukuAttack combinedAfterHp, body.api_kouku2.api_stage3_combined
+        [dangerFlag, dangerInfo] = judgeDanger afterHp.concat(combinedAfterHp), maxHp.concat(combinedMaxHp), @_deckShip, @_ships
+        @dangerousShip = dangerInfo if dangerFlag
+        @notDemageFlag = @notDemageFlag and judgeFace nowHp.concat(combinedNowHp), afterHp.concat(combinedAfterHp)
+      when "/kcsapi/api_req_combined_battle/battle"
+        [maxHp, nowHp] = getHp body.api_maxhps, body.api_nowhps
+        [combinedMaxHp, combinedNowHp] = getHp body.api_maxhps_combined, body.api_nowhps_combined
+        afterHp = Object.clone nowHp
+        combinedAfterHp = Object.clone combinedNowHp
+        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?
+          [combinedAfterHp, afterHp] = combinedOpenAttack combinedAfterHp, afterHp, body.api_opening_atack
+        if body.api_hougeki1?
+          [combinedAfterHp, afterHp] = combinedHougekiAttack combinedAfterHp, afterHp, body.api_hougeki1
+        if body.api_hougeki2?
+          afterHp = hougekiAttack afterHp, body.api_hougeki2
+        if body.api_hougeki3?
+          afterHp = hougekiAttack afterHp, body.api_hougeki3
+        if body.api_raigeki?
+          [combinedAfterHp, afterHp] = combinedRaigekiAttack combinedAfterHp, afterHp, body.api_raigeki
+        [dangerFlag, dangerInfo] = judgeDanger afterHp.concat(combinedAfterHp), maxHp.concat(combinedMaxHp), @_deckShip, @_ships
+        @dangerousShip = dangerInfo if dangerFlag
+        @notDemageFlag = @notDemageFlag and judgeFace nowHp.concat(combinedNowHp), afterHp.concat(combinedAfterHp)
+      when "/kcsapi/api_req_combined_battle/midnight_battle"
+        [maxHp, nowHp] = getHp body.api_maxhps, body.api_nowhps
+        [combinedMaxHp, combinedNowHp] = getHp body.api_maxhps_combined, body.api_nowhps_combined
+        afterHp = Object.clone nowHp
+        combinedAfterHp = Object.clone combinedNowHp
+        if body.api_hougeki?
+          [combinedAfterHp, afterHp] = combinedHougekiAttack combinedAfterHp, afterHp, body.api_hougeki
+        [dangerFlag, dangerInfo] = judgeDanger afterHp.concat(combinedAfterHp), maxHp.concat(combinedMaxHp), @_deckShip, @_ships
+        @dangerousShip = dangerInfo if dangerFlag
+        @notDemageFlag = @notDemageFlag and judgeFace nowHp.concat(combinedNowHp), afterHp.concat(combinedAfterHp)
+      when "/kcsapi/api_req_combined_battle/sp_midnight"
+        for tmp, i in shipLv
+          shipLv[i] = -1
+        for tmp, i in combinedLv
+          combinedLv[i] = -1
+        {_decks} = window
+        flag = true
+        getShip = null
+        [shipName, shipLv] = getInfo shipName, shipLv, _decks[0].api_ship, body.api_ship_ke, body.api_ship_lv, 0
+        [combinedName, combinedLv] = getCombinedInfo combinedName, combinedLv, _decks[1].api_ship
+        [maxHp, nowHp] = getHp maxHp, nowHp, body.api_maxhps, body.api_nowhps
+        [combinedMaxHp, combinedNowHp] = getHp combinedMaxHp, combinedNowHp, body.api_maxhps_combined, body.api_nowhps_combined
+        afterHp = Object.clone nowHp
+        combinedAfterHp = Object.clone combinedNowHp
+        if body.api_formation?
+          enemyFormation = body.api_formation[1]
+          enemyIntercept = body.api_formation[2]
+        if body.api_hougeki?
+          [combinedAfterHp, afterHp] = combinedHougekiAttack combinedAfterHp, afterHp, body.api_hougeki
+        [dangerFlag, dangerInfo] = judgeDanger afterHp.concat(combinedAfterHp), maxHp.concat(combinedMaxHp), @_deckShip, @_ships
+        @dangerousShip = dangerInfo if dangerFlag
+        @notDemageFlag = @notDemageFlag and judgeFace nowHp.concat(combinedNowHp), afterHp.concat(combinedAfterHp)
+      when "/kcsapi/api_req_combined_battle/battle_water"
+        [maxHp, nowHp] = getHp body.api_maxhps, body.api_nowhps
+        [combinedMaxHp, combinedNowHp] = getHp body.api_maxhps_combined, body.api_nowhps_combined
+        afterHp = Object.clone nowHp
+        combinedAfterHp = Object.clone combinedNowHp
+        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?
+          [combinedAfterHp, afterHp] = combinedOpenAttack combinedAfterHp, afterHp, body.api_opening_atack
+        if body.api_hougeki1?
+          afterHp = hougekiAttack afterHp, body.api_hougeki1
+        if body.api_hougeki2?
+          afterHp = hougekiAttack afterHp, body.api_hougeki2
+        if body.api_hougeki3?
+          [combinedAfterHp, afterHp] = combinedHougekiAttack combinedAfterHp, afterHp, body.api_hougeki3
+        if body.api_raigeki?
+          [combinedAfterHp, afterHp] = combinedRaigekiAttack combinedAfterHp, afterHp, body.api_raigeki
+        [dangerFlag, dangerInfo] = judgeDanger afterHp.concat(combinedAfterHp), maxHp.concat(combinedMaxHp), @_deckShip, @_ships
+        @dangerousShip = dangerInfo if dangerFlag
+        @notDemageFlag = @notDemageFlag and judgeFace nowHp.concat(combinedNowHp), afterHp.concat(combinedAfterHp)
       when '/kcsapi/api_req_sortie/battleresult',  '/kcsapi/api_req_combined_battle/battleresult'
         if not @enableRecord
           break

        switch body.api_win_rank
          when 'S'
            # need fix
            if @notDemageFlag and not isCombined
              dataItem.push '完全胜利!!!S'
            else dataItem.push '胜利S'
          when 'A'

          afterHp = koukuAttack afterHp, body.api_kouku.api_stage3
        if body.api_kouku2?
          afterHp = koukuAttack afterHp, body.api_kouku2.api_stage3
        [dangerFlag, dangerInfo] = judgeDanger afterHp, maxHp, @_deckShip, @_ships
        @dangerousShip = dangerInfo if dangerFlag
        @notDemageFlag = @notDemageFlag and judgeFace nowHp, afterHp
      when '/kcsapi/api_req_battle_midnight/battle'
