This repository has been archived on 2023-12-19. You can view files and clone it, but cannot push or open issues or pull requests.
MUR/scripts/player/bot_controls.gd
2019-07-23 19:49:04 +02:00

57 lines
1.4 KiB
GDScript

extends Spatial
var player:Player
const MAX_ROAD_INDEX = 1
var error_rate:float = 0.00
var underspeed_rate:float = 0.00
func _ready():
randomize()
func _physics_process(delta):
if is_network_master() && player != null:
if player.is_out:
if player.is_resetable:
player.reset()
else:
if player.get_road() != null:
var rate = randf()
var road = player.get_road()
var road_index = 0
var speed_constrain = 0.0
while road != null && road_index < MAX_ROAD_INDEX:
for index in range(road.speed_constrains.size()):
var constrain = road.speed_constrains[index]
if constrain.z > 0:
speed_constrain = max(speed_constrain, constrain.z)
elif constrain.z < 0:
speed_constrain = min(speed_constrain, constrain.z)
road = player.route.get_road(road.get_index() + 1)
road_index += 1
var speed = player.current_speed
if speed_constrain < 0:
player.thrust = 1
elif speed_constrain > 0 && speed > speed_constrain:
player.thrust = -1
elif rate > underspeed_rate:
player.thrust = 1
else:
player.thrust = 0
func set_player(path:String):
player = get_node(path)
get_node("inventory").set_player(player)
func set_error_rate(new_error_rate:float):
error_rate = new_error_rate
func set_underspeed_rate(new_underspeed_rate:float):
underspeed_rate = new_underspeed_rate