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.

36 lines
975 B

  1. extends "res://scripts/placeable.gd"
  2. var touch_charge = 4
  3. var being_touched = 0
  4. func _process(delta):
  5. if being_touched > 0:
  6. maker_node.build_charge(touch_charge * delta)
  7. func init(maker):
  8. for player in get_node("/root/Level/Players").get_children():
  9. player.connect("body_entered", self, "count_bodies", [player, 1])
  10. player.connect("body_exited", self, "count_bodies", [player, -1])
  11. var master_player = util.get_master_player()
  12. var friendly
  13. if master_player:
  14. friendly = maker.player_info.is_right_team == master_player.player_info.is_right_team
  15. else:
  16. friendly = true # Doesn't matter, we're headless
  17. var color = maker.friend_color if friendly else maker.enemy_color
  18. var mat = SpatialMaterial.new()
  19. color.a = 0.5
  20. mat.flags_transparent = true
  21. mat.albedo_color = color
  22. get_node("MeshInstance").set_surface_material(0, mat)
  23. .init(maker)
  24. func count_bodies(with, player, delta):
  25. if with == self:
  26. if player != maker_node:
  27. being_touched += delta