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 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