41 lines
1.8 KiB
GDScript
41 lines
1.8 KiB
GDScript
class_name BattleEffect
|
|
extends RefCounted
|
|
|
|
#un effet actif sur un pokemon en combat : statut, confusion, peur... (plus tard : talent, objet tenu).
|
|
#le moteur appelle ces crochets aux moments cles ; une sous-classe ne redefinit que ceux qui l'interessent.
|
|
#les crochets "async" peuvent utiliser "await" (messages, degats...).
|
|
|
|
var id : StringName = &""
|
|
|
|
## Modifie une statistique (brulure : Attaque / 2, paralysie : Vitesse / 2...). Synchrone.
|
|
func modify_stat(_mon : BattleMon, _stat : PokemonNature.Stat, value : float) -> float:
|
|
return value
|
|
|
|
## Appele juste avant qu'un pokemon utilise une capacite. Renvoyer false = il ne peut pas agir.
|
|
func before_action(_battle : Battle, _slot : BattleSlot, _action : BattleAction) -> bool:
|
|
return true
|
|
|
|
## Appele quand le pokemon entre en combat (Intimidation, Crachin...).
|
|
func on_enter(_battle : Battle, _slot : BattleSlot) -> void:
|
|
pass
|
|
|
|
## Appele sur le DEFENSEUR avant qu'une capacite ne le touche. Renvoyer true = la capacite est annulee (talent d'absorption...).
|
|
func on_before_hit(_battle : Battle, _attacker : BattleSlot, _defender : BattleSlot, _move : MoveData) -> bool:
|
|
return false
|
|
|
|
## Appele sur le DEFENSEUR apres chaque coup recu (talents de contact...).
|
|
func on_after_hit(_battle : Battle, _attacker : BattleSlot, _defender : BattleSlot, _move : MoveData, _damage : int) -> void:
|
|
pass
|
|
|
|
## Appele sur l'ATTAQUANT pendant le calcul des degats : renvoie les degats modifies (Technicien, Adaptabilite...).
|
|
func modify_outgoing_damage(_attacker : BattleMon, _defender : BattleMon, _move : MoveData, damage : float) -> float:
|
|
return damage
|
|
|
|
## Appele a la fin de chaque tour (degats de brulure, de poison...).
|
|
func on_turn_end(_battle : Battle, _slot : BattleSlot) -> void:
|
|
pass
|
|
|
|
## Pour les effets temporaires : true = retire a la fin du tour (peur).
|
|
func is_expired() -> bool:
|
|
return false
|