summaryrefslogtreecommitdiff
path: root/godot/scripts/characters
diff options
context:
space:
mode:
Diffstat (limited to 'godot/scripts/characters')
-rw-r--r--godot/scripts/characters/player_controller_new.gd10
1 files changed, 6 insertions, 4 deletions
diff --git a/godot/scripts/characters/player_controller_new.gd b/godot/scripts/characters/player_controller_new.gd
index deaea79..aa739a6 100644
--- a/godot/scripts/characters/player_controller_new.gd
+++ b/godot/scripts/characters/player_controller_new.gd
@@ -26,7 +26,7 @@ onready var nav = $NavigationAgent
const FLOOR_MAX_ANGLE: float = deg2rad(46.0)
export(float) var jump_height = 400.0
var in_water : bool = false
-var swim_speed : float = 400.0
+var swim_speed : float = 450.0
var climb_speed : float = 5.0
# Control
@@ -182,6 +182,8 @@ func _integrate_forces(state) -> void:
friction = 1
if is_network_master():
rpc("set_phys_transform", transform, linear_velocity)
+ if global_transform.origin.y < -30:
+ rpc("damage", 500000, "drown", [1, "Davy Jones"])
func walk(_delta:float) -> void:
# Input
@@ -225,7 +227,7 @@ func jump():
func swim(_delta):
#drag and buoyancy
add_central_force(Vector3.UP*weight*1.0)
- add_central_force(-1*linear_velocity*75)
+ add_central_force(-1*linear_velocity*100)
#controls
var dir: Basis = head.get_global_transform().basis
var m_dir: Vector3 = -move_axis.x * dir.z + move_axis.y * dir.x
@@ -275,13 +277,13 @@ func leave_ladder():
remotesync func damage(dmg_amt, _type, shooter, extra = ""):
health -= dmg_amt
if health <= 0 and is_network_master():
- if shooter[0] != get_network_master(): world.rpc_id(shooter[0], "game_killsound")
+ if shooter[0] != get_network_master() and shooter[0] != 1: world.rpc_id(shooter[0], "game_killsound")
if get_network_master() == 1:
world._call_on_server("_character_death", {"killer_id" : shooter[0], "killer" : shooter[1], "victim_mp_id" : get_network_master(), "victim" : name, "extra" : extra})
else:
world.rpc_id(1, "_call_on_server", "_character_death", {"killer_id" : shooter[0], "killer" : shooter[1], "victim_mp_id" : get_network_master(), "victim" : name, "extra" : extra})
elif is_network_master():
- if shooter[0] != get_network_master(): world.rpc_id(shooter[0], "game_hitsound")
+ if shooter[0] != get_network_master() and shooter[0] != 1: world.rpc_id(shooter[0], "game_hitsound")
remotesync func remove_dead_character():
if is_network_master() and machine != null: