示例#1
0
    private IEnumerator Dash()
    {
        if (!StaticToolMethods.GetAnimatorStateInfo(0, playerAnimatorManager.animatorPlayer).IsName("Dashing"))
        {
            playerAnimatorManager.PlayDashAnimation();
        }
        playerParticleSystemManager.PlayDashAnimation();
        playerTideComboManager.StartCombo();
        PlayerResourcesManager.Dashes -= 1;
        dashesImages[(int)PlayerResourcesManager.Dashes].SetActive(false);
        playerPhysicsModule.moveForce  = dashForce;
        playerPhysicsModule.speedLimit = dashLimit;
        playerPhysicsModule.maxInput   = 1f;
        yield return(new WaitForSeconds(0.15f));

        playerPhysicsModule.moveForce = playerPhysicsModule.defaultMoveForce;
        while (playerPhysicsModule.speedLimit > playerPhysicsModule.runLimit + 0.2f)
        {
            playerPhysicsModule.speedLimit
                = Mathf.Lerp(playerPhysicsModule.speedLimit, playerPhysicsModule.runLimit, Time.deltaTime * 10);
            playerPhysicsModule.maxInput = Mathf.Lerp(playerPhysicsModule.maxInput, 0.5f, Time.deltaTime * 5f);
            yield return(new WaitForSeconds(0.03f));
        }
        yield break;
    }
    private IEnumerator SpawnProjectile()
    {
        Debug.Log("Fired");
        if (agentAnimatorManager.Active == false)
        {
            agentAnimatorManager.Active = true;
        }
        yield return(new WaitUntil(() =>
                                   StaticToolMethods.GetAnimatorStateInfo(0, agentAnimatorManager.agentAnimator).IsName("Idle")));

        GameObject target             = new GameObject();
        float      predictionOffesetX = Random.Range(playerRigidBody.velocity.x * -0.2f, playerRigidBody.velocity.x * 0.2f);
        float      predictionOffesetY = Random.Range(playerRigidBody.velocity.y * -0.2f, playerRigidBody.velocity.y * 0.2f);
        float      predictionOffesetZ = Random.Range(playerRigidBody.velocity.z * -0.2f, playerRigidBody.velocity.z * 0.2f);

        Vector3 preditcionOffset = new Vector3(predictionOffesetX, predictionOffesetY, predictionOffesetZ);
        Vector3 midCenterOffset  = new Vector3(0, 0.4f, 0);

        target.transform.position = player.transform.position + midCenterOffset + preditcionOffset;

        positionToSpawn.LookAt(target.transform);

        agentAnimatorManager.PlayAttackAnimation();
        yield return(new WaitForSeconds(0.2f));

        GameObject spawnObject = Instantiate(objectToSpawn, positionToSpawn.position, positionToSpawn.transform.rotation);

        spawnObject.GetComponent <Rigidbody>().AddForce(positionToSpawn.transform.forward * velocityProjectile, ForceMode.Impulse);
        yield return(new WaitUntil(() =>
                                   !StaticToolMethods.GetAnimatorStateInfo(0, agentAnimatorManager.agentAnimator).IsName("Attacking")));

        yield break;
    }
示例#3
0
    public void TrackTargetEnemyStatus(string name, Slider[] healthbars, Slider[] armorbars)
    {
        texts[3].text = name;
        texts[3].gameObject.SetActive(true);
        //statusSliders = null ?

        Array.Clear(targetStatusSliders, 0, targetStatusSliders.Length);
        healthbars.CopyTo(targetStatusSliders, 0);
        armorbars.CopyTo(targetStatusSliders, healthbars.Length);


        int j = 0;

        for (int i = 3; i < 7; i++)
        {
            sliders[i].gameObject.SetActive(true);
            sliders[i].maxValue     = targetStatusSliders[j].maxValue;
            sliders[i].value        = targetStatusSliders[j].value;
            displayStatusSliders[j] = sliders[i];
            j++;
        }

        if (statusbarVisibilityCoroutine != null)
        {
            StopCoroutine(statusbarVisibilityCoroutine);
        }
        statusbarVisibilityCoroutine = StaticToolMethods.DisplaySliderBars(displayStatusSliders, 6, false);
        StartCoroutine(statusbarVisibilityCoroutine);
        tracking = true;
    }
示例#4
0
 public void StopTrackingStatus()
 {
     tracking = false;
     if (statusbarVisibilityCoroutine != null)
     {
         StopCoroutine(statusbarVisibilityCoroutine);
     }
     statusbarVisibilityCoroutine = StaticToolMethods.DisplaySliderBars(displayStatusSliders, 0, false);
     StartCoroutine(statusbarVisibilityCoroutine);
     Array.Clear(targetStatusSliders, 0, targetStatusSliders.Length);
     texts[3].gameObject.SetActive(false);
 }
