internal ExpeditionResultPrediction(ExpeditionInfo2 rpInfo, Fleet rpFleet) { r_Info = rpInfo; r_Fleet = rpFleet; Check(); }
internal ExpeditionResultPrediction(ExpeditionInfo2 rpInfo, Fleet rpFleet) { r_Info = rpInfo; r_Fleet = rpFleet; Check(); }
public ExpeditionYield(Fleet rpFleet, ExpeditionInfo2 rpInfo) { var rExpedition = rpFleet.ExpeditionStatus.Expedition; var rLandingCraftCount = rpFleet.Ships.SelectMany(r => r.Slots).Select(r => r.Equipment.Info.Icon).Count(r => r == EquipmentIconType.LandingCraft); var rRate = 1.0 + rLandingCraftCount * .05; var rFuel = rpInfo.RewardResources.Fuel * rRate; var rBullet = rpInfo.RewardResources.Bullet * rRate; var rSteel = rpInfo.RewardResources.Steel * rRate; var rBauxite = rpInfo.RewardResources.Bauxite * rRate; var rFuelConsumption = (int)rpFleet.Ships.Sum(r => r.Info.MaxFuelConsumption * rExpedition.FuelConsumption * (r.IsMarried ? .85 : 1.0)); var rBulletConsumption = (int)rpFleet.Ships.Sum(r => r.Info.MaxBulletConsumption * rExpedition.BulletConsumption * (r.IsMarried ? .85 : 1.0)); Fuel = (int)rFuel - rFuelConsumption; Bullet = (int)rBullet - rBulletConsumption; FuelGS = (int)(rFuel * 1.5) - rFuelConsumption; BulletGS = (int)(rBullet * 1.5) - rBulletConsumption; Steel = (int)rSteel; Bauxite = (int)rBauxite; SteelGS = (int)(Steel * 1.5); BauxiteGS = (int)(rBauxite * 1.5); var rTotalHours = TimeSpan.FromMinutes(rExpedition.Time).TotalHours; var rHourlyFuelConsumption = rFuelConsumption / rTotalHours; var rHourlyBulletConsumption = rBulletConsumption / rTotalHours; HourlyFuel = rFuel / rTotalHours - rHourlyFuelConsumption; HourlyBullet = rBullet / rTotalHours - rHourlyBulletConsumption; HourlyFuelGS = rFuel * 1.5 / rTotalHours - rHourlyFuelConsumption; HourlyBulletGS = rBullet * 1.5 / rTotalHours - rHourlyBulletConsumption; HourlySteel = rSteel / rTotalHours; HourlyBauxite = rBauxite / rTotalHours; HourlySteelGS = Steel * 1.5 / rTotalHours; HourlyBauxiteGS = rBauxite * 1.5 / rTotalHours; }
public ExpeditionYield(Fleet rpFleet, ExpeditionInfo2 rpInfo) { var rExpedition = rpFleet.ExpeditionStatus.Expedition; var rFuelConsumption = 0; var rBulletConsumption = 0; var rLandingCraftCount = 0; var rLandingCraftLevel = 0; var rLandingCraftBonusRate = 1.0; var rTDLCCount = 0; var rDLCCount = 0; foreach (var rShip in rpFleet.Ships) { var rFactor = rShip.IsMarried ? .85 : 1.0; rFuelConsumption += (int)(rShip.Info.MaxFuelConsumption * rExpedition.FuelConsumption * rFactor); rBulletConsumption += (int)(rShip.Info.MaxBulletConsumption * rExpedition.BulletConsumption * rFactor); if (rShip.Info.ID == 487) rLandingCraftBonusRate += .05; foreach (var rSlot in rShip.Slots) { switch (rSlot.Equipment.ID) { case 68: rLandingCraftBonusRate += .05; rDLCCount++; break; case 166: rLandingCraftBonusRate += .02; break; case 167: rLandingCraftBonusRate += .01; break; case 193: rLandingCraftBonusRate += .05; rTDLCCount++; break; default: continue; } rLandingCraftCount++; rLandingCraftLevel += rSlot.Equipment.Level; } } rLandingCraftBonusRate = Math.Min(rLandingCraftBonusRate, 1.2); if (rLandingCraftCount > 0) rLandingCraftBonusRate += rLandingCraftBonusRate * (rLandingCraftLevel / (double)rLandingCraftCount) * .01; switch (rTDLCCount) { case 0: case 1: case 2: rLandingCraftBonusRate += rTDLCCount * .02; break; case 3: switch (rDLCCount) { case 0: case 1: rLandingCraftBonusRate += .05; break; case 2: rLandingCraftBonusRate += .052; break; default: rLandingCraftBonusRate += .054; break; } break; default: switch (rDLCCount) { case 0: rLandingCraftBonusRate += .054; break; case 1: rLandingCraftBonusRate += .056; break; case 2: rLandingCraftBonusRate += .058; break; case 3: rLandingCraftBonusRate += .059; break; default: rLandingCraftBonusRate += .06; break; } break; } var rFuel = rpInfo.RewardResources.Fuel * rLandingCraftBonusRate; var rBullet = rpInfo.RewardResources.Bullet * rLandingCraftBonusRate; var rSteel = rpInfo.RewardResources.Steel * rLandingCraftBonusRate; var rBauxite = rpInfo.RewardResources.Bauxite * rLandingCraftBonusRate; Fuel = (int)rFuel - rFuelConsumption; Bullet = (int)rBullet - rBulletConsumption; FuelGS = (int)(rFuel * 1.5) - rFuelConsumption; BulletGS = (int)(rBullet * 1.5) - rBulletConsumption; Steel = (int)rSteel; Bauxite = (int)rBauxite; SteelGS = (int)(Steel * 1.5); BauxiteGS = (int)(rBauxite * 1.5); var rTotalHours = TimeSpan.FromMinutes(rExpedition.Time).TotalHours; var rHourlyFuelConsumption = rFuelConsumption / rTotalHours; var rHourlyBulletConsumption = rBulletConsumption / rTotalHours; HourlyFuel = rFuel / rTotalHours - rHourlyFuelConsumption; HourlyBullet = rBullet / rTotalHours - rHourlyBulletConsumption; HourlyFuelGS = rFuel * 1.5 / rTotalHours - rHourlyFuelConsumption; HourlyBulletGS = rBullet * 1.5 / rTotalHours - rHourlyBulletConsumption; HourlySteel = rSteel / rTotalHours; HourlyBauxite = rBauxite / rTotalHours; HourlySteelGS = Steel * 1.5 / rTotalHours; HourlyBauxiteGS = rBauxite * 1.5 / rTotalHours; }