public void RunTick(PlayerTickData tickData = null)
 {
     if (tickData != null)
     {
         if (tickData.dataType == (int)TickDataType.SpawnPlayer)
         {
             SpawnPlayerTickData spawnData = tickData.data as SpawnPlayerTickData;
             CharacterInfo       charInfo  = new CharacterInfo((ClassType)spawnData.playerClass, (Weapon)spawnData.weapon, Boots.Armor);
             spawnPlayer(charInfo);
         }
         else if (tickData.dataType == (int)TickDataType.SpawnEnemy)
         {
             if (TickManager.Instance.Tick % 50 == 0)
             {
                 SpawnEnemyTickData spawnData = tickData.data as SpawnEnemyTickData;
                 Vector3            position  = new Vector3(spawnData.xPos, spawnData.yPos, spawnData.zPos);
             }
         }
         else if (tickData.dataType == (int)TickDataType.HealthPack)
         {
             HealthPackData hpData = tickData.data as HealthPackData;
             dropItem(new Vector3(hpData.xPos, hpData.yPos, 0));
         }
     }
 }
    public void SendTick()
    {
        if (player == null)
        {
            PlayerTickData data = new PlayerTickData();
            data.dataType = (int)TickDataType.SpawnPlayer;
            SpawnPlayerTickData spawnData = new SpawnPlayerTickData();
            spawnData.peerId      = 0;
            spawnData.playerClass = (int)charInfo.charClass;
            spawnData.weapon      = (int)Weapon.Blaster;
            data.data             = spawnData;

            byte[] byteData = ObjectToByteArray <PlayerTickData>(data);
            tickList.Add(byteData);
            TickManager.Instance.ReceiveTick(byteData);
        }
        else
        {
            PlayerTickData data = new PlayerTickData();
            data.dataType = (int)TickDataType.SpawnEnemy;
            SpawnEnemyTickData spawnData = new SpawnEnemyTickData();
            Vector3            randomPos = player.transform.position + new Vector3(9, -2 + Random.value * 4);
            spawnData.xPos = randomPos.x;
            spawnData.yPos = randomPos.y;
            spawnData.zPos = randomPos.z;
            data.data      = spawnData;

            byte[] byteData = ObjectToByteArray <PlayerTickData>(data);
            tickList.Add(byteData);
            TickManager.Instance.ReceiveTick(byteData);
        }
    }
Пример #3
0
    public IEnumerator DropItem()
    {
        yield return(new WaitForSeconds(3));

        Debug.Log(TickManager.Instance.Tick);
        Random.InitState(TickManager.Instance.Tick);
        int dropNum = Random.Range(0, dropNumber);

        if (dropNum == 1)
        {
            PlayerTickData itemData = new PlayerTickData();
            itemData.peerId   = 10000;
            itemData.dataType = (int)TickDataType.HealthPack;
            HealthPackData hpData = new HealthPackData();
            hpData.xPos   = transform.position.x;
            hpData.yPos   = transform.position.y;
            itemData.data = hpData;

            byte[] byteData = ObjectToByteArray <PlayerTickData>(itemData);
            tickList.Add(byteData);
            TickManager.Instance.ReceiveTick(byteData);
            Debug.Log("you get an item");
        }
        else
        {
            Debug.Log("no item for you");
        }
        Destroy(gameObject);
    }
    public void UpdateTick(List <byte[]> tickDataList)
    {
        PlayerTickData receivedData = null;

        foreach (var tickByte in tickDataList)
        {
            PlayerTickData data = ByteArrayToObject <PlayerTickData>(tickByte);
            RunTick(data);
        }
        SendTick();
    }