Exemplo n.º 1
0
        public Mob ExecuteAbility(IOffensiveMeleeRageAbility ability, Mob mob, AbilityCheckState state)
        {
            var damage = ability.GetDamage();

            mob.SetHp(mob.HP - damage);
            CharacterState.LatestDamageDone  = damage;
            CharacterState.LatestAbilityUsed = ability;
            UpdateRage(ability, state);

            return(mob);
        }
Exemplo n.º 2
0
        public void UpdateRage(IOffensiveMeleeRageAbility ability, AbilityCheckState state)
        {
            // Can't crit yet
            if (state.ResourceKind == AbilityResourceKind.Gainer)
            {
                CurrentRage += ability.GetRageGain(false);
            }

            if (state.CanExecute)
            {
                CurrentRage -= ability.GetRageCost();
            }
        }
Exemplo n.º 3
0
        public override Mob ExecuteOffensiveMeleeRageAbility(IOffensiveMeleeRageAbility ability, Mob mob)
        {
            AbilityCheckState state = CanExecuteAbility(ability, MaxRage);

            if (state.CanExecute)
            {
                mob = ExecuteAbility(ability, mob, state);
            }
            else
            {
                Console.WriteLine("\nYou don't have enough rage to execute that ability");
            }

            return(mob);
        }
Exemplo n.º 4
0
        public AbilityCheckState CanExecuteAbility(IOffensiveMeleeRageAbility ability, int maxRage)
        {
            AbilityCheckState state = new AbilityCheckState();

            if (ability.GetResourceKind() == AbilityResourceKind.Gainer)
            {
                state.CanExecute   = true;
                state.ResourceKind = AbilityResourceKind.Gainer;
            }

            if (CurrentRage < ability.GetRageCost())
            {
                state.CanExecute   = false;
                state.ResourceKind = AbilityResourceKind.Consumer;
            }
            state.CanExecute   = true;
            state.ResourceKind = AbilityResourceKind.Consumer;

            return(state);
        }
Exemplo n.º 5
0
 public override abstract Mob ExecuteOffensiveMeleeRageAbility(IOffensiveMeleeRageAbility ability, Mob mob);
Exemplo n.º 6
0
 public virtual Mob ExecuteOffensiveMeleeRageAbility(IOffensiveMeleeRageAbility ability, Mob mob)
 {
     throw new NotImplementedException();
 }