示例#1
0
        public string Attack()
        {
            int    Chance;
            Attack Myattack;
            int    DamgeAfterAc = 0;
            int    weaponDamage = 0;
            float  DamgeModifyer;
            bool   ExtraAttack = false;

            switch (MyAttackType)
            {
            case AttackType.Melee:
                if (EquipedWeaponItem == null)
                {
                    weaponDamage = BareHandedDamge;
                }
                else
                {
                    Myattack     = EquipedWeaponItem.attack();
                    weaponDamage = Myattack.GetDamge();
                    switch (Myattack.GetDamgeTypePhy())
                    {
                    case PhyDamgeType.None:

                        break;

                    case PhyDamgeType.Blunt:

                        break;

                    case PhyDamgeType.Punture:

                        break;

                    case PhyDamgeType.Slash:

                        break;
                    }

                    switch (Myattack.GetElementalDamageType())
                    {
                    case MagicDamgeType.None:

                        break;

                    case MagicDamgeType.Earth:

                        break;

                    case MagicDamgeType.Water:

                        break;

                    case MagicDamgeType.Wind:
                        Chance = RNG.Next(0, 100);
                        if (Chance < 26)
                        {
                            ExtraAttack = true;
                        }
                        break;

                    case MagicDamgeType.Fire:
                        weaponDamage += (int)(weaponDamage * 0.5f);
                        break;
                    }
                }
                DamgeModifyer = PlayerStats.GetPower().GetDamgeModify();

                DamgeAfterAc = (int)((weaponDamage + (weaponDamage * (1 + DamgeModifyer))) - questManager.GetStoryMaker().GetEnemy().DamgeModify());
                if (DamgeAfterAc <= 0)
                {
                    DamgeAfterAc = 0;
                }
                questManager.GetStoryMaker().GetEnemy().DealDamge(DamgeAfterAc);


                break;

            case AttackType.Magic:
                if (EquipedMagicAttack == null)
                {
                    weaponDamage = BareHandedDamge;
                }
                else
                {
                    EquipedMagicAttack.GetDamage();
                }

                DamgeModifyer = PlayerStats.GetIntellegence().GetDamgeModify();
                DamgeAfterAc  = (int)((weaponDamage + (weaponDamage * (1 + DamgeModifyer))) - questManager.GetStoryMaker().GetEnemy().DamgeModify());
                if (DamgeAfterAc <= 0)
                {
                    DamgeAfterAc = 0;
                }
                questManager.GetStoryMaker().GetEnemy().DealDamge(DamgeAfterAc);
                break;
            }

            if (DamgeAfterAc == 0)
            {
                return("missed");
            }
            else
            {
                return(DamgeAfterAc.ToString());
            }
        }
示例#2
0
        public float Attack(Player target)
        {
            int    Chance;
            Attack Myattack;
            int    DamgeAfterAc = 0;
            int    weaponDamage = 0;
            float  DamgeModifyer;

            switch (MyAttackType)
            {
            case AttackType.Melee:
                if (EquipedWeaponItem == null)
                {
                    weaponDamage = BareHandedDamge;
                }
                else
                {
                    Myattack     = EquipedWeaponItem.attack();
                    weaponDamage = Myattack.GetDamge();
                    switch (Myattack.GetDamgeTypePhy())
                    {
                    case PhyDamgeType.None:

                        break;

                    case PhyDamgeType.Blunt:

                        break;

                    case PhyDamgeType.Punture:

                        break;

                    case PhyDamgeType.Slash:

                        break;
                    }
                    switch (Myattack.GetElementalDamageType())
                    {
                    case MagicDamgeType.None:

                        break;

                    case MagicDamgeType.Earth:

                        break;

                    case MagicDamgeType.Water:

                        break;

                    case MagicDamgeType.Wind:
                        Chance = RNG.Next(0, 100);
                        if (Chance < 26)
                        {
                        }
                        break;

                    case MagicDamgeType.Fire:
                        weaponDamage += (int)(weaponDamage * 0.5f);
                        break;
                    }
                }
                DamgeModifyer = PlayerStats.GetPower().GetDamgeModify();
                DamgeAfterAc  = (int)((weaponDamage + (weaponDamage * (1 + DamgeModifyer))) - target.GetAC());
                if (DamgeAfterAc <= 0)
                {
                    DamgeAfterAc = 0;
                }
                target.GetStats().GetVitallity().SetHealth(target.GetStats().GetVitallity().GetMyHealth() - DamgeAfterAc);
                return(DamgeAfterAc);

            case AttackType.Magic:
                if (EquipedMagicAttack == null)
                {
                    weaponDamage = BareHandedDamge;
                }
                else
                {
                    EquipedMagicAttack.GetDamage();
                }

                DamgeModifyer = PlayerStats.GetIntellegence().GetDamgeModify();
                DamgeAfterAc  = (int)((weaponDamage + (weaponDamage * (1 + DamgeModifyer))) - target.GetAC());
                if (DamgeAfterAc <= 0)
                {
                    DamgeAfterAc = 0;
                }
                target.GetStats().GetVitallity().SetHealth(target.GetStats().GetVitallity().GetMyHealth() - DamgeAfterAc);
                return(DamgeAfterAc);

            default:
                return(0);
            }
        }