void Update()
    {
        if (!GameManager.Instance.IsInCharacterSelect)
        {
            return;
        }

        timeOnSelection += Time.deltaTime;

        bool ready = playerController.IsReady;

        //set actives for different characters
        characterTypeAnimatorGOMappings[nextCharacterType].SetActive(!ready);
        characterTypeAnimatorGOMappings[previousCharacterType].SetActive(!ready);
        characterTypeAnimatorGOMappings[currentCharacterType].SetActive(true);

        if (LevelManager.Instance.ShowTutorialPrompt == true)
        {
            descriptionCanvas.SetActive(!ready && timeOnSelection > secondForCharacterTip);
        }

        GravityObjectRigidBody rb = GetComponent <GravityObjectRigidBody>();

        if (GetComponent <PlayerController>().InputDevice == null)
        {
            return;
        }

        if (!_hasFoundReticle && GetComponent <PlayerController>().Reticle)
        {
            _hasFoundReticle = true;
            ChangeToNextCharacterType(1);
            ChangeMaterialType(1);
        }

        if (GetComponent <PlayerController>().InputDevice.GetIsAxisTapped(MappedAxis.ChangeCharacter))
        {
            float ChangeCharacterDir = GetComponent <PlayerController>().InputDevice.GetAxis(MappedAxis.ChangeCharacter);
            ChangeToNextCharacterType(ChangeCharacterDir > 0 ? 1 : -1);
        }

        if (GetComponent <PlayerController>().InputDevice.GetIsAxisTapped(MappedAxis.ChangeMaterial))
        {
            float ChangeMaterialDir = GetComponent <PlayerController>().InputDevice.GetAxis(MappedAxis.ChangeMaterial);
            ChangeMaterialType(ChangeMaterialDir > 0 ? 1 : -1);
        }

        if (LevelManager.Instance.ShowTutorialPrompt == true)
        {
            if (GetComponent <GravityObjectRigidBody>().GravityDirection.y < 0)
            {
                descriptionCanvas.transform.localPosition = Vector3.up * 4 + new Vector3(0, 0, -3);
            }
            else
            {
                descriptionCanvas.transform.localPosition = Vector3.down * 5 + new Vector3(0, 0, -3);
            }
        }
    }
    public IEnumerator ObjectExitTeleporterTimeout(GravityObjectRigidBody gorb)
    {
        yield return(new WaitForSeconds(_objectExitFromTeleporterTimeout));

        //unity derped and didnt trigger the on trigger exit
        if (gorb && gorb.isActiveAndEnabled && ObjectsWaitingToExitTeleporter.Contains(gorb))
        {
            ObjectsWaitingToExitTeleporter.Remove(gorb);
        }
    }
    //1 for up, -1 for down
    public void PlayEffect(GravityObjectRigidBody GORB)
    {
        int dir = GORB.GravityDirection.y > 0 ? 1 : -1;

        if (_playEffectCoroutine != null)
        {
            StopCoroutine(_playEffectCoroutine);
        }

        _playEffectCoroutine = StartCoroutine(PlayEffectOvertime(dir));
    }
예제 #4
0
    public virtual void OnHitGORB(GravityObjectRigidBody otherGORB)
    {
        if (otherGORB.CanBeSelected)
        {
            if (otherGORB is ControllableGravityObjectRigidBody)
            {
                var CGORB = (otherGORB as ControllableGravityObjectRigidBody);
                CGORB.StepMultiplier();
                CGORB.AttachedPlayer = Owner;
                CGORB.LastShotBy     = Owner;
            }

            Owner.AttachReticle(otherGORB);
        }
    }
예제 #5
0
    public override void OnHitGORB(GravityObjectRigidBody GORB)
    {
        if (GORB.CanBeSelected)
        {
            if (GORB is ControllableGravityObjectRigidBody)
            {
                (GORB as ControllableGravityObjectRigidBody).StepMultiplier();
                (GORB as ControllableGravityObjectRigidBody).LastShotBy = Owner;
            }

            var dir = GetComponent <GravityObjectRigidBody>().GetVelocity(VelocityType.Gravity).normalized;

            GORB.ClearAllVelocities();
            GORB.AddVelocity(VelocityType.OtherPhysics, dir * 30);
        }
    }
 public void ChangeGORBGravityDirection(GravityObjectRigidBody GORB, Vector2 dir)
 {
     GORB.ChangeGravityDirectionInternal(dir);
 }
 public void UpdateGORBVelocity(GravityObjectRigidBody GORB, VelocityType type, Vector2 dir)
 {
     GORB.UpdateVelocity(type, dir);
 }
 public void DetachReticle()
 {
     AttachedObject = null;
     ReticleParent  = AimingReticleCenter.gameObject;
     //Reticle.transform.SetParent(ReticleParent.transform);
 }
 public void AttachReticle(GravityObjectRigidBody gravityObjectRB)
 {
     AttachedObject = gravityObjectRB;
     ReticleParent  = AttachedObject.gameObject;
     //Reticle.transform.SetParent(ReticleParent.transform);
 }
 void Start()
 {
     _gORB = GetComponent <GravityObjectRigidBody>();
 }
 void Start()
 {
     rd = GetComponentInParent <GravityObjectRigidBody>();
     kp = GetComponentInParent <KeyboardPlayerController>();
 }
예제 #12
0
 private void Awake()
 {
     DontDestroyOnLoad(gameObject);
     GORB = GetComponent <GravityObjectRigidBody>();
 }
 public override void OnHitGORB(GravityObjectRigidBody GORB)
 {
     //BlastSfx();
 }