From cab1a57238b15c0fb6325104e24586f1c2c8c286 Mon Sep 17 00:00:00 2001 From: derek Date: Tue, 6 May 2025 11:18:52 -0500 Subject: [PATCH] started work on minimap --- assets/spider.tscn | 510 ------------------------------------- hud.tscn | 9 +- project.godot | 2 +- scripts/EnemyAttack.gd | 53 ++-- scripts/EnemyStates.gd | 3 - scripts/assassinate_vip.gd | 10 +- scripts/hud.gd | 17 +- scripts/minimap_v1.gd | 29 +++ scripts/minimap_v1.gd.uid | 1 + scripts/room_manager.gd | 2 +- scripts/signal_bus.gd | 1 + 11 files changed, 93 insertions(+), 544 deletions(-) delete mode 100644 assets/spider.tscn create mode 100644 scripts/minimap_v1.gd create mode 100644 scripts/minimap_v1.gd.uid diff --git a/assets/spider.tscn b/assets/spider.tscn deleted file mode 100644 index 63ceb68..0000000 --- a/assets/spider.tscn +++ /dev/null @@ -1,510 +0,0 @@ -[gd_scene load_steps=33 format=4 uid="uid://d1j6ktsmxfq6e"] - -[ext_resource type="Script" uid="uid://cdofgtwevbray" path="res://scripts/spider.gd" id="1_t4vx0"] -[ext_resource type="Script" uid="uid://dxkkrhlk2crqm" path="res://scripts/EnemyTarget.gd" id="2_a6seo"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yrmom"] -resource_name = "spiderbody" -cull_mode = 2 -albedo_color = Color(0.13108, 0.13108, 0.13108, 1) -metallic = 1.0 -roughness = 0.5 - -[sub_resource type="ArrayMesh" id="ArrayMesh_l5kh4"] -_surfaces = [{ -"aabb": AABB(-0.427374, -0.361398, -0.427374, 0.854748, 0.722795, 0.854748), -"format": 34896613377, -"index_count": 108, -"index_data": PackedByteArray("CgADAAEACgALAAMACwAHAAMACwAOAAcADgAFAAcADgARAAUAEQABAAUAEQAKAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEABAAIABMABAAAAAgAEwAJABIAEwAIAAkAEgAKABEAEgAJAAoABgATABAABgAEABMAEAASAA8AEAATABIADwARAA4ADwASABEAAgAQAA0AAgAGABAADQAPAAwADQAQAA8ADAAOAAsADAAPAA4AAAANAAgAAAACAA0ACAAMAAkACAANAAwACQALAAoACQAMAAsA"), -"lods": [0.0846931, PackedByteArray("CAADAAEACAANAAMAAAANAAgAAAACAA0ADQAHAAMADQAQAAcAAgAQAA0AAgAGABAAEAAFAAcAEAATAAUABgATABAABgAEABMAEwABAAUAEwAIAAEABAAIABMABAAAAAgAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA")], -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 20, -"vertex_data": PackedByteArray("whMAADzsAADCE///POwAAMITAADCEwAAwhP//8ITAAA87AAAPOwAADzs//887AAAPOwAAMITAAA87P//whMAAAAAUDT//wAAqAX/f1b6AAAAAK7L//8AAAAArssAAAAAqAX/f6gFAAAAAFA0AAAAAP//rssAAAAAVvr/f6gFAAD//1A0AAAAAP//rsv//wAAVvr/f1b6AAD//1A0//8AAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_exipw"] -resource_name = "spider_Cube" -_surfaces = [{ -"aabb": AABB(-0.427374, -0.361398, -0.427374, 0.854748, 0.722795, 0.854748), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9//28AAP9vAAD/b////2////9/AAD/fwAA/3////9/////jwAA/48AAP+P////j////4//v/+P/7//j/+//4//v/9//7//f/+//3//v/9//7//b/+//2//v/9v/7//b/+//4//f/+P/3//j/9//4//f/9//3//f/9//3//f/9//3//b/9//2//f/9v/3//b/9//4//P/+P/z//j/8//4//P/9//z//f/8//3//P/9//z//b/8//2//P/9v/z//b/8/"), -"format": 34896613399, -"index_count": 108, -"index_data": PackedByteArray("IgALAAUAIgAmAAsAJAAVAAkAJAAwABUAMgARABcAMgA+ABEAPAADAA8APAAgAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQADAAZAEUADAAAABkARAAcAEAARAAYABwAQQAhAD0AQQAdACEAFABGADoAFAAOAEYAOwBCADYAOwBHAEIANwA/ADMANwBDAD8ABgA5AC0ABgASADkALAA0ACgALAA4ADQAKQAxACUAKQA1ADEAAgAuABoAAgAIAC4AGwAqAB4AGwAvACoAHwAnACMAHwArACcA"), -"lods": [0.0846931, PackedByteArray("GgALAAUAGgAuAAsAAgAuABoAAgAIAC4ALAAVAAkALAA4ABUABgA4ACwABgASADgAOgARABcAOgBGABEAFABGADoAFAAOAEYARAADAA8ARAAYAAMADAAYAEQADAAAABgABwANABMABwABAA0AFgAEAAoAFgAQAAQA")], -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 72, -"vertex_data": PackedByteArray("whMAADzs+NDCEwAAPOz/v8ITAAA87OTXwhP//zzsqLXCE///POz//8IT//887I/UwhMAAMIT+vXCEwAAwhP/v8ITAADCE0XqwhP//8IT0/HCE///whP//8IT///CE8TGPOwAADzsqLU87AAAPOz/vzzsAAA87I/UPOz//zzs+NA87P//POz//zzs//887OTXPOwAAMIT0/E87AAAwhP/vzzsAADCE8TGPOz//8IT+vU87P//whP//zzs///CE0XqAABQNP//gbwAAFA0//8MzAAAUDT//xvWAABQNP//oNSoBf9/VvqVvagF/39W+qXDqAX/f1b6UtWoBf9/Vvr21QAArsv//9KyAACuy///cMIAAK7L//+40QAArsv//1bVAACuywAAdPIAAK7LAACR/QAArssAAKvFAACuywAA2dioBf9/qAVY/agF/3+oBYj9qAX/f6gF59GoBf9/qAWV2QAAUDQAAGH9AABQNAAAf/YAAFA0AADW5gAAUDQAAFHR//+uywAAf/b//67LAABh/f//rssAANbm//+uywAAUdFW+v9/qAWI/Vb6/3+oBVj9Vvr/f6gFldlW+v9/qAXn0f//UDQAAJH9//9QNAAAdPL//1A0AACrxf//UDQAANnY//+uy///DMz//67L//+BvP//rsv//xvW//+uy///oNRW+v9/Vvqlw1b6/39W+pW9Vvr/f1b69tVW+v9/VvpS1f//UDT//3DC//9QNP//0rL//1A0//+40f//UDT//1bVHRR58gAA/39Zx8bm4e3mGP9//78a6HzEBVAJPgAA/3+42P3ZgMZjr/9//7/40KXLHRIY5wAA/3/kF4I74euFDf9//7+lODgZfjmbUAAA/38GL1k0+a/1wf9//79GJwEm0/qlBdITy/ArxWDoStgC0tH6gQU0BTn7JNmf0WHSvdgq7oYaMwUW+z3krsWg0SXZTMLasipEtj4szoPMrtXw1nPB5rtUQ4M/ydSc03vWgNZ+wNC8XFIbPObVENz+0/nToq3jw4A/LkMYKu4jACwFLKq8e8CLPhhEgyl+KTUrYizUu0jBsj0kTdIxezNQKg4pLOwzDysFWfrTOp4XtCf8Lcr6xQQtBX36nS1BJ9omXy7L+ugE1BF45cEbUDpeLtkm") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_l5kh4") - -[sub_resource type="ArrayMesh" id="ArrayMesh_3cpth"] -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPr/AAAAAP//+v8AAAAAAAAAAAAAAAD//wAAAAD//wAA+v8AAP/////6/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_cwwo8"] -resource_name = "spider_Cube_001" -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPr//78AAAAA+v//vwAAAAD6/1TVAAD///r//78AAP//+v///wAA///6/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPr//7///wAA+v//v///AAD6/1TV//////r//7//////+v/////////6/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_3cpth") - -[sub_resource type="ArrayMesh" id="ArrayMesh_hyilt"] -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPf/AAAAAP//9/8AAAAAAAAAAAAAAAD//wAAAAD//wAA9/8AAP/////3/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_epfun"] -resource_name = "spider_Cube_002" -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPf//78AAAAA9///vwAAAAD3/1TVAAD///f//78AAP//9////wAA///3/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPf//7///wAA9///v///AAD3/1TV//////f//7//////9//////////3/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_hyilt") - -[sub_resource type="ArrayMesh" id="ArrayMesh_47wko"] -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPr/AAAAAP//+v8AAAAAAAAAAAAAAAD//wAAAAD//wAA+v8AAP/////6/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_j8pcb"] -resource_name = "spider_Cube_005" -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPr//78AAAAA+v//vwAAAAD6/1TVAAD///r//78AAP//+v///wAA///6/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPr//7///wAA+v//v///AAD6/1TV//////r//7//////+v/////////6/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_47wko") - -[sub_resource type="ArrayMesh" id="ArrayMesh_1mpvs"] -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPf/AAAAAP//9/8AAAAAAAAAAAAAAAD//wAAAAD//wAA9/8AAP/////3/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_vgp1v"] -resource_name = "spider_Cube_006" -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPf//78AAAAA9///vwAAAAD3/1TVAAD///f//78AAP//9////wAA///3/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPf//7///wAA9///v///AAD3/1TV//////f//7//////9//////////3/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_1mpvs") - -[sub_resource type="ArrayMesh" id="ArrayMesh_ygpa7"] -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPr/AAAAAP//+v8AAAAAAAAAAAAAAAD//wAAAAD//wAA+v8AAP/////6/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_wv2l2"] -resource_name = "spider_Cube_008" -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPr//78AAAAA+v//vwAAAAD6/1TVAAD///r//78AAP//+v///wAA///6/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPr//7///wAA+v//v///AAD6/1TV//////r//7//////+v/////////6/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_ygpa7") - -[sub_resource type="ArrayMesh" id="ArrayMesh_d6g7d"] -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPf/AAAAAP//9/8AAAAAAAAAAAAAAAD//wAAAAD//wAA9/8AAP/////3/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_375ql"] -resource_name = "spider_Cube_009" -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPf//78AAAAA9///vwAAAAD3/1TVAAD///f//78AAP//9////wAA///3/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPf//7///wAA9///v///AAD3/1TV//////f//7//////9//////////3/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_d6g7d") - -[sub_resource type="ArrayMesh" id="ArrayMesh_oceyk"] -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPr/AAAAAP//+v8AAAAAAAAAAAAAAAD//wAAAAD//wAA+v8AAP/////6/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_v81tc"] -resource_name = "spider_Cube_003" -_surfaces = [{ -"aabb": AABB(-0.0791332, -0.435205, -0.0791332, 0.158266, 0.426464, 0.158276), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPr//78AAAAA+v//vwAAAAD6/1TVAAD///r//78AAP//+v///wAA///6/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPr//7///wAA+v//v///AAD6/1TV//////r//7//////+v/////////6/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_oceyk") - -[sub_resource type="ArrayMesh" id="ArrayMesh_bpcue"] -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"format": 34896613377, -"index_count": 36, -"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEA"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AAAAAPf/AAAAAP//9/8AAAAAAAAAAAAAAAD//wAAAAD//wAA9/8AAP/////3/wAA//8AAAAAAAD/////AAAAAA==") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_7lxx6"] -resource_name = "spider_Cube_004" -_surfaces = [{ -"aabb": AABB(-0.0430958, -0.54959, -0.0430957, 0.0861915, 0.546268, 0.0862015), -"attribute_data": PackedByteArray("/18AAP8f/z//X////58AAP/f/z//n////1//v/8f/3//X/+//5//v//f/3//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), -"format": 34896613399, -"index_count": 36, -"index_data": PackedByteArray("AgALAAUAAgAIAAsABgAVAAkABgASABUAFAARABcAFAAOABEADAADAA8ADAAAAAMABwANABMABwABAA0AFgAEAAoAFgAQAAQA"), -"material": SubResource("StandardMaterial3D_yrmom"), -"name": "spiderbody", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 24, -"vertex_data": PackedByteArray("AAAAAPf//78AAAAA9///vwAAAAD3/1TVAAD///f//78AAP//9////wAA///3/1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTVAAD//wAA//8AAP//AAD//wAA//8AAFTV//8AAPf//7///wAA9///v///AAD3/1TV//////f//7//////9//////////3/1TV//8AAAAA/////wAAAAD/v///AAAAAFTV/////wAA////////AAD///////8AAFTV/////wAA/39U1VTV//////9//79U1VTV/7//vwAA/39U1VTV/7//v/9//79U1VTV/////wAA/3+qKqoq//////9//7+qKqoq/7//vwAA/3+qKqoq/7//v/9//7+qKqoq") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_bpcue") - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8byhe"] -resource_name = "SpiderZone" -cull_mode = 2 -albedo_color = Color(0.906446, 0.003124, 0, 1) -metallic = 1.0 -roughness = 0.5 -emission_enabled = true -emission = Color(1, 0.00490622, 0, 1) -emission_energy_multiplier = 1.67812 - -[sub_resource type="ArrayMesh" id="ArrayMesh_ewwug"] -_surfaces = [{ -"aabb": AABB(-0.200079, -0.210375, -0.210375, 0.400158, 0.42075, 0.42075), -"format": 34359742465, -"index_count": 240, -"index_data": PackedByteArray("AAAMAA0AAQAPAA0AAAARAAwAAAATABEAAAAQABMAAQAWAA8AAgAYAA4AAwAaABIABAAcABQABQAeABUAAQAZABYAAgAbABgAAwAdABoABAAfABwABQAXAB4ABgAlACAABwAnACEACAAoACIACQApACMACgAmACQAJgALACkAJgApACQAJAApAAkAKQALACgAKQAoACMAIwAoAAgAKAALACcAKAAnACIAIgAnAAcAJwALACUAJwAlACEAIQAlAAYAJQALACYAJQAmACAAIAAmAAoAFwAKACQAFwAkAB4AHgAkAAkAHwAJACMAHwAjABwAHAAjAAgAHQAIACIAHQAiABoAGgAiAAcAGwAHACEAGwAhABgAGAAhAAYAGQAGACAAGQAgABYAFgAgAAoAHgAJAB8AHgAfABUAFQAfAAQAHAAIAB0AHAAdABQAFAAdAAMAGgAHABsAGgAbABIAEgAbAAIAGAAGABkAGAAZAA4ADgAZAAEAFgAKABcAFgAXAA8ADwAXAAUAEAAFABUAEAAVABMAEwAVAAQAEwAEABQAEwAUABEAEQAUAAMAEQADABIAEQASAAwADAASAAIADwAFABAADwAQAA0ADQAQAAAADAACAA4ADAAOAA0ADQAOAAEA"), -"lods": [0.157782, PackedByteArray("AAACAA0ADQACAAEAAQACAAYAAQAGAAoACgAFAAEAAQAFABAAAQAQAA0ADQAQAAAAAgAlAAYAAgALACUAAAARAAIAAwACABEAAwAIAAIACAAoAAIAKAALAAIAEwADABEAAAATABEAEwAEAAMABAAIAAMABAAJAAgACQAoAAgAKQAoAAkAKQALACgAJgApAAkAJgALACkABAAmAAkABQAmAAQABQAKACYABgAmAAoAJQAmAAYAJQALACYAAAAQABMAEAAFABMAEwAFAAQA")], -"name": "SpiderZone", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 42, -"vertex_data": PackedByteArray("AAAAAIpsV74AAACA4+EbPgKvwL33geI9lSluvQuvwL0QQDc+Ta5AvpOuwL0AAACAlSluvQuvwL0QQDe+4+EbPgKvwL33geK9lSluPQuvwD0QQDc+4+EbvgKvwD33geI94+EbvgKvwD33geK9lSluPQuvwD0QQDe+Ta5APpOuwD0AAACAAAAAAIpsVz4AAACAv/wLvVlAN74EbNc92T+3PVZAN74OI4U9U4NiPVOD4r3PRy4+/T83PiOD4r0AAACA2T+3PVZAN74OI4W9dYLivTNAN74AAACApEAUviuD4r0zbNc9v/wLvVlAN74EbNe9pEAUviuD4r0zbNe9U4NiPVOD4r3PRy6+c+FMPgAAAAAwI4U9c+FMPgAAAAAwI4W9AAAAAAAAAACJbFc+CT/9PQAAAAAXSC4+c+FMvgAAAAAwI4U9CT/9vQAAAAAXSC4+CT/9vQAAAAAXSC6+c+FMvgAAAAAwI4W9CT/9PQAAAAAXSC6+AAAAAAAAAACJbFe+pEAUPiuD4j0zbNc9U4NivVOD4j3PRy4+/T83viOD4j0AAACAU4NivVOD4j3PRy6+pEAUPiuD4j0zbNe9v/wLPVhANz4EbNc9dYLiPTNANz4AAACA2T+3vVZANz4OI4U92T+3vVZANz4OI4W9v/wLPVhANz4EbNe9") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_e503v"] -resource_name = "spider_Icosphere" -_surfaces = [{ -"aabb": AABB(-0.200079, -0.210375, -0.210375, 0.400158, 0.42075, 0.42075), -"attribute_data": PackedByteArray("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"), -"format": 34359742487, -"index_count": 240, -"index_data": PackedByteArray("AAA8AEIABwBPAEcAAwBaAD8ABABpAFsAAQBUAGYACQB7AFEACgCEAEgAEQCSAGUAGACfAG4AGgCqAHYACACPAHkADACXAIkAEwCnAJUAFgCzAJ0AHAB/AK0AIADUALQAIwDhAL4AKgDpAMIALQDqAMYAMwDdAM8A2QA4AOsA2wDtAM0AzADsAC8A7gA6AOQA7wDlAMgAygDnACgA5gA7AOAA6ADiAMAAwQDjACUA3gA5ANYA3wDXALwAugDSAB4A0wA3ANgA1QDaALUAtwDcADIAgAA1ANEAfgDQAKwAqwDOADAAsQAxAMcAsgDJAJwAngDLACkApQAsAMQApgDFAJQAkwDDACcAmAAkAL8AlgC9AIgAhwC7ACIAjQAhALYAjgC4AHgAegC5ADQAqQAuALAAqACvAHQAcgCuABQAoQArAKMAoACiAHAAcQCkABIAkQAmAJsAkACaAGQAYgCZAA4AhgAfAIsAhQCKAEoATACMAAYAfQA2AIMAfACCAFMAUgCBAB0AVwAZAHUAVQBzAGcAaAB3ABUAagAXAGwAawBtAF0AXwBvABAAXgAPAGMAXABhAEEAQABgAA0AUAAbAFkATgBYAEYARABWAAIAPgALAE0APQBJAEMARQBLAAUA"), -"lods": [0.157782, PackedByteArray("AADxAEIAQgDxAPAA8ADxAPsA8AD7AAEBAQH6APAA8AD6AFYA8ABWAEQARABWAAIA8gAEAfsA8gACAQQBAwBaAA0A9AANAFoA9AD9APMA/QAGAfMABgEDAfMAaQD0AFsABABpAFsAaQD3APUA9wD+APUA9wAtAP4ALQDkAP4A6gDkAC0A6gA6AOQABQHrAC0ABQE4AOsA9gAFAf8A+QAFAfYA+QAAAQUB/ADYAAAB0wDYAPwA0wA3ANgAAQBUAGYAVAAZAGYAZgAZAPgA")], -"material": SubResource("StandardMaterial3D_8byhe"), -"name": "SpiderZone", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 263, -"vertex_data": PackedByteArray("AAAAAIpsV74AAACAAAAAAIpsV74AAACAAAAAAIpsV74AAACAAAAAAIpsV74AAACAAAAAAIpsV74AAACA4+EbPgKvwL33geI94+EbPgKvwL33geI94+EbPgKvwL33geI94+EbPgKvwL33geI94+EbPgKvwL33geI9lSluvQuvwL0QQDc+lSluvQuvwL0QQDc+lSluvQuvwL0QQDc+lSluvQuvwL0QQDc+lSluvQuvwL0QQDc+Ta5AvpOuwL0AAACATa5AvpOuwL0AAACATa5AvpOuwL0AAACATa5AvpOuwL0AAACATa5AvpOuwL0AAACAlSluvQuvwL0QQDe+lSluvQuvwL0QQDe+lSluvQuvwL0QQDe+lSluvQuvwL0QQDe+lSluvQuvwL0QQDe+4+EbPgKvwL33geK94+EbPgKvwL33geK94+EbPgKvwL33geK94+EbPgKvwL33geK94+EbPgKvwL33geK9lSluPQuvwD0QQDc+lSluPQuvwD0QQDc+lSluPQuvwD0QQDc+lSluPQuvwD0QQDc+lSluPQuvwD0QQDc+4+EbvgKvwD33geI94+EbvgKvwD33geI94+EbvgKvwD33geI94+EbvgKvwD33geI94+EbvgKvwD33geI94+EbvgKvwD33geK94+EbvgKvwD33geK94+EbvgKvwD33geK94+EbvgKvwD33geK94+EbvgKvwD33geK9lSluPQuvwD0QQDe+lSluPQuvwD0QQDe+lSluPQuvwD0QQDe+lSluPQuvwD0QQDe+lSluPQuvwD0QQDe+Ta5APpOuwD0AAACATa5APpOuwD0AAACATa5APpOuwD0AAACATa5APpOuwD0AAACATa5APpOuwD0AAACAAAAAAIpsVz4AAACAAAAAAIpsVz4AAACAAAAAAIpsVz4AAACAAAAAAIpsVz4AAACAAAAAAIpsVz4AAACAv/wLvVlAN74EbNc9v/wLvVlAN74EbNc9v/wLvVlAN74EbNc9v/wLvVlAN74EbNc9v/wLvVlAN74EbNc9v/wLvVlAN74EbNc92T+3PVZAN74OI4U92T+3PVZAN74OI4U92T+3PVZAN74OI4U92T+3PVZAN74OI4U92T+3PVZAN74OI4U92T+3PVZAN74OI4U9U4NiPVOD4r3PRy4+U4NiPVOD4r3PRy4+U4NiPVOD4r3PRy4+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") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_ewwug") - -[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ry8ud"] -radius = 0.0791687 -height = 1.29136 - -[sub_resource type="BoxShape3D" id="BoxShape3D_n5tdt"] -size = Vector3(0.850464, 0.657318, 1) - -[sub_resource type="Animation" id="Animation_2ebtd"] -resource_name = "walk" -length = 0.5 -loop_mode = 1 -step = 0.01 -tracks/0/type = "value" -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/path = NodePath("body/leg1:rotation") -tracks/0/interp = 2 -tracks/0/loop_wrap = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector3(0, 0, -0.794125), Vector3(0, 0.785398, -0.794125), Vector3(0, 0, -0.794125)] -} -tracks/1/type = "value" -tracks/1/imported = false -tracks/1/enabled = true -tracks/1/path = NodePath("body/leg2:rotation") -tracks/1/interp = 2 -tracks/1/loop_wrap = true -tracks/1/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector3(-1.19861e-08, 2.44011, -0.793867), Vector3(0, 3.21141, -0.794125), Vector3(-1.19861e-08, 2.44011, -0.793867)] -} -tracks/2/type = "value" -tracks/2/imported = false -tracks/2/enabled = true -tracks/2/path = NodePath("body/leg3:rotation") -tracks/2/interp = 2 -tracks/2/loop_wrap = true -tracks/2/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector3(0, 0, -0.794125), Vector3(0, -0.785398, -0.794125), Vector3(0, 0, -0.794125)] -} -tracks/3/type = "value" -tracks/3/imported = false -tracks/3/enabled = true -tracks/3/path = NodePath("body/leg4:rotation") -tracks/3/interp = 2 -tracks/3/loop_wrap = true -tracks/3/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5), -"transitions": PackedFloat32Array(1, 1, 1), -"update": 0, -"values": [Vector3(1.75899e-07, -2.37369, -0.793867), Vector3(0, -3.15905, -0.794125), Vector3(1.75899e-07, -2.37369, -0.793867)] -} - -[sub_resource type="AnimationLibrary" id="AnimationLibrary_vojnr"] -_data = { -&"walk": SubResource("Animation_2ebtd") -} - -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1pnrc"] -animation = &"walk" - -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_uygf2"] -advance_mode = 2 - -[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_a7dn4"] -states/walk/node = SubResource("AnimationNodeAnimation_1pnrc") -states/walk/position = Vector2(424.667, 105.333) -transitions = ["Start", "walk", SubResource("AnimationNodeStateMachineTransition_uygf2")] - -[sub_resource type="SphereShape3D" id="SphereShape3D_w800a"] -radius = 0.25 - -[node name="spider" type="CharacterBody3D"] -collision_layer = 3 -script = ExtResource("1_t4vx0") - -[node name="body" type="MeshInstance3D" parent="."] -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0.00386834, 1.03709, 0.000734568) -mesh = SubResource("ArrayMesh_exipw") -skeleton = NodePath("") - -[node name="leg1" type="MeshInstance3D" parent="body"] -transform = Transform3D(0.691128, 0.703297, 0.166475, -0.71325, 0.700909, 0, -0.116684, -0.118739, 0.986044, -0.305074, -0.206463, 0.323723) -mesh = SubResource("ArrayMesh_cwwo8") -skeleton = NodePath("") - -[node name="foot1" type="MeshInstance3D" parent="body/leg1"] -transform = Transform3D(0.762197, -0.647345, 0, 0.647345, 0.762197, 0, 0, 0, 1, 0, -0.422289, 0) -mesh = SubResource("ArrayMesh_epfun") -skeleton = NodePath("") - -[node name="leg2" type="MeshInstance3D" parent="body"] -transform = Transform3D(-0.602295, -0.612652, 0.511759, -0.713107, 0.701054, 9.43361e-09, -0.35877, -0.364939, -0.859129, 0.318604, -0.206463, 0.321527) -mesh = SubResource("ArrayMesh_j8pcb") -skeleton = NodePath("") - -[node name="foot2" type="MeshInstance3D" parent="body/leg2"] -transform = Transform3D(0.762197, -0.647345, 0, 0.647345, 0.762197, 0, 0, 0, 1, 0, -0.422289, 0) -mesh = SubResource("ArrayMesh_vgp1v") -skeleton = NodePath("") - -[node name="leg3" type="MeshInstance3D" parent="body"] -transform = Transform3D(0.691128, 0.703297, -0.166475, -0.71325, 0.700909, 0, 0.116684, 0.118739, 0.986044, -0.327034, -0.206463, -0.315327) -mesh = SubResource("ArrayMesh_wv2l2") -skeleton = NodePath("") - -[node name="foot3" type="MeshInstance3D" parent="body/leg3"] -transform = Transform3D(0.762197, -0.647345, 0, 0.647345, 0.762197, 0, 0, 0, 1, 0, -0.422289, 0) -mesh = SubResource("ArrayMesh_375ql") -skeleton = NodePath("") - -[node name="leg4" type="MeshInstance3D" parent="body"] -transform = Transform3D(-0.578345, -0.588289, -0.565184, -0.713109, 0.701054, -1.3844e-07, 0.396225, 0.403037, -0.824964, 0.351545, -0.206463, -0.339484) -mesh = SubResource("ArrayMesh_v81tc") -skeleton = NodePath("") - -[node name="foot4" type="MeshInstance3D" parent="body/leg4"] -transform = Transform3D(0.762197, -0.647345, 0, 0.647345, 0.762197, 0, 0, 0, 1, 0, -0.422289, 0) -mesh = SubResource("ArrayMesh_7lxx6") -skeleton = NodePath("") - -[node name="target" type="MeshInstance3D" parent="body"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.194709, -0.431521) -mesh = SubResource("ArrayMesh_e503v") -skeleton = NodePath("") - -[node name="MovementShape" type="CollisionShape3D" parent="." groups=["enemy"]] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000647783, 0.729421, -0.00121808) -shape = SubResource("CapsuleShape3D_ry8ud") - -[node name="MovementShape2" type="CollisionShape3D" parent="." groups=["enemy"]] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0011971, 1.07657, -0.00121808) -shape = SubResource("BoxShape3D_n5tdt") - -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] -libraries = { -&"": SubResource("AnimationLibrary_vojnr") -} - -[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."] -path_height_offset = 0.5 - -[node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource("AnimationNodeStateMachine_a7dn4") -anim_player = NodePath("../AnimationPlayer") - -[node name="Area3D" type="Area3D" parent="." groups=["enemy"]] -collision_layer = 15 -collision_mask = 15 -script = ExtResource("2_a6seo") - -[node name="TargetShape" type="CollisionShape3D" parent="Area3D" groups=["enemy"]] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00258863, 1.25921, 0.48742) -shape = SubResource("SphereShape3D_w800a") - -[connection signal="body_part_hit" from="Area3D" to="." method="_on_area_3d_body_part_hit"] diff --git a/hud.tscn b/hud.tscn index 55d18be..2f39189 100644 --- a/hud.tscn +++ b/hud.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=6 format=3 uid="uid://br882tlh3cfwu"] +[gd_scene load_steps=7 format=3 uid="uid://br882tlh3cfwu"] [ext_resource type="Script" uid="uid://dfv2m81iew3ia" path="res://scripts/hud.gd" id="1_7hukm"] [ext_resource type="Theme" uid="uid://clek42ofxr45f" path="res://DefaultTheme.tres" id="1_22trs"] +[ext_resource type="Script" uid="uid://x40xk7ltmrgr" path="res://scripts/minimap_v1.gd" id="3_640wx"] [ext_resource type="Script" uid="uid://cfou02ggxj80n" path="res://scripts/dynamic_crosshair.gd" id="5_1xsix"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2hn4h"] @@ -50,6 +51,12 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("5_1xsix") +[node name="Minimap" type="Control" parent="StaticItems"] +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 +script = ExtResource("3_640wx") + [node name="WobbleItems" type="Control" parent="."] layout_mode = 1 anchors_preset = 15 diff --git a/project.godot b/project.godot index f2b8dd6..308b7ed 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="First Person Test" config/tags=PackedStringArray("fps") -run/main_scene="uid://f7e0v1r6ra6c" +run/main_scene="uid://b55ukxds1s7ih" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="uid://6svuq1l83al5" diff --git a/scripts/EnemyAttack.gd b/scripts/EnemyAttack.gd index a819c72..4e11c22 100644 --- a/scripts/EnemyAttack.gd +++ b/scripts/EnemyAttack.gd @@ -2,46 +2,62 @@ extends EnemyState class_name EnemyAttack @export var initial_wait_time : float = 1.0 +@export var time_to_lose_target : float = 4.0 @export var between_shot_time : Vector2 = Vector2(.5,2.0) @export var alert_sound : AudioStreamPlayer3D + var initial_timer +var lost_target_timer var shot_timer = 0.0 func Enter(): initial_timer = initial_wait_time + lost_target_timer = time_to_lose_target alert_sound.play() clear_points_of_interest() func Physics_Update(delta): if enemy.is_player_visible(): - #get player location - enemy.cache_player_pos() - #set player location as target - update_player_target() - #move and look at location - move_to_nav_point(delta) - turret_look3D(delta) - - #Initial wait time + #reset lost target timer + lost_target_timer = time_to_lose_target + #attack move and look + attack_move_and_look(delta) + #Initial wait time if initial_timer > 0: initial_timer -= delta else: #fire if player in view if enemy.ammo > 0: - if shot_timer > 0: - shot_timer -= delta - else: - shot_timer = randf_range(between_shot_time.x,between_shot_time.y) - enemy.turret_material.emission_enabled = true - await get_tree().create_timer(.1).timeout - attack() + attack_sequence(delta) else: await get_tree().create_timer(.5).timeout Transitioned.emit(self,"reload") else: - Transitioned.emit(self,"search") + if lost_target_timer > 0: + lost_target_timer -= delta + attack_move_and_look(delta) + else: + Transitioned.emit(self,"search") + +func attack_move_and_look(delta): + #get player location + enemy.cache_player_pos() + #set player location as target + update_player_target() + #move and look at location + move_to_nav_point(delta) + turret_look3D(delta) + +func attack_sequence(delta): + if shot_timer > 0: + shot_timer -= delta + else: + shot_timer = randf_range(between_shot_time.x,between_shot_time.y) + enemy.turret_material.emission_enabled = true + await get_tree().create_timer(.1).timeout + attack() func update_player_target(): move_target = enemy.player_last_seen @@ -78,3 +94,6 @@ func spawn_casing(): instance_casing.transform.basis = enemy.casing_ejector.global_transform.basis instance_casing.player_velocity = enemy.velocity * enemy.transform.basis get_tree().get_root().add_child(instance_casing) + +func update_minimap(): + SignalBus.emit_signal("ui_minimap_point",self,enemy.global_position,ColorSwatch.RED_COLOR) diff --git a/scripts/EnemyStates.gd b/scripts/EnemyStates.gd index 2b9e7a4..32148a1 100644 --- a/scripts/EnemyStates.gd +++ b/scripts/EnemyStates.gd @@ -9,9 +9,6 @@ class_name EnemyState @export var poi_investigate : bool = false @export var poi_change_to_search : bool = false @export var poi_update_waypoint_immediately : bool = false -@export var time_to_lose_target = 1.0 - -@onready var target_lost_timer = time_to_lose_target var move_target var look_target diff --git a/scripts/assassinate_vip.gd b/scripts/assassinate_vip.gd index e9ca296..9d06526 100644 --- a/scripts/assassinate_vip.gd +++ b/scripts/assassinate_vip.gd @@ -13,6 +13,7 @@ var target_enemy var total_targets var active = false var timer +var ui_marker func _ready() -> void: await level_node.all_enemies_spawned @@ -28,6 +29,7 @@ func begin_activity(): func _process(delta: float) -> void: if active: if target_enemy != null: + update_minimap() if timer > 0: timer -= delta update_timer("kill target") @@ -38,9 +40,12 @@ func _process(delta: float) -> void: else: select_random_enemy() +func update_minimap(): + SignalBus.emit_signal("ui_minimap_point",self,ui_marker.global_position,ColorSwatch.GREEN_COLOR) + func update_timer(label): - var rounded_timer = round(timer) - SignalBus.emit_signal("ui_timer_update",label,timer) + var rounded_timer = str(timer).pad_decimals(2) + SignalBus.emit_signal("ui_timer_update",label,rounded_timer) func check_killed_target(enemy): print("ENEMY KILLED : ",enemy) @@ -55,6 +60,7 @@ func add_marker_to_enemy(): var instance_marker = marker.instantiate() target_enemy.add_child(instance_marker) instance_marker.global_position = target_enemy.global_position + ui_marker = instance_marker func select_random_enemy(): var level_stuff = level_node.get_children() diff --git a/scripts/hud.gd b/scripts/hud.gd index 4bd0c80..a838dcb 100644 --- a/scripts/hud.gd +++ b/scripts/hud.gd @@ -12,8 +12,6 @@ var interact_visible : bool = false var health_bar_start_pos var money_count : int = 0 -var crosshair_target - @onready var level_control = get_tree().current_scene @onready var player = level_control.player @onready var health_bar: ProgressBar = $WobbleItems/HealthBar @@ -23,17 +21,12 @@ var crosshair_target @onready var ammo_reserve: Label = $WobbleItems/GunInfo/VBoxContainer/AmmoCounter/AmmoReserve @onready var gun_info: MarginContainer = $WobbleItems/GunInfo @onready var money: Label = $WobbleItems/Money -@onready var crosshair_center: TextureRect = $StaticItems/CrosshairCenter @onready var pickup_item_indicator = preload("res://assets/pickup_item_indicator.tscn") @onready var wobble_items: Control = $WobbleItems @onready var timer_counter: Label = $WobbleItems/Timer_counter - -const STAM_BAR_MAX_OPACITY = 1.0 -const CROSSHAIR_SIZE = Vector2(40,40) -const MAX_HUD_WOBBLE_AMT = Vector2(100,100) - var pickup_notifs = [] +var minimap_points = {} var can_spawn = true #HUD WOBBLE @@ -49,6 +42,7 @@ func _ready() -> void: SignalBus.player_hit.connect(player_hit) SignalBus.ui_timer_update.connect(update_timer) SignalBus.ui_timer_visibility.connect(toggle_timer_visibility) + SignalBus.ui_minimap_point.connect(add_minimap_point) money_count = GameGlobals.money @@ -56,7 +50,6 @@ func _ready() -> void: health_bar_start_pos = health_bar.position - crosshair_target = CROSSHAIR_SIZE timer_counter.visible = false # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -124,6 +117,7 @@ func _process(delta: float) -> void: ## SPAWN NOTIFICATIONS spawn_notifs() + #WOBBLE HUD wobble_items.position = hud_wobble(delta/Engine.time_scale) func toggle_timer_visibility(timer_visible): @@ -174,6 +168,11 @@ func spawn_notifs(): await get_tree().create_timer(.2).timeout can_spawn = true +func add_minimap_point(node_owner,point_position,color): + var key = node_owner.name + var data = {"position" : point_position,"color" : color} + minimap_points[key] = data + func player_hit(): pass diff --git a/scripts/minimap_v1.gd b/scripts/minimap_v1.gd new file mode 100644 index 0000000..cec9538 --- /dev/null +++ b/scripts/minimap_v1.gd @@ -0,0 +1,29 @@ +extends Control + +@export var hud : Node + + +## SETTINGS +const MINIMAP_POINT_RADIUS :float = 10.0 +const MINIMAP_DISPLAY_RADIUS : float = 200.0 + +func _draw() -> void: + update_minimap() + +func update_minimap(): + var minimap_points = hud.minimap_points + var player = hud.player + + for key in minimap_points: + var point = minimap_points[key] + var player_pos_h = Vector2(player.global_position.x,player.global_position.z) + var point_pos_h = Vector2(point["position"].x,point["position"].z) + var h_direction = (point_pos_h - player_pos_h).normalized() + var v_direction = point["position"].y - player.global_position.y + + + #var desired_rotation = object.global_transform.looking_at(target_positon,Vector3.UP).basis.get_euler() + + #var point_pos = + + draw_circle(point_pos,MINIMAP_POINT_RADIUS,point["color"],true) diff --git a/scripts/minimap_v1.gd.uid b/scripts/minimap_v1.gd.uid new file mode 100644 index 0000000..f8c52db --- /dev/null +++ b/scripts/minimap_v1.gd.uid @@ -0,0 +1 @@ +uid://x40xk7ltmrgr diff --git a/scripts/room_manager.gd b/scripts/room_manager.gd index 3ca2161..ea3fa82 100644 --- a/scripts/room_manager.gd +++ b/scripts/room_manager.gd @@ -1,5 +1,5 @@ extends Node - +class_name RoomManager signal all_enemies_spawned @export_group("Main") diff --git a/scripts/signal_bus.gd b/scripts/signal_bus.gd index 4d15ff8..6eb67b9 100644 --- a/scripts/signal_bus.gd +++ b/scripts/signal_bus.gd @@ -27,3 +27,4 @@ signal engaging_target(enemy,target_position) ##UI signal ui_timer_update(label,timer) signal ui_timer_visibility(visible) +signal ui_minimap_point(node_owner,point_position,color)