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 }