Esempio n. 1
0
        Battle IBattlesService.Attack(int battleId, CreatureAttack attack, Pet damageDealer)
        {
            bool procc;

            ActionsService = new BattleActionsService(GetBattle(battleId), damageDealer);
            ActionsService.Attack(attack, (didProcc) => procc = didProcc);
            return(Repositories.CurrentBattleRepository.Battle);
        }
 void Start()
 {
     this.player = new CreatureAttack(
         app.model.player.creatureRB.position,
         app.model.player.hp,
         app.model.player.viewingRadius,
         app.model.player.speed,
         app.model.player.defence,
         app.model.player.force,
         app.model.player.attackSpeed
         );
     app.model.player.creatureRB.constraints = RigidbodyConstraints2D.FreezeRotation;
 }
Esempio n. 3
0
        /// <summary>
        /// Given that {attack} already contains full data
        ///
        /// </summary>
        /// <param name="attack"></param>
        /// <param name="dealer"></param>
        /// <param name="reciever"></param>
        public int CalculateAttackDamage(CreatureAttack attack, Pet dealer, Pet reciever)
        {
            // Calculate how much this attack deals to the Reciever.

            var extraDamage = dealer.Strength.Value / dealer.Agility.Value / dealer.Energy.Value;

            if (reciever.Energy.StatIsAboveAverage())
            {
                extraDamage -= reciever.Health.Value / 4;
            }

            // Damage only has the base damage.
            return(attack.Damage + extraDamage);
        }
Esempio n. 4
0
        public bool AddAttack(Pet pet, CreatureAttack attack)
        {
            var isMyPet = GetMyPets().FirstOrDefault(x => x.Id == pet.Id);

            if (isMyPet != null)
            {
                isMyPet.Attacks.Add(attack);
            }
            else
            {
                pet.Attacks.Add(attack);
            }

            return(true);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="attack"></param>
        /// <param name="extraAttackAvailable">Returns a callback bool whether or not a procc is available.</param>
        public void Attack(CreatureAttack attack, Action <bool> extraAttackAvailable)
        {
            var procc = CalculatorService.ProccOrNot(attack);

            var enemyDodges = CalculatorService.EnemyDodgesAttack(attack, DamageDealer, Enemy);

            if (enemyDodges)
            {
                return;
            }

            Enemy.Health.Value -= CalculatorService.CalculateAttackDamage(attack, DamageDealer, Enemy);

            extraAttackAvailable(procc);
        }
Esempio n. 6
0
 public void OnCreatureAttack(TargetAction action)
 {
     CreatureAttack.Raise(action);
 }
Esempio n. 7
0
 public bool AddAttack(Pet pet, CreatureAttack attack)
 {
     throw new NotImplementedException();
 }
Esempio n. 8
0
        public bool EnemyDodgesAttack(CreatureAttack attack, Pet dealer, Pet reciever)
        {
            var extraDodgePower = (reciever.Happiness.Value + reciever.Energy.Value) - dealer.Energy.Value / 3;

            return(new Random().Next(1, 100) < DODGE_PERCENT_CHANCE + extraDodgePower);
        }
Esempio n. 9
0
 public bool ProccOrNot(CreatureAttack attack)
 {
     return(new Random().Next(1, 100) < PROCC_PERCENT_CHANCE + attack.ProccPerBattlePercentage);
 }
Esempio n. 10
0
 public Battle Attack(int battleId, CreatureAttack attack, Pet damageDealer)
 {
     throw new NotImplementedException();
 }