예제 #1
0
    private void OnCharacterUpdateFromServer(string characterpacket)
    {
        Debug.Log(characterpacket);
        CharacterDataMini updatedMini = CharacterSerializerManager.ReadCharacterMiniXML(characterpacket);

        Debug.Log(updatedMini.name);
        InitiativeManager.Instance.HandleCharacterUpdateFromServer(updatedMini);
    }
예제 #2
0
 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);
        }
    }
예제 #5
0
 public bool IsSameOriginDevice(CharacterDataMini charDataMini)
 {
     return(charDataMini.uniqueID == characterDataMini.uniqueID);
 }
예제 #6
0
 public void UpdateCharacterDataMini(CharacterDataMini charDataMini)
 {
     characterDataMini = charDataMini;
 }
예제 #7
0
 public InitiativeCharacter(CharacterDataMini charDataMini)
 {
     characterDataMini = charDataMini;
     initiativeNumber  = 0;
 }
예제 #8
0
 public InitiativeCharacter()
 {
     characterDataMini = new CharacterDataMini();
     initiativeNumber  = 0;
 }
예제 #9
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);
            }
        }
    }