22 lines
694 B
GDScript
22 lines
694 B
GDScript
class_name PoisonEffect
|
|
extends BattleEffect
|
|
|
|
#poison simple (1/8 des PV par tour) ou poison grave (1/16 x compteur, qui augmente chaque tour)
|
|
|
|
var severe : bool = false
|
|
|
|
func _init(p_severe : bool = false) -> void:
|
|
severe = p_severe
|
|
id = &"bad_poison" if severe else &"poison"
|
|
|
|
func on_turn_end(battle : Battle, slot : BattleSlot) -> void:
|
|
var mon : BattleMon = slot.mon
|
|
var max_hp : int = mon.pokemon.get_max_hp()
|
|
var amount : int
|
|
if severe:
|
|
mon.toxic_counter = mini(mon.toxic_counter + 1, 15)
|
|
amount = maxi(1, floori(max_hp * mon.toxic_counter / 16.0))
|
|
else:
|
|
amount = maxi(1, floori(max_hp / 8.0))
|
|
await battle.hurt(slot, amount, "%s souffre du poison !" % mon.display_name())
|