diff --git a/Scenes/main.tscn b/Scenes/main.tscn index cb3f2ad..f93e500 100644 --- a/Scenes/main.tscn +++ b/Scenes/main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=7 format=3 uid="uid://b4ot3p50x08po"] +[gd_scene load_steps=12 format=3 uid="uid://b4ot3p50x08po"] [ext_resource type="PackedScene" uid="uid://cuqeg7u667dw6" path="res://Blends/Room/room.gltf" id="1_jjgbg"] [ext_resource type="PackedScene" uid="uid://j06vthscroca" path="res://Scenes/bullet.tscn" id="3_8gbba"] @@ -6,6 +6,95 @@ [ext_resource type="Script" uid="uid://dcmqt4341kxem" path="res://Scripts/bullet_stack.gd" id="4_kry3j"] [ext_resource type="PackedScene" uid="uid://bueqdw22nl501" path="res://Scenes/AI.tscn" id="5_kry3j"] [ext_resource type="PackedScene" uid="uid://cbr3e8xsfwyhf" path="res://Scenes/main_game_ui.tscn" id="6_21xkr"] +[ext_resource type="Script" uid="uid://cwj0jaw6impcj" path="res://Scripts/main_animation_player.gd" id="7_6bp64"] + +[sub_resource type="Animation" id="Animation_21xkr"] +resource_name = "player_revolver_up" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("revolver:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(1.02871, 3.34454, 0.425178), Vector3(1.02871, 4.11691, 0.425178)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("revolver:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 1.5708), Vector3(0, 0, 3.14159)] +} + +[sub_resource type="Animation" id="Animation_6bp64"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("revolver:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1.02871, 3.34454, 0.425178)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("revolver:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 1.5708)] +} + +[sub_resource type="Animation" id="Animation_344ge"] +resource_name = "player_revolver_down" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("revolver:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(1.02871, 4.11691, 0.425178), Vector3(1.02871, 3.34454, 0.425178)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("revolver:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 3.14159), Vector3(0, 0, 1.5708)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_344ge"] +_data = { +&"RESET": SubResource("Animation_6bp64"), +&"player_revolver_down": SubResource("Animation_344ge"), +&"player_revolver_up": SubResource("Animation_21xkr") +} [node name="Node3D" type="Node3D"] @@ -82,3 +171,11 @@ target_angle_up = Vector3(0, -180, 180) target_angle_down = Vector3(0, 180, -90) [node name="MainGame" parent="." instance=ExtResource("6_21xkr")] + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_344ge") +} +script = ExtResource("7_6bp64") + +[connection signal="animation_finished" from="AnimationPlayer" to="AnimationPlayer" method="_on_animation_finished"] diff --git a/Scenes/revolver.tscn b/Scenes/revolver.tscn index b06cf3e..5bff0fa 100644 --- a/Scenes/revolver.tscn +++ b/Scenes/revolver.tscn @@ -5,6 +5,7 @@ [sub_resource type="Animation" id="Animation_ncs2m"] resource_name = "cylinder_out" +length = 0.5 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -12,8 +13,8 @@ tracks/0/path = NodePath("Cylinder_002:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 1), -"transitions": PackedFloat32Array(1, 1), +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1.7411), "update": 0, "values": [Vector3(0.0429976, 0.542699, 3.97893), Vector3(2.0611, 0.542699, 3.97893)] } diff --git a/Scripts/game_manager.gd b/Scripts/game_manager.gd index a37b10b..18e7c81 100644 --- a/Scripts/game_manager.gd +++ b/Scripts/game_manager.gd @@ -17,12 +17,14 @@ var is_player1_loaded: bool = false var is_player2_loaded: bool = false var bullet_stack: Node3D +var animPl: AnimationPlayer func _ready() -> void: bullet_shoot.connect(on_bullet_shoot) bullet_selected.connect(on_bullet_selected) + func _input(event: InputEvent) -> void: if event.is_action_released("load"): - set_state(GameState.PLAYER1_GUN_LOAD) + set_player_turn() elif event.is_action_released("load2"): player1_revolver.load_bullet(bullet_stack.bullets[1]) @@ -66,13 +68,13 @@ func check_loaded_bullets(revolver: Node3D): func end_player_turn(): if !is_player2_loaded: set_state(GameState.PLAYER2_GUN_LOAD) - + animPl.play("player_revolver_down") end_turn() func end_enemy_turn(): if is_player1_loaded == false: print("Player Turn") - set_state(GameState.PLAYER1_GUN_LOAD) + set_player_turn() end_turn() func end_turn(): if check_unloaded_bullets(): @@ -95,3 +97,12 @@ func get_phase2_player_start(): func on_bullet_shoot(target): pass + + +func set_player_turn(): + animPl.play("player_revolver_up") +func on_animation_finished(anim_name): + if anim_name == "player_revolver_up": + set_state(GameState.PLAYER1_GUN_LOAD) + elif anim_name == "player_revolver_down": + set_state(GameState.PLAYER2_GUN_LOAD) diff --git a/Scripts/main_animation_player.gd b/Scripts/main_animation_player.gd new file mode 100644 index 0000000..f05d0c0 --- /dev/null +++ b/Scripts/main_animation_player.gd @@ -0,0 +1,8 @@ +extends AnimationPlayer + + +func _ready() -> void: + GameManager.animPl = self + +func _on_animation_finished(anim_name: StringName) -> void: + GameManager.on_animation_finished(anim_name) diff --git a/Scripts/main_animation_player.gd.uid b/Scripts/main_animation_player.gd.uid new file mode 100644 index 0000000..f14cd57 --- /dev/null +++ b/Scripts/main_animation_player.gd.uid @@ -0,0 +1 @@ +uid://cwj0jaw6impcj diff --git a/Scripts/revolver.gd b/Scripts/revolver.gd index 32a27d9..253cb00 100644 --- a/Scripts/revolver.gd +++ b/Scripts/revolver.gd @@ -43,14 +43,16 @@ func _process(delta: float) -> void: cylinder.rotation_degrees = lerp(cylinder.rotation_degrees,Vector3(30 + current_round*60,90,90), delta / 0.1 ) - rotation_degrees = lerp(rotation_degrees, target_angle, delta / 0.1) + #rotation_degrees = lerp(rotation_degrees, target_angle, delta / 0.1) if state == revolver_state.UP: - global_position = lerp(global_position, up_pos, delta/ 0.1) - target_angle = target_angle_up + #global_position = lerp(global_position, up_pos, delta/ 0.1) + #target_angle = target_angle_up + pass elif state == revolver_state.DOWN: - global_position = lerp(global_position, down_pos, delta / 0.1) - target_angle = target_angle_down + pass + #global_position = lerp(global_position, down_pos, delta / 0.1) + #target_angle = target_angle_down #cylinder.rotation_degrees = Vector3(30 + current_round*60,90,90)