Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
tech_effects.c File Reference

FIGHTSTG's technique effects and the start of an action. More...

Include dependency graph for tech_effects.c:

Go to the source code of this file.

Functions

void FIGHTSTG_tryPoison (void)
 TECH_EFFECT_POISON: poisons the target when rollPoison lets it, twice as strongly when the acting fighter is special.
 
void FIGHTSTG_tryParalysis (void)
 TECH_EFFECT_PARALYSIS: paralyzes the target when rollParalysis lets it, with the technique's effectPower or the accessory's, twice as strongly when the acting fighter is special.
 
void FIGHTSTG_tryConfusion (void)
 TECH_EFFECT_CONFUSION: confuses the target when rollConfusion lets it, with the technique's effectPower or the accessory's, twice as strongly when the acting fighter is special.
 
void FIGHTSTG_trySleep (void)
 TECH_EFFECT_SLEEP: puts the target to sleep when rollSleep lets it, twice as strongly when the acting fighter is special.
 
void FIGHTSTG_tryKnockOut (void)
 TECH_EFFECT_KNOCK_OUT: knocks the target out when rollKnockOut lets it.
 
void FIGHTSTG_rollMultiHit (void)
 TECH_EFFECT_MULTI_HIT and the triple-hit accessory: rolls the other hits, 3 or the technique's hitCount in all; in BATTLE_KIND_FINAL_LAST the player's missed first hit makes them all miss.
 
void FIGHTSTG_tryDrain (void)
 When rollDrain allows it, the action's drain becomes its damage times a 128th of the technique's effectPower (effect 8) or the player's HIT_DRAIN power, doubled when the acting fighter is special.
 
static void markTechEffect (void)
 Marks the action's technique's effect with the effect itself.
 
void FIGHTSTG_markEnemyOnly (void)
 TECH_EFFECT_ENEMY_ONLY outside its own enemy's hands: marks the effect, which takes the place of the hit.
 
void FIGHTSTG_markCritical (void)
 TECH_EFFECT_CRITICAL: marks the effect, which rollCritical has used.
 
void FIGHTSTG_trySteal (void)
 TECH_EFFECT_STEAL: when the enemy's active fighter holds an item and rollSteal lets the player take it, marks the effect and loads the item names.
 
void FIGHTSTG_lowerAttack (void)
 TECH_EFFECT_LOWER_ATTACK: lowers the attack of the other side's active fighter by the technique's effectPower in 128ths and starts its event (not when side 0 acts with BATTLE_BLOCK_LOWER_ATTACK set).
 
void FIGHTSTG_lowerDefense (void)
 TECH_EFFECT_LOWER_DEFENSE: lowers the defense of the other side's active fighter by the technique's effectPower in 128ths and starts its event.
 
void FIGHTSTG_drainMp (void)
 TECH_EFFECT_DRAIN_MP: takes the technique's effectPower in 128ths of the player's fighter's max MP, at most what it has, as the action's drain.
 
void FIGHTSTG_raiseOneStatus (void)
 TECH_EFFECT_RAISE_ONE_STATUS: when rollStatusRaise lets it, raises one of the partner's status values at random by the technique's effectPower.
 
void FIGHTSTG_raiseEachStatus (void)
 TECH_EFFECT_RAISE_EACH_STATUS: raises each of the partner's status values that rollStatusRaise lets by the technique's effectPower.
 
void FIGHTSTG_raiseAllStatus (void)
 TECH_EFFECT_RAISE_ALL_STATUS: when rollStatusRaise lets it, raises all of the partner's status values by the technique's effectPower.
 
void FIGHTSTG_tryNoSwitch (void)
 TECH_EFFECT_NO_SWITCH: marks the effect when rollNoSwitch lets it.
 
void FIGHTSTG_startDoubleMagic (void)
 Starts a TECH_EFFECT_DOUBLE_MAGIC technique: two magic hits, each with the damage of technique 0x1B9 or 0x1BA.
 
void FIGHTSTG_startEndBattle (void)
 Starts a TECH_EFFECT_END_BATTLE technique: in BATTLE_KIND_UNK2 its effect, elsewhere a plain physical hit.
 
void FIGHTSTG_applyTechEffect (void)
 Carries out the effect of a technique whose hit landed.
 
