Exemplo n.º 1
0
    void OnParticleCollision(GameObject other)
    {
        int     numCollisionEvents = part.GetCollisionEvents(other, collisionEvents);
        Vector3 lastPos            = Vector3.zero;

        for (int i = 0; i < numCollisionEvents; i++)
        {
            if (i == 1)
            {
                break;
            }
            if (Random.Range(1, 10) > 5)
            {
                break;
            }
            Vector3 pos = collisionEvents[i].intersection;
            if (pos != lastPos)
            {
                Splatter splat = Instantiate(_splatter, pos, Quaternion.identity);
                float    scale = Random.Range(1.5f, 3f);
                splat.transform.localScale = new Vector3(scale, scale, scale);
                lastPos = pos;
            }
        }
    }
Exemplo n.º 2
0
        // Update is called once per frame
        void Update()
        {
            // If health <= 0 ghost is dead
            if (Health <= 0)
            {
                Handheld.Vibrate();

                Instantiate(enemyDeath, transform.position, Quaternion.identity);
                Debug.Log("ded ghost");
                Vector3 pos = new Vector3(transform.position.x, transform.position.y, -3.29f);
                Instantiate(BloodSplash, pos, Quaternion.identity);
                Splatter.randomColor = false;
                Splatter.gameObject.GetComponent <SpriteRenderer>().color =
                    gameObject.GetComponent <SpriteRenderer>().color;
                Splatter splatterObj = (Splatter)Instantiate(Splatter, pos, Quaternion.identity);

                Destroy(gameObject);
            }

            // Make sure ghost isn't tilted
            // gameObject.transform.rotation = new Quaternion();

            // Move towards target
            //if (GameObject.FindGameObjectWithTag("Player") != null)
            //{
            //    transform.position = Vector2.MoveTowards(transform.position, Target.position, Speed * Time.deltaTime);
            //}

            //// Jump if target is above
            //if (Target != null && (Vector2.Distance(transform.position, Target.position) < Distance && isJumping == false))
            //{
            //    GhostBody.AddForce(transform.up * JumpForce * 100);
            //    isJumping = true;
            //}
        }
Exemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = new Ray(playWeapon.position, playWeapon.forward);//Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out RaycastHit hit, 100.0f))
            {
                Splatter splatter = hit.collider.gameObject.GetComponent <Splatter>();
                if (splatter != null)
                {
                    splatter.Splat(ray.direction, hit.normal, hit.point);
                }
            }
        }

        if (Input.GetKey(KeyCode.W))
        {
            transform.Translate(Vector3.forward * speed * Time.deltaTime);
        }


        if (Input.GetKey(KeyCode.S))
        {
            transform.Translate(Vector3.back * (speed / 2) * Time.deltaTime);
        }

        transform.Rotate(new Vector3(0, Input.GetAxis("Mouse X"), 0) * Time.deltaTime * rotateSpeed);
    }
Exemplo n.º 4
0
 void Update()
 {
     if (!isDestroyed)
     {
         if (isFacingRight)
         {
             transform.position = new Vector3(transform.position.x + (shotSpeed * Time.deltaTime), transform.position.y, transform.position.z);
         }
         else
         {
             transform.position = new Vector3(transform.position.x - (shotSpeed * Time.deltaTime), transform.position.y, transform.position.z);
         }
         if (Math.Abs(lastSplatterLocation.x - transform.position.x) >= 1)
         {
             newSplatterObj = Instantiate(splatter, new Vector3(transform.position.x + (isFacingRight ? .5f : -.5f), transform.position.y - 1f, transform.position.z), Quaternion.identity) as Splatter;
             //newSplatterObj.transform.localScale = new Vector3(.6f, .6f, .6f);
             lastSplatterLocation = transform.position;
             newSplatterObj.ApplyStyle();
         }
         Collider2D[] wallColliders = Physics2D.OverlapCircleAll(new Vector2(transform.position.x, transform.position.y), detectWallRadius);
         foreach (Collider2D coll in wallColliders)
         {
             if (coll.gameObject.CompareTag("PaintableSurfaceTag"))
             {
                 isDestroyed = true;
             }
         }
         if (isDestroyed)
         {
             SplatToWall();
         }
     }
 }
Exemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        //Debug.Log(rb.velocity.magnitude);
        //Debug.Log(rb.velocity.magnitude);
        if (rb.velocity.magnitude <= DespawnThreshold) // Stop Ball if velocity is lower than Threshold.
        {
            rb.velocity = Vector3.zero;

            // DESPAWN THE BALL, UPDATE LEVEL CONTROLLER

            lc.DecreaseBalls();
        }

        else if (rb.velocity.magnitude >= 50)
        {
            rb.velocity = rb.velocity.normalized * 50;
        }

        Vector3 curPos = transform.position;

        if (Vector3.Distance(oldPos, curPos) >= SplatDistanceThreshold && SplatColour >= 0)
        {
            Splatter splat = (Splatter)Instantiate(splatter, transform.position, Quaternion.identity);
            splat.transform.parent = GameObject.Find("SplatTrail").transform;

            //spawns the splatter
            splat.GetComponent <Splatter>().splatColour = SplatColour; //set the splatter color
            splat.GetComponent <Splatter>().randomColor = false;       //make random false as we want the splatter color to the color we assigned
            splat.GetComponent <Splatter>().ApplyStyle();              //then apply the style

            oldPos = curPos;
        }
    }
Exemplo n.º 6
0
 //creates the splatter when moving and touching object with tag sureface
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.CompareTag("Surface") && moving)
     {
         Splatter splatterObj = (Splatter)Instantiate(splatter, other.transform.position, Quaternion.identity);
     }
 }
Exemplo n.º 7
0
        public override void OnLobbyServerSceneLoadedForPlayer(NetworkManager manager, GameObject lobbyPlayer, GameObject gamePlayer)
        {
            Splatter s = gamePlayer.GetComponent <Splatter>();

            Debug.Log("Lobby Hooked");
            //s.SetColors(lobbyPlayer.GetComponent<LobbyPlayer>().DogColorList);
        }
Exemplo n.º 8
0
    void Start()
    {
        _motion   = Vector3.zero;
        _rotation = Vector3.zero;
        _pitch    = 0f;
        if (isLocalPlayer)
        {
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible   = false;
            _sfx             = GetComponents <AudioSource>();
            g                = GetComponent <Grabber>();
            _camera          = Camera.allCameras[0].transform;
            _camera.position = transform.position - new Vector3(0, -7f, .5f);
            _camera.gameObject.GetComponent <Camera>().cullingMask &= ~(1 << LayerMask.NameToLayer("CameraInvisible"));
            _camera.SetParent(transform);
            _emitter = GetComponent <Splatter>();
            _emitter.SetEmitter(transform.GetChild(2).transform);
            _emitter.SetChannel(_splatChannel);
            //_body = GetComponent<Rigidbody>();
            _front = GetComponent <CharacterController>();
            TPMesh.SetActive(false);
            LeftArm.SetActive(true);
            RightArm.SetActive(true);

            /*_rightGrabRotation = RightArm.transform.localRotation;
             * _leftGrabRotation = LeftArm.transform.localRotation;
             * LeftArm.transform.Rotate(new Vector3(90, 0, 0));
             * RightArm.transform.Rotate(new Vector3(90, 0, 0));
             * _rightDownRotation = RightArm.transform.localRotation;
             * _leftDownRotation = LeftArm.transform.localRotation;
             */
            _animator = LeftArm.GetComponentInChildren <Animator>();
        }
    }
Exemplo n.º 9
0
    public void SplateColor()
    {
        Splatter splatterObj = (Splatter)Instantiate(Splatter, transform.position, Quaternion.identity);

        splatterObj.GetComponent <Splatter>().splatColor  = ColorBall;
        splatterObj.GetComponent <Splatter>().randomColor = false;
        splatterObj.GetComponent <Splatter>().ApplyStyle();
    }
Exemplo n.º 10
0
    public void DisplaySplatter(Color color, Vector3 position)
    {
        Splatter newSplatter = Instantiate(splatter) as Splatter;

        newSplatter.transform.SetParent(transform, false);
        newSplatter.Display(color, position);
        newSplatter.FadeAway();
    }
Exemplo n.º 11
0
 // Start is called before the first frame update
 void Start()
 {
     Enemy       = GameObject.FindGameObjectWithTag("Enemy");
     Splatter    = Enemy.GetComponent <EnemyScript>().Splatter;
     BloodSplash = Enemy.GetComponent <EnemyScript>().BloodSplash;
     enemyDeath  = Enemy.GetComponent <EnemyScript>().enemyDeath;
     Target      = GameObject.FindGameObjectWithTag("Player");
     StartCoroutine("WaitForPlayer");
 }
Exemplo n.º 12
0
 void Awake()
 {
     try { player = GameObject.Find("Player").GetComponent <PlayerController>(); }
     catch (Exception) { throw new Exception("Scene must include an object called \"Player\" with the playerController script attached"); }
     splatterObj = Instantiate(splatter, new Vector3(transform.position.x, transform.position.y - 1, transform.position.z), Quaternion.identity) as Splatter;
     splatterObj.transform.localScale = new Vector3(.5f, .5f, .5f);
     splatterObj.transform.parent     = transform;
     isFacingRight        = !player.SpriteRenderer.flipX;
     lastSplatterLocation = transform.position;
     StartCoroutine(DestroySelfInTime());
 }
Exemplo n.º 13
0
    public override Node Create(Vector2 pos)
    {
        Splatter node = CreateInstance <Splatter> ();

        node.rect = new Rect(pos.x, pos.y, 250, 340);
        node.name = "Op";
        node.CreateInput("Texture", "TextureParam", NodeSide.Left, 50);
        node.CreateOutput("Texture", "TextureParam", NodeSide.Right, 50);

        return(node);
    }
Exemplo n.º 14
0
 //detects the collider with specific tags
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.CompareTag("Colors"))
     {
         //get the collided object color
         Color objCol = other.GetComponent <SpriteRenderer>().color;
         //spawns the splatter
         Splatter splatterObj = (Splatter)Instantiate(splatter, other.transform.position, Quaternion.identity);
         splatterObj.GetComponent <Splatter>().splatColor  = objCol; //set the splatter color
         splatterObj.GetComponent <Splatter>().randomColor = false;  //make random false as we want the splatter color to the color we assigned
         splatterObj.GetComponent <Splatter>().ApplyStyle();         //then apply the style
     }
 }
Exemplo n.º 15
0
    public void Splat(float pos, Color color)
    {
        int numSplats = Random.Range(1, 3);

        for (int i = 0; i < numSplats; i++)
        {
            Vector3  splatPos = new Vector3(pos + Random.Range(-50f, 50f), Random.Range(-50f, 50f), 0);
            Splatter newSplat = Instantiate(splatter, gameObject.transform);
            newSplat.transform.localPosition = splatPos;
            newSplat.color = new Color(color.r - Random.Range(0, -50f / 255f), color.g - Random.Range(0, -50f / 255f), color.b - Random.Range(0, -50f / 255f));
            newSplat.gameObject.SetActive(true);
        }
    }
Exemplo n.º 16
0
    void SplatToWall()
    {
        Splatter splatterToObj =
            (Splatter)Instantiate(splatter,
                                  new Vector3(transform.position.x + (isFacingRight ? .5f : -.5f),
                                              transform.position.y, transform.position.z), Quaternion.identity);

        //splatterToObj.transform.localScale = new Vector3(.6f, .6f, .6f);
        splatterToObj.ApplyStyle();
        splatterObj.gameObject.SetActive(false);
        gameObject.SetActive(false);
        Destroy(splatterObj.gameObject.GetComponent <GameObject>());
        Destroy(gameObject.GetComponent <GameObject>());
    }
Exemplo n.º 17
0
    void Start()
    {
        sprayableObject.Init(colors);
        controller.Init(tools, colors, sounds, container);
        splatter  = new Splatter(sprayableObject, controller, tools, colors, sounds);
        container = new GameObject("Stroke Container");

        for (int i = 0; i < sounds.Length; i++)
        {
            if (sounds[i].name == "ambientTutorial")
            {
                sounds[i].PlaySound();
            }
        }
    }
