diff --git a/Blends/Coin/coin.bin b/Blends/Coin/coin.bin new file mode 100644 index 0000000..a874f89 Binary files /dev/null and b/Blends/Coin/coin.bin differ diff --git a/Blends/Coin/coin.blend b/Blends/Coin/coin.blend new file mode 100644 index 0000000..a787663 Binary files /dev/null and b/Blends/Coin/coin.blend differ diff --git a/Blends/Coin/coin.blend.import b/Blends/Coin/coin.blend.import new file mode 100644 index 0000000..4ff92b0 --- /dev/null +++ b/Blends/Coin/coin.blend.import @@ -0,0 +1,53 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://lips2cgpmr8b" +path="res://.godot/imported/coin.blend-26f8edf08583f0fed81637dbe6ec82c6.scn" + +[deps] + +source_file="res://Blends/Coin/coin.blend" +dest_files=["res://.godot/imported/coin.blend-26f8edf08583f0fed81637dbe6ec82c6.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +_subresources={} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true diff --git a/Blends/Coin/coin.gltf b/Blends/Coin/coin.gltf new file mode 100644 index 0000000..4956e6a --- /dev/null +++ b/Blends/Coin/coin.gltf @@ -0,0 +1,205 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v4.5.47", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"Cylinder", + "scale":[ + 0.16937243938446045, + 0.011989540420472622, + 0.16937243938446045 + ] + } + ], + "materials":[ + { + "doubleSided":true, + "name":"Material.001", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0.8003232479095459, + 0.7214018106460571, + 0.048716265708208084, + 1 + ], + "roughnessFactor":0.2857142686843872 + } + }, + { + "doubleSided":true, + "name":"Material.002", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 1, + 0.012268719263374805, + 0.0156707726418972, + 1 + ], + "roughnessFactor":0.3095238208770752 + } + } + ], + "meshes":[ + { + "name":"Cylinder", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "NORMAL":1, + "TEXCOORD_0":2 + }, + "indices":3, + "material":0 + }, + { + "attributes":{ + "POSITION":4, + "NORMAL":5, + "TEXCOORD_0":6 + }, + "indices":7, + "material":1 + } + ] + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":580, + "max":[ + 1, + 1, + 1 + ], + "min":[ + -1, + -1, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":580, + "type":"VEC3" + }, + { + "bufferView":2, + "componentType":5126, + "count":580, + "type":"VEC2" + }, + { + "bufferView":3, + "componentType":5123, + "count":1140, + "type":"SCALAR" + }, + { + "bufferView":4, + "componentType":5126, + "count":18978, + "max":[ + 0.8202698230743408, + 1.6481459140777588, + 0.4704993665218353 + ], + "min":[ + -0.7866606712341309, + -1.5491652488708496, + -0.7433416843414307 + ], + "type":"VEC3" + }, + { + "bufferView":5, + "componentType":5126, + "count":18978, + "type":"VEC3" + }, + { + "bufferView":6, + "componentType":5126, + "count":18978, + "type":"VEC2" + }, + { + "bufferView":7, + "componentType":5123, + "count":75216, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":6960, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":6960, + "byteOffset":6960, + "target":34962 + }, + { + "buffer":0, + "byteLength":4640, + "byteOffset":13920, + "target":34962 + }, + { + "buffer":0, + "byteLength":2280, + "byteOffset":18560, + "target":34963 + }, + { + "buffer":0, + "byteLength":227736, + "byteOffset":20840, + "target":34962 + }, + { + "buffer":0, + "byteLength":227736, + "byteOffset":248576, + "target":34962 + }, + { + "buffer":0, + "byteLength":151824, + "byteOffset":476312, + "target":34962 + }, + { + "buffer":0, + "byteLength":150432, + "byteOffset":628136, + "target":34963 + } + ], + "buffers":[ + { + "byteLength":778568, + "uri":"coin.bin" + } + ] +} diff --git a/Blends/Coin/coin.gltf.import b/Blends/Coin/coin.gltf.import new file mode 100644 index 0000000..1b67982 --- /dev/null +++ b/Blends/Coin/coin.gltf.import @@ -0,0 +1,37 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://bah3dldj3s48g" +path="res://.godot/imported/coin.gltf-714424d1598d1074dffd6ddc1f2a93ca.scn" + +[deps] + +source_file="res://Blends/Coin/coin.gltf" +dest_files=["res://.godot/imported/coin.gltf-714424d1598d1074dffd6ddc1f2a93ca.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +_subresources={} +gltf/naming_version=1 +gltf/embedded_image_handling=1 diff --git a/Scenes/prototype.tscn b/Scenes/prototype.tscn index 1b96f8b..92470aa 100644 --- a/Scenes/prototype.tscn +++ b/Scenes/prototype.tscn @@ -1,19 +1,122 @@ -[gd_scene load_steps=4 format=3 uid="uid://b1lmku8qo5ln5"] +[gd_scene load_steps=7 format=3 uid="uid://b1lmku8qo5ln5"] [ext_resource type="PackedScene" uid="uid://bge7npb7b1y6x" path="res://Scenes/revolver.tscn" id="1_4ousu"] [ext_resource type="PackedScene" uid="uid://j06vthscroca" path="res://Scenes/bullet.tscn" id="2_6koui"] +[ext_resource type="PackedScene" uid="uid://c7t8himcaqljg" path="res://Blends/Person/person2.gltf" id="3_6koui"] + +[sub_resource type="Animation" id="Animation_3mrnv"] +resource_name = "new_animation" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("person2/Cylinder_001:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector3(0, 0.349901, -0.530438), Vector3(-0.0617815, 0.349901, -0.536435), Vector3(0.136233, 0.349901, -0.56728), Vector3(0.101021, 0.349901, -0.490088)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("person2/Cylinder_001:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6, 0.8), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector3(1.5708, 0, 0), Vector3(1.5708, -0.193505, 0), Vector3(1.5708, -0.483596, 0), Vector3(1.5708, -0.876435, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("person2/Cylinder_002:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6, 0.8, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Vector3(0, 0.349901, -1.17486), Vector3(0.0617815, 0.349901, -1.167), Vector3(0.435, 0.349901, -1.13615), Vector3(0.594801, 0.349901, -0.901257), Vector3(0.594801, 0.349901, -0.850009)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("person2/Cylinder_002:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.3, 0.6, 0.8, 1), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1), +"update": 0, +"values": [Vector3(1.5708, 0, 0), Vector3(1.5708, -0.193505, 0), Vector3(1.5708, -0.483596, 0), Vector3(1.5708, -0.876435, 0), Vector3(1.5708, -1.71175, 0)] +} + +[sub_resource type="Animation" id="Animation_uurmw"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("person2/Cylinder_001:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0.349901, -0.530438)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("person2/Cylinder_001:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1.5708, 0, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("person2/Cylinder_002:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0.349901, -1.17486)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("person2/Cylinder_002:rotation") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1.5708, 0, 0)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_3mrnv"] +_data = { +&"RESET": SubResource("Animation_uurmw"), +&"new_animation": SubResource("Animation_3mrnv") +} [node name="Prototype" type="Node3D"] [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.448508, 1.2315) -[node name="revolver" parent="." instance=ExtResource("1_4ousu")] -transform = Transform3D(-0.1, -8.74228e-09, 0, 8.74228e-09, -0.1, 0, 0, 0, 0.1, 0.376162, 0, -1.28934) -is_player_revolver = true - [node name="bullet" parent="." instance=ExtResource("2_6koui")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.114408, 0, -0.120555) @@ -22,3 +125,18 @@ libraries = { &"": SubResource("AnimationLibrary_3mrnv") } autoplay = "new_animation" + +[node name="person2" parent="." instance=ExtResource("3_6koui")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.28447, 0, 0.116344) + +[node name="Cylinder_001" parent="person2" index="2"] +transform = Transform3D(0.0938729, 0, 0, 0, -4.10331e-09, -0.0938729, 0, 0.0938729, -4.10331e-09, 0, 0.349901, -0.530438) + +[node name="Cylinder_002" parent="person2" index="3"] +transform = Transform3D(0.0527661, 0, 0, 0, -2.30648e-09, -0.0527661, 0, 0.0527661, -2.30648e-09, 0, 0.349901, -1.17486) + +[node name="revolver" parent="person2/Cylinder_002" index="0" instance=ExtResource("1_4ousu")] +transform = Transform3D(-0.990786, -0.0843367, 0.105973, 0.104904, 0.017018, 0.994336, -0.0856625, 0.996292, -0.00801402, 0.0800285, -14.663, -2.40374) +is_player_revolver = true + +[editable path="person2"] diff --git a/Scripts/game_manager.gd b/Scripts/game_manager.gd index bfcc305..f1ac193 100644 --- a/Scripts/game_manager.gd +++ b/Scripts/game_manager.gd @@ -78,8 +78,12 @@ func end_enemy_turn(): #set_player_turn() #end_turn() func end_turn(): - if !player1_revolver.can_be_loaded() and !player2_revolver.can_be_loaded(): - print("Phase 2") + if !player1_revolver.can_be_loaded() and !player2_revolver.can_be_loaded() or !check_unloaded_bullets(): + var player = get_phase2_player_start() + if player == 0: + set_state(GameState.PLAYER1_UNLOAD) + else: + set_state(GameState.PLAYER2_UNLOAD) else: if last_turn == 0: set_enemy_turn() @@ -92,9 +96,9 @@ func get_enemy_revolver() -> Node3D: func get_phase2_player_start(): var randNumb = randi_range(0,1) if randNumb == 0: - set_state(GameState.PLAYER1_UNLOAD) + return 0 else: - set_state(GameState.PLAYER2_UNLOAD) + return 1 func on_bullet_shoot(target):