예제 #1
0
    public void FireLaser(Vector3 startPoint, Vector3 direction)
    {
        SetLaserStart(startPoint);

        RaycastHit hit;

        if (Physics.Raycast(startPoint, direction, out hit, maxDistance, LayerMask.GetMask("Default")))
        {
            if (hit.collider)
            {
                PlayerController  player  = hit.collider.GetComponent <PlayerController>();
                IceCubeController iceCube = hit.collider.GetComponent <IceCubeController>();

                if (player)
                {
                    player.Grow(growthDamage);
                }

                if (iceCube)
                {
                    iceCube.Shrink(meltDamage);
                }

                SetLaserEnd(hit.point, hit.normal);
                SetActiveParticles(true);
            }
        }
        else
        {
            SetLaserEnd(transform.forward * maxDistance, Vector3.zero);

            SetActiveParticles(false);
        }
    }
예제 #2
0
    private void Start()
    {
        GameOverText.SetActive(false);
        currentHealth = maxHealth;
        maxScale      = transform.localScale.x - minimumScale;
        _icc          = GetComponent <IceCubeController>();

        iceJauge.value = 1;
    }
예제 #3
0
    private float GetTargetVelocity()
    {
        IceCubeController icc = target.GetComponent <IceCubeController>();

        if (icc != null)
        {
            return(icc.GetCurrentVelocity());
        }

        return(0);
    }
예제 #4
0
    private void OnTriggerEnter(Collider other)
    {
        IceCubeController icc = other.GetComponent <IceCubeController>();

        if (icc != null)
        {
            icc.FullReset();
            icc.EnableSimulation(false);

            other.GetComponent <EnableThugLife>().Activate();
        }
    }