Exemplo n.º 18
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        switch (other.tag)
        {
        case "Surface":
            Splatter splatterObj = (Splatter)Instantiate(splatter, other.transform.position, Quaternion.identity);
            HandleDeath();
            break;

        case "Checkpoint": HandleCheckPoint(other);
            break;

        case "Finish": HandleFinish();
            break;
        }
    }
Exemplo n.º 19
0
        public override GameObject OnLobbyServerCreateGamePlayer(NetworkConnection conn, short playerControllerId)
        {
            int team = (int)currentPlayers[conn.connectionId];

            GameObject playerPrefab = (GameObject)GameObject.Instantiate(spawnPrefabs[team],
                                                                         startPositions[conn.connectionId].position,
                                                                         Quaternion.identity);

            Splatter s = playerPrefab.GetComponent <Splatter>();

            // set colors and channel mask (mask is implied by order)
            int            i            = 0;
            List <Vector4> DogColorList = new List <Vector4>();

            foreach (LobbyPlayer p in lobbyPlayers.Values)
            {
                if (p.playerTeam == Teams.Team.DOGS)
                {
                    DogColorList.Add(p.playerColor);
                    if (p.connectionId == conn.connectionId)
                    {
                        s.SetConnectionId(conn.connectionId);
                        if (i == 0)
                        {
                            s.SetChannel(SplatChannel.DOG0);
                        }
                        else if (i == 1)
                        {
                            s.SetChannel(SplatChannel.DOG1);
                        }
                        else if (i == 2)
                        {
                            s.SetChannel(SplatChannel.DOG2);
                        }
                    }
                    i++;
                }
            }
            s.SetColors(DogColorList);
            foreach (var d in DogColorList)
            {
                Debug.Log(d);
            }
            Debug.Log("Team " + 1 + " Prefab " + playerPrefab + " connId " + conn.connectionId);
            return(playerPrefab);
        }
Exemplo n.º 20
0
        public ObjectInstance(GameObject objectInstance)
        {
            gameObject = objectInstance;
            transform  = gameObject.transform;
            gameObject.SetActive(false);

            if (gameObject.GetComponent <Splatter>())
            {
                hasPoolObjectComponent = true;
                splatterScript         = gameObject.GetComponent <Splatter>();
            }
            else if (gameObject.GetComponent <Canonball>())
            {
                hasPoolObjectComponent = true;
                canonballScript        = gameObject.GetComponent <Canonball>();
            }
        }
Exemplo n.º 21
0
    private void OnDogColorsRequested(NetworkMessage msg)
    {
        DogColorsMsg response = new DogColorsMsg();

        Debug.Log("Dog Color Request Received.");
        int id = msg.conn.connectionId;

        GameObject[] p = GameObject.FindGameObjectsWithTag("Player");

        for (int j = 0; j < p.Length; j++)
        {
            if (p[j] != null)
            {
                Splatter s = p[j].GetComponent <Splatter>();
                if (s != null && s._connectionId == id)
                {
                    response.Channel = s.channelMask;
                    if (!splatters.ContainsKey(s))
                    {
                        splatters.Add(s, s.gameObject.GetComponent <Drinker>());
                    }
                }
            }
        }

        int i = 0;

        foreach (Vector4 c in splatColors)
        {
            if (i == 0)
            {
                response.Dog0Color = c;
            }
            if (i == 1)
            {
                response.Dog1Color = c;
            }
            if (i == 2)
            {
                response.Dog2Color = c;
            }
            i++;
        }
        NetworkServer.SendToClient(id, DogColorsMsgId, response);
    }
