YesNoOk
avatar

How to implement "Damage Scaling by Number of Attacks"? (Read 1966 times)

Started by Fausto Mugen, July 25, 2016, 04:51:28 pm
Share this topic:
How to implement "Damage Scaling by Number of Attacks"?
#1  July 25, 2016, 04:51:28 pm
  • **
  • I got tired of waiting for someone to do it for me
    • Argentina
[Google Translate]

How I can implement a "damage dampener" with this feature ?:


<< Damage Scaling by Number of Attacks

Similar to Damage Scaling by Number of Hits, except that damage is decreased by a fixed percent for every attack used in the combo, rather than every individual hit. This forces the damage of each hit of a multi-hitting move to be scaled by the same percent, as opposed to additional scaling being applied to the damage of each individual hit.

Examples: Street Fighter 4

Source: http://mugen.wikia.com/wiki/Damage_Scaling >>
Re: How to implement "Damage Scaling by Number of Attacks"?
#2  July 25, 2016, 05:28:15 pm
  • avatar
  • ******
    • Thailand
use a variable that increases by 1 every time you enter your attack states. Place the varadd in each attack state.

Have that same variable reset if you the opponent is not being juggled or comboed. Gethitvar, hitover, hitshakeover, movetype, and ctrl are likely all the triggers you'll need.

Code:
attack state

varadd
triggerall = numenemy && time = 0
trigger1 = enemynear,hitover = 0 && etc
varXX = 1


-2 statedef
varset
triggerall = numenemy
trigger = enemynear,hitover || enemy,movetype != H
ETC
varXX = 0
or something like that.
Re: How to implement "Damage Scaling by Number of Attacks"?
#3  July 26, 2016, 03:04:19 am
  • ******
  • Loyal to the Game
    • USA
    • http://jesuszilla.trinitymugen.net/
You don't have to do the varadd in the attack state. There's a much easier way in -2:

Code:
[State -2, Hit]
type = VarSet
triggerall = Var(x) < 0
trigger1 = MoveContact = 1
trigger2 = helper, MoveContact = 1
var(x) = ifElse(HitPauseTime = 0, helper, HitPauseTime, HitPauseTime)
ignorehitpause = 1
[State -2, Hit]
type = VarSet
trigger1 = 1
var(x) = -1

[State -2, Combo]
type = VarSet
trigger1 = NumEnemy
trigger1 = Enemy,MoveType != H
var(y) = 0
ignorehitpause = 1

[State -2, Combo]
type = VarAdd
trigger1 = Var(x) = HitPauseTime
trigger1 = (StateNo != [800,899]) ; Insert other throw states here
trigger1 = MoveHit
trigger2 = ProjHit = 1
trigger3 = Var(x) = HitPauseTime
trigger3 = helper, MoveHit
var(y) = 1
ignorehitpause = 1
Last Edit: July 26, 2016, 03:11:25 am by Jesuszilla
Re: How to implement "Damage Scaling by Number of Attacks"?
#4  July 26, 2016, 06:28:41 am
  • avatar
  • ******
    • Thailand
He said he didn't want it based on every individual hit, but instead based on changing to different attacks during a combo
Re: How to implement "Damage Scaling by Number of Attacks"?
#5  July 27, 2016, 03:56:18 pm
  • **
  • I got tired of waiting for someone to do it for me
    • Argentina
Thank you very much for your answers, I will try to apply them.