summaryrefslogtreecommitdiff
path: root/godot/scripts/GameBase.gd
diff options
context:
space:
mode:
Diffstat (limited to 'godot/scripts/GameBase.gd')
-rw-r--r--godot/scripts/GameBase.gd15
1 files changed, 14 insertions, 1 deletions
diff --git a/godot/scripts/GameBase.gd b/godot/scripts/GameBase.gd
index abc269f..e77d070 100644
--- a/godot/scripts/GameBase.gd
+++ b/godot/scripts/GameBase.gd
@@ -8,7 +8,7 @@ var local_server_tree = null
var player_name : String
var player_team : String
var player_char = null
-onready var cam = $PLAYERCAM
+onready var cam: ClippedCamera = $PLAYERCAM
onready var hud = $HUD
var players_info = {} #dictionary of id : name, team, ping, etc.
@@ -17,6 +17,17 @@ var is_chatting: bool = false
var winddir = Vector3(1,0,0)
+signal screen_shake(location, strength, time)
+
+func _ready():
+ connect("screen_shake", self, "shake_cam")
+
+func shake_cam(loc, strength, time):
+ var dist: float = (cam.global_transform.origin - loc).length()
+ if dist < 30:
+ strength = strength*exp(-dist/10)
+ cam.shake(strength, time)
+
func _process(delta):
$HUD/Health.text = str(player_char.health) if player_char != null else ""
if is_local:
@@ -89,11 +100,13 @@ func client_disconnect():
player_char.deselect_character()
client.close_connection()
if is_local:
+ local_server_tree.get_root().get_node("GAMEWORLD/Server").stop_server()
local_server_tree.free()
back_to_main()
func _connection_lost():
if is_local:
+ local_server_tree.get_root().get_node("GAMEWORLD/Server").stop_server()
local_server_tree.free()
back_to_main()