Exemplo n.º 22
0
    private void Awake()
    {
        renderMask = renderMask != null ? renderMask : Texture2D.whiteTexture;
        renderer   = GetComponent <Renderer>(); // this must be done BEFORE the splatter is created
        if (GoreManager.Instance.GoreEnabled)
        {
            // Set up Splatting
            paintMask      = paintMask != null ? paintMask : Texture2D.whiteTexture;
            splatter       = CreateSplatter(); // this must be done BEFORE the property block is updated
            PaintMask      = paintMask;
            splatsToRender = new Queue <Splatter.QueuedSplat>();
        }
        else
        {
            enabled = false; // just turn self off.
        }

        // Set Up Property Block
        UpdatePropertyBlock();
    }
Exemplo n.º 23
0
    void Start()
    {
        _frontPivot = transform.Find("frontPivot");
        _rearPivot  = transform.Find("rearPivot");
        FrontPeePoofs.transform.position = _frontPivot.transform.position;
        RearPeePoofs.transform.position  = _rearPivot.transform.position;
        _front          = GetComponent <Rigidbody>();
        _animator       = this.GetComponentInChildren <Animator>();
        _inputH         = GetComponent <InputHandler>();
        _sfx            = GetComponents <AudioSource>();
        _runStartVolume = _sfx [2].volume;
        d = GetComponent <Drinker>();

        if (isLocalPlayer)
        {
            _emitter = GetComponent <Splatter>();
            _emitter.SetEmitter(transform.Find("rearPivot"));
            _emitter.SetChannel(_splatChannel);
        }
    }
Exemplo n.º 24
0
    void SetDogColors()
    {
        GameObject[] p = GameObject.FindGameObjectsWithTag("Player");
        Debug.Log(p.Length + " Players found.");
        for (int j = 0; j < p.Length; j++)
        {
            if (p[j] != null)
            {
                Debug.Log("Player " + j);
                Splatter s = p[j].GetComponent <Splatter>();
                if (s != null && s.channelMask != SplatChannel.MAN)
                {
                    Debug.Log("Player " + j + "is a dog");
                    Renderer r = p[j].transform.GetChild(0).GetChild(0).GetComponent <Renderer>();

                    if (s.channelMask == SplatChannel.DOG0)
                    {
                        Debug.Log("Player " + j + "is a dog 0");
                        r.material       = DogMat0;
                        r.material.color = SplatManagerSystem.instance.Colors[0];
                        Debug.Log(r.material.color);
                    }
                    if (s.channelMask == SplatChannel.DOG1)
                    {
                        Debug.Log("Player " + j + "is a dog 1");
                        r.material       = DogMat1;
                        r.material.color = SplatManagerSystem.instance.Colors[1];
                        Debug.Log(r.material.color);
                    }
                    if (s.channelMask == SplatChannel.DOG2)
                    {
                        Debug.Log("Player " + j + "is a dog 2");
                        r.material       = DogMat2;
                        r.material.color = SplatManagerSystem.instance.Colors[2];
                        Debug.Log(r.material.color);
                    }
                }
            }
        }
    }
    void Start()
    {
        _pitch = 0f;
        if (isLocalPlayer)
        {
            _camera          = Camera.allCameras[0].transform;
            _camera.position = transform.position - new Vector3(0, -0.75f, .5f);
            _camera.gameObject.GetComponent <Camera>().cullingMask &= ~(1 << LayerMask.NameToLayer("CameraInvisible"));
            _camera.SetParent(transform);
            _emitter = GetComponent <Splatter>();
            _emitter.SetEmitter(transform);
            _emitter.SetChannel(_splatChannel);
            _front = GetComponent <CharacterController>();


            //BROCK'S ADDITION THAT ALLOWS FOR PREFAB ADJUSTMENTS
            GameObject ChildGameObject1 = transform.GetChild(0).gameObject;
            GameObject ChildGameObject2 = transform.GetChild(1).gameObject;
            ChildGameObject1.SetActive(false);
            ChildGameObject2.SetActive(true);
        }
    }
