Exemplo n.º 1
0
    public void Pop(Dart dart)
    {
        if (props.HasFlag(AntProperty.Camo) && !dart.props.HasFlag(DartProperty.Camo))
        {
            return;
        }

        if (dart.props.HasFlag(DartProperty.Flame))
        {
            effect = AntEffect.Flame;
            wetSystem.Stop();
            flameSystem.Play();
        }

        if (dart.props.HasFlag(DartProperty.Wet))
        {
            effect = AntEffect.Wet;
            flameSystem.Stop();
            wetSystem.Play();
            dps = dart.dps;

            stick = dart.stick;
        }

        transform.position += dart.kb * (Vector3)(Vector2)dart.dir;
        Pop(dart.damage);
        dart.pierce--;
    }
Exemplo n.º 2
0
    private void FixedUpdate()
    {
        speedMul           = effect == AntEffect.Wet ? 0.5f : 1f;
        dir                = nextCheckpoint.position - transform.position;
        transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(0, 0, Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg - 90), lerp);

        if (dir.sqrMagnitude <= speedMul * speedMul * speed * speed * GameManager.FixedDeltaTime * GameManager.FixedDeltaTime)
        {
            transform.position = nextCheckpoint.position;
            nextCheckIndex++;
            if (nextCheckIndex >= checkpoints.Length)
            {
                GameManager.Instance.Health -= (int)type;
                Destroy(gameObject);
                return;
            }

            nextCheckpoint = checkpoints[nextCheckIndex];
            return;
        }

        if (stick <= 0)
        {
            effect &= ~AntEffect.Flame;
            effect &= ~AntEffect.Wet;

            wetSystem.Stop();
            flameSystem.Stop();
        }
        else
        {
            stick -= Time.deltaTime;
        }
        transform.position += speedMul * speed * dir.normalized * Time.deltaTime;
    }
Exemplo n.º 3
0
    public void Pop(Explosion dart)
    {
        if (dart.props.HasFlag(DartProperty.Rinse))
        {
            props &= ~AntProperty.Camo;
            props &= ~AntProperty.Armor;

            UpdateType();
        }

        if (props.HasFlag(AntProperty.Camo) && !dart.props.HasFlag(DartProperty.Camo))
        {
            return;
        }

        if (dart.props.HasFlag(DartProperty.Flame))
        {
            effect = AntEffect.Flame;
            wetSystem.Stop();
            flameSystem.Play();
        }

        if (dart.props.HasFlag(DartProperty.Wet))
        {
            effect = AntEffect.Wet;
            flameSystem.Stop();
            wetSystem.Play();
            dps = dart.dps;

            stick = dart.stick;
        }

        Pop(dart.damage);
        dart.blast--;
    }