private void handleCommodityEjectedEvent(CommodityEjectedEvent @event) { if (_handleCommodityEjectedEvent(@event)) { writeInventory(); } }
private void handleCommodityEjectedEvent(CommodityEjectedEvent @event) { if (@event.timestamp > updateDat) { updateDat = @event.timestamp; if (_handleCommodityEjectedEvent(@event)) { writeInventory(); } } }
private bool _handleCommodityEjectedEvent(CommodityEjectedEvent @event) { bool update = false; Cargo cargo = GetCargoWithEDName(@event.commodityDefinition?.edname); if (cargo != null) { if (EDDI.Instance?.Vehicle != Constants.VEHICLE_SHIP) { if (@event.missionid != null) { cargo.haulage -= @event.amount; } else { cargo.owned -= @event.amount; } cargo.CalculateNeed(); update = true; } Haulage haulage = cargo.haulageData.FirstOrDefault(h => h.missionid == @event.missionid); if (haulage != null) { MissionMonitor missionMonitor = (MissionMonitor)EDDI.Instance.ObtainMonitor("Mission monitor"); switch (haulage.typeEDName) { case "delivery": case "deliverywing": case "smuggle": { haulage.status = "Failed"; Mission mission = missionMonitor?.GetMissionWithMissionId(@event.missionid ?? 0); if (mission != null) { mission.statusDef = MissionStatus.FromEDName("Failed"); } update = true; } break; } } } return(update); }
public void _handleCommodityEjectedEvent(CommodityEjectedEvent @event) { Cargo cargo = GetCargoWithEDName(@event.commodityDefinition?.edname); if (cargo != null) { bool handled = false; // Check for related missions if (cargo.haulageamounts.Any()) { cargo.ejected += @event.amount; foreach (HaulageAmount haulageAmount in cargo.haulageamounts) { string type = haulageAmount.name.Split('_').ElementAtOrDefault(1).ToLowerInvariant(); int total = cargo.haulageamounts.Where(ha => ha.name.ToLowerInvariant().Contains(type)).Sum(ha => ha.amount); switch (type) { case "altruism": case "collect": case "collectwing": case "mining": case "piracy": { if (cargo.owned >= @event.amount) { cargo.owned -= @event.amount; handled = true; } } break; case "delivery": case "deliverywing": case "rescue": case "salvage": case "smuggle": { if (cargo.haulage >= @event.amount) { cargo.haulage -= @event.amount; handled = true; } } break; } if (handled) { break; } } } // Otherwise, order of preference is owned -> stolen if (!handled) { if (cargo.owned >= @event.amount) { cargo.owned -= @event.amount; } else if (cargo.stolen >= @event.amount) { cargo.stolen -= @event.amount; } } RemoveCargo(cargo); } }