Browse Source

Fix hero switch working globally

master
Luna 7 years ago
parent
commit
433e61257f
1 changed files with 17 additions and 16 deletions
  1. +17
    -16
      scripts/player.gd

+ 17
- 16
scripts/player.gd View File

@ -21,7 +21,7 @@ var switch_charge = 0
var switch_charge_cap = 200 # While switching is always at 100, things like speed boost might go higher!
var movement_charge = 0.15 # In percent per meter (except when heroes change that)
const fall_height = -25
const fall_height = -50
var debug_node
@ -157,20 +157,21 @@ func control_player(state):
func _process(delta):
# All player code not caused by input, and not causing movement
var vel = get_linear_velocity()
switch_charge += movement_charge * vel.length() * delta
var switch_node = get_node("MasterOnly/SwitchCharge")
switch_node.set_text("%.f%%" % switch_charge)
if switch_charge >= 100:
# Let switch_charge keep building, because we use it for walk_speed and things
switch_node.set_text("100%% (%.f)\nQ - Switch hero" % switch_charge)
if switch_charge > switch_charge_cap:
# There is however a cap
switch_charge = switch_charge_cap
if get_translation().y < fall_height:
spawn()
switch_hero_interface()
if is_network_master():
var vel = get_linear_velocity()
switch_charge += movement_charge * vel.length() * delta
var switch_node = get_node("MasterOnly/SwitchCharge")
switch_node.set_text("%.f%%" % switch_charge)
if switch_charge >= 100:
# Let switch_charge keep building, because we use it for walk_speed and things
switch_node.set_text("100%% (%.f)\nQ - Switch hero" % switch_charge)
if switch_charge > switch_charge_cap:
# There is however a cap
switch_charge = switch_charge_cap
if get_translation().y < fall_height:
spawn()
switch_hero_interface()
func switch_hero_interface():
# Interface needs the mouse!
@ -189,7 +190,7 @@ func switch_hero_master():
sync func switch_hero(hero):
var new_hero = load("res://scenes/heroes/%d.tscn" % hero).instance()
var net_id = get_tree().get_network_unique_id()
var net_id = int(get_name())
set_name("%d-delete" % net_id) # Can't have duplicate names
new_hero.set_name("%d" % net_id)
new_hero.set_network_master(net_id)


Loading…
Cancel
Save