private void initAnswerUI(List <OrderedAnswer> orderedAnswers) { RadialAnswerContainer contain = new UIElements.RadialAnswerContainer(_radialUICenter, _radialProgress, 500f, 150f , _lastQestionText); contain.TouchCenterCallback = fastForwardAnswerWait; _radialUI = contain; bool best = true; int count = 0; foreach (OrderedAnswer answer in orderedAnswers) { if (count >= 4) { break; } UIElements.PlayerResultUI ansUI = new UIElements.PlayerResultUI( answer.id , best , "answer : " + (answer.value.ToString() == "void" ? "Timeout" : answer.value.ToString()) , _playerUIBack); _radialUI.ContainedUIs.Add(ansUI); best = false; ++count; } _radialUI.Position = MyGame.ScreenCenter; }
private void onBattleResult(SocketIOClient.Messages.IMessage data, Commander command, int fightZone) { Console.WriteLine("\nonBattleResult\n"); Console.WriteLine("\n" + data.Json.ToJsonString() + "\n"); BattleResult br; BattleResultRoot root = Newtonsoft.Json.JsonConvert.DeserializeObject <BattleResultRoot>(data.Json.ToJsonString()); br = root.args[0]; Console.WriteLine("winner : " + br.winner + " looser : " + br.loser + " attacker : " + command.Owner + " fightzone : " + fightZone); //Display answers List <OrderedAnswer> answers = new List <OrderedAnswer>(); OrderedAnswer answerWin = new OrderedAnswer(); answerWin.id = br.winner; answerWin.time = 0f; answerWin.value = br.winVal; OrderedAnswer answerLoss = new OrderedAnswer(); answerLoss.id = br.loser; answerLoss.time = 0f; answerLoss.value = br.lossVal; answers.Add(answerWin); answers.Add(answerLoss); _radialUI = null; initAnswerUI(answers); clearProgressAndDialog(); Action endCallback = delegate() { processBattleResults(br.winner, br.loser, fightZone, command); }; _timeSinceAnswerDisplayStart = 0f; UpdateAction = delegate(float dt) { answersDisplayUpdate(dt, endCallback); }; }
private void processBattleResults(int winner, int loser, int fightZone, Commander command) { Console.WriteLine("process battle results"); lock (_commanders) { command.PositionLocked = true; _radialUI = null; clearProgressAndDialog(); Action endCallback; List <Commander> commandsToMove = new List <Commander>(); List <Vector2> starts, ends; starts = new List <Vector2>(); ends = new List <Vector2>(); if (command.Owner == winner) { _map.setZoneOwner(fightZone, command.Owner); foreach (Commander looserCommand in _commanders) { if (looserCommand.Owner == loser && _map.getZoneAt(looserCommand.Position) == fightZone) { commandsToMove.Add(looserCommand); int newZone = _map.getClosestZoneOfOwner(loser, fightZone); looserCommand.CurrentZone = newZone; ends.Add(_map.getCenterOfZone(newZone)); starts.Add(looserCommand.Position); looserCommand.PositionLocked = true; } } endCallback = delegate() { ServerCom.Instance.Socket.Emit("territoryWon", new { zone = fightZone - 1, owner = command.Owner }); UpdateAction = emptyUpdate; ServerCom.Instance.sendSimpleMessage("nextPhase3"); Console.WriteLine("\n\n send nextPhase3\n"); }; } else { Console.WriteLine("\nbattle lost, fall back to " + command.AttackStartZone + "\n"); //put attacker back to his start zone //command.Position = _map.getCenterOfZone(command.AttackStartZone); commandsToMove.Add(command); starts.Add(command.Position); command.CurrentZone = command.AttackStartZone; ends.Add(_map.getCenterOfZone(command.AttackStartZone)); endCallback = delegate() { UpdateAction = emptyUpdate; ServerCom.Instance.sendSimpleMessage("nextPhase3"); Console.WriteLine("\n\n send nextPhase3\n"); }; } _timeSinceAnimStart = 0f; UpdateAction = delegate(float dt) { animCommanderMoveUpdate(dt, endCallback, starts, ends, commandsToMove); }; } }
private void afterAnswerDisplayPhase1() { ServerCom.Instance.sendSimpleMessage("nextPhase1"); _radialUI = null; UpdateAction = emptyUpdate; }