diff options
| author | Anson Bridges <bridges.anson@gmail.com> | 2022-10-19 14:14:08 -0400 |
|---|---|---|
| committer | Anson Bridges <bridges.anson@gmail.com> | 2022-10-19 14:19:10 -0400 |
| commit | 6dd265a0aee5fa0ed21b3d272fa3bc07d5d483d9 (patch) | |
| tree | bcf11172270686825efaeb0c86703f72cd4dade3 | |
| parent | 5100ec45264ff36a2558757e76198b8b25866992 (diff) | |
modelling, server stability, screen shake
| -rw-r--r-- | godot/scenes/ballistics/Rocket.gd | 2 | ||||
| -rw-r--r-- | godot/scenes/machines/Cannon.tscn | 2 | ||||
| -rw-r--r-- | godot/scenes/weapons/pistol.gd | 2 | ||||
| -rw-r--r-- | godot/scenes/weapons/rockets.gd | 2 | ||||
| -rw-r--r-- | godot/scripts/CharacterAIManager.gd | 2 | ||||
| -rw-r--r-- | godot/scripts/GameBase.gd | 15 | ||||
| -rw-r--r-- | godot/scripts/cameras/PlayerCamGDS.gd | 31 | ||||
| -rw-r--r-- | godot/scripts/characters/player_controller_new.gd | 4 | ||||
| -rw-r--r-- | godot/scripts/machines/Cannon.gd | 1 | ||||
| -rw-r--r-- | godot/scripts/vehicles/Airplane.gd | 3 | ||||
| -rw-r--r-- | godot/ui/servermenu/ServerUI.gd | 5 | ||||
| -rw-r--r-- | godot/ui/servermenu/ServerUI.tscn | 9 | ||||
| -rw-r--r-- | work/malebodybyyeshuanelnourl.jpg | bin | 0 -> 25690 bytes | |||
| -rw-r--r-- | work/man_lowpoly.blend | bin | 0 -> 801008 bytes | |||
| -rw-r--r-- | work/man_lowpoly.blend1 | bin | 0 -> 801008 bytes | |||
| -rw-r--r-- | work/progress_chart.xlsx | bin | 6688 -> 6707 bytes | |||
| -rw-r--r-- | work/sailors.jpg | bin | 0 -> 645856 bytes |
17 files changed, 68 insertions, 10 deletions
diff --git a/godot/scenes/ballistics/Rocket.gd b/godot/scenes/ballistics/Rocket.gd index c10b5b5..23e79db 100644 --- a/godot/scenes/ballistics/Rocket.gd +++ b/godot/scenes/ballistics/Rocket.gd @@ -47,5 +47,5 @@ remotesync func explode(): func _on_collision(_body): if is_network_master(): rpc("explode") -func _on_area_entry(area): +func _on_area_entry(_area): pass diff --git a/godot/scenes/machines/Cannon.tscn b/godot/scenes/machines/Cannon.tscn index fa787cd..fad5df7 100644 --- a/godot/scenes/machines/Cannon.tscn +++ b/godot/scenes/machines/Cannon.tscn @@ -42,7 +42,7 @@ mesh = ExtResource( 3 ) skeleton = NodePath("../..") [node name="Muzzle" type="Spatial" parent="YawJoint/PitchJoint"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.30877, 0, 0 ) +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.37697, 0, 0 ) [node name="explosion_sound" type="AudioStreamPlayer3D" parent="YawJoint/PitchJoint/Muzzle"] stream = ExtResource( 2 ) diff --git a/godot/scenes/weapons/pistol.gd b/godot/scenes/weapons/pistol.gd index 10130a7..6792b33 100644 --- a/godot/scenes/weapons/pistol.gd +++ b/godot/scenes/weapons/pistol.gd @@ -60,5 +60,5 @@ func attack1(): if hit.has_method("net_apply_impulse"): hit.rpc("net_apply_impulse", -150*player_owner.melee_ray.global_transform.basis.z) -func mouse_input(_m1: float, _m3: float, m2: float) -> void: +func mouse_input(_m1: float, _m3: float, _m2: float) -> void: pass diff --git a/godot/scenes/weapons/rockets.gd b/godot/scenes/weapons/rockets.gd index fddeded..9d2ec91 100644 --- a/godot/scenes/weapons/rockets.gd +++ b/godot/scenes/weapons/rockets.gd @@ -43,5 +43,5 @@ func attack1(): else: rockets_scene.set_visible(false) -func mouse_input(_m1: float, _m3: float, m2: float) -> void: +func mouse_input(_m1: float, _m3: float, _m2: float) -> void: pass diff --git a/godot/scripts/CharacterAIManager.gd b/godot/scripts/CharacterAIManager.gd index 61d38ae..ef5c026 100644 --- a/godot/scripts/CharacterAIManager.gd +++ b/godot/scripts/CharacterAIManager.gd @@ -30,7 +30,7 @@ func _physics_process(_delta): var bodies = cur_req["char"].get_node("AISearchArea").get_overlapping_bodies() for body in bodies: if body.name.begins_with(cur_req_args["objtype"]): - var path: PoolVector3Array = NavigationServer.map_get_path(WORLD_MAP_RID, cur_req["char"].global_transform.origin, body.global_transform.origin, cur_req_args["optimize"]) + #var path: PoolVector3Array = NavigationServer.map_get_path(WORLD_MAP_RID, cur_req["char"].global_transform.origin, body.global_transform.origin, cur_req_args["optimize"]) cur_req["char"].ai_set_path_target(body.global_transform.origin) #cur_req["char"].ai_set_path_array(path) cur_req["char"].ai_set_look_status(body, "TRACK") 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() diff --git a/godot/scripts/cameras/PlayerCamGDS.gd b/godot/scripts/cameras/PlayerCamGDS.gd index 382ec06..77ca552 100644 --- a/godot/scripts/cameras/PlayerCamGDS.gd +++ b/godot/scripts/cameras/PlayerCamGDS.gd @@ -14,10 +14,41 @@ var arm: SpringArm = null var mouse_axis: Vector2 var mouse_sensitivity: float = 12.0 +var shake_amount:float = 0.0 +const shake_limit:float = 0.2 +onready var shake_timer:Timer = Timer.new() +onready var shake_tween: Tween = Tween.new() + func _ready(): + add_child(shake_timer) + add_child(shake_tween) Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + shake_timer.connect("timeout", self, "_on_shake_timer_timeout") current = true +func _process(_delta): + if mode == "STATIC": + transform.origin = Vector3(rand_range(-shake_amount, shake_amount), rand_range(-shake_amount, shake_amount), rand_range(-shake_amount, shake_amount)) + if mode == "FIRSTPERSON": + head.transform.origin = Vector3(rand_range(-shake_amount, shake_amount), rand_range(-shake_amount, shake_amount), rand_range(-shake_amount, shake_amount)) + +func shake(new_shake, shake_time=0.4): + shake_amount += new_shake + if shake_amount > shake_limit: + shake_amount = shake_limit + + shake_tween.stop_all() + set_process(true) + shake_timer.start(shake_time) + + +func _on_shake_timer_timeout(): + shake_amount = 0 + set_process(false) + shake_tween.interpolate_property(head, "translation", head.transform.origin, Vector3.ZERO, + 0.1, Tween.TRANS_QUAD, Tween.EASE_IN_OUT) + shake_tween.start() + func _input(event: InputEvent): if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED: mouse_axis = event.relative diff --git a/godot/scripts/characters/player_controller_new.gd b/godot/scripts/characters/player_controller_new.gd index d78b6e3..62f5ef6 100644 --- a/godot/scripts/characters/player_controller_new.gd +++ b/godot/scripts/characters/player_controller_new.gd @@ -266,10 +266,10 @@ func _integrate_forces(state: PhysicsDirectBodyState) -> void: for i in range(player_state.get_contact_count()): var contact_angle_from_up : float = Vector3.UP.angle_to(player_state.get_contact_local_normal(i)) if contact_angle_from_up > FLOOR_MAX_ANGLE and !is_on_floor: - friction = 0 + physics_material_override.friction = 0 break if i == player_state.get_contact_count() - 1: - friction = 1 + physics_material_override.friction = 1 rpc("set_phys_transform", transform, linear_velocity) if global_transform.origin.y < -30: diff --git a/godot/scripts/machines/Cannon.gd b/godot/scripts/machines/Cannon.gd index b66903a..6b988a0 100644 --- a/godot/scripts/machines/Cannon.gd +++ b/godot/scripts/machines/Cannon.gd @@ -82,6 +82,7 @@ func attack1(): rpc("fire") remotesync func fire(): + world.emit_signal("screen_shake", global_transform.origin, 0.05, 0.2) loaded = false controllable = false status.set_visible(true) diff --git a/godot/scripts/vehicles/Airplane.gd b/godot/scripts/vehicles/Airplane.gd index 705820d..2de4792 100644 --- a/godot/scripts/vehicles/Airplane.gd +++ b/godot/scripts/vehicles/Airplane.gd @@ -102,11 +102,10 @@ remotesync func trigger_boost(): remotesync func end_boost(): $"%RocketTrail".emitting = false - print("stopped boosting") boosting = false countdown = boost_length -func _process(delta): +func _process(_delta): if is_network_master(): if boosting and countdown <= 0: rpc("end_boost") diff --git a/godot/ui/servermenu/ServerUI.gd b/godot/ui/servermenu/ServerUI.gd index d065b21..9deca37 100644 --- a/godot/ui/servermenu/ServerUI.gd +++ b/godot/ui/servermenu/ServerUI.gd @@ -13,11 +13,16 @@ func hide_init_fields(): for node in get_tree().get_nodes_in_group("init_fields"): node.visible = false $StopButton.visible = true + $HideButton.visible = true func show_init_fields(): for node in get_tree().get_nodes_in_group("init_fields"): node.visible = true $StopButton.visible = false + $HideButton.visible = false + +func hide_toggle()-> void: + server.world.visible = !server.world.visible func start_server(): console.add_line("Server starting...") diff --git a/godot/ui/servermenu/ServerUI.tscn b/godot/ui/servermenu/ServerUI.tscn index f7ed009..f2d05da 100644 --- a/godot/ui/servermenu/ServerUI.tscn +++ b/godot/ui/servermenu/ServerUI.tscn @@ -32,6 +32,14 @@ margin_right = 108.0 margin_bottom = 108.0 text = "Stop Server" +[node name="HideButton" type="Button" parent="."] +visible = false +margin_left = 25.0 +margin_top = 116.0 +margin_right = 109.0 +margin_bottom = 136.0 +text = "Hide View" + [node name="MapPath" type="LineEdit" parent="." groups=["init_fields"]] margin_left = 120.0 margin_top = 24.0 @@ -105,4 +113,5 @@ text = "Server Name" [connection signal="pressed" from="StartButton" to="." method="start_server"] [connection signal="pressed" from="BackButton" to="." method="back_to_main"] [connection signal="pressed" from="StopButton" to="." method="stop_server"] +[connection signal="pressed" from="HideButton" to="." method="hide_toggle"] [connection signal="text_entered" from="CmdPrompt" to="CmdPrompt" method="enter_cmd"] diff --git a/work/malebodybyyeshuanelnourl.jpg b/work/malebodybyyeshuanelnourl.jpg Binary files differnew file mode 100644 index 0000000..e321304 --- /dev/null +++ b/work/malebodybyyeshuanelnourl.jpg diff --git a/work/man_lowpoly.blend b/work/man_lowpoly.blend Binary files differnew file mode 100644 index 0000000..e2a2a41 --- /dev/null +++ b/work/man_lowpoly.blend diff --git a/work/man_lowpoly.blend1 b/work/man_lowpoly.blend1 Binary files differnew file mode 100644 index 0000000..d116ff6 --- /dev/null +++ b/work/man_lowpoly.blend1 diff --git a/work/progress_chart.xlsx b/work/progress_chart.xlsx Binary files differindex 8118fc4..f48ecef 100644 --- a/work/progress_chart.xlsx +++ b/work/progress_chart.xlsx diff --git a/work/sailors.jpg b/work/sailors.jpg Binary files differnew file mode 100644 index 0000000..3d980c6 --- /dev/null +++ b/work/sailors.jpg |