void FIGHTSTG_startAction (u8 side, s32 tech)
 Starts side's technique: rolls its hits and damage, then its effect or, for the player's plain techniques, the accessories' effects; outside normal battles WFIGHTMN_limitDamage caps the damage.
 

Detailed Description

FIGHTSTG's technique effects and the start of an action.

Definition in file tech_effects.c.

Function Documentation

◆ FIGHTSTG_tryPoison()

void FIGHTSTG_tryPoison ( void  )

TECH_EFFECT_POISON: poisons the target when rollPoison lets it, twice as strongly when the acting fighter is special.

Definition at line 7 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect(), and FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ FIGHTSTG_tryParalysis()

void FIGHTSTG_tryParalysis ( void  )

TECH_EFFECT_PARALYSIS: paralyzes the target when rollParalysis lets it, with the technique's effectPower or the accessory's, twice as strongly when the acting fighter is special.

< under it, the technique has none

Definition at line 23 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect(), and FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ FIGHTSTG_tryConfusion()

void FIGHTSTG_tryConfusion ( void  )

TECH_EFFECT_CONFUSION: confuses the target when rollConfusion lets it, with the technique's effectPower or the accessory's, twice as strongly when the acting fighter is special.

< under it, the technique has none

Definition at line 48 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect(), and FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ FIGHTSTG_trySleep()

void FIGHTSTG_trySleep ( void  )

TECH_EFFECT_SLEEP: puts the target to sleep when rollSleep lets it, twice as strongly when the acting fighter is special.

Definition at line 72 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the caller graph for this function:

◆ FIGHTSTG_tryKnockOut()

void FIGHTSTG_tryKnockOut ( void  )

TECH_EFFECT_KNOCK_OUT: knocks the target out when rollKnockOut lets it.

Definition at line 89 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect(), and FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ FIGHTSTG_rollMultiHit()

void FIGHTSTG_rollMultiHit ( void  )

TECH_EFFECT_MULTI_HIT and the triple-hit accessory: rolls the other hits, 3 or the technique's hitCount in all; in BATTLE_KIND_FINAL_LAST the player's missed first hit makes them all miss.

< under it, the technique has none

< its third enemy; winning plays the ending

Definition at line 100 of file tech_effects.c.

Referenced by FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ FIGHTSTG_tryDrain()

void FIGHTSTG_tryDrain ( void  )

When rollDrain allows it, the action's drain becomes its damage times a 128th of the technique's effectPower (effect 8) or the player's HIT_DRAIN power, doubled when the acting fighter is special.

The match depends on each branch doubling and scaling its own value.

< HP, in 128ths of the damage

< its power is in 128ths of the damage

< HP, in 128ths of the damage

Definition at line 142 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect(), and FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ markTechEffect()

static void markTechEffect ( void  )
inlinestatic

Marks the action's technique's effect with the effect itself.

Definition at line 170 of file tech_effects.c.

Referenced by FIGHTSTG_markCritical(), and FIGHTSTG_markEnemyOnly().

Here is the caller graph for this function:

◆ FIGHTSTG_markEnemyOnly()

void FIGHTSTG_markEnemyOnly ( void  )

TECH_EFFECT_ENEMY_ONLY outside its own enemy's hands: marks the effect, which takes the place of the hit.

Definition at line 179 of file tech_effects.c.

Referenced by FIGHTSTG_startAction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FIGHTSTG_markCritical()

void FIGHTSTG_markCritical ( void  )

TECH_EFFECT_CRITICAL: marks the effect, which rollCritical has used.

Definition at line 184 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FIGHTSTG_trySteal()

void FIGHTSTG_trySteal ( void  )

TECH_EFFECT_STEAL: when the enemy's active fighter holds an item and rollSteal lets the player take it, marks the effect and loads the item names.

The match depends on funcs being a const pointer: the front end puts its value in the call, so only the %hi of its own initialization is left for CSE to share with the call's address.

< ITMNAM

Definition at line 193 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the caller graph for this function:

◆ FIGHTSTG_lowerAttack()

void FIGHTSTG_lowerAttack ( void  )

TECH_EFFECT_LOWER_ATTACK: lowers the attack of the other side's active fighter by the technique's effectPower in 128ths and starts its event (not when side 0 acts with BATTLE_BLOCK_LOWER_ATTACK set).

