Exemple #1
0
 public ShipPowerup(ShipId shipId, IReadOnlyCollection <ShipId> consumedShipIds, bool isSuccess, IRawShip updatedTo)
 {
     ShipId          = shipId;
     ConsumedShipIds = consumedShipIds;
     IsSuccess       = isSuccess;
     UpdatedTo       = updatedTo;
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
        }
Exemple #4
0
 public ShipBuildCompletion(IRawShip ship, IReadOnlyCollection <IRawEquipment> equipments)
 {
     Ship       = ship;
     Equipments = equipments;
 }