Exemple #1
0
 internal ShipTargetedEvent InvokeEvent(ShipTargetedEvent arg)
 {
     if (_api.ValidateEvent(arg))
     {
         ShipTargeted?.Invoke(_api, arg);
     }
     return(arg);
 }
 private void AssertEvent(ShipTargetedEvent @event)
 {
     Assert.NotNull(@event);
     Assert.Equal(DateTime.Parse("2019-09-11T11:05:29Z"), @event.Timestamp);
     Assert.Equal(EventName, @event.Event);
     Assert.Equal(3, @event.ScanStage);
     Assert.Equal("federation_fighter", @event.ShipType);
     Assert.Equal(ShipModel.Npc, @event.ShipModel);
     Assert.Equal("F63 Condor", @event.ShipLocalised);
     Assert.Equal("$ShipName_Police_Federation;", @event.PilotName);
     Assert.Equal("Федеральная служба безопасности", @event.PilotNameLocalised);
     Assert.Equal(CombatRank.MostlyHarmless, @event.PilotRank);
     Assert.Equal("Independent HIP 29241 Green Party", @event.Faction);
     Assert.Equal("Clean", @event.LegalStatus);
     Assert.Equal(100.000000, @event.ShieldHealth, 6);
     Assert.Equal(100.000000, @event.HullHealth, 6);
     Assert.True(@event.TargetLocked);
 }
Exemple #3
0
        private void handleShipTargetedEvent(ShipTargetedEvent @event)
        {
            // System targets list may be 're-built' for the current system from Log Load
            string currentSystem = EDDI.Instance?.CurrentStarSystem?.systemname;

            if (targetSystem == null)
            {
                targetSystem = currentSystem;
            }
            if (@event.targetlocked && currentSystem == targetSystem)
            {
                Target target = new Target();
                if (@event.scanstage >= 1)
                {
                    target = shipTargets.FirstOrDefault(t => t.name == @event.name);
                    if (target == null)
                    {
                        target = new Target(@event.name, @event.CombatRank, @event.ship);
                        shipTargets.Add(target);
                    }
                }
                if (@event.scanstage >= 3 && target.LegalStatus == null)
                {
                    target.faction = @event.faction;
                    Faction faction = bgsService.GetFactionByName(@event.faction);
                    target.Power = @event.Power ?? Power.None;

                    // Prioritize power allegiance (when present) over faction
                    target.Allegiance = @event.Power != Power.None
                        ? @event.Power?.Allegiance
                        : faction?.Allegiance;

                    target.LegalStatus = @event.LegalStatus;
                    target.bounty      = @event.bounty;
                }
            }
        }
Exemple #4
0
        private void handleShipTargetedEvent(ShipTargetedEvent @event)
        {
            // System targets list may be 're-built' for the current system from Log Load
            string currentSystem = EDDI.Instance?.CurrentStarSystem?.systemname;

            if (targetSystem == null)
            {
                targetSystem = currentSystem;
            }
            if (@event.targetlocked && currentSystem == targetSystem)
            {
                Target target = new Target();
                if (@event.scanstage >= 1)
                {
                    target = shipTargets.FirstOrDefault(t => t.name == @event.name);
                    if (target == null)
                    {
                        target = new Target(@event.name, @event.CombatRank, @event.ship);
                        shipTargets.Add(target);
                    }
                }
                if (@event.scanstage >= 3 && target.LegalStatus == null)
                {
                    target.faction = @event.faction;
                    if (@event.faction != null)
                    {
                        Faction faction = DataProviderService.GetFactionByName(@event.faction);
                        Power   power   = Power.FromEDName(@event.faction);
                        target.Power      = power ?? Power.None;
                        target.Allegiance = power?.Allegiance ?? faction?.Allegiance;
                    }
                    target.LegalStatus = @event.LegalStatus;
                    target.bounty      = @event.bounty;
                }
            }
        }
Exemple #5
0
 internal void InvokeShipTargetedEvent(ShipTargetedEvent arg)
 {
     ShipTargetedEvent?.Invoke(this, arg);
 }
Exemple #6
0
 internal void InvokeShipTargetedEvent(ShipTargetedEvent arg) => ShipTargetedEvent?.Invoke(null, arg);