hit history

This commit is contained in:
Spencer Killen 2023-11-11 22:38:31 -07:00
parent ff8c3ef752
commit 6693cd26b4
Signed by: sjkillen
GPG Key ID: 3AF3117BA6FBB75B
2 changed files with 27 additions and 0 deletions

View File

@ -13,12 +13,14 @@ var time_targets := Dictionary()
func _ready(): func _ready():
set_target(initial_target, false) set_target(initial_target, false)
time_targets[0] = target
camera.set_as_top_level(true) camera.set_as_top_level(true)
ControllerEventBus.billiard_touched_billiard.connect(_on_billiard_touched_billiard) ControllerEventBus.billiard_touched_billiard.connect(_on_billiard_touched_billiard)
TAS_System.FrameIncremented.connect(frame_inc) TAS_System.FrameIncremented.connect(frame_inc)
TAS_System.FramesAdvanced.connect(frames_change) TAS_System.FramesAdvanced.connect(frames_change)
TAS_System.FramesRegressed.connect(frames_change) TAS_System.FramesRegressed.connect(frames_change)
TAS_System.FramesReset.connect(frames_reset)
func frame_inc(frame: int): func frame_inc(frame: int):
time_targets[frame] = target time_targets[frame] = target
@ -27,6 +29,10 @@ func frames_change(start: int, end: int):
if time_targets[end] != target: if time_targets[end] != target:
set_target(time_targets[end].get_billiard()) set_target(time_targets[end].get_billiard())
func frames_reset():
time_targets = Dictionary()
time_targets[0] = target
func _on_billiard_touched_billiard(who: Billiard, touched: Billiard): func _on_billiard_touched_billiard(who: Billiard, touched: Billiard):

View File

@ -5,6 +5,27 @@ class_name Billiard
@export var power_max := 5.0 @export var power_max := 5.0
var can_hit = true var can_hit = true
var can_hit_history := Dictionary()
func _ready():
can_hit_history[0] = can_hit
TAS_System.FrameIncremented.connect(frame_inc)
TAS_System.FramesAdvanced.connect(frames_change)
TAS_System.FramesRegressed.connect(frames_change)
TAS_System.FramesReset.connect(frames_reset)
func frame_inc(frame: int):
can_hit_history[frame] = can_hit
func frames_change(start: int, end: int):
can_hit = can_hit_history[end]
func frames_reset():
can_hit_history = Dictionary()
can_hit_history[0] = can_hit
func hit(impulse: Vector3, power: float): func hit(impulse: Vector3, power: float):
apply_central_impulse(impulse * lerp(power_min, power_max, power)) apply_central_impulse(impulse * lerp(power_min, power_max, power))