hit history
This commit is contained in:
		
							parent
							
								
									ff8c3ef752
								
							
						
					
					
						commit
						6693cd26b4
					
				
					 2 changed files with 27 additions and 0 deletions
				
			
		| 
						 | 
					@ -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):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue