Sakuno.KanColle.Amatsukaze.Game.FleetManager.FleetManager C# (CSharp) Method

FleetManager() private method

private FleetManager ( ) : Sakuno.KanColle.Amatsukaze.Game.Models
return Sakuno.KanColle.Amatsukaze.Game.Models
        internal FleetManager()
        {
            ApiService.Subscribe("api_req_hensei/change", r =>
            {
                var rFleet = Table[int.Parse(r.Parameters["api_id"])];

                var rIndex = int.Parse(r.Parameters["api_ship_idx"]);
                if (rIndex == -1)
                {
                    rFleet.RemoveAllExceptFlagship();
                    rFleet.Update();
                    return;
                }

                var rShipID = int.Parse(r.Parameters["api_ship_id"]);
                if (rShipID == -1)
                {
                    rFleet.Remove(rIndex);
                    rFleet.Update();
                    return;
                }

                var rShip = KanColleGame.Current.Port.Ships[rShipID];
                var rOriginalFleet = rShip.OwnerFleet;
                var rOriginalIndex = rOriginalFleet?.Ships.IndexOf(rShip);
                if (rOriginalFleet == rFleet)
                    rOriginalFleet.Swap(rIndex, rOriginalIndex.Value);
                else
                {
                    var rOriginalShip = rFleet.Organize(rIndex, rShip);
                    if (rOriginalIndex.HasValue)
                    {
                        rOriginalFleet.Organize(rOriginalIndex.Value, rOriginalShip);
                        rShip.OwnerFleet = rFleet;
                    }
                }

                if ((rFleet.State & FleetState.AnchorageRepair) == FleetState.AnchorageRepair)
                    rFleet.AnchorageRepair.Reset();

                rFleet.Update();
                rOriginalFleet?.Update();
            });

            ApiService.Subscribe("api_get_member/deck", r => Update(r.GetData<RawFleet[]>()));
            ApiService.Subscribe("api_req_hensei/preset_select", r =>
            {
                var rFleet = Table[int.Parse(r.Parameters["api_deck_id"])];
                foreach (var rShip in rFleet.Ships)
                    rShip.OwnerFleet = null;
                rFleet.Update(r.GetData<RawFleet>());
            });

            ApiService.Subscribe("api_req_map/start", _ => Update());

        }