2026-10-18 16:06:22 -05:00
|
|
|
class_name BaseJet extends Node
|
|
|
|
|
|
|
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
var CONFLICT_SIDE = Globals.FACTION.NEUTRAL
|
2026-10-18 16:06:22 -05:00
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
var HEALTH: int = 100
|
|
|
|
|
var YAW_SPEED: int = 50
|
|
|
|
|
var ROLL_SPEED: int = 100
|
|
|
|
|
var MIN_SPEED: int = 200
|
|
|
|
|
var MAX_SPEED: int = 2000
|
2026-10-19 21:27:46 -05:00
|
|
|
var ACCELERATION: int = 15
|
|
|
|
|
|
|
|
|
|
var speed: float = float(MIN_SPEED)
|
2026-10-18 16:06:22 -05:00
|
|
|
|
|
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
func do_action(
|
|
|
|
|
action: String,
|
|
|
|
|
delta: float,
|
|
|
|
|
jet: Jet
|
|
|
|
|
) -> void:
|
|
|
|
|
var change_rate: float = deg_to_rad(1) * delta
|
2026-10-18 16:06:22 -05:00
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
match action:
|
|
|
|
|
"pull_up":
|
|
|
|
|
pull_up(change_rate, jet)
|
|
|
|
|
"push_down":
|
|
|
|
|
push_down(change_rate, jet)
|
|
|
|
|
"yaw_left":
|
|
|
|
|
yaw_left(change_rate, jet)
|
|
|
|
|
"yaw_right":
|
|
|
|
|
yaw_right(change_rate, jet)
|
|
|
|
|
"roll_left":
|
|
|
|
|
roll_left(change_rate, jet)
|
|
|
|
|
"roll_right":
|
|
|
|
|
roll_right(change_rate, jet)
|
|
|
|
|
"throttle_up":
|
2026-10-19 21:27:46 -05:00
|
|
|
throttle_up(delta)
|
2026-10-18 22:58:58 -05:00
|
|
|
"throttle_down":
|
2026-10-19 21:27:46 -05:00
|
|
|
throttle_down(delta)
|
2026-10-18 22:58:58 -05:00
|
|
|
_:
|
|
|
|
|
pass
|
2026-10-18 16:06:22 -05:00
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
func pull_up(change_rate: float, jet: Jet) -> void:
|
|
|
|
|
jet.rotate_object_local(Vector3.RIGHT, change_rate * MIN_SPEED)
|
2026-10-18 16:06:22 -05:00
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
func push_down(change_rate: float, jet: Jet) -> void:
|
|
|
|
|
jet.rotate_object_local(Vector3.LEFT, change_rate * MIN_SPEED)
|
2026-10-18 16:06:22 -05:00
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
func yaw_left(change_rate: float, jet: Jet) -> void:
|
|
|
|
|
jet.rotate_object_local(Vector3.UP, change_rate * YAW_SPEED)
|
2026-10-18 16:06:22 -05:00
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
func yaw_right(change_rate: float, jet: Jet) -> void:
|
|
|
|
|
jet.rotate_object_local(Vector3.DOWN, change_rate * YAW_SPEED)
|
2026-10-18 16:06:22 -05:00
|
|
|
|
2026-10-18 22:58:58 -05:00
|
|
|
func roll_left(change_rate: float, jet: Jet) -> void:
|
|
|
|
|
jet.rotate_object_local(Vector3.BACK, change_rate * ROLL_SPEED)
|
|
|
|
|
|
|
|
|
|
func roll_right(change_rate: float, jet: Jet) -> void:
|
|
|
|
|
jet.rotate_object_local(Vector3.FORWARD, change_rate * ROLL_SPEED)
|
|
|
|
|
|
2026-10-19 21:27:46 -05:00
|
|
|
func throttle_up(delta: float) -> void:
|
|
|
|
|
speed = move_toward(speed, MAX_SPEED, ACCELERATION * delta)
|
2026-10-18 22:58:58 -05:00
|
|
|
|
2026-10-19 21:27:46 -05:00
|
|
|
func throttle_down(delta: float) -> void:
|
|
|
|
|
speed = move_toward(speed, MIN_SPEED, ACCELERATION * delta)
|