void SendGameTurnResult(int turnN) { Ag.LogIntense(2, true); //string myRoll = ((TurnNum % 2 == 1) ^ (MySocket.IsGameHost.Value)) ? "KICK" : "KEEP"; string myRoll; // = ((TurnNum % 2 == 1) ^ (!MySocket.IsGameHost.Value)) ? "KICK" : "KEEP"; if (TurnNum % 2 == 1) { myRoll = MySocket.IsGameHost.Value ? "KICK" : "KEEP"; } else { myRoll = MySocket.IsGameHost.Value ? "KEEP" : "KICK"; } MyUser.WAS.GameSessionKey = MySocket.sessionKey; NodeGameTurnRslt gameTurn = new NodeGameTurnRslt() { roll = myRoll, direction = Direction, skill = Skill, turnNum = turnN, sessionKey = MySocket.sessionKey, grade = CurMyCard.WAS.grade, level = CurMyCard.WAS.level }; Ag.LogString(MySocket.mName + " NodeAction :: GameTurn " + TurnNum + " My Roll is " + myRoll); Ag.LogString(MySocket.mName + " NodeAction :: GameTurn Send >>> my <Dir/Skl> : <<< " + Direction + " / " + Skill + " >>>"); MySocket.ActionGameObj(gameTurn); Ag.LogString(MySocket.mName + " NodeAction :: GameTurn _____ Sent !!! "); Ag.LogIntense(2, false); }
public void GameTurnBot(int turnN, AmCard EnemCard) { //Ag.LogIntenseWord (" Value at Bot " + " " + Direction + " " + " " + Skill + " " + Ag.mgEnemDirec + " " + Ag.mgEnemSkill); //Ag.LogDouble (" NodeActions :: GameTurnBot ... turn : " + turnN + " EnemCard : " + EnemCard.WAS.grade + " / " + EnemCard.WAS.level); NodeGameTurnRslt gameTurn = new NodeGameTurnRslt() { roll = Ag.mgIsKick ? "KICK" : "KEEP", direction = Direction, skill = Skill, turnNum = turnN, sessionKey = MySocket.sessionKey, grade = CurMyCard.WAS.grade, level = CurMyCard.WAS.level }; MySocket.arrGameSend.Add(gameTurn); NodeGameTurnRslt enemTurn = new NodeGameTurnRslt() { roll = !Ag.mgIsKick ? "KICK" : "KEEP", direction = Ag.mgEnemDirec, skill = Ag.mgEnemSkill, turnNum = turnN, sessionKey = MySocket.sessionKey, grade = EnemCard.WAS.grade, level = EnemCard.WAS.level }; MySocket.arrGameRcvd.Add(enemTurn); Ag.LogIntenseWord(" NodeActions :: GameTurnBot arrGameSend.count : " + MySocket.arrGameSend.Count + " Rcvd : " + MySocket.arrGameRcvd.Count); }
public void GetEnemyDirectSkill(out int direct, out int skill) { if (MySocket.arrGameRcvd.Count == 0) { direct = skill = 0; return; } NodeGameTurnRslt enemRslt = (NodeGameTurnRslt)MySocket.arrGameRcvd.GetLastMember(); direct = enemRslt.direction; skill = enemRslt.skill; }
public void GameScoreAddNewTurn(int[] pUnifCstmInfo = null) { // 1 at MySocket.arrGameSend, MySocket.arrGameRcvd each ... Ag.LogStartWithStr(7, " NodeAction :: GameScoreAddNewTurn "); bool isMyKick; Ag.LogString(" IsGameHost ... " + MySocket.IsGameHost); isMyKick = ((TurnNum % 2 == 0) ^ (MySocket.IsGameHost.Value)); Ag.LogString(MySocket.mName + " NodeActions :: GameScore . . . . . . . . ________________________________ "); Ag.LogString(MySocket.mName + " NodeActions :: GameScore . . . . . . . . " + TurnNum.LogWith("Turn") + MySocket.IsGameHost.LogWith("Host? ") + isMyKick.LogWith(" MyKick? ")); Dlgt_Gen_Obj_Bool <NodeGameBase> dlgtTurnRslt = ( NodeGameBase pObj) => { return(pObj.msgType == "TURN_RSLT"); }; NodeGameTurnRslt kickNodeRslt, keepNodeRslt; NodeGameTurnRslt myRslt = (NodeGameTurnRslt)MySocket.arrGameSend.GetLastMemberWithCond(dlgtTurnRslt); NodeGameTurnRslt enRslt = (NodeGameTurnRslt)MySocket.arrGameRcvd.GetLastMemberWithCond(dlgtTurnRslt); Ag.LogString(" arrGameSend.count : " + MySocket.arrGameSend.Count + " Rcvd : " + MySocket.arrGameRcvd.Count); bool kickerWin; if (isMyKick) { Ag.LogString(" >>> I am Kicker "); kickNodeRslt = myRslt; keepNodeRslt = enRslt; } else { Ag.LogString(" >>> I am Keeper "); kickNodeRslt = enRslt; keepNodeRslt = myRslt; } kickerWin = AgUtilGame.DidKickerWinThisTurn(kickNodeRslt.direction, kickNodeRslt.skill, keepNodeRslt.direction, keepNodeRslt.skill); // 골/노골 결정 Ag.LogString(isMyKick.ShowBool(" I am ", "Kicker", "Keeper") + kickerWin.ShowBool(" Turn : ", "GoalIn", "NoGoal") + " My Dir/Skl " + myRslt.direction + " / " + myRslt.skill + " Enem Dir/Skl " + enRslt.direction + " / " + enRslt.skill); Ag.LogString(" Direction in Ag.. Dir / Skl : " + Ag.mgDirection + " / " + Ag.mgSkill); int[] myUnCm, enUnCm; if (pUnifCstmInfo == null) { myUnCm = new int[] { 1, 1, 1, 0 }; enUnCm = new int[] { 1, 1, 1, 0 }; } else { myUnCm = new int[] { pUnifCstmInfo [0], pUnifCstmInfo [1], pUnifCstmInfo [2], pUnifCstmInfo [3] }; enUnCm = new int[] { pUnifCstmInfo [4], pUnifCstmInfo [5], pUnifCstmInfo [6], pUnifCstmInfo [7] }; } myGameLogic.AddNewTurn(myRslt, enRslt, 0, myUnCm); enGameLogic.AddNewTurn(enRslt, myRslt, 0, enUnCm); GameFinish = myGameLogic.DidIFinalWin(enGameLogic); if (GameFinish.HasValue) { Ag.LogIntenseWord(" Game is Finished !!!!! "); float mS, mE; GetTotalScore(out mS, out mE); Ag.LogString(MySocket.mName + " Total Score :: " + mS + " / " + mE); } int enemD, enemS; GetEnemyDirectSkill(out enemD, out enemS); Ag.LogString(MySocket.mName + " Enemy Direct : " + enemD + " Skill : " + enemS); Ag.LogString(MySocket.mName + " " + MySocket.IsGameHost.ShowBool(" I am ", "Host", "Vstr") + " Kicker Win ? " + kickerWin); Ag.LogString(MySocket.mName + " My Score : " + myGameLogic.CurScore + " Enemy Score : " + enGameLogic.CurScore); Ag.LogString(MySocket.mName + " Me : Enemy Goals << " + myGameLogic.GetGoalNumber() + " : " + enGameLogic.GetGoalNumber() + GameFinish.ShowBool(" GameFinish :", "Win", "Lose")); Ag.LogString(MySocket.mName + " NodeActions :: GameScore . . . . . . . . ________________________________ End ________"); Ag.LogIntense(7, false); }
void ResGameMsg(IMessage theData) { // {"name":"RES_GAMEMSG","args":[{"status":"FAIL","code":"ERR_NOOPPONENT"}] TimerStop(); Ag.LogStartWithStr(2, mName + " ResGameMsg Rcvd ... " + IsGameHost.Value.ShowBool("I am ", "Host", "Vstr") + "\t\t\t\t >>> Re Action <<<"); JSONNode argsJ = GetArguments(theData, mName); try { gameMsgCode = argsJ ["code"]; } catch { Ag.LogString(mName + " ResGameMsg :: No code "); } if (NoOpponentProcess(gameMsgCode)) { return; } JSONNode gData = argsJ ["data"];// JsonMapper.ToObject (argsJ ["data"]); string msgType = gData ["msgType"]; gData = gData ["content"]; string dodgeStr = gData.ToString().DodgeBackSlashQuoMark(); (" ResGameMsg :: dodgeStr ::: " + dodgeStr).HtLog(); dodgeStr = dodgeStr.Substring(1, dodgeStr.Length - 2); gData = JSON.Parse(dodgeStr); (" ResGameMsg :: gData ::: " + gData.ToString()).HtLog(); Ag.LogString(mName + " msgType >>>>> " + msgType + " <<<<< "); NodeGameBase theObj = null; switch (msgType) { case "GameStartMsg": GameStartMsg.Enem = true; return; case "SceneLoadComplete": SceneLoadComplete.Enem = true; return; case "RematchApply": ReMatchSent.Enem = true; return; case "RematchRefuse": ReMatchRefuseSend.Enem = true; return; case "AmUser": gData = JSON.Parse(dodgeStr.RecoverFromDodgeStr("@#@")); Ag.LogString(" ResGameMsg :: " + gData.ToString()); EnemyUser = new AmUser(true, "DodgeDeviceID"); EnemyUser = (new NodeAmUser()).ParseFrom(gData); " NodeSocket :: ResGameMsg :: case ''AmUser'' >>>>> Parsing Ended ..... ".HtLog(); //AgStt.IsGaming = EnemyUser.Parsed = true; //AgStt.IsGaming = true; Ag.GameStt.EnemyInfoExchangeParsed(" AmUser "); if (!IsGameHost.Value) { ExchangeInfo(); } //EnemyUser.ShowMyself (); return; case "PREPARE": AgStt.EnemyNodePrepareObj = new NodeGamePrepare(); AgStt.MyNodePrepareObj = new NodeGamePrepare(); AgStt.EnemyNodePrepareObj.Parse(gData); AgStt.EnemyNodePrepareObj.ShowMyself(); if (!IsGameHost.Value) { if (AgStt.EnemyNodePrepareObj.sessionKey != null && AgStt.EnemyNodePrepareObj.sessionKey.Length > 5) { sessionKey = MyUser.WAS.GameSessionKey = AgStt.EnemyNodePrepareObj.sessionKey; } ActionGamePrepare(AgStt.MyNodePrepareObj); } return; case "TURN_RSLT": Ag.LogString(mName + " Parsing NodeGameTurnRslt Object "); theObj = new NodeGameTurnRslt(); ((NodeGameTurnRslt)theObj).Parse(gData); //theObj = JsonMapper.ToObject<NodeGameTurnRslt> (gData.ToJson ()); if (!IsGameHost.Value) // 받는 부분 { sessionKey = ((NodeGameTurnRslt)theObj).sessionKey; } Ag.LogString(mName + " Parsing Data" + theObj.ToString()); Ag.LogString(mName + " Parsing NodeGameTurnRslt Object ... End "); break; case "HOST_SEND": Ag.LogString(mName + " Parsing Game Void Received ... End "); Ag.LogIntense(2, false); //theObj = JsonMapper.ToObject<NodeGameHostSend> (gData.ToJson ()); return;//break; case "REVERSE": Ag.LogString(mName + " ResGameMsg REVERSE ... End "); dlgtReverseHostVstr(); return; case "GOLDENBALL": Ag.LogString(mName + " ResGameMsg GOLDENBALL " + gData ["BallKind"].ToString()); Ag.LogString(mName + " ResGameMsg GOLDENBALL ... End "); return; } Ag.LogString(mName + " ResGameMsg Rcvd ... End "); arrGameRcvd.Add(theObj); dlgtGameGotResult(); Ag.LogIntense(2, false); }
public void GameLogic() { Ag.LogString("// _////////////////////////////////////////////////_ _____ Test _____ Score _____"); NodeGameTurnRslt my, en; int kickDir = 0, kickSkl, defnDir, defnSkl; bool rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2); rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, kickDir, 2); rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2); rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2); rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2); rsss = AgUtilGame.DidKickerWinThisTurn(kickDir++, 3, 1, 2); Ag.LogIntenseWord(" Test ::: " + rsss); AmGameLogic myLogic = new AmGameLogic("League_3", "League_3"); // 5 - 3 => 2... 3 - 5 => 0 .... !!!! AmGameLogic enLogic = new AmGameLogic("League_3", "League_3"); Ag.LogStartWithStr(10, " Round 1"); my = new NodeGameTurnRslt() { roll = "KICK", direction = 4, skill = 1, grade = "A", level = 2, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KEEP", direction = 0, skill = 0, grade = "C", level = 2, enchant = 0 }; myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 1, 0, 0, 0, 0 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 0, new int[] { 0, 0, 0, 0, 1, 1, 1, 1 }); myLogic.ShowMySelf(); enLogic.ShowMySelf(); myLogic.GetTotalScore().ToString().HtLog(); enLogic.GetTotalScore().ToString().HtLog(); my = new NodeGameTurnRslt() { roll = "KEEP", direction = 0, skill = 0, grade = "C", level = 2, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KICK", direction = 4, skill = 1, grade = "A", level = 2, enchant = 0 }; myLogic.AddNewTurn(my, en, 0, new int[] { 0, 0, 0, 0, 1, 1, 1, 1 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 1, 0, 0, 0, 0 }); myLogic.ShowMySelf(); enLogic.ShowMySelf(); Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + " Round : " + myLogic.TotalRound + " TurnBonus : " + myLogic.UiTurnBonus); myLogic.GetTotalScore().ToString().HtLog(); enLogic.GetTotalScore().ToString().HtLog(); Ag.LogNewLine(10); // N:N => 0:0 Ag.LogStartWithStr(10, " Round 2"); my = new NodeGameTurnRslt() { roll = "KICK", direction = 4, skill = 1, grade = "B", level = 7, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KEEP", direction = 1, skill = 1, grade = "B", level = 10, enchant = 0 }; myLogic.AddNewTurn(my, en, 3, new int[] { 1, 3, 1, 3, 1, 1, 1, 0 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 3, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); my = new NodeGameTurnRslt() { roll = "KEEP", direction = 2, skill = 1, grade = "D", level = 0, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KICK", direction = 2, skill = 1, grade = "C", level = 1, enchant = 0 }; myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); myLogic.ShowMySelf(); enLogic.ShowMySelf(); Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + " Round : " + myLogic.TotalRound + " TurnBonus : " + myLogic.UiTurnBonus); // G:G => 1:1 Ag.LogStartWithStr(10, " Round 3"); my = new NodeGameTurnRslt() { roll = "KICK", direction = 4, skill = 1, grade = "B", level = 7, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KEEP", direction = 1, skill = 1, grade = "B", level = 10, enchant = 0 }; myLogic.AddNewTurn(my, en, 2, new int[] { 1, 3, 1, 3, 1, 1, 1, 0 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 2, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); my = new NodeGameTurnRslt() { roll = "KEEP", direction = 0, skill = 2, grade = "D", level = 0, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KICK", direction = 1, skill = 1, grade = "C", level = 1, enchant = 0 }; myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); myLogic.ShowMySelf(); enLogic.ShowMySelf(); Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + " Round : " + myLogic.TotalRound + " TurnBonus : " + myLogic.UiTurnBonus); bool?finalWin = myLogic.DidIFinalWin(enLogic); if (finalWin.HasValue) { Ag.LogDouble(" >>>>>>>>>> Game is Over Did I Win ? >> " + finalWin.Value); } // G:G => 1:1 Ag.LogStartWithStr(10, " Round 4"); my = new NodeGameTurnRslt() { roll = "KICK", direction = 4, skill = 1, grade = "B", level = 7, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KEEP", direction = 1, skill = 1, grade = "B", level = 10, enchant = 0 }; myLogic.AddNewTurn(my, en, 2, new int[] { 1, 3, 1, 3, 1, 1, 1, 0 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 2, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); myLogic.ShowMySelf(); enLogic.ShowMySelf(); Ag.LogDouble(" TotalScore : " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + " Round : " + myLogic.TotalRound + " TurnBonus : " + myLogic.UiTurnBonus); finalWin = myLogic.DidIFinalWin(enLogic); if (finalWin.HasValue) { Ag.LogDouble(" >>>>>>>>>> Game is Over Did I Win ? >> " + finalWin.Value); } my = new NodeGameTurnRslt() { roll = "KEEP", direction = 1, skill = 2, grade = "D", level = 0, enchant = 0 }; en = new NodeGameTurnRslt() { roll = "KICK", direction = 0, skill = 1, grade = "C", level = 1, enchant = 0 }; myLogic.AddNewTurn(my, en, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); // My Kick, Goal.. Win enLogic.AddNewTurn(en, my, 0, new int[] { 1, 1, 1, 0, 1, 1, 1, 0 }); myLogic.ShowMySelf(); enLogic.ShowMySelf(); Ag.LogDouble(" TotalScore : Me >> " + myLogic.GetTotalScore() + " Cere : " + myLogic.CeremonyBonus + " Round : " + myLogic.TotalRound + " TurnBonus : " + myLogic.UiTurnBonus); Ag.LogDouble(" TotalScore : En >> " + enLogic.GetTotalScore() + " Cere : " + enLogic.CeremonyBonus + " Round : " + enLogic.TotalRound + " TurnBonus : " + enLogic.UiTurnBonus); // bool? finalWin = myLogic.DidIFinalWin (enLogic); // if (finalWin.HasValue) // Ag.LogIntenseWord (" >>>>>>>>>> Game is Over Did I Win ? >> " + finalWin.Value); // // (myLogic.GetTotalScore ().LogWith (" My Total Score ") + enLogic.GetTotalScore ().LogWith (" Enemy Score")).HtLog (); // (myLogic.SemiTotal.LogWith ("myLogic.SemiTotal") + " UI Turn Bonus " + myLogic.UiTurnBonus).HtLog (); // Ag.LogNewLine (2); }