public ShipPowerup(ShipId shipId, IReadOnlyCollection <ShipId> consumedShipIds, bool isSuccess, IRawShip updatedTo) { ShipId = shipId; ConsumedShipIds = consumedShipIds; IsSuccess = isSuccess; UpdatedTo = updatedTo; }
partial void UpdateCore(IRawShip raw, DateTimeOffset timeStamp) { Info = owner.MasterData.ShipInfos[raw.ShipInfoId]; Fuel = (raw.CurrentFuel, Info.FuelConsumption); Bullet = (raw.CurrentBullet, Info.BulletConsumption); Firepower = Combine(raw.Firepower, Info.Firepower); Torpedo = Combine(raw.Torpedo, Info.Torpedo); AntiAir = Combine(raw.AntiAir, Info.AntiAir); Armor = Combine(raw.Armor, Info.Armor); Luck = Combine(raw.Luck, Info.Luck); SlotCount = Info.SlotCount; while (slots.Count < SlotCount) { slots.Add(new Slot()); } while (slots.Count > SlotCount) { slots.RemoveAt(slots.Count - 1); } if (raw.ExtraSlotOpened) { ExtraSlot = new Slot { Equipment = owner.AllEquipment[raw.ExtraSlotEquipId] } } ; else { ExtraSlot = null; } UpdateEquipments(raw.EquipmentIds); UpdateSlotAircraft(raw.SlotAircraft); var lightOfSight = 0; var evasion = 0; var antiSubmarine = 0; foreach (var slot in slots) { var equipment = slot.Equipment?.Info; if (equipment == null) { continue; } lightOfSight += equipment.LightOfSight; evasion += equipment.Evasion; antiSubmarine += equipment.AntiSubmarine; } LightOfSight = Substract(raw.LightOfSight, lightOfSight); Evasion = Substract(raw.Evasion, evasion); AntiSubmarine = Substract(raw.AntiSubmarine, antiSubmarine); }
partial void UpdateCore(IRawShip raw) { Info = owner.MasterData.ShipInfos[raw.ShipInfoId]; Fuel = (raw.CurrentFuel, Info.FuelConsumption); Bullet = (raw.CurrentBullet, Info.BulletConsumption); Firepower = Combine(raw.Firepower, Info.Firepower); Torpedo = Combine(raw.Torpedo, Info.Torpedo); AntiAir = Combine(raw.AntiAir, Info.AntiAir); Armor = Combine(raw.Armor, Info.Armor); Luck = Combine(raw.Luck, Info.Luck); SlotCount = Info.SlotCount; while (slots.Count < SlotCount) { slots.Add(new Slot()); } while (slots.Count > SlotCount) { slots.RemoveAt(slots.Count - 1); } if (raw.ExtraSlotOpened) { ExtraSlot = new Slot { Equipment = owner.AllEquipment[raw.ExtraSlotEquipId] } } ; else { ExtraSlot = null; } UpdateEquipments(raw.EquipmentIds); UpdateSlotAircraft(raw.SlotAircraft); LightOfSight = Substract(raw.LightOfSight, slots.Sum(s => s.Equipment?.Info.LightOfSight ?? 0)); Evasion = Substract(raw.Evasion, slots.Sum(s => s.Equipment?.Info.Evasion ?? 0)); AntiSubmarine = Substract(raw.AntiSubmarine, slots.Sum(s => s.Equipment?.Info.AntiSubmarine ?? 0)); }
public ShipBuildCompletion(IRawShip ship, IReadOnlyCollection <IRawEquipment> equipments) { Ship = ship; Equipments = equipments; }