示例#5
0
    private IEnumerator DetermineCurrentAttack()
    {
        RefreshMoveContionCoroutines();
        foreach (IEnumerator moveCondition in moveConditions)
        {
            yield return(StartCoroutine(moveCondition));
        }
        if (availableAttackMoves.Count != 0)
        {
            yield return(StartCoroutine(availableAttackMoves[StaticToolMethods.GenerateARandomNumber(availableAttackMoves.Count)]));

            availableAttackMoves.Clear();
        }
        yield break;
    }
示例#6
0
    private IEnumerator HeadSlam()
    {
        agent.speed = 0;
        attacking   = true;
        yiAgentAnimatorManager.Moving = false;
        yiAgentAnimatorManager.PlayHeadSlamAnimation();
        StartCoroutine(yiHitBoxManager.HeadSlamHitBoxAnimation());
        yield return(new WaitForSeconds(0.6f));

        attacking = false;
        yield return(new WaitUntil(() => !StaticToolMethods.GetAnimatorStateInfo(0, agentAnimatorManager.agentAnimator).IsName("HeadSlam")));

        agent.speed = standardSpeed;
        yiAgentAnimatorManager.Moving = true;
        yield break;
    }
示例#7
0
    protected override void Initialize()
    {
        base.Initialize();
        Transform UiTransform = GameObject.Find("UI").transform;

        healthBars[0] = UiTransform.Find("BossHealthBar").GetComponent <Slider>();
        healthBars[1] = UiTransform.Find("BossHealthBarBackground").GetComponent <Slider>();
        text          = UiTransform.Find("BossName").GetComponent <Text>();
        text.text     = gameObject.name;
        text.gameObject.SetActive(true);

        for (int i = 0; i < healthBars.Length; i++)
        {
            healthBars[i].gameObject.SetActive(true);
            healthBars[i].maxValue = maxHealth;
            healthBars[i].value    = 0;
        }
        StartCoroutine(StaticToolMethods.LerpSliderBarValue(healthBars, healthBars[0].maxValue, 0.15f, 0.2f, 0.01f));
    }
    protected override void Initialize()
    {
        base.Initialize();
        uiCanvas      = GetComponentInChildren <Canvas>();
        playerUi      = GameObject.Find("UI").GetComponent <Ui>();
        healthBars[0] = uiCanvas.transform.Find("HealthBar").gameObject.GetComponent <Slider>();
        healthBars[1] = uiCanvas.transform.Find("HealthBarBackGround").gameObject.GetComponent <Slider>();
        armorBars[0]  = uiCanvas.transform.Find("ArmorBar").gameObject.GetComponent <Slider>();
        armorBars[1]  = uiCanvas.transform.Find("ArmorBarBackGround").gameObject.GetComponent <Slider>();

        for (int i = 0; i < healthBars.Length; i++)
        {
            healthBars[i].maxValue = maxHealth;
            healthBars[i].value    = maxHealth;
            armorBars[i].maxValue  = maxArmor;
            armorBars[i].value     = maxArmor;
        }
        armorhBarVisibilityCoroutine = StaticToolMethods.DisplaySliderBars(armorBars, 0, false);
        healthBarVisibilityCoroutine = StaticToolMethods.DisplaySliderBars(healthBars, 0, false);
        StartCoroutine(armorhBarVisibilityCoroutine);
        StartCoroutine(healthBarVisibilityCoroutine);
    }
示例#9
0
    private IEnumerator SpearCharge()
    {
        agentAnimatorManager.Moving = false;
        agent.updateRotation        = false;
        agent.updatePosition        = false;
        Rigidbody rigidbodyAgent = GetComponent <Rigidbody>();

        rigidbodyAgent.isKinematic = false;
        rigidbodyAgent.velocity    = Vector3.zero;
        agentAnimatorManager.PlayAttackAnimation();
        StartCoroutine(statueBruteHitBoxManager.SpearChargeHitBoxAnimation());
        yield return(new WaitForSeconds(0.8f));

        charging = true;
        yield return(new WaitUntil(() => !StaticToolMethods.GetAnimatorStateInfo(0, agentAnimatorManager.agentAnimator).IsName("Attacking")));

        rigidbodyAgent.isKinematic = true;
        charging           = false;
        agent.nextPosition = transform.position;
        //agent.enabled = true;
        agent.updatePosition = true;
        agent.updateRotation = true;
    }