Beispiel #1
0
    public void SetData(PayloadModels.Player p, bool isMain)
    {
        _oldPosition = _newPosition;

        Vector3 position = Helpers.String2Vector(p.position);

        // @TODO: Before we figure out Nuke etc, just set z to 0
        position.z = 0;

        _newPosition = _currentMap.Dims.ScaleVector(position);

        // @TODO: Check health and draw as dead if required?
        gameObject.GetComponent <SpriteRenderer>().sprite = Sprite(p);
        // gameObject.transform.SetPositionAndRotation(position, Quaternion.Euler(rotation));

        if (isMain)
        {
            Vector3 rotation = Helpers.String2Vector(p.forward);
            _oldRotation = _newRotation;
            _newRotation = Helpers.Forward2Rotation(rotation);

            _isMain.SetActive(true);
        }
        else
        {
            _isMain.SetActive(false);
        }
    }
Beispiel #2
0
    private void HandlePayload(object _, Listener.NewPayloadEventArgs e)
    {
        if (e.Payload.player.activity == "menu")
        {
            return;
        }

        if (_currentMap != e.Payload.map.name)
        {
            _currentMap = e.Payload.map.name;
            _mapGameObject.GetComponent<CurrentMap>().Changed(e.Payload.map.name);

            _players = new Dictionary<string, GameObject>();
            foreach (GameObject p in GameObject.FindGameObjectsWithTag("Player"))
            {
                Destroy(p);
            }
        }

        if (e.Payload.allplayers == null)
        {
            return;
        }

        foreach (KeyValuePair<string, PayloadModels.Player> kv in e.Payload.allplayers)
        {
            PayloadModels.Player LoopPlayer = kv.Value;
            PayloadModels.Player MainPlayer = e.Payload.player;
            string LoopPlayerSteamID = kv.Key;
            bool SameTeam = LoopPlayer.team == MainPlayer.team;

            // Only draw the allplayers on the _same team_ as player.
            // If we have a loop player, that is not on the spec player's team
            if (_players.ContainsKey(LoopPlayerSteamID) && !SameTeam)
            {
                // @TODO: Display a death icon?
                Destroy(_players[LoopPlayerSteamID]);
                _ = _players.Remove(LoopPlayerSteamID);
            }

            if (!_players.ContainsKey(LoopPlayerSteamID) && SameTeam)
            {
                _players[LoopPlayerSteamID] = Instantiate(_playerGameObject);
            }

            if (_players.ContainsKey(LoopPlayerSteamID))
            {
                _players[LoopPlayerSteamID].GetComponent<Player>().SetData(LoopPlayer, LoopPlayerSteamID == MainPlayer.steamid);
            }
        }
    }
Beispiel #3
0
 private Sprite Sprite(PayloadModels.Player player)
 {
     return(player.team == "CT" ? _ctTexture : _tTexture);
 }