public void processMatchAction(NetworkResponse response) { ResponseMatchAction args = response as ResponseMatchAction; short actionID = args.actionID; if (actionID != 0) { TurnAction action = args.action; action.execute(); } Debug.Log("Match Action code:= " + args.actionID); }
public static NetworkResponse Parse(MemoryStream dataStream) { ResponseMatchAction response = new ResponseMatchAction(); response.actionID = DataReader.ReadShort(dataStream); response.intCount = DataReader.ReadInt(dataStream); response.stringCount = DataReader.ReadInt(dataStream); Debug.Log("Action Protocol: length of ints " + response.intCount + " stringCount :" + response.stringCount); for (int i = 0; i < response.intCount; i++) { response.intList.Add(DataReader.ReadInt(dataStream)); } for (int i = 0; i < response.stringCount; i++) { response.stringList.Add(DataReader.ReadString(dataStream)); Debug.Log("Action Protocol : read string " + response.stringList[i] + " actionID: " + response.actionID); } // This could be done in a better way if (response.actionID == NetworkCode.DEAL_CARD) { response.action = new DealCardAction(response.intCount, response.stringCount, response.intList, response.stringList); } else if (response.actionID == NetworkCode.SUMMON_CARD) { response.action = new SummonCardAction(response.intCount, response.stringCount, response.intList, response.stringList); } else if (response.actionID == NetworkCode.END_TURN) { response.action = new EndTurnAction(response.intCount, response.stringCount, response.intList, response.stringList); } else if (response.actionID == NetworkCode.CARD_ATTACK) { response.action = new CardAttackAction(response.intCount, response.stringCount, response.intList, response.stringList); } else if (response.actionID == NetworkCode.TREE_ATTACK) { response.action = new TreeAttackAction(response.intCount, response.stringCount, response.intList, response.stringList); } else if (response.actionID == NetworkCode.QUIT_MATCH) { response.action = new QuitMatchAction(response.intCount, response.stringCount, response.intList, response.stringList); } else if (response.actionID == NetworkCode.MATCH_OVER) { response.action = new MatchOverAction(response.intCount, response.stringCount, response.intList, response.stringList); } else if (response.actionID == NetworkCode.MATCH_STATUS) { response.action = new MatchStatusAction(response.intCount, response.stringCount, response.intList, response.stringList); } return(response); }