diff options
Diffstat (limited to 'godot/scripts')
| -rw-r--r-- | godot/scripts/characters/player_controller_new.gd | 10 | ||||
| -rw-r--r-- | godot/scripts/machines/Cannon.gd | 2 | ||||
| -rw-r--r-- | godot/scripts/vehicles/Airplane.gd | 15 | ||||
| -rw-r--r-- | godot/scripts/vehicles/Gunboat.gd | 6 |
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(): |