Exemplo n.º 26
0
    public void Splatt(Vector3 Position, Collider2D other)
    {
        if (other.tag == "Enemy")
        {
            Debug.Log("ENEMY");
            Splatter splat = Instantiate(DynamicSplatter, Position, Quaternion.identity);
            float    scale = Random.Range(2f, 3f);
            splat.transform.localScale = new Vector3(scale, scale, scale);
            splat.transform.SetParent(other.gameObject.transform, true);
            splat.GetComponent <SpriteRenderer>().sortingOrder = -1;
        }

        RaycastHit2D hit = Physics2D.CircleCast(Position, 3, Vector2.up, Mathf.Infinity, CollisionLayer);

        if (hit)
        {
            int k = Random.Range(2, 4);
            for (int i = 0; i < k; i++)
            {
                Instantiate(_splatter, Position + new Vector3(Random.Range(0, 1), 0, 0), Quaternion.identity);
            }
        }
    }
Exemplo n.º 27
0
    void OnCollisionEnter2D(Collision2D col)
    {
        if (_playerStats.currentNumberOfBalls > 0)
        {
            lastBall = false;
        }
        if (col.gameObject.tag != "Obstacle")
        {
            Points.hitsInARow = 0;
        }
        colorSplash.SetColorOfSplat(this.gameObject.GetComponent <SpriteRenderer>().color);

        Splatter splat = (Splatter)Instantiate(colorSplash, this.transform.position, Quaternion.identity);

        this.transform.localScale = this.transform.localScale / _ballDivider;
        if (this.transform.localScale.x < 0.1)
        {
            splat.transform.localScale = splat.transform.localScale / 2;
            if (_lastbounce)
            {
                this.gameObject.GetComponent <Rigidbody2D>().simulated = false;
                _playerStats.BallStopped();

                if (_playerStats.currentNumberOfBallsLeft <= 0)
                {
                    _playerStats.GameOver();
                }
            }
            _lastbounce = true;
        }
        else
        {
            splat.transform.localScale = splat.transform.localScale / _numberOfBounces;
        }
        _numberOfBounces += (_ballDivider / 2);
        _soundManager.Play();
    }
Exemplo n.º 28
0
 void OnEnable()
 {
     _target = (Splatter)target;
 }
Exemplo n.º 29
0
    /// <summary>
    /// Places a splatter.
    /// </summary>
    /// <param name="position">Position where the splatter will be placed.</param>
    /// <param name="hitObject">Object where the splatter will be placed.</param>
    private void PlaceSplatter(Vector3 position, GameObject hitObject)
    {
        if (!hitObject)
        {
            return;
        }

        // Places paint splatter
        GameObject splatterObject = Instantiate(splatterPrefab, hitObject.transform, true);

        // Z should always be positive
        if (isGrenade)
        {
            splatterObject.transform.position = new Vector3(position.x, position.y - 0.3f, Mathf.Abs(position.z));
            // Grenade splatters are bigger
            splatterObject.transform.localScale = splatterObject.transform.localScale * 3;
        }
        else
        {
            splatterObject.transform.position = new Vector3(position.x, position.y, Mathf.Abs(position.z));
        }

        Splatter splatterScript = splatterObject.GetComponent <Splatter>();

        if (splatterScript != null)
        {
            splatterScript.isGrenade = isGrenade;
        }

        SpriteRenderer splatterSR = splatterObject.GetComponent <SpriteRenderer>();

        // Set splatter color to pellet color
        if (isGrenade)
        {
            splatterSR.color = Color.red;
        }
        else
        {
            splatterSR.color = spriteRenderer.color;
        }

        if (hitObject.layer == LayerMask.NameToLayer("Ground") ||
            hitObject.layer == LayerMask.NameToLayer("UpperGround"))
        {
            // On the ground, the splatter is scaled so it looks angle
            splatterObject.transform.localScale =
                Vector3.Scale(splatterObject.transform.localScale, new Vector3(1, 0.75f, 1));

            // Ground splatters are visible on the "Default" sorting layer,
            // with order 5
            splatterSR.sortingOrder = 5;
        }
        else if (hitObject.layer == LayerMask.NameToLayer("Obstacles") || hitObject.layer == LayerMask.NameToLayer("UpperObstacles"))
        {
            // Obstacle splatters are visible on the "Environment" sorting layer,
            // with order 6
            splatterSR.sortingLayerName = "Environment";
            splatterSR.sortingOrder     = 6;
        }
        else if (hitObject.layer == LayerMask.NameToLayer("BackgroundWall"))
        {
            // Darken paint in wall
            splatterSR.color *= 0.95f;

            // Wall splatters are visible on the "Default" sorting layer,
            // with order 4
            splatterSR.sortingOrder = 4;
        }
        else if (hitObject.layer == LayerMask.NameToLayer("EnvironmentObjects"))
        {
            // Environment Object splatters are visible on the "Environment" sorting layer,
            // with order 1
            splatterSR.sortingLayerName = "Environment";
            splatterSR.sortingOrder     = 1;
        }
        else if (hitObject.layer == LayerMask.NameToLayer("Player"))
        {
            // Player splatters are visible on the "PlayerFront" and "PlayerBack" sorting layer
            splatterSR.sortingLayerName = "PlayerFront";

            // Different order for each body part
            if (hitObject.name == "LegLeft")
            {
                splatterSR.sortingOrder = 1;
            }
            else if (hitObject.name == "LegRight")
            {
                splatterSR.sortingOrder = 2;
            }
            else if (hitObject.name == "body")
            {
                splatterSR.sortingOrder = 3;
            }
            else if (hitObject.name == "Head")
            {
                splatterSR.sortingOrder = 4;
            }
        }
        else if (hitObject.layer == LayerMask.NameToLayer("BulletShield"))
        {
            // Bullet shield splatters are visible on the "PlayerFront" and "PlayerBack" sorting layer
            // with order 5
            splatterSR.sortingLayerName = "PlayerFront";
            splatterSR.sortingOrder     = 5;
        }
        else if (hitObject.layer == LayerMask.NameToLayer("Enemy"))
        {
            // Enemy splatters are visible on the "Player" sorting layer,
            // with order 6
            splatterSR.sortingLayerName = "PlayerFront";
            splatterSR.sortingOrder     = 6;
        }
    }
