Пример #1
0
    public override void TakeDamage(int damage, ATTACK_TYPE type = ATTACK_TYPE.BLOCKED)
    {
        if (type == ATTACK_TYPE.BLOCKED)
        {
            AudioManager.instance.playsound("block");
            //return;
        }
        if (type == ATTACK_TYPE.HIGH)
        {
            isHitHigh = true;
            if (!anim.GetCurrentAnimatorStateInfo(0).IsTag("GuardHigh"))
            {
                anim.SetBool("damagedHigh", isHitHigh);
                AudioManager.instance.playsound("damage_high", true);
                blockValue = 0;
            }
            else
            {
                AudioManager.instance.playsound("block");
                //return;
            }
        }
        else if (type == ATTACK_TYPE.LOW)
        {
            isHitLow = true;
            if (!anim.GetCurrentAnimatorStateInfo(0).IsTag("GuardLow"))
            {
                anim.SetBool("damagedLow", isHitLow);
                AudioManager.instance.playsound("damage_low", true);
                blockValue = 0;
            }
            else
            {
                AudioManager.instance.playsound("block");
                //return;
            }
        }


        int calculatedDamage = damage - blockValue;

        if (calculatedDamage < 0)
        {
            calculatedDamage = 0;
        }
        health -= calculatedDamage;
        healthBar.fillAmount = ((float)health / 100.0f);

        Debug.Log(healthBar.fillAmount);

        Debug.Log(calculatedDamage);
        if (health < 50 && particleEmitter.activeSelf == false)
        {
            particleEmitter.SetActive(true);
            attack_left.damage  = (int)((float)attack_left.damage * 1.5f);
            attack_right.damage = (int)((float)attack_right.damage * 1.5f);
        }
    }
Пример #2
0
        public double PercentPhysicalDamage(ATTACK_TYPE atk_type)
        {
            double physical_damage = DefaultOneValue(_user.User_Item.Option_DTYPE, Enum.GetName(typeof(DTYPE), DTYPE.PHYSICAL_DAMAGE));

            if (atk_type == ATTACK_TYPE.MELEE_TYPE)
            {
                physical_damage += (1.0 - DefaultOneValue(_user.User_Item.Option_DTYPE, Enum.GetName(typeof(DTYPE), DTYPE.MELEE_PHYSICAL_DAMAGE)));
            }
            else if (atk_type == ATTACK_TYPE.RANGE_TYPE)
            {
                physical_damage += (1.0 - DefaultOneValue(_user.User_Item.Option_DTYPE, Enum.GetName(typeof(DTYPE), DTYPE.RANGE_PHYSICAL_DAMAGE)));
            }
            return(physical_damage);
        }
Пример #3
0
    public Transform colliderChecked(ATTACK_TYPE attackType)
    {
        Collider2D hittedCollider = Physics2D.OverlapBox(attackRangeCenter.position, colliderSize, obstacleLayer);

        if (hittedCollider.CompareTag("Monster"))
        {
            MonsterController monster = hittedCollider.GetComponent <MonsterController>();
            GameManager.Instance.currentScore += monster.score;
            Debug.Log(GameManager.Instance.currentScore);
            monster.DestroyItself();
            if (attackType == ATTACK_TYPE.NORMAL)
            {
                manaGained += 1;
            }
        }
        return(null);
    }
Пример #4
0
        public static int GetStatusBonusATK(ATTACK_TYPE atk_type, GetValue getvalue)
        {
            int BASE           = getvalue.User_Data.Base_Level.Point;
            int STR            = getvalue.User_Data.Status.List[(int)STATUS_ENUM.STR].Point + getvalue.User_Data.Status.List[(int)STATUS_ENUM.STR].AddPoint;
            int DEX            = getvalue.User_Data.Status.List[(int)STATUS_ENUM.DEX].Point + getvalue.User_Data.Status.List[(int)STATUS_ENUM.DEX].AddPoint;
            int statusBonusATK = 0;

            if (atk_type == ATTACK_TYPE.MELEE_TYPE)
            {
                statusBonusATK = (int)(getvalue.WeaponATK() * STR * STAT_WEIGHT);
            }
            else if (atk_type == ATTACK_TYPE.RANGE_TYPE)
            {
                statusBonusATK = (int)(getvalue.WeaponATK() * DEX * STAT_WEIGHT);
            }
            return(statusBonusATK);
        }
Пример #5
0
        public static int GetStatusATK(ATTACK_TYPE atk_type, UserData user)
        {
            int BASE      = user.Base_Level.Point;
            int STR       = user.Status.List[(int)STATUS_ENUM.STR].Point + user.Status.List[(int)STATUS_ENUM.STR].AddPoint;
            int DEX       = user.Status.List[(int)STATUS_ENUM.DEX].Point + user.Status.List[(int)STATUS_ENUM.DEX].AddPoint;
            int LUK       = user.Status.List[(int)STATUS_ENUM.LUK].Point + user.Status.List[(int)STATUS_ENUM.LUK].AddPoint;
            int statusATK = 0;

            if (atk_type == ATTACK_TYPE.MELEE_TYPE)
            {
                statusATK = (int)(STR + (DEX + LUK) * 0.2 + BASE * 0.25);
            }
            else if (atk_type == ATTACK_TYPE.RANGE_TYPE)
            {
                statusATK = (int)(DEX + (STR + LUK) * 0.2 + BASE * 0.25);
            }
            return(statusATK);
        }
Пример #6
0
    public void Hit(ATTACK_TYPE attackType)
    {
        attackTypeThisEvt = attackType;

        if (!hitboxEnabled)
        {
            hitboxEnabled = true;

            if (attackType == ATTACK_TYPE.BASE)
            {
                basicAttackCollider.enabled = true;
            }
            else
            {
                chargedAttackCollider.enabled = true;
            }

            hitboxCountdown = hitboxDuration;
        }
    }
Пример #7
0
 public CAttackType(int iAttackType)
 {
     this.AttackType = (ATTACK_TYPE)iAttackType;
 }
Пример #8
0
 public virtual void TakeDamage(int damage, ATTACK_TYPE type = ATTACK_TYPE.BLOCKED)
 {
 }
Пример #9
0
 public Equations(ATTACK_TYPE atk_type = ATTACK_TYPE.MELEE_TYPE)
 {
     attack_type = atk_type;
 }
 private bool TypeIsOn(ATTACK_TYPE type)
 {
     return((attackType & type) == type);
 }
 private void TypeOff(ATTACK_TYPE type)
 {
     attackType &= ~type;
 }
 private void TypeOn(ATTACK_TYPE type)
 {
     attackType |= type;
 }