示例#1
0
        private void drawNewCustomObservation(DirectObservation observation)
        {
            DrawTrack(observation);
            var track = tracks[observation.Entity];

            loadSplatsAt(track.EstimatedPostion, "XMarker_Icon");
            DrawTrackLine(track.EstimatedPostion, Schussskizze.PlayerPostion, 0.5f);
        }
示例#2
0
 private void onObservationChanded(DirectObservation observation)
 {
     determineMostDistance(observation.Entity);
     Debug.Log("Schussskizze - Observation Changed");
     if (OnObservationChanged != null)
     {
         OnObservationChanged(observation);
     }
 }
示例#3
0
 private void onObservationRemoved(Observator observer, DirectObservation observation)
 {
     //Debug.Log("Schussskizze - Observation removed! Name: " + observation.Entity.Name + " (total: " + playerShip.GetObservationsDirect().Count + ")");
     if (observations.Contains(observation))
     {
         //Debug.Log("Observation in list removed!");
         //Do nothing
     }
 }
示例#4
0
 private void logObservation(DirectObservation observation)
 {
     Debug.Log("Schussskizze - Observation: Name: " + observation.Entity.Name + ", Catagory: " + observation.Entity.Category + "\n" +
               "Estimated Speed: " + observation.EstimatedVelocity + "\n" +
               "Estimated Course: " + observation.EstimatedCourse + "\n" +
               "Estimated Distance: " + observation.EstimatedDistance + "\n" +
               "Entity Position: " + observation.Entity.transform.position.ToString() + "\n" +
               "Entity Distance: " + (observation.Entity.transform.position - playerShip.transform.position).magnitude + " meters" + "\n" +
               "Crew Accuracy: " + playerShip.CrewAccuracy.Value
               );
 }
示例#5
0
        void DrawTrack(DirectObservation observation)
        {
            var known_track = tracks.ContainsKey(observation.Entity);

            if (known_track)
            {
                var last_time = new DateTime(tracks[observation.Entity].LastObservationTime);
                var time_now  = new DateTime(gameTime.StoryTicks);
                var span      = time_now.Subtract(last_time);
                if (span.TotalSeconds > Schussskizze.TrackPositionUpdateTime)
                {
                    var track            = tracks[observation.Entity];
                    var current_position = new Vector3(
                        observation.Entity.SandboxEntity.Position.x,
                        observation.Entity.SandboxEntity.Position.y,
                        0
                        );
                    var last_estimate = track.EstimatedPostion;
                    estimatePostion(ref track);
                    DrawTrackLine(last_estimate, track.EstimatedPostion, 1f);
                    track.LastKnowPosition    = current_position;
                    track.LastObservationTime = gameTime.StoryTicks;
                    track.Observation         = observation;
                }
            }
            else if (!known_track)
            {
                var track = new Track();
                track.LastObservationTime = gameTime.StoryTicks;
                track.Observation         = observation;
                track.LastKnowPosition    = new Vector3(
                    observation.Entity.SandboxEntity.Position.x,
                    observation.Entity.SandboxEntity.Position.y,
                    0
                    );
                estimatePostion(ref track);
                Debug.Log("Track Error: " + track.Error);
                Debug.Log("Track Estimated Position: " + track.EstimatedPostion);
                Debug.Log("Track LastKnowPositon: " + track.LastKnowPosition);
                tracks.Add(observation.Entity, track);
                loadSplatsAt(track.EstimatedPostion, "EnemyContactPoint");
                observation.EstimationChanged += drawNewCustomObservation;
            }
        }
示例#6
0
        private void onObservationAdded(Observator observer, DirectObservation observation)
        {
            var cat = observation.Entity.Category;

            // ignore aircraft for now
            if (cat == "Aircraft" || cat == "Carrier-Borne Aircraft")
            {
                return;
            }

            if (observation.Entity.Country.GetRelationWith(playerShip.Country) == Country.Relation.Enemy)
            {
                observation.Changed += onObservationChanded;
                observations.Add(observation);
                determineMostDistance(observation.Entity);
                if (OnObservationAdded != null)
                {
                    OnObservationAdded(observation);
                }
            }
        }
示例#7
0
 private void onObservationChanged(DirectObservation observation)
 {
     DrawTrack(observation);
 }