     {isCombined, isCarrier, battleComment, battlePackets, battlePacketsNonce, battleNonce, battleType, battleFlow} = @state
     isStateChanged = false
 
-    # Game states
+    # Combined Fleet Status
+    switch path
+      when '/kcsapi/api_port/port'
+        switch body.api_combined_flag
+          when 1  # 1=機動部隊
+            isStateChanged = true
+            isCombined = true
+            isCarrier = true
+          when 2  # 2=水上部隊
+            isStateChanged = true
+            isCombined = true
+            isCarrier = false
+          else
+            isStateChanged = true
+            isCombined = false
+            isCarrier = false
+      # Oh fuck. Someone sorties with No.3/4 fleet when having combined fleet. 
+      when '/kcsapi/api_req_map/start'
+        if isCombined and parseInt(postBody.api_deck_id) != 1
+          isStateChanged = true
+          isCombined = false
+          isCarrier = false
+
+    # Battle Comment
     switch path
       when '/kcsapi/api_req_map/start', '/kcsapi/api_req_map/next'
         isStateChanged = true

parseBattlePacket = (packet) ->
  isCombined = packet.poi_is_combined
  isCarrier = packet.poi_is_carrier

  battleType = null
  # Normal Fleet
  if not isCombined
    switch packet?.poi_uri
      # Battle, Air battle
      when '/kcsapi/api_req_sortie/battle', '/kcsapi/api_req_practice/battle', '/kcsapi/api_req_sortie/airbattle'
        battleType = 'normal'

        {battleType, battleFlow} = parseBattlePacket body
        battleNonce = updateNonce battleNonce

    # Update State
    if isStateChanged
      @setState
        isCombined: isCombined
