private void OnTroopEvalDone(TroopEvaluationResultEvent event_)
    {
        activeEventlist = event_.EvaluationData;

        //create planet dictionary for this round
        planetsWithEvent = new Dictionary<PlanetData, EvaluationOutcome>();
        foreach(AttackEvaluation ae in activeEventlist){

            if (!planetsWithEvent.ContainsKey(ae.Planet))
            {
                if (ae.Type != EvaluationType.AttackViewer)
                {
                    planetsWithEvent.Add(ae.Planet, ae.Outcome);
                }
                else
                {
                    if (SettingsController.GetInstance().dataFile.fogDist == 0)
                    {
                        planetsWithEvent.Add(ae.Planet, ae.Outcome);
                    }
                }
            }
            else
            {
                planetsWithEvent.TryGetValue(ae.Planet, out outData);
                if (ae.Outcome == EvaluationOutcome.Lost && outData != EvaluationOutcome.Lost)
                {
                    planetsWithEvent[ae.Planet] = ae.Outcome;
                }
                else if(ae.Outcome == EvaluationOutcome.Success && outData == EvaluationOutcome.Neutral){
                    planetsWithEvent[ae.Planet] = ae.Outcome;
                }
            }
        }

        MessageHub.Publish(new SetPlanetSignEvent(this, planetsWithEvent));
        ShowEventList(null);
    }
 private void PublishTroopEvaluation(List<AttackEvaluation> evaluations)
 {
     TroopEvaluationResultEvent evt = new TroopEvaluationResultEvent(this, evaluations);
     MessageHub.Publish<TroopEvaluationResultEvent>(evt);
     MessageHub.Publish<PlanetUpdateEvent>(new PlanetUpdateEvent(this));     // Update graphical planet representations
 }