protected virtual void OnAreaUpdateEvent(AreaUpdateEventArgs e) { if (AreaUpdateEvent != null) AreaUpdateEvent.Invoke(this, e); }
/// <summary> /// AreaUpdate Event /// </summary> /// <param name="sender"></param> /// <param name="areaUpdateEventArgs"></param> private void OnAreaUpdateEvent(object sender, AreaUpdateEventArgs areaUpdateEventArgs) { try { var receivedAreaUpdate = areaUpdateEventArgs.Area; if (receivedAreaUpdate == null) return; GuiArea foundArea = this.GUIGameInstance.AreaList.FirstOrDefault(x => x.AreaId.Equals(receivedAreaUpdate.AreaId)); if (foundArea == null) return; if (receivedAreaUpdate.Status == Area.AreaStatus.CorrectlyPassed) { // When correctly passing a field, reset all wrongly passed field foreach (var area in GUIGameInstance.AreaList) { area.Status = Area.AreaStatus.None; } foreach (var area in GUIGameInstance.Path) { GuiArea foundPathArea = this.GUIGameInstance.AreaList.FirstOrDefault(x => x.AreaId.Equals(area.AreaId)); if (area.Equals(foundArea)) { break; } if (foundPathArea != null) foundPathArea.Status = Area.AreaStatus.CorrectlyPassed; } } foundArea.Status = receivedAreaUpdate.Status; } catch (Exception ex) { this.ShowInformationOverlay(ex.Message); } }