diff --git a/scripts/heroes/1-wall.gd b/scripts/heroes/1-wall.gd index 9a4c45f..c112da2 100644 --- a/scripts/heroes/1-wall.gd +++ b/scripts/heroes/1-wall.gd @@ -1,10 +1,14 @@ extends StaticBody var maker_node -var touch_charge = 1 +var touch_charge = 4 +var being_touched = 0 func init(maker, color): maker_node = maker + for player in get_node("/root/Level/Players").get_children(): + player.connect("body_entered", self, "count_bodies", [player, 1]) + player.connect("body_exited", self, "count_bodies", [player, -1]) var mat = SpatialMaterial.new() color.a = 0.5 mat.flags_transparent = true @@ -21,10 +25,12 @@ func make_last(): mat.flags_transparent = true mat.albedo_color.a = 0.9 +func count_bodies(with, player, delta): + if with == self: + if player != maker_node: + being_touched += delta + func _process(delta): - pass - # var cols = get_colliding_bodies() - # for col in cols: - # if col != maker_node: # Don't count ourself. This encourages teamwork and discourages wall-touching-for-charge abuse - # maker_node.switch_charge += touch_charge * delta + if being_touched > 0: + maker_node.switch_charge += touch_charge * delta diff --git a/scripts/heroes/1.gd b/scripts/heroes/1.gd index bf5eee4..8217ff3 100644 --- a/scripts/heroes/1.gd +++ b/scripts/heroes/1.gd @@ -99,8 +99,8 @@ func add_wall(): var wall = preload("res://scenes/wall.tscn").instance() var friendly = player_info.is_right_team == master_player.player_info.is_right_team var color = friend_color if friendly else enemy_color - wall.init(self, color) get_node("/root/Level").add_child(wall) + wall.init(self, color) return wall func finalize_wall(wall, tf=null): diff --git a/scripts/player.gd b/scripts/player.gd index ff83e1c..338962e 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -13,11 +13,11 @@ var air_friction = 1-0.03 var player_info # Set by lobby var walk_speed_build = 0.006 # `walk_speed` per `switch_charge` -var air_speed_build = 0.006 # `air_accel` per `switch_chare` +var air_speed_build = 0.006 # `air_accel` per `switch_charge` 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) +var movement_charge = 0.1 # In percent per meter (except when heroes change that) const fall_height = -50 @@ -32,7 +32,7 @@ var tp_camera = "TPCamera" var master_only = "MasterOnly" var master_player -var friend_color = Color("#4abfe5") # Blue +var friend_color = Color("#4ab0e5") # Blue var enemy_color = Color("#f04273") # Red var ai_instanced = false