internal Fleet(Homeport parent, kcsapi_deck rawData) { this.homeport = parent; this.State = new FleetState(parent, this); this.Expedition = new Expedition(this); this.CompositeDisposable.Add(this.State); this.CompositeDisposable.Add(this.Expedition); this.Update(rawData); }
public FleetState(Homeport homeport, params Fleet[] fleets) { this.homeport = homeport; this.source = fleets ?? new Fleet[0]; this.Condition = new FleetCondition(); this.CompositeDisposable.Add(this.Condition); /* * this.CompositeDisposable.Add(new PropertyChangedWeakEventListener(DataStorage.Instance.Settings) * { * { nameof(IKanColleClientSettings.ViewRangeCalcType), (_, __) => this.Calculate() }, * { nameof(IKanColleClientSettings.IsViewRangeCalcIncludeFirstFleet), (_, __) => this.Calculate() }, * { nameof(IKanColleClientSettings.IsViewRangeCalcIncludeSecondFleet), (_, __) => this.Calculate() }, * }); */ }
internal Repairyard(Homeport parent) { var proxy = Proxy.Instance; this.homeport = parent; this.Docks = new MemberTable <RepairingDock>(); proxy.Register(Proxy.api_get_member_ndock, e => { var x = e.TryParse <kcsapi_ndock[]>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_req_nyukyo_start, e => { var x = e.TryParse(); if (x == null) { return; } this.Start(x); }); proxy.Register(Proxy.api_req_nyukyo_speedchange, e => { var x = e.TryParse(); if (x == null) { return; } this.ChangeSpeed(x); }); }
public CombinedFleet(Homeport parent, params Fleet[] fleets) { if (fleets == null || fleets.Length == 0) { throw new ArgumentException(); } this.Fleets = fleets; this.State = new FleetState(parent, fleets); this.CompositeDisposable.Add(this.State); foreach (var fleet in fleets) { this.CompositeDisposable.Add(new PropertyChangedEventListener(fleet) { { nameof(Fleet.Name), (sender, args) => this.UpdateName() }, }); var source = fleet; this.CompositeDisposable.Add(new WeakEventListener <EventHandler, EventArgs>( h => new EventHandler(h), h => source.State.Updated += h, h => source.State.Updated -= h, (sender, args) => this.State.Update())); this.CompositeDisposable.Add(new WeakEventListener <EventHandler, EventArgs>( h => new EventHandler(h), h => source.State.Calculated += h, h => source.State.Calculated -= h, (sender, args) => this.State.Calculate())); } this.UpdateName(); this.State.Calculate(); this.State.Update(); }
internal Ship(Homeport parent, kcsapi_ship2 RawData) : base(RawData) { this.homeport = parent; this.Update(RawData); }
internal RepairingDock(Homeport parent, kcsapi_ndock rawData) { this.homeport = parent; this.Update(rawData); }
internal Itemyard(Homeport parent) { var proxy = Proxy.Instance; this.homeport = parent; this.SlotItems = new MemberTable <SlotItem>(); this.UseItems = new MemberTable <UseItem>(); proxy.Register(Proxy.api_get_member_slot_item, e => { var x = e.TryParse <kcsapi_slotitem[]>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_req_kousyou_createitem, e => { var x = e.TryParse <kcsapi_createitem>(); if (x == null) { return; } this.CreateItem(x.Data); }); proxy.Register(Proxy.api_req_kousyou_destroyitem2, e => { var x = e.TryParse <kcsapi_destroyitem2>(); if (x == null) { return; } this.DestroyItem(x); }); // 전투중 장비 집계는 무시 proxy.Register(Proxy.api_get_member_useitem, e => { var x = e.TryParse <kcsapi_useitem[]>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_req_kousyou_remodel_slot, e => { var x = e.TryParse <kcsapi_remodel_slot>(); if (x == null) { return; } this.RemoveFromRemodel(x.Data); this.RemodelSlotItem(x.Data); }); }
public Organization(Homeport parent) { var proxy = Proxy.Instance; this.homeport = parent; this.Ships = new MemberTable <Ship>(); this.Fleets = new MemberTable <Fleet>(); proxy.Register(Proxy.api_get_member_ship, e => { var x = e.TryParse <kcsapi_ship2[]>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_get_member_ship2, e => { var x = e.TryParse <kcsapi_ship2[]>(); if (x == null) { return; } this.Update(x.Data); this.Update(x.Fleets); }); proxy.Register(Proxy.api_get_member_ship3, e => { var x = e.TryParse <kcsapi_ship3>(); if (x == null) { return; } this.Update(x.Data.api_ship_data); this.Update(x.Data.api_deck_data); }); proxy.Register(Proxy.api_get_member_deck, e => { var x = e.TryParse <kcsapi_deck[]>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_get_member_deck_port, e => { var x = e.TryParse <kcsapi_deck[]>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_get_member_ship_deck, e => { var x = e.TryParse <kcsapi_ship_deck>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_req_hensei_preset_select, e => { var x = e.TryParse <kcsapi_deck>(); if (x == null) { return; } this.Update(x.Data); }); proxy.Register(Proxy.api_req_hensei_change, e => { var x = e.TryParse(); if (x == null) { return; } this.Change(x); }); proxy.Register(Proxy.api_req_hokyu_charge, e => { var x = e.TryParse <kcsapi_charge>(); if (x == null) { return; } this.Charge(x.Data); }); proxy.Register(Proxy.api_req_kaisou_powerup, e => { var x = e.TryParse <kcsapi_powerup>(); if (x == null) { return; } this.Powerup(x); }); proxy.Register(Proxy.api_req_kaisou_slot_exchange_index, e => { var x = e.TryParse <kcsapi_slot_exchange_index>(); if (x == null) { return; } this.ExchangeSlot(x); }); proxy.Register(Proxy.api_req_kaisou_slot_deprive, e => { var x = e.TryParse <kcsapi_slot_deprive>(); if (x == null) { return; } this.DepriveSlotItem(x.Data); }); proxy.Register(Proxy.api_req_kousyou_getship, e => { var x = e.TryParse <kcsapi_kdock_getship>(); if (x == null) { return; } this.GetShip(x.Data); }); proxy.Register(Proxy.api_req_kousyou_destroyship, e => { var x = e.TryParse <kcsapi_destroyship>(); if (x == null) { return; } this.DestoryShip(x); }); proxy.Register(Proxy.api_req_member_updatedeckname, e => { var x = e.TryParse(); if (x == null) { return; } this.UpdateFleetName(x); }); proxy.Register(Proxy.api_req_hensei_combined, e => { var x = e.TryParse <kcsapi_hensei_combined>(); if (x == null) { return; } this.Combined = x.Data.api_combined != 0; }); this.SubscribeSortieSessions(); }