Browse Source

Masterize objective transform

master
Luna 7 years ago
parent
commit
a8f4c317ec
1 changed files with 35 additions and 24 deletions
  1. +35
    -24
      scripts/objective.gd

+ 35
- 24
scripts/objective.gd View File

@ -6,7 +6,7 @@ var active = false
var right_active = false
var activation_margin = 0.1
var update_frequency = 1 # In secs. This isn't too fast-paced, so don't clog the network with updates every frame
var update_frequency = 2 # In secs. This isn't too fast-paced, so don't clog the network with updates every frame
var update_count = 0
var master_team_right = null
@ -17,26 +17,15 @@ var build_rate = 1.5
var restart_count = 0
var restart_time = 15
func _integrate_forces(state):
var rot = get_rotation().x
slave func set_status(status):
transform = status[0]
angular_velocity = status[1]
if active:
activation_margin = 0
if rot > activation_margin:
active = true
right_active = false
if rot < -activation_margin:
active = true
right_active = true
if active:
if right_active == master_team_right:
# We DO own the correct one; display left counting, blue
get_node("../HUD/LeftTeam").add_color_override("font_color_shadow", friend_color)
get_node("../HUD/RightTeam").add_color_override("font_color_shadow", Color(0,0,0,0))
else:
# We DO NOT own the correct one; display right counting, red
get_node("../HUD/LeftTeam").add_color_override("font_color_shadow", Color(0,0,0,0))
get_node("../HUD/RightTeam").add_color_override("font_color_shadow", enemy_color)
func get_status():
return [
transform,
angular_velocity,
]
func _process(delta):
@ -56,17 +45,39 @@ func _process(delta):
var full_name = "res://assets/objective-%s.png" % name
get_node("MeshInstance").get_surface_material(0).albedo_texture = load(full_name)
# Check what's active
var rot = rotation.x
if active:
activation_margin = 0
if rot > activation_margin:
active = true
right_active = false
if rot < -activation_margin:
active = true
right_active = true
if active:
if right_active == master_team_right:
# We DO own the correct one; display left counting, blue
get_node("../HUD/LeftTeam").add_color_override("font_color_shadow", friend_color)
get_node("../HUD/RightTeam").add_color_override("font_color_shadow", Color(0,0,0,0))
else:
# We DO NOT own the correct one; display right counting, red
get_node("../HUD/LeftTeam").add_color_override("font_color_shadow", Color(0,0,0,0))
get_node("../HUD/RightTeam").add_color_override("font_color_shadow", enemy_color)
# Count the percents
if active:
if right_active:
right += delta * build_rate
else:
left += delta * build_rate
update_count += delta
update_count += delta / Engine.time_scale # This is important so we update at 100% as well
if is_network_master() and update_count > update_frequency:
update_count = 0
rset("left", left)
rset("right", right)
if is_network_master():
rpc_unreliable("set_status", get_status())
# Check for game over
var game_over = false
@ -84,12 +95,12 @@ func _process(delta):
if winner_right == master_team_right:
text = "You win!!!"
get_node("../HUD/Finish").set_text(text)
Engine.set_time_scale(0.1)
Engine.time_scale = 0.1
# You won't believe this, but because time_scale is 0.1 we have to multiply times 10 for proper timing
restart_count += delta * 10
restart_count += delta / Engine.time_scale
if restart_count > restart_time:
Engine.time_scale = 1
get_node("/root/Lobby").reset_state()
Engine.set_time_scale(1)
# Render the percents
var on_left = left


Loading…
Cancel
Save