extends "res://scripts/player.gd" var merge_power = .1 var merged = null var old_layer var old_mask func _ready(): # Called every time the node is added to the scene. # Initialization here pass func _process(delta): if not merged: var cols = get_colliding_bodies() for col in cols: if col.is_in_group("player"): var same_team = col.player_info.is_right_team == player_info.is_right_team if same_team: merge(col) func merge(other): hide() # Disable collisions old_layer = collision_layer old_mask = collision_mask collision_layer = 0 collision_mask = 0 if is_network_master(): # Assume their PoV, but no control other.get_node("Yaw/Pitch/Camera").make_current() # Boost them! other.walk_speed *= (1 + merge_power) other.air_accel *= (1 + merge_power) merged = other func unmerge(): show() # Re-enable collisions collision_layer = old_layer collision_mask = old_mask if is_network_master(): get_node("Yaw/Pitch/Camera").make_current() # Undo the boost merged.walk_speed /= (1 + merge_power) merged.air_accel /= (1 + merge_power) merged = null