/// <summary> /// Sets the yield and cycle time /// </summary> /// <param name="yield">The yield.</param> /// <param name="cycleTime">The cycle time.</param> /// <param name="turret">The turret.</param> public void SetYieldCycle(double yield, double cycleTime, MiningTurret turret) { Text = string.Format("{0}m3 / {1}sec - {2}", yield.ToString("F2"), cycleTime.ToString("F2"), turret); }
/// <summary> /// Посчитать цикл /// </summary> /// <param name="turret"></param> /// <returns></returns> private double GetCycleTime(MiningTurret turret) { double cycle = turret.CycleTime; Skills skills = Config<Settings>.Instance.Skills; Ship ship = _dictShips[comboBoxShip.SelectedItem.ToString()]; //Если турелька лед роет if (turret.CycleTime > 200) { cycle *= (1 - skills.IceHarvesting*0.05); DeviceBonus mlu = pictureBoxMLU1.Tag as DeviceBonus; if (mlu != null) cycle *= (1 - mlu.TimeBonus/100); mlu = pictureBoxMLU2.Tag as DeviceBonus; if (mlu != null && ship.LowSlots > 1) cycle *= (1 - mlu.TimeBonus/100); mlu = pictureBoxMLU3.Tag as DeviceBonus; if (mlu != null && ship.LowSlots > 2) cycle *= (1 - mlu.TimeBonus/100); cycle *= ship.IceHarvestTimeBonus(); ////Если макинаву юзаем //if (Config<Settings>.Instance.SelectedShip == "Mackinaw") //{ // cycle *= 1.25; // cycle *= (1 - skills.Exhumers*0.05); //} ////Если халк //else if (Config<Settings>.Instance.SelectedShip == "Hulk") //{ // cycle *= (1 - skills.Exhumers*0.03); //} //учет имплантов но только для Ice харвестеров DeviceBonus db = _dictImpS10[Config<Settings>.Instance.ImplantS10]; double bonus = 1 - db.TimeBonus / 100; cycle *= bonus; } int gangAssistModule = 0; if (Config<Settings>.Instance.GangAssistModule1) gangAssistModule++; if (Config<Settings>.Instance.GangAssistModule2) gangAssistModule++; if (Config<Settings>.Instance.GangAssistModule3) gangAssistModule++; //Ганг бонусы if (Config<Settings>.Instance.IsGang) { double bonusIndustrial = 0.0; switch (Config<Settings>.Instance.BoosterShip) { case ShipType.Orca: bonusIndustrial = 0.03; break; case ShipType.Rorqual: bonusIndustrial = 0.05; break; } if (Config<Settings>.Instance.ImpMindLink) { cycle *= (1 - 2*skills.MiningDirector*(1 + skills.WarfareLinkSpec*0.1)* (1 + skills.IndustrialCommandShip*bonusIndustrial)*1.5/100*gangAssistModule); } else { cycle *= (1 - 2*skills.MiningDirector*(1 + skills.WarfareLinkSpec*0.1)* (1 + skills.IndustrialCommandShip*bonusIndustrial)/100*gangAssistModule); } } return cycle; }
/// <summary> ///Подсчет объема руды за цикл /// </summary> /// <param name="turret"></param> /// <returns></returns> private double GetYield(MiningTurret turret) { double yield = turret.MiningAmount; Skills skills = Config<Settings>.Instance.Skills; Ship ship = _dictShips[comboBoxShip.SelectedItem.ToString()]; yield *= (1 + skills.Mining*0.05)*(1 + skills.Astrogeology*0.05); yield *= ship.YieldBonus(); //if (ship.Barge) // yield *= (1 + skills.MiningBarge*0.03); //if (ship.Exhumer && ship.Name != "Hulk") // yield *= (1 + skills.Exhumers*0.03); //if (ship.Name.Contains("Frigate")) // yield *= (1 + skills.MiningFrigates*0.2); //else if (ship.Name.Contains("Cruiser")) // yield *= (1 + skills.Cruisers*0.2); DeviceBonus mlu = pictureBoxMLU1.Tag as DeviceBonus; if (mlu != null) yield *= (1 + mlu.OreYieldBonus/100); mlu = pictureBoxMLU2.Tag as DeviceBonus; if (mlu != null && ship.LowSlots > 1) yield *= (1 + mlu.OreYieldBonus/100); mlu = pictureBoxMLU3.Tag as DeviceBonus; if (mlu != null && ship.LowSlots > 2) yield *= (1 + mlu.OreYieldBonus/100); if (turret.UseCrystals) { if (Config<Settings>.Instance.SelectedCrystals == 2) { if (ship.Name == "Skif" && turret.Name.Contains("Deep")) yield *= 1.375 *(1 + skills.Exhumers*0.6); else yield *= 1.75; } else { if (ship.Name == "Skif" && turret.Name.Contains("Deep")) yield *= (1.25*(1 + skills.Exhumers*0.6)); else yield *= 1.625; } } DeviceBonus db = _dictImpS10[Config<Settings>.Instance.ImplantS10]; double bonus = 1+ db.OreYieldBonus / 100; yield *= bonus; if (Config<Settings>.Instance.ImpMichi) yield *= 1.05; //Ганг бонусы if (Config<Settings>.Instance.IsGang) { if (Config<Settings>.Instance.ImpMindLink) { //Implant Replaces mining foreman skill bonus with fixed 15% mining yield bonus. yield *= (1 + 0.15 /* skills.MiningForeman * 0.02 * 1.5*/); //yield *= 1/(1 - 2*skills.MiningDirector*(1 + skills.WarfareLinkSpec*0.1)*1.5/100*gangAssistModule); } else yield *= (1 + skills.MiningForeman*0.02); } return yield; }
/// <summary> /// Fills the turret list. /// </summary> private void FillTurretList() { if(Config<Settings>.Instance.SelectedShip.Length == 0) Config<Settings>.Instance.SelectedShip = "Venture"; Ship ship = _dictShips[Config<Settings>.Instance.SelectedShip]; _turretsList.Clear(); if (ship.Type != ShipType.Barge && ship.Type != ShipType.Exhumer) { //Mining Turrets MiningTurret turret = new MiningTurret("Basic Miner", 60, 30.0, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Cu Vapor Particle Bore Stream I", 60, 49.0, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Deep Core Mining Laser I", 60, 40.0, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Dual Diode Mining Laser I", 60, 44.0, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("EP-S Gaussian I Excavation Pulse", 60, 42, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Miner I", 60, 40, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Miner II", 60, 60.0, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Modulated Deep Core Miner II", 180, 120.0, true); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("XeCl Drilling Beam I", 60, 47.0, false); _turretsList.Add(turret.Name, turret); } else { //Strips MiningTurret turret = new MiningTurret("Strip Miner I", 180, 540.0, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Modulated Strip Miner II", 180, 360.0, true); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Modulated Deep Core Strip Miner II ", 180, 250.0, true); _turretsList.Add(turret.Name, turret); //Ice Harvesters turret = new MiningTurret("Ice Harvester I", 300, 1.0, false); _turretsList.Add(turret.Name, turret); turret = new MiningTurret("Ice Harvester II", 250, 1.0, false); _turretsList.Add(turret.Name, turret); } comboBoxTurret.BeginUpdate(); comboBoxTurret.Items.Clear(); foreach (KeyValuePair<string, MiningTurret> pair in _turretsList) { comboBoxTurret.Items.Add(pair.Value); } comboBoxTurret.EndUpdate(); comboBoxTurret.SelectedIndex = 0; }