extends "res://scripts/placeable.gd" var touch_charge = 4 var being_touched = 0 func _process(delta): if being_touched > 0: maker_node.build_charge(touch_charge * delta) func init(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 master_player = util.get_master_player() var friendly if master_player: friendly = maker.player_info.is_right_team == master_player.player_info.is_right_team else: friendly = true # Doesn't matter, we're headless var color = maker.friend_color if friendly else maker.enemy_color var mat = SpatialMaterial.new() color.a = 0.5 mat.flags_transparent = true mat.albedo_color = color get_node("MeshInstance").set_surface_material(0, mat) .init(maker) func count_bodies(with, player, delta): if with == self: if player != maker_node: being_touched += delta func on_looked_at(who, delta): maker_node.on_looked_at(who, delta)