The match depends on team being a u8.

< to 10: attack, defense, speed (a technique's boost stat + 8)

Definition at line 211 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FIGHTSTG_lowerDefense()

void FIGHTSTG_lowerDefense ( void  )

TECH_EFFECT_LOWER_DEFENSE: lowers the defense of the other side's active fighter by the technique's effectPower in 128ths and starts its event.

Definition at line 226 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FIGHTSTG_drainMp()

void FIGHTSTG_drainMp ( void  )

TECH_EFFECT_DRAIN_MP: takes the technique's effectPower in 128ths of the player's fighter's max MP, at most what it has, as the action's drain.

Definition at line 237 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the caller graph for this function:

◆ FIGHTSTG_raiseOneStatus()

void FIGHTSTG_raiseOneStatus ( void  )

TECH_EFFECT_RAISE_ONE_STATUS: when rollStatusRaise lets it, raises one of the partner's status values at random by the technique's effectPower.

Definition at line 252 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the caller graph for this function:

◆ FIGHTSTG_raiseEachStatus()

void FIGHTSTG_raiseEachStatus ( void  )

TECH_EFFECT_RAISE_EACH_STATUS: raises each of the partner's status values that rollStatusRaise lets by the technique's effectPower.

Definition at line 267 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the caller graph for this function:

◆ FIGHTSTG_raiseAllStatus()

void FIGHTSTG_raiseAllStatus ( void  )

TECH_EFFECT_RAISE_ALL_STATUS: when rollStatusRaise lets it, raises all of the partner's status values by the technique's effectPower.

Definition at line 282 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the caller graph for this function:

◆ FIGHTSTG_tryNoSwitch()

void FIGHTSTG_tryNoSwitch ( void  )

TECH_EFFECT_NO_SWITCH: marks the effect when rollNoSwitch lets it.

Definition at line 297 of file tech_effects.c.

Referenced by FIGHTSTG_applyTechEffect().

Here is the caller graph for this function:

◆ FIGHTSTG_startDoubleMagic()

void FIGHTSTG_startDoubleMagic ( void  )

Starts a TECH_EFFECT_DOUBLE_MAGIC technique: two magic hits, each with the damage of technique 0x1B9 or 0x1BA.

Definition at line 308 of file tech_effects.c.

Referenced by FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ FIGHTSTG_startEndBattle()

void FIGHTSTG_startEndBattle ( void  )

Starts a TECH_EFFECT_END_BATTLE technique: in BATTLE_KIND_UNK2 its effect, elsewhere a plain physical hit.

< the enemy keeps an eleventh of its HP

Definition at line 334 of file tech_effects.c.

Referenced by FIGHTSTG_startAction().

Here is the caller graph for this function:

◆ FIGHTSTG_applyTechEffect()

void FIGHTSTG_applyTechEffect ( void  )

Carries out the effect of a technique whose hit landed.

< HP, in 128ths of the damage

< the enemy's item

< raises the critical hit chance

< the partner's, in 128ths of its max MP

< PartnerStats.status: one at random

< each one that a roll lets

< FIGHTER_NO_SWITCH for a while

Definition at line 348 of file tech_effects.c.

Referenced by FIGHTSTG_startAction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FIGHTSTG_startAction()

void FIGHTSTG_startAction ( u8  side,
s32  tech 
)

Starts side's technique: rolls its hits and damage, then its effect or, for the player's plain techniques, the accessories' effects; outside normal battles WFIGHTMN_limitDamage caps the damage.

the functions of FIGHTSTG_battle, FIGHTSTG_action and FIGHTSTG_battleFuncs

< two magic hits, as techniques 0x1B9 and 0x1BA

< in BATTLE_KIND_UNK2: takes 70 percent of the partner's HP, ends as BATTLE_FLED

< does nothing but for the enemy whose battle table entry lists it first

< FIGHTSTG_rollHit and FIGHTSTG_computeDamage

< under it, the technique has none

< its power is read by nothing

< its power is in 128ths of the damage

< under it, the technique has none

< FIGHTSTG_rollMagicHit and FIGHTSTG_computeMagicDamage

< under it, the technique has none

Definition at line 404 of file tech_effects.c.

Here is the call graph for this function: