public static void UnloadUpgradable(Ship ship, int uniqueid) { var defenition = Definitions.UpgrDef.Items.Item.FirstOrDefault(n => n.DefId == ship.TargetId); var lvl = defenition?.Levels.Level.FirstOrDefault(n => n.Id == ship.TargetLevel); if (lvl != null) { ship.LogUnload(); var upg = Core.GlobalData.Upgradeables.FirstOrDefault(n => n.DefId == ship.TargetId); if (upg != null) { upg.Progress += lvl.MaterialKoef * SendingHelper.GetCapacity(ship); } Networking.AddTask( new Task.UnloadShipTask( ship.InstId, Core.GlobalData.Level, Enums.EObject.upgradeable, SendingHelper.GetCapacity(ship), lvl.MaterialKoef * SendingHelper.GetCapacity(ship), SendingHelper.GetSailors(ship), lvl.Sailors, ship.TargetLevel, null, uniqueid)); SendingHelper.NullShip(ship); } }
public static void UnloadOutpost(Ship ship, int uniqueid) { var loc = Core.GlobalData.Outposts.Where(n => n.DefId == ship.TargetId).First(); ship.LogUnload(); var outp = Core.GlobalData.Outposts.Where(n => n.DefId == ship.TargetId).FirstOrDefault(); if (outp.CargoOnTheWay <= ship.Sailors()) { outp.CargoOnTheWay -= ship.Sailors(); } Networking.AddTask( new Task.DockShipTaskOutPost( ship, false, SendingHelper.GetCapacity(ship), ship.Cargo, SendingHelper.GetSailors(ship), ship.Crew, ship.TargetLevel, loc.CargoOnTheWay + loc.Crew, loc.RequiredCrew, uniqueid)); SendingHelper.NullShip(ship); }
public static void UnloadContractor(Ship ship, int uniqueid) { var currentcontractor = Definitions.ConDef.Items.Item .FirstOrDefault(n => n.DefId == ship.TargetId); var quest = currentcontractor?.Quests.Quest.FirstOrDefault(n => n.Id == ship.TargetLevel); if (quest == null) { return; } if (currentcontractor.Type == "static") { var usedshit = quest.MaterialKoef * SendingHelper.GetCapacity(ship); var lcontract = Core.GlobalData.Contracts.FirstOrDefault(n => n.DefId == ship.TargetId); // TODO: increasing of progress or amount! ship.LogUnload(); Networking.AddTask( new Task.DockShipTaskContractor( ship, false, SendingHelper.GetCapacity(ship), usedshit, SendingHelper.GetSailors(ship), currentcontractor.Sailors, ship.TargetLevel, currentcontractor.DefId, lcontract.Progress, (int)quest.InputAmount(), quest.ObjectiveTypeId, uniqueid)); } else { var usedshit = quest.MaterialKoef * SendingHelper.GetCapacity(ship); var lcontract = Core.GlobalData.Contracts.FirstOrDefault(n => n.DefId == ship.TargetId); var inp = quest.InputAmount(); // TODO: increasing of progress or amount! ship.LogUnload(); Networking.AddTask( new Task.DockShipTaskContractor( ship, false, SendingHelper.GetCapacity(ship), usedshit, SendingHelper.GetSailors(ship), currentcontractor.Sailors, ship.TargetLevel, currentcontractor.DefId, lcontract.Progress, (int)quest.InputAmount(), quest.ObjectiveTypeId, uniqueid)); } SendingHelper.NullShip(ship); }
public static void UnloadWreck(Ship ship, int uniqueid) { var wrk = Core.GlobalData.Wrecks.Where(n => n.InstId == ship.TargetId).FirstOrDefault(); if (wrk != null) { ship.LogUnload(); Networking.AddTask( new Task.UnloadShipTask( ship.InstId, Core.GlobalData.Level, Enums.EObject.wreck, SendingHelper.GetCapacity(ship), 0, SendingHelper.GetSailors(ship), wrk.Sailors, ship.TargetLevel, null, uniqueid)); SendingHelper.NullShip(ship); } }
public static void UnloadMarketplace(Ship ship, int uniqueid) { var market = Definitions.MarketDef.Items.Item.FirstOrDefault(n => n.DefId == ship.TargetId); var lvl = Definitions.MarketDef.Items.Item.FirstOrDefault(n => n.DefId == ship.TargetId); var mat = lvl?.Materials.Material.FirstOrDefault(n => n.Id == ship.MaterialId); if (mat != null) { ship.LogUnload(); Networking.AddTask( new Task.UnloadShipTask( ship.InstId, Core.GlobalData.Level, Enums.EObject.marketplace, SendingHelper.GetCapacity(ship), mat.InputKoef * SendingHelper.GetCapacity(ship), SendingHelper.GetSailors(ship), market.Sailors, ship.TargetLevel, null, uniqueid)); SendingHelper.NullShip(ship); } }