private void Vision()
    {
        hasVision = true;
        Debug.Log("You have vision!");
        var players = GameObject.FindGameObjectsWithTag("Player");

        arr = new PlayerRenderInfo[players.Length];
        int i = 0;

        foreach (var player in players)
        {
            if (player.GetComponent <PhotonView>().isMine)
            {
                continue;
            }
            arr[i] = new PlayerRenderInfo();
            arr[i].SetPlayer(player);
            GameObject[] models = player.GetComponent <ExtraRemoteCharControls>().playerModels;
            foreach (var model in models)
            {
                if (model.activeSelf == true)
                {
                    arr[i].SetModel(model);
                    arr[i].SetMaterial(model.GetComponent <Renderer>().material);
                    model.GetComponent <Renderer>().material = seeThruMat;
                }
            }
            i++;
        }
        StartCoroutine("VisionCoolDown");
    }
Ejemplo n.º 2
0
        private PlayerRenderInfo GetOrCreateRenderInfo(int entityId)
        {
            PlayerRenderInfo result;

            if (!_renderInfos.TryGetValue(entityId, out result))
            {
                result = new PlayerRenderInfo();

                result.PlayerPos = new Ellipse
                {
                    Width      = 15,
                    Height     = 15,
                    Visibility = Visibility.Hidden
                };

                result.playerSightBrush = new LinearGradientBrush(Color.FromArgb(64, 255, 255, 255), Color.FromArgb(0, 255, 255, 255), 0.0)
                {
                    MappingMode = BrushMappingMode.Absolute
                };

                result.PlayerSight = new Polygon
                {
                    Fill   = result.playerSightBrush,
                    Points = new PointCollection {
                        new Point(), new Point(), new Point()
                    },
                    Visibility = Visibility.Hidden
                };

                result.DeathPos = new Path
                {
                    Data       = s_cross,
                    Visibility = Visibility.Hidden
                };

                canvas.Children.Add(result.PlayerPos);
                canvas.Children.Add(result.PlayerSight);
                canvas.Children.Add(result.DeathPos);
                _renderInfos.Add(entityId, result);
            }

            result.Used = true;
            return(result);
        }