コード例 #1
0
 public void ResetEnemy()
 {
     myHealth  = GetComponent <HealthBehavior>();
     myOffense = GetComponent <OffenseBehavior>();
     myHealth.ResetHealth();
     myHealth.UpdateHealthBar();
     Invoke("AttackCyclePrimer", attackRateInSeconds);
 }
コード例 #2
0
    public void UseAbility()
    {
        if (!abilityActive && GameObject.FindObjectOfType <ProgressTracker>().GameStillInSession() && !player.GetAbilityUseStatus())
        {
            switch (abilityType)
            {
            case AbilityType.defense: {
                abilityActive = true;
                HealthBehavior playerHealth = player.GetComponent <HealthBehavior>();
                playerHealth.SetDividerValue(potency + 1);
                playerHealth.EnableBlockDamage(true);
                player.AbilityInUse(true);
                player.SetMyAnimator("StartDefense");

                if (abilityEffectPrefab)
                {
                    activeAbilityEffect = Instantiate(abilityEffectPrefab, player.transform.position, Quaternion.identity);
                    activeAbilityEffect.transform.parent   = player.transform;
                    activeAbilityEffect.transform.position = player.transform.position;
                }

                DisableAbilityLabels();
            }
            break;

            case AbilityType.dodge: {
                abilityActive = true;
                HealthBehavior playerHealth = player.GetComponent <HealthBehavior>();
                playerHealth.SetAbsorbAttack(true, potency);
                player.AbilityInUse(true);
                player.SetMyAnimator("Dodge");
                DisableAbilityLabels();
            }
            break;

            case AbilityType.stun: {
                abilityActive = true;
                OffenseBehavior playerOffense = player.GetComponent <OffenseBehavior>();
                playerOffense.AbilityAttack(abilityType, potency);
                player.SetMyAnimator("stunAttack");
                DisableAbilityLabels();
                coolDownTime = Mathf.Clamp(coolDownTime + 1f, 1f, 10f);
            }
            break;

            default: { Debug.Log("Ability was not specified. cannot be used."); }
            break;
            }

            if (coolDownTime > 0)
            {
                StartCoroutine(CoolDownAbility(coolDownTime));
            }
        }
    }
コード例 #3
0
    public void UseItem()
    {
        if (currentReserve > 0 && !effectActive && GameObject.FindObjectOfType <ProgressTracker>().GameStillInSession())
        {
            player = GameObject.FindObjectOfType <PlayerBehaviour>();
            HealthBehavior playerHealth = player.GetComponent <HealthBehavior>();
            switch (itemType)
            {
            case ItemType.healing: {
                if (player && playerHealth.GetCurrentHealth() > 0)
                {
                    playerHealth.IncreaseHealth(potency);
                    DecreaseCurrentReserveBy(1);
                    DisplayEffect(player.transform);
                }
            }
            break;

            case ItemType.buff: {
                if (player && playerHealth.GetCurrentHealth() > 0)
                {
                    /*int isDeadHash = Animator.StringToHash("Dead");
                     * AnimatorStateInfo info = player.GetPlayerAnimator().GetCurrentAnimatorStateInfo(0);
                     * Debug.Log("Player's current int state is: " + info.fullPathHash);
                     * Debug.Log("Player's dead animation state is: " + isDeadHash);*/
                    OffenseBehavior playerAtk = player.GetComponent <OffenseBehavior>();
                    playerAtk.BuffAttackPowerBy(potency, timeLengthOfEffect);
                    effectActive = true;
                    Invoke("EndOfEffect", timeLengthOfEffect + 0.5f);
                    DecreaseCurrentReserveBy(1);
                }
            }
            break;

            case ItemType.damage: {
                enemy = GameObject.FindObjectOfType <EnemyBehaviour>();
                HealthBehavior enemyHealth = enemy.GetComponent <HealthBehavior>();
                if (enemy && playerHealth.GetCurrentHealth() > 0 && enemyHealth.GetCurrentHealth() > 0)
                {
                    enemyHealth.ReduceHealth(potency);
                    StartCoroutine(DisplayAndTrackEffect(enemy.transform));
                    DecreaseCurrentReserveBy(1);
                }
            }
            break;

            default: { Debug.Log("Item Type for this item was not specified."); }
            break;
            }
        }
        else
        {
            Debug.Log("Cannot use this Item anymore");
        }
    }
コード例 #4
0
 private void Start()
 {
     myHealth  = GetComponent <HealthBehavior>();
     myOffense = GetComponent <OffenseBehavior>();
     gameState = GameObject.FindObjectOfType <ProgressTracker>();
     myHealth.ResetHealth();
     myHealth.UpdateHealthBar();
     if (items[0])
     {
         SetItemUsesToMax();
     }
 }
コード例 #5
0
    private void PrimeNewEnemy()
    {
        enemyOffenseStats = enemy.GetComponent <OffenseBehavior>();
        enemyOffenseStats.SetAttackPower(enemyOffenseStats.GetAttackPower());

        enemyHealthStats = enemy.GetComponent <HealthBehavior>();
        enemyHealthStats.SetMaxHealth(enemyHealthStats.maxHealth);

        enemyAi = enemy.GetComponent <EnemyBehaviour>();
        enemyAi.SetAttackRate(enemyAi.attackRateInSeconds);
        enemyAi.ResetEnemy();
    }
コード例 #6
0
    private void PrimeNewEnemy()
    {
        enemyOffenseStats = enemy.GetComponent <OffenseBehavior>();
        enemyOffenseStats.SetAttackPower(enemyOffenseStats.GetAttackPower() + multiplier);

        enemyHealthStats = enemy.GetComponent <HealthBehavior>();
        enemyHealthStats.SetMaxHealth(enemyHealthStats.maxHealth * multiplier);
        enemyHealthStats.SetDefenseValue(enemyHealthStats.GetDefenseValue() + multiplier);

        enemyAi = enemy.GetComponent <EnemyBehaviour>();
        //enemyAi.SetAttackRate(enemyAi.attackRateInSeconds);
        enemyAi.winningsValue *= multiplier;
        pendingWinnings        = enemy.GetComponent <EnemyBehaviour>().winningsValue;

        multiplier = (enemyPool.enemyIndex + 1) * difficultyScale;
    }
コード例 #7
0
    public void CancelAbility(string cancelType)
    {
        if (abilityActive && !isCoolingDown)
        {
            switch (abilityType)
            {
            case AbilityType.defense: {
                abilityActive = false;
                HealthBehavior playerHealth = player.GetComponent <HealthBehavior>();
                playerHealth.EnableBlockDamage(false);
                player.AbilityInUse(false);
                player.SetMyAnimator("EndDefense");
                EnableAbilityLabels();
            }
            break;

            case AbilityType.dodge: {
                if (cancelType.Equals("dodge"))
                {
                    abilityActive = false;
                    HealthBehavior playerHealth = player.GetComponent <HealthBehavior>();
                    playerHealth.SetAbsorbAttack(false, 0);
                    player.AbilityInUse(false);
                    EnableAbilityLabels();
                }
            }
            break;

            case AbilityType.stun: {
                abilityActive = false;
                OffenseBehavior playerOffense = player.GetComponent <OffenseBehavior>();
                EnableAbilityLabels();
            }
            break;
            }

            if (activeAbilityEffect)
            {
                Destroy(activeAbilityEffect);
            }
        }
    }