summaryrefslogtreecommitdiff
path: root/godot/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'godot/scripts')
-rw-r--r--godot/scripts/characters/player_controller_new.gd10
-rw-r--r--godot/scripts/machines/Cannon.gd2
-rw-r--r--godot/scripts/vehicles/Airplane.gd15
-rw-r--r--godot/scripts/vehicles/Gunboat.gd6
4 files changed, 17 insertions, 16 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:
diff --git a/godot/scripts/machines/Cannon.gd b/godot/scripts/machines/Cannon.gd
index 437a20b..80c32ef 100644
--- a/godot/scripts/machines/Cannon.gd
+++ b/godot/scripts/machines/Cannon.gd
@@ -76,6 +76,6 @@ remotesync func fire():
cball.shooter_id = user.get_network_master()
cooldown = fire_rate
if mode == RigidBody.MODE_STATIC:
- get_parent().apply_impulse($YawJoint/PitchJoint.global_transform.origin - get_parent().global_transform.origin, -5*cball.mass*ball_speed*muzzle.global_transform.basis.x)
+ get_parent().apply_impulse($YawJoint/PitchJoint.global_transform.origin - get_parent().global_transform.origin, -1*cball.mass*ball_speed*muzzle.global_transform.basis.x)
else:
if is_network_master(): apply_impulse($YawJoint/PitchJoint.global_transform.origin - global_transform.origin, -1*cball.mass*ball_speed*muzzle.global_transform.basis.x)
diff --git a/godot/scripts/vehicles/Airplane.gd b/godot/scripts/vehicles/Airplane.gd
index aa1f492..9762457 100644
--- a/godot/scripts/vehicles/Airplane.gd
+++ b/godot/scripts/vehicles/Airplane.gd
@@ -28,7 +28,7 @@ var user = null
var world = null
func get_init_info():
- return {"." : 0}
+ return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "in_use" : in_use}
func mp_init(init_info):
pass
@@ -61,12 +61,12 @@ func relinquish_control():
#TO BE OVERRIDDEN BY CHILDREN
func on_new_control():
- pass#user.add_collision_exception_with(self)
- #user.global_transform.origin = $Cockpit.global_transform.origin
+ user.add_collision_exception_with(self)
+ user.global_transform.origin = $Cockpit.global_transform.origin
func on_no_control():
- pass#user.remove_collision_exception_with(self)
- #user.global_transform.origin = $PilotExit.global_transform.origin
+ user.remove_collision_exception_with(self)
+ user.global_transform.origin = $PilotExit.global_transform.origin
func attack1():
pass
@@ -127,6 +127,8 @@ func _physics_process(delta):
func _integrate_forces(state):
if is_network_master():
+ if linear_velocity.angle_to(global_transform.basis.x) < 0.25:
+ set_linear_velocity(get_linear_velocity().slerp(transform.basis.x*linear_velocity.length(),0.1))
if linear_velocity.length() > 25:
#linear_velocity = linear_velocity.normalized()*(linear_velocity.length()-vel_slow)
var ang_vel_target = Vector3.ZERO
@@ -146,8 +148,7 @@ func _integrate_forces(state):
#apply angular velocity
angular_velocity = ang_vel_target#lerp(angular_velocity,ang_vel_target,0.1)
- if linear_velocity.angle_to(global_transform.basis.x) < 0.25:
- set_linear_velocity(get_linear_velocity().slerp(transform.basis.x*linear_velocity.length(),0.1))
+
#linear_velocity += parentvel[0]; angular_velocity += parentvel[1]
rpc("update_phys_transform", transform, linear_velocity, angular_velocity)
diff --git a/godot/scripts/vehicles/Gunboat.gd b/godot/scripts/vehicles/Gunboat.gd
index 8c3f54e..3137361 100644
--- a/godot/scripts/vehicles/Gunboat.gd
+++ b/godot/scripts/vehicles/Gunboat.gd
@@ -39,8 +39,6 @@ func mp_init(init_info):
# Called when the node enters the scene tree for the first time.
func _ready():
world = get_tree().get_root().find_node("GAMEWORLD", true, false)
- mass = 13500
- weight = mass * 9.8
func on_no_control():
rudder = 0.0
@@ -80,8 +78,8 @@ func _physics_process(delta):
if world.winddir.angle_to($Mast.global_transform.basis.x) < PI/2:
add_force(global_transform.basis.x*push_force, Vector3.ZERO)
add_torque(Vector3(0,-rudder_turn*rudder_constant*(0.5+linear_velocity.dot(global_transform.basis.x)),0))
- add_torque(Vector3(-1000000*angular_velocity.x,0,0))
- add_torque(Vector3(0,0,-1000000*angular_velocity.z))
+ add_torque(Vector3(-10000000*angular_velocity.x,0,0))
+ add_torque(Vector3(0,0,-10000000*angular_velocity.z))
rudder_turn += rudder_speed*delta*(-0.25 if rudder_turn > 0 else 0.25)
for point in $FloatPoints.get_children():
for area in point.get_overlapping_areas():