Esempio n. 1
0
        private void _handleMissionAcceptedEvent(MissionAcceptedEvent @event)
        {
            Cargo cargo = new Cargo();

            string type = @event.name.Split('_').ElementAt(1)?.ToLowerInvariant();

            if (type != null && CHAINED.TryGetValue(type, out string value))
            {
                type = value;
            }
            else if (type == "ds" || type == "rs" || type == "welcome")
            {
                type = @event.name.Split('_').ElementAt(2)?.ToLowerInvariant();
            }

            bool naval = @event.name.ToLowerInvariant().Contains("rank");

            switch (type)
            {
            case "altruism":
            case "collect":
            case "collectwing":
            case "delivery":
            case "deliverywing":
            case "mining":
            case "piracy":
            case "rescue":
            case "salvage":
            case "smuggle":
            {
                string  originSystem = EDDI.Instance?.CurrentStarSystem?.name;
                Haulage haulage      = new Haulage(@event.missionid ?? 0, @event.name, originSystem, @event.amount ?? 0, @event.expiry)
                {
                    startmarketid = (type.Contains("delivery") && !naval) ? EDDI.Instance?.CurrentStation?.marketId ?? 0 : 0,
                    endmarketid   = (type.Contains("collect")) ? EDDI.Instance?.CurrentStation?.marketId ?? 0 : 0,
                };

                if (type.Contains("delivery") || type == "smuggle")
                {
                    haulage.sourcesystem = EDDI.Instance?.CurrentStarSystem?.name;
                    haulage.sourcebody   = EDDI.Instance?.CurrentStation?.name;
                }
                else if (type == "rescue" || type == "salvage")
                {
                    haulage.sourcesystem = @event.destinationsystem;
                }

                cargo = GetCargoWithEDName(@event.commodityDefinition?.edname);
                if (cargo == null)
                {
                    cargo = new Cargo(@event.commodityDefinition?.edname, 0);
                    AddCargo(cargo);
                }
                cargo.haulageData.Add(haulage);
                cargo.CalculateNeed();
            }
            break;
            }
        }
Esempio n. 2
0
 private void handleMissionAcceptedEvent(MissionAcceptedEvent @event)
 {
     if (@event.commodityDefinition != null)
     {
         _handleMissionAcceptedEvent(@event);
         writeInventory();
     }
 }
Esempio n. 3
0
 internal MissionAcceptedEvent InvokeEvent(MissionAcceptedEvent arg)
 {
     if (_api.ValidateEvent(arg))
     {
         MissionAccepted?.Invoke(_api, arg);
     }
     return(arg);
 }
Esempio n. 4
0
 private void handleMissionAcceptedEvent(MissionAcceptedEvent @event)
 {
     if (@event.timestamp > updateDat && @event.commodityDefinition != null)
     {
         updateDat = @event.timestamp;
         if (_handleMissionAcceptedEvent(@event))
         {
             writeInventory();
         }
     }
 }
Esempio n. 5
0
        public void TestJournalMissionAccepted1()
        {
            string line = @"{ ""timestamp"":""2017-05-05T16:07:37Z"", ""event"":""MissionAccepted"", ""Faction"":""Chick Ek Partnership"", ""Name"":""Mission_Sightseeing_Criminal_BOOM"", ""Commodity"":""$Wine_Name;"", ""Commodity_Localised"":""Wine"", ""Count"":3, ""DestinationSystem"":""HR 7221$MISSIONUTIL_MULTIPLE_FINAL_SEPARATOR;Tupa"", ""Expiry"":""2017-05-06T04:31:24Z"", ""Influence"":""Low"", ""Reputation"":""Med"", ""PassengerCount"":7, ""PassengerVIPs"":true, ""PassengerWanted"":true, ""PassengerType"":""Criminal"", ""MissionID"":134724902 }";

            List <Event> events = JournalMonitor.ParseJournalEntry(line);

            Assert.IsTrue(events.Count == 1);

            MissionAcceptedEvent event1 = (MissionAcceptedEvent)events[0];

            Assert.AreEqual("Wine", event1.commodity);
        }
