How do I use a "Resistence" Mechanic to reduce damage?

  • Currently i'm using instance variables in a formula like this:

    (Hero.damage - Enemy.Defense) <-- That's in the event to "subtract from the instance variable" (HP) of the enemy.

    The problem is, when the damage dealt is less than the Enemy's Defense, the HP from the enemy goes up, kinda like the attack is healing the enemy... I need to make so the resistance reduces de damage to 0 at the worst scenario, but never heals the enemy from the attacks the player makes.

    There is a tool or some kind of trick to make a mechanic like that work?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Compare Enemy Defense and Hero Damage

    If Enemy Defense >= Hero Damage

    - Do nothing or just show "miss"

    Else

    - Subtract enemy HP

  • What klabundee suggested will work

    There's also a system expression that's great for this called clamp()

    You would do

    Clamp(hero damage - enemy defense, 0, infinity)

    This would make it so the damage never goes below 0 and never goes higher than infinity

  • Both above solutions will work.

    The way I would do is simply use the 'max' system expression.

    hp = max(0, Hero.damage - Enemy.Defense)

    this way, it will take the maximum value from the two parameters. Which means, when the subtraction goes negative, it will choose 0 as hp.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)