public void ProcessState() { if (processCtr % msgRate == 0) { //Send scoreboard updates IEnumerator byStat = playerStatsById.GetEnumerator(); byStat.Reset(); while (byStat.MoveNext()) { KeyValuePair <StatBoardEnum, Dictionary <int, int> > curKV = (KeyValuePair <StatBoardEnum, Dictionary <int, int> >)byStat.Current; StatBoardEvent statBoard = new StatBoardEvent(curKV.Key, curKV.Value); eventMgr.SendEvent(statBoard); } } //calculate ship stats //TO-DO foreach (Ship shipOne in shipMgr.ShipTable.Values) { foreach (Ship shipTwo in shipMgr.ShipTable.Values) { Vector3 distance = shipOne.ShipState.Orientation.Inverse() * (shipOne.Position - shipTwo.Position); if (distance.z < 0 && distance.x * distance.x + distance.y * distance.y < distance.z * distance.z && distance.Length < FOLLOW_DISTANCE) { playerStatsById[StatBoardEnum.PositiveTime][shipTwo.ID]++; playerStatsById[StatBoardEnum.NegativeTime][shipOne.ID]++; } } } processCtr++; }
private void handleStatUpdate(GameEvent e) { try { StatBoardEvent sbe = (StatBoardEvent)e; if (sbe.Stat == StatBoardEnum.PositiveTime) { int myScore; if (sbe.ValueById.TryGetValue(playerId, out myScore)) { TextRenderer.UpdateTextBox("score", "Game Mode: " + GameModeFactory.GetName(gameMode) + "\nScore: " + myScore); } } } catch (Exception err) { Util.RecordException(err); } }
public void ProcessState() { if (processCtr % msgRate == 0) { //Send scoreboard updates IEnumerator byStat = playerStatsById.GetEnumerator(); byStat.Reset(); while (byStat.MoveNext()) { KeyValuePair<StatBoardEnum, Dictionary<int, int>> curKV = (KeyValuePair<StatBoardEnum, Dictionary<int, int>>)byStat.Current; StatBoardEvent statBoard = new StatBoardEvent(curKV.Key, curKV.Value); eventMgr.SendEvent(statBoard); } } //calculate ship stats foreach (Ship shipOne in shipMgr.ShipTable.Values) { foreach (Ship shipTwo in shipMgr.ShipTable.Values) { Vector3 distance = shipOne.ShipState.Orientation.Inverse() * (shipOne.Position - shipTwo.Position); if (distance.z < 0 && distance.x * distance.x + distance.y * distance.y < distance.z *distance.z && distance.Length < FOLLOW_DISTANCE) { playerStatsById[StatBoardEnum.PositiveTime][shipTwo.ID]++; playerStatsById[StatBoardEnum.NegativeTime][shipOne.ID]++; } } } processCtr++; }