Esempio n. 6
0
        public void _handleMissionAcceptedEvent(MissionAcceptedEvent @event)
        {
            string type  = @event.name.Split('_').ElementAtOrDefault(1).ToLowerInvariant();
            bool   naval = @event.name.ToLowerInvariant().Contains("rank");

            switch (type)
            {
            case "altruism":
            case "collect":
            case "collectwing":
            case "delivery":
            case "deliverywing":
            case "mining":
            case "piracy":
            case "rescue":
            case "salvage":
            case "smuggle":
            {
                int           amount        = (type == "delivery" && naval || type == "smuggle") ? @event.amount ?? 0 : 0;
                HaulageAmount haulageAmount = new HaulageAmount(@event.missionid ?? 0, @event.name, @event.amount ?? 0, (DateTime)@event.expiry);
                Cargo         cargo         = GetCargoWithEDName(@event.commodityDefinition?.edname);
                if (cargo != null)
                {
                    cargo.haulage += amount;
                    cargo.haulageamounts.Add(haulageAmount);
                    cargo.CalculateNeed();
                }
                else
                {
                    Cargo newCargo = new Cargo(@event.commodityDefinition?.edname, amount);
                    newCargo.haulage = amount;
                    newCargo.stolen  = 0;
                    newCargo.owned   = 0;
                    newCargo.haulageamounts.Add(haulageAmount);
                    newCargo.CalculateNeed();
                    AddCargo(newCargo);
                }
            }
            break;
            }
        }
 private static void AssertEvent(MissionAcceptedEvent @event)
 {
     Assert.NotNull(@event);
     Assert.Equal(DateTime.Parse("2019-09-08T10:24:53Z"), @event.Timestamp);
     Assert.Equal(EventName, @event.Event);
     Assert.Equal(508888377, @event.MissionId);
     Assert.Equal("Mission_Delivery", @event.Name);
     Assert.Equal("Доставьте 45 шт. товара  Сверхпроводники", @event.NameLocalised);
     Assert.Equal("Scylla Gold Boys", @event.Faction);
     Assert.Equal("$Superconductors_Name;", @event.Commodity);
     Assert.Equal("Сверхпроводники", @event.CommodityLocalised);
     Assert.Equal(45, @event.Count);
     Assert.Equal("Eurybia Blue Mafia", @event.TargetFaction);
     Assert.Equal("Scylla", @event.DestinationSystem);
     Assert.Equal("Qureshi Port", @event.DestinationStation);
     Assert.Equal(DateTime.Parse("2019-09-09T10:21:33Z"), @event.Expiry);
     Assert.False(@event.Wing);
     Assert.Equal("++", @event.Influence);
     Assert.Equal("++", @event.Reputation);
     Assert.Equal(869438, @event.Reward);
 }
 public void addMission(MissionAcceptedEvent newMission)
 {
     Missions.Add(newMission);
 }
Esempio n. 9
0
 private void MissionAcceptedCallback(MissionAcceptedEvent obj)
 {
 }
Esempio n. 10
0
        public void Handle(Event theEvent)
        {
            if (EDDI.Instance.inCQC)
            {
                // We don't do anything whilst in CQC
                return;
            }

            if (theEvent is MissionAcceptedEvent)
            {
                MissionAcceptedEvent newMissionEvent = (MissionAcceptedEvent)theEvent;
                if (newMissionEvent.missionid.HasValue)
                {
                    mViewModel.addMission(newMissionEvent);
                }
            }
            else if (theEvent is MissionCompletedEvent)
            {
                MissionCompletedEvent missionEndedEvent = (MissionCompletedEvent)theEvent;
                if (missionEndedEvent.missionid.HasValue)
                {
                    mViewModel.removeMission(missionEndedEvent.missionid);
                }
            }
            else if (theEvent is MissionAbandonedEvent)
            {
                MissionAbandonedEvent missionEndedEvent = (MissionAbandonedEvent)theEvent;
                mViewModel.removeMission(missionEndedEvent.missionid);
            }

            else if (theEvent is CommodityPurchasedEvent)
            {
                var commodityEvent = (CommodityPurchasedEvent)theEvent;
                mViewModel.addCargo(commodityEvent.commodity, commodityEvent.amount);
            }
            else if (theEvent is CommoditySoldEvent)
            {
                var commodityEvent = (CommoditySoldEvent)theEvent;
                mViewModel.removeCargo(commodityEvent.commodity, commodityEvent.amount);
            }
            else if (theEvent is CommodityRefinedEvent)
            {
                var commodityEvent = (CommodityRefinedEvent)theEvent;
                mViewModel.addCargo(commodityEvent.commodity, 1);
            }
            else if (theEvent is CommodityCollectedEvent)
            {
                var commodityEvent = (CommodityCollectedEvent)theEvent;
                mViewModel.addCargo(commodityEvent.commodity, 1);
            }
            else if (theEvent is CommodityEjectedEvent)
            {
                var commodityEvent = (CommodityEjectedEvent)theEvent;
                mViewModel.removeCargo(commodityEvent.commodity, commodityEvent.amount);
            }
            else if (theEvent is MarketInformationUpdatedEvent)
            {
                var dockedEvent = (MarketInformationUpdatedEvent)theEvent;

                foreach (var mr in mViewModel.MissionRequirements)
                {
                    mr.AtCurrentStation = null;
                }

                updateStationInfo(dockedEvent);
            }
        }
Esempio n. 11
0
 internal void InvokeMissionAcceptedEvent(MissionAcceptedEvent arg) => MissionAcceptedEvent?.Invoke(null, arg);
Esempio n. 12
0
 internal void InvokeMissionAcceptedEvent(MissionAcceptedEvent arg)
 {
     MissionAcceptedEvent?.Invoke(this, arg);
 }