Bear, level selector (to be removed), new matador spawn, new bear level, saving config updates source files
This commit is contained in:
+24
@@ -35,6 +35,7 @@ var _swing_timer: float = 0.0
|
||||
var _lunge_timer: float = 0.0
|
||||
var _roll_timer: float = 0.0
|
||||
var _roll_dir: Vector3 = Vector3.ZERO
|
||||
var _is_spawning: bool = false
|
||||
var _throw_timer: float = 0.0
|
||||
var _throw_aim_cd: float = 0.0
|
||||
var _throw_dir: Vector3 = Vector3.ZERO
|
||||
@@ -118,11 +119,13 @@ func _ready() -> void:
|
||||
_ole_player = AudioStreamPlayer.new()
|
||||
_ole_player.stream = load("res://sounds/ole.ogg")
|
||||
_ole_player.volume_db = 0.0
|
||||
_ole_player.bus = &"Effects"
|
||||
add_child(_ole_player)
|
||||
if ResourceLoader.exists("res://sounds/matador_death.ogg"):
|
||||
_death_player = AudioStreamPlayer.new()
|
||||
_death_player.stream = load("res://sounds/matador_death.ogg")
|
||||
_death_player.volume_db = 2.0
|
||||
_death_player.bus = &"Effects"
|
||||
add_child(_death_player)
|
||||
|
||||
|
||||
@@ -143,6 +146,10 @@ func _acquire_bull() -> void:
|
||||
func _physics_process(delta: float) -> void:
|
||||
_acquire_bull()
|
||||
|
||||
if _is_spawning and is_on_floor():
|
||||
_is_spawning = false
|
||||
collision_layer = 1
|
||||
|
||||
if DP.b("show_raycasts") and _steer_dir != Vector3.ZERO:
|
||||
var o := global_position + Vector3.UP * 0.6
|
||||
DebugDraw.ray(o, o + _steer_dir * _STEER_LOOKAHEAD, Color(0.3, 1.0, 0.9))
|
||||
@@ -564,6 +571,23 @@ func _enter_roll(hit_dir: Vector3) -> void:
|
||||
_anim_player.seek(0.0, true)
|
||||
|
||||
|
||||
# Called by the spawner (deferred) to make the matador leap-roll toward a target
|
||||
# point on entry — the cinematic arena entrance. After the roll it transitions to
|
||||
# normal AI via the standard ROLL → FLEE path.
|
||||
func enter_spawn_roll(toward: Vector3) -> void:
|
||||
var dir := toward - global_position
|
||||
dir.y = 0.0
|
||||
_roll_dir = dir.normalized() if dir.length() > 0.1 else -_mesh.global_transform.basis.z
|
||||
_state = State.ROLL
|
||||
_roll_timer = _anim_length(_ANIM_ROLL, DP.f("mat_roll_duration"))
|
||||
_is_spawning = true
|
||||
collision_layer = 0
|
||||
velocity.y = 4.0
|
||||
if _anim_player and _anim_player.has_animation(_ANIM_ROLL):
|
||||
_anim_player.play(_ANIM_ROLL)
|
||||
_anim_player.seek(0.0, true)
|
||||
|
||||
|
||||
func _tick_roll(delta: float) -> void:
|
||||
_roll_timer -= delta
|
||||
if _roll_timer <= 0.0:
|
||||
|
||||
Reference in New Issue
Block a user