A team game with an emphasis on movement (with no shooting), inspired by Overwatch and Zineth
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

48 lines
1.1 KiB

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