Ejemplo n.º 1
0
    public override void Kill(Vector2 dir, DeathStyle style)
    {
        if (state != State.knockedOut)
        {
            return;
        }

        if (hitCount == 4)
        {
            timer = 0;

            player.GetComponent <PlayerController>().knockedBack = false;

            Quaternion rot = Quaternion.LookRotation(player.transform.position - transform.position, Vector3.back);
            rot.x = 0;
            rot.y = 0;
            transform.rotation = rot;

            Kill(DeathStyle.DECAP);

            return;
        }

        hitCount++;
        knockbackTimer = 0;
        player.GetComponent <PlayerController>().knockedBack = true;
        player.GetComponent <Rigidbody2D>().velocity         = (player.transform.position - transform.position).normalized * playerKnockback;

        state = State.walking;
        timer = 0;
    }
 public void Drown()
 {
     transform.root.Find("Effects").gameObject.SetActive(false);
     transform.root.Find("AirUnit").gameObject.SetActive(false);
     transform.root.GetComponent <PlayerController>().enabled = false;
     thisDeathStyle = DeathStyle.Black;
     //GameObject.Find("GameStateManager").GetComponent<GameStateManager>().SetControls(0, Controllables.none);
     //GameObject.Find("GameStateManager").GetComponent<GameStateManager>().SetControls(1, Controllables.none);
     StartDeathSeq();
 }
Ejemplo n.º 3
0
    protected void Kill(DeathStyle style)
    {
        this.style = style;

        if (isAwake)
        {
            GameLoop.EnemyDead();
        }
        anim.enabled = false;

        foreach (SpriteRenderer renderer in GetComponentsInChildren <SpriteRenderer>())
        {
            renderer.enabled = false;
        }

        sr.enabled = true;

        switch (style)
        {
        case DeathStyle.DECAP:
            sr.sprite = decapSprite;
            break;

        case DeathStyle.SHOT:
            sr.sprite = shotSprite;
            break;

        case DeathStyle.EXPLOSION:
            sr.enabled = false;
            break;
        }

        sr.transform.Rotate(0, 0, 180);

        blood.Play();
        dead = true;
        StartCoroutine(StopBlood(3f));
        rb.simulated = false;
        foreach (Collider2D col in GetComponentsInChildren <Collider2D>())
        {
            col.enabled = false;
        }

        detail.ColorFromPos(Color.HSVToRGB(UnityEngine.Random.Range(0.0f, 1.0f), 1.0f, 1.0f), 40, transform.position);

        if (!beingControlled)
        {
            return;
        }

        beingControlled = false;
        player.GetComponent <PlayerController>().LoseControl();
    }
Ejemplo n.º 4
0
    public virtual void Kill(Vector2 dir, DeathStyle style)
    {
        if (dead)
        {
            return;
        }

        killDir = dir;

        transform.rotation = Quaternion.Euler(0, 0, Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg + 90);

        Kill(style);
    }
Ejemplo n.º 5
0
    public void KillInside(DeathStyle style)
    {
        if (dead)
        {
            return;
        }

        inside = true;

        insideBlood.Play();
        StartCoroutine(StopInsideBlood(3f));
        Kill(style);
        blood.Stop();
    }
Ejemplo n.º 6
0
    public void ReplayData(int frame, object[] data)
    {
        transform.position   = (Vector3)data[0];
        transform.rotation   = (Quaternion)data[1];
        transform.localScale = (Vector3)data[2];

        if ((bool)data[3])
        {
            DeathStyle style = (DeathStyle)data[4];

            if ((bool)data[5])
            {
                KillInside(style);
            }
            else
            {
                Kill((Vector3)data[6], style);
            }
        }

        SetAnimationData((object[])data[7]);
    }