Implemented state machine & added NPC ship template

This commit is contained in:
2ndbeam 2024-05-01 17:45:17 +03:00
commit bda9232e72
15 changed files with 284 additions and 22 deletions

View file

@ -1,10 +1,13 @@
[gd_scene load_steps=11 format=3 uid="uid://dok3i8u5t1ka4"]
[gd_scene load_steps=14 format=3 uid="uid://dok3i8u5t1ka4"]
[ext_resource type="PackedScene" uid="uid://bjkshql8ut6hk" path="res://scenes/Ships/ship.tscn" id="1_6x7bu"]
[ext_resource type="Script" path="res://scripts/Ship/player_ship.gd" id="2_oqdd7"]
[ext_resource type="Script" path="res://scripts/Ship/player_input_controller.gd" id="3_0e84a"]
[ext_resource type="PackedScene" uid="uid://bsu4eqwdfewwi" path="res://scenes/Ships/Modules/Hulls/hull.tscn" id="3_ku5af"]
[ext_resource type="PackedScene" uid="uid://ryy1tdrxmjav" path="res://scenes/Ships/Modules/Weapons/weapon.tscn" id="4_fy1be"]
[ext_resource type="PackedScene" uid="uid://mw4kwxoeqch3" path="res://scenes/Ships/Modules/Engines/engine.tscn" id="4_pmbbn"]
[ext_resource type="PackedScene" uid="uid://bunboi5ouscw8" path="res://scenes/Ships/Modules/Shields/shield.tscn" id="5_7fjpq"]
[ext_resource type="Script" path="res://scripts/Ship/player_camera.gd" id="5_rclap"]
[ext_resource type="Script" path="res://scripts/Ship/weapons.gd" id="6_f6fm2"]
[sub_resource type="GDScript" id="GDScript_ry4sc"]
resource_name = "money_counter"
@ -77,20 +80,35 @@ func _process(_delta):
text = unformatted_text.format(format)
"
[node name="PlayerShip" instance=ExtResource("1_6x7bu")]
[node name="PlayerShip" type="Node2D"]
process_mode = 1
script = ExtResource("2_oqdd7")
[node name="InputController" type="Node2D" parent="." index="0"]
[node name="InputController" type="Node2D" parent="."]
script = ExtResource("3_0e84a")
[node name="Weapon" parent="Weapons" index="0" instance=ExtResource("4_fy1be")]
[node name="HullHolder" type="Node" parent="."]
[node name="Hull" parent="HullHolder" instance=ExtResource("3_ku5af")]
collision_mask = 3
max_contacts_reported = 1
contact_monitor = true
[node name="Engine" parent="." instance=ExtResource("4_pmbbn")]
[node name="Shield" parent="." instance=ExtResource("5_7fjpq")]
[node name="Weapons" type="Node2D" parent="."]
script = ExtResource("6_f6fm2")
[node name="Weapon" parent="Weapons" instance=ExtResource("4_fy1be")]
action_id = "primary"
ammo_type = "Laser Energy"
ammo_consumption = 1.0
[node name="ColorableGUI" type="CanvasLayer" parent="." index="5"]
[node name="ColorableGUI" type="CanvasLayer" parent="."]
[node name="Money" type="Label" parent="ColorableGUI" index="0"]
[node name="Money" type="Label" parent="ColorableGUI"]
offset_left = 7.0
offset_top = 611.0
offset_right = 92.0
@ -98,7 +116,7 @@ offset_bottom = 634.0
text = "Money: %d"
script = SubResource("GDScript_ry4sc")
[node name="Velocity" type="Label" parent="ColorableGUI" index="1"]
[node name="Velocity" type="Label" parent="ColorableGUI"]
offset_left = 7.0
offset_top = 688.0
offset_right = 137.0
@ -106,7 +124,7 @@ offset_bottom = 711.0
text = "Velocity: %d px/s"
script = SubResource("GDScript_vko7a")
[node name="Health" type="Label" parent="ColorableGUI" index="2"]
[node name="Health" type="Label" parent="ColorableGUI"]
offset_left = 7.0
offset_top = 663.0
offset_right = 168.0
@ -114,7 +132,7 @@ offset_bottom = 686.0
text = "Health: {0} / {1} units"
script = SubResource("GDScript_uoaip")
[node name="Shield" type="Label" parent="ColorableGUI" index="3"]
[node name="Shield" type="Label" parent="ColorableGUI"]
offset_left = 8.0
offset_top = 638.0
offset_right = 164.0
@ -122,7 +140,7 @@ offset_bottom = 661.0
text = "Shield: {0} / {1} units"
script = SubResource("GDScript_q1sx2")
[node name="Ammunition" type="Label" parent="ColorableGUI" index="4"]
[node name="Ammunition" type="Label" parent="ColorableGUI"]
offset_left = 1060.0
offset_top = 638.0
offset_right = 1273.0
@ -133,8 +151,8 @@ Rockets: {2} / {3}"
horizontal_alignment = 2
script = SubResource("GDScript_rrgab")
[node name="NonColorableGUI" type="CanvasLayer" parent="." index="6"]
[node name="NonColorableGUI" type="CanvasLayer" parent="."]
[node name="Camera" type="Camera2D" parent="." index="7"]
[node name="Camera" type="Camera2D" parent="."]
zoom = Vector2(0.5, 0.5)
script = ExtResource("5_rclap")