summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2022-10-19 14:14:08 -0400
committerAnson Bridges <bridges.anson@gmail.com>2022-10-19 14:19:10 -0400
commit6dd265a0aee5fa0ed21b3d272fa3bc07d5d483d9 (patch)
treebcf11172270686825efaeb0c86703f72cd4dade3
parent5100ec45264ff36a2558757e76198b8b25866992 (diff)
modelling, server stability, screen shake
-rw-r--r--godot/scenes/ballistics/Rocket.gd2
-rw-r--r--godot/scenes/machines/Cannon.tscn2
-rw-r--r--godot/scenes/weapons/pistol.gd2
-rw-r--r--godot/scenes/weapons/rockets.gd2
-rw-r--r--godot/scripts/CharacterAIManager.gd2
-rw-r--r--godot/scripts/GameBase.gd15
-rw-r--r--godot/scripts/cameras/PlayerCamGDS.gd31
-rw-r--r--godot/scripts/characters/player_controller_new.gd4
-rw-r--r--godot/scripts/machines/Cannon.gd1
-rw-r--r--godot/scripts/vehicles/Airplane.gd3
-rw-r--r--godot/ui/servermenu/ServerUI.gd5
-rw-r--r--godot/ui/servermenu/ServerUI.tscn9
-rw-r--r--work/malebodybyyeshuanelnourl.jpgbin0 -> 25690 bytes
-rw-r--r--work/man_lowpoly.blendbin0 -> 801008 bytes
-rw-r--r--work/man_lowpoly.blend1bin0 -> 801008 bytes
-rw-r--r--work/progress_chart.xlsxbin6688 -> 6707 bytes
-rw-r--r--work/sailors.jpgbin0 -> 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
new file mode 100644
index 0000000..e321304
--- /dev/null
+++ b/work/malebodybyyeshuanelnourl.jpg
Binary files differ
diff --git a/work/man_lowpoly.blend b/work/man_lowpoly.blend
new file mode 100644
index 0000000..e2a2a41
--- /dev/null
+++ b/work/man_lowpoly.blend
Binary files differ
diff --git a/work/man_lowpoly.blend1 b/work/man_lowpoly.blend1
new file mode 100644
index 0000000..d116ff6
--- /dev/null
+++ b/work/man_lowpoly.blend1
Binary files differ
diff --git a/work/progress_chart.xlsx b/work/progress_chart.xlsx
index 8118fc4..f48ecef 100644
--- a/work/progress_chart.xlsx
+++ b/work/progress_chart.xlsx
Binary files differ
diff --git a/work/sailors.jpg b/work/sailors.jpg
new file mode 100644
index 0000000..3d980c6
--- /dev/null
+++ b/work/sailors.jpg
Binary files differ