private void OnCharacterUpdateFromServer(string characterpacket) { Debug.Log(characterpacket); CharacterDataMini updatedMini = CharacterSerializerManager.ReadCharacterMiniXML(characterpacket); Debug.Log(updatedMini.name); InitiativeManager.Instance.HandleCharacterUpdateFromServer(updatedMini); }
public void HandleCharacterUpdateFromServer(CharacterDataMini incomingCharacter) { Debug.Log("HandleCharacterUpdateFromServer"); lock (charactersQueue) { Debug.Log("in lock"); charactersQueue.Add(incomingCharacter); } }
public static String SerializeCharacterForHost(CharacterData characterData) { CharacterDataMini miniChar = new CharacterDataMini(characterData); XmlSerializer xmlSerializer = new XmlSerializer(miniChar.GetType()); using (StringWriter textWriter = new StringWriter()) { xmlSerializer.Serialize(textWriter, miniChar); return(textWriter.ToString()); } }
public static CharacterDataMini ReadCharacterMiniXML(String characterDataMiniString) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(CharacterDataMini)); using (StringReader textReader = new StringReader(characterDataMiniString)) { CharacterDataMini newChar = (CharacterDataMini)xmlSerializer.Deserialize(textReader); //newChar.ImportUpdate(); return(newChar); } }
public bool IsSameOriginDevice(CharacterDataMini charDataMini) { return(charDataMini.uniqueID == characterDataMini.uniqueID); }
public void UpdateCharacterDataMini(CharacterDataMini charDataMini) { characterDataMini = charDataMini; }
public InitiativeCharacter(CharacterDataMini charDataMini) { characterDataMini = charDataMini; initiativeNumber = 0; }
public InitiativeCharacter() { characterDataMini = new CharacterDataMini(); initiativeNumber = 0; }
// Update is called once per frame void Update() { lock (charactersQueue) { while (charactersQueue.Count > 0) { Debug.Log("charactersQueue > 0"); lock (initiativeCharacters) { for (int i = charactersQueue.Count - 1; i >= 0; i--) { bool shouldAdd = true; Debug.Log("charactersQueue loop " + i); foreach (InitiativeCharacter initChar in initiativeCharacters) { Debug.Log("initChar loop"); if (initChar.IsSameOriginDevice(charactersQueue[i])) //same clients character we already have { initChar.UpdateCharacterDataMini(charactersQueue[i]); RefreshButtonText(initChar); Debug.Log("we have this char"); shouldAdd = false; } } if (initiativeCharacters.Count == 0 || shouldAdd) { Debug.Log("we dont have this char"); InitiativeCharacter newInitChar = new InitiativeCharacter(charactersQueue[i]); initiativeCharacters.Add(newInitChar); buttonsNeedToBeRefreshed = true; } charactersQueue.RemoveAt(i); } } } } if (buttonsNeedToBeRefreshed) { RefreshButtons(); } if (Input.GetKeyDown(KeyCode.Home)) { for (int i = 0; i < 10; i++) { CharacterDataMini newCharDat = new CharacterDataMini(); newCharDat.maxHealth = i; newCharDat.ac = i; newCharDat.name = "test" + i.ToString(); newCharDat.currentHealth = i; newCharDat.uniqueID = "host"; newCharDat.tempHealth = 0; InitiativeCharacter newInitChar = new InitiativeCharacter(newCharDat); newInitChar.initiativeNumber = i; newInitChar.isClientCharacter = false; AddCharacter(newInitChar); } } }