4
0
Fork 0
WolfBox/scripts/werewolf/night_actions/protect_night_action.gd

18 lines
619 B
GDScript

extends PickPlayerAction
class_name ProtectNightAction
@export var infinite_protection: bool = false
func execute_with_target(user: WolfPlayer, target: WolfPlayer) -> bool:
if !super.execute_with_target(user, target):
return false
target.add_murder_callback(_target_about_to_be_murdered)
return true
func _target_about_to_be_murdered(target: WolfPlayer, killer: WolfPlayer) -> WolfPlayer.CallbackFlags:
if !infinite_protection:
return WolfPlayer.CallbackFlags.STOP_PROCESS # no you don't
else:
return WolfPlayer.CallbackFlags.STOP_PROCESS | WolfPlayer.CallbackFlags.KEEP_CALLBACK # no you REALLY don't