Exemplo n.º 30
0
 protected override void MessageReceived(string message, bool error, ITCPConnection connection)
 {
     base.MessageReceived(message, error, connection);
     JObject o = JObject.Parse(message);
     if((string)o["action"] == "game" && (string)o["name"] == "color_clash") {
         JObject data = (JObject)o["data"];
         if((string)data["action"] == "paint") {
             string user = (string)data["source"];
             if(user != playerName) {
                 lock(splatters) {
                     Splatter splatter = new Splatter(this, players[user], rand);
                     splatter.Scale = (float)data["scale"];
                     players[user].StartThrow(splatter);
                     players[user].ThrowPaint(new TimeSpan((long)data["time"]), new Vector2((float)data["x_pos"], (float)data["y_pos"]));
                 }
             }
         }
     }
 }
Exemplo n.º 31
0
    // Update is called once per frame
    void Update()
    {
        // If health <= 0 ghost is dead
        if (Health <= 0)
        {
            Handheld.Vibrate();

            Instantiate(enemyDeath, transform.position, Quaternion.identity);
            Debug.Log("ded ghost");
            Vector3 pos = new Vector3(transform.position.x, transform.position.y, -3.29f);
            this.BloodSplash.transform.localScale = gameObject.transform.localScale / 8;
            Instantiate(BloodSplash, pos, Quaternion.identity);
            Splatter.randomColor = false;
            Splatter.gameObject.GetComponent <SpriteRenderer>().color =
                Color.red;
            this.Splatter.gameObject.transform.localScale = gameObject.transform.localScale / 6;
            Splatter splatterObj = (Splatter)Instantiate(Splatter, pos, Quaternion.identity);
            Destroy(gameObject);
            if (gameObject.name != "Boss3")
            {
                GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerScript>().points += 50;
                GameObject.FindGameObjectWithTag("StatusText").GetComponent <Text>().text        = "Boss dead! New level!";
                GameObject.FindGameObjectWithTag("StatusText").transform.localScale              = Vector3.one;
                if (gameObject.name == "Boss1")
                {
                    EndScreen.score        = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerScript>().points;
                    EndScreen.currentLevel = 2;
                    SceneManager.LoadScene("PersistentScene");
                    SceneManager.LoadScene("LevelTwo", LoadSceneMode.Additive);
                }
                else if (gameObject.name == "Boss2")
                {
                    EndScreen.score        = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerScript>().points;
                    EndScreen.currentLevel = 3;
                    SceneManager.LoadScene("PersistentScene");
                    SceneManager.LoadScene("BossLevel", LoadSceneMode.Additive);
                }
            }
            else
            {
                GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerScript>().points += 1000;
                EndScreen.score = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerScript>().points;
                SceneManager.LoadScene("EndScene");
            }
        }

        if (Fighting && moveCounter < 100)
        {
            moveCounter++;
            transform.position = new Vector3(transform.position.x + MovementSpeed, transform.position.y);
        }
        else if (Fighting && moveCounter < 250)
        {
            moveCounter++;
            transform.position = new Vector3(transform.position.x - MovementSpeed, transform.position.y);
        }
        else if (Fighting)
        {
            moveCounter = 0;
        }
    }
Exemplo n.º 32
0
 public override void Update(GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen)
 {
     if(phase == Phase.Begin) {
         if(singlePlayer) {
             gameStart = gameTime.TotalGameTime;
             phase = Phase.Main;
         } else if(!synced) {
             Sync((JArray data, double random) => {
                 gameStart = gameTime.TotalGameTime;
                 phase = Phase.Main;
             });
             synced = true;
         }
     } else if(phase == Phase.Main) {
         // randomly drop paint on the canvas
         if(singlePlayer) {
             if(rand.Next(0, 1000) < 20 - 3 * upgrades[(int)Upgrade.EnemyFreq]) {
                 Splatter splatter = new Splatter(this, players[""], rand);
                 splatter.Scale = (float)rand.NextDouble() + 1;
                 players[""].StartThrow(splatter);
                 players[""].ThrowPaint(gameTime.TotalGameTime - gameStart, new Vector2(rand.Next(BOUNDS.Left, BOUNDS.Right), rand.Next(BOUNDS.Top, BOUNDS.Bottom)));
             }
         }
         if(gameTime.TotalGameTime - gameStart > PAINT_TIME) {
             Dictionary<Color, float> areas = CalculatePaint();
             foreach(Avatar a in players.Values) {
                 a.score = areas[a.color] / (BOUNDS.Width * BOUNDS.Height);
             }
             gameEnd = gameTime.TotalGameTime;
             banner = new TextBanner(this, "TIME'S UP");
             foreach(Avatar a in players.Values) {
                 if(a.currentPaint != null) {
                     RemoveActor(a.currentPaint);
                     splatters.Remove(a.currentPaint);
                     a.currentPaint = null;
                     a.State = AvatarStates.Standing;
                 }
             }
             if(crosshair != null) {
                 RemoveActor(crosshair);
                 crosshair = null;
             }
             if(singlePlayer) {
                 score = (int)(players[playerName].score * 10000);
             }
             phase = Phase.Calculation;
         }
     } else if(phase == Phase.Calculation) {
         if(gameTime.TotalGameTime - gameEnd > BANNER_TIME + BANNER_TIME + SCORE_TIME) {
             if(singlePlayer) {
                 phase = Phase.Limbo;
             } else {
                 // Sync scores
                 JObject packet = new JObject(
                     new JProperty("action", "group"),
                     new JProperty("type", "report_score"),
                     new JProperty("score", new JObject(
                         from username in players.Keys
                         select new JProperty(username, (int)(players[username].score * -10000))
                     ))
                 );
                 conn.SendMessage(packet.ToString());
                 phase = Phase.Limbo;
             }
         } else if(gameTime.TotalGameTime - gameEnd > BANNER_TIME + SCORE_TIME) {
             banner = singlePlayer ?
                 banner ?? new TextBanner(this, "Score: " + score) :
                 banner ?? new TextBanner(this, "GAME OVER");
         } else if(gameTime.TotalGameTime - gameEnd > BANNER_TIME) {
             banner = null;
         }
     } else if(phase == Phase.Limbo) {
         // Do nothing
     }
     base.Update(gameTime, otherScreenHasFocus, coveredByOtherScreen);
 }