示例#1
0
        public void MonsterChoises(CommandContext ctx, BaseMonstersEntity monster, CharacterEntity character)
        {
            var escolha = new Random().Next(1, 3);

            switch (escolha)
            {
            case 1:
                AttackBasicMonsterBasic(ctx, monster, character);
                break;

            default:
                break;
            }
        }
示例#2
0
        public CharacterEntity AttackBasicMonsterBasic(CommandContext ctx, BaseMonstersEntity monster, CharacterEntity character)
        {
            var baseAtaque = new Random().Next(5, 15) + new Random().Next((int)monster.PhysicalAttack.CurrentOrMinValuePoints, (int)monster.PhysicalAttack.MaxValuePoints);

            // formula sobre defesa a.atk / (1 + b.def / 100)

            /* O que essa formula significa? Significa que um personagem com 0 de DEF irá levar dano exatamente igual ao atk do agressor(atk / 1).Cada ponto de def além do primeiro irá aumentar o divisor em 0,01.Resultado:
             *
             * Um personagem com 0 DEF recebe 100 % do dano de um ataque.
             * Um personagem com 100 DEF recebe 50 % do dano de um ataque.
             * Um personagem com 200 DEF recebe 33,3 % do dano de um ataque.
             * Um personagem com 300 DEF recebe 25 % do dano de um ataque.
             * Um personagem com 400 DEF recebe 20 % do dano de um ataque. */

            var armor = new Random().Next(5, 10) + new Random().Next((int)character.Armor.CurrentOrMinValuePoints, (int)character.Armor.MaxValuePoints);

            character.LifePoints.CurrentOrMinValuePoints -= baseAtaque / (1 + armor / 100);

            return(character);
        }