Diffstat (limited to 'player/scenes/Ship.tscn')
-rw-r--r--player/scenes/Ship.tscn390
1 files changed, 390 insertions, 0 deletions
diff --git a/player/scenes/Ship.tscn b/player/scenes/Ship.tscn
new file mode 100644
index 0000000..ba2e288
--- /dev/null
+++ b/player/scenes/Ship.tscn
@@ -0,0 +1,390 @@
+[gd_scene load_steps=35 format=2]
+
+[ext_resource path="res://ui/scenes/MobileControls.tscn" type="PackedScene" id=1]
+[ext_resource path="res://sounds/thrust.wav" type="AudioStream" id=2]
+[ext_resource path="res://effects/Trail.tscn" type="PackedScene" id=3]
+[ext_resource path="res://sprites/ship.png" type="Texture" id=4]
+[ext_resource path="res://sounds/thrust_start.wav" type="AudioStream" id=5]
+[ext_resource path="res://sounds/thrust_end.wav" type="AudioStream" id=6]
+[ext_resource path="res://player/scripts/ShipArea2d.gd" type="Script" id=7]
+[ext_resource path="res://sounds/ShipHit.wav" type="AudioStream" id=8]
+[ext_resource path="res://ui/scenes/MobileJoystick.tscn" type="PackedScene" id=9]
+[ext_resource path="res://effects/Fire.tscn" type="PackedScene" id=10]
+[ext_resource path="res://player/scripts/Ship.gd" type="Script" id=11]
+[ext_resource path="res://sprites/spot.png" type="Texture" id=12]
+
+[sub_resource type="CanvasItemMaterial" id=42]
+blend_mode = 1
+
+[sub_resource type="Animation" id=38]
+resource_name = "Die Anim"
+length = 0.5
+tracks/0/type = "value"
+tracks/0/path = NodePath("CPUParticles2D:emitting")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ true ]
+}
+tracks/1/type = "value"
+tracks/1/path = NodePath("Sprite:visible")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ false ]
+}
+tracks/2/type = "method"
+tracks/2/path = NodePath(".")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0.5 ),
+"transitions": PoolRealArray( 1 ),
+"values": [ {
+"args": [ ],
+"method": "queue_free"
+} ]
+}
+
+[sub_resource type="Animation" id=5]
+resource_name = "Down"
+length = 0.7
+loop = true
+tracks/0/type = "value"
+tracks/0/path = NodePath("Sprite:frame")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6 ),
+"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1 ),
+"update": 1,
+"values": [ 7, 6, 5, 4, 3, 2, 1 ]
+}
+
+[sub_resource type="Animation" id=22]
+resource_name = "IdleDown"
+length = 0.1
+loop = true
+tracks/0/type = "value"
+tracks/0/path = NodePath("Sprite:frame")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 0 ]
+}
+
+[sub_resource type="Animation" id=23]
+resource_name = "IdleRight"
+length = 0.1
+loop = true
+tracks/0/type = "value"
+tracks/0/path = NodePath("Sprite:frame")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 0 ]
+}
+
+[sub_resource type="Animation" id=21]
+resource_name = "IdleUp"
+length = 0.1
+loop = true
+tracks/0/type = "value"
+tracks/0/path = NodePath("Sprite:frame")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 0 ]
+}
+
+[sub_resource type="Animation" id=40]
+length = 0.001
+
+[sub_resource type="Animation" id=7]
+resource_name = "Right"
+length = 0.1
+loop = true
+tracks/0/type = "value"
+tracks/0/path = NodePath(".:rotation_degrees")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0 ),
+"transitions": PoolRealArray( 1 ),
+"update": 0,
+"values": [ 0.0 ]
+}
+tracks/1/type = "value"
+tracks/1/path = NodePath("Sprite:frame")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0.0408909 ),
+"transitions": PoolRealArray( 1 ),
+"update": 1,
+"values": [ 0 ]
+}
+
+[sub_resource type="Animation" id=4]
+resource_name = "Up"
+length = 0.7
+loop = true
+tracks/0/type = "value"
+tracks/0/path = NodePath("Sprite:frame")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7 ),
+"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1 ),
+"update": 1,
+"values": [ 1, 2, 3, 4, 5, 6, 7, 8 ]
+}
+
+[sub_resource type="AnimationNodeAnimation" id=35]
+animation = "IdleDown"
+
+[sub_resource type="AnimationNodeAnimation" id=36]
+animation = "IdleRight"
+
+[sub_resource type="AnimationNodeAnimation" id=37]
+animation = "IdleUp"
+
+[sub_resource type="AnimationNodeBlendSpace2D" id=32]
+blend_point_0/node = SubResource( 35 )
+blend_point_0/pos = Vector2( 0, 1 )
+blend_point_1/node = SubResource( 36 )
+blend_point_1/pos = Vector2( 1, 0 )
+blend_point_2/node = SubResource( 37 )
+blend_point_2/pos = Vector2( 0, -1 )
+blend_mode = 1
+
+[sub_resource type="AnimationNodeAnimation" id=29]
+animation = "Down"
+
+[sub_resource type="AnimationNodeAnimation" id=30]
+animation = "Right"
+
+[sub_resource type="AnimationNodeAnimation" id=31]
+animation = "Up"
+
+[sub_resource type="AnimationNodeBlendSpace2D" id=28]
+blend_point_0/node = SubResource( 29 )
+blend_point_0/pos = Vector2( 0, 1 )
+blend_point_1/node = SubResource( 30 )
+blend_point_1/pos = Vector2( 1.1, 0 )
+blend_point_2/node = SubResource( 31 )
+blend_point_2/pos = Vector2( 0, -1 )
+max_space = Vector2( 1.1, 1 )
+blend_mode = 1
+
+[sub_resource type="AnimationNodeStateMachineTransition" id=33]
+
+[sub_resource type="AnimationNodeStateMachineTransition" id=34]
+
+[sub_resource type="AnimationNodeStateMachine" id=27]
+states/Idle/node = SubResource( 32 )
+states/Idle/position = Vector2( 402, 81 )
+states/Turn/node = SubResource( 28 )
+states/Turn/position = Vector2( 248, 81 )
+transitions = [ "Turn", "Idle", SubResource( 33 ), "Idle", "Turn", SubResource( 34 ) ]
+start_node = "Idle"
+
+[sub_resource type="AnimationNodeStateMachinePlayback" id=3]
+
+[sub_resource type="CircleShape2D" id=39]
+radius = 374.065
+
+[node name="KinematicBody2D" type="KinematicBody2D" groups=["Player"]]
+z_index = 2
+z_as_relative = false
+collision_layer = 17
+collision_mask = 8
+script = ExtResource( 11 )
+
+[node name="Light" type="Light2D" parent="."]
+material = SubResource( 42 )
+scale = Vector2( 0.5, 0.5 )
+texture = ExtResource( 12 )
+texture_scale = 3.0
+shadow_enabled = true
+shadow_gradient_length = 3.0
+shadow_filter = 2
+shadow_filter_smooth = 5.0
+
+[node name="Fire" parent="." instance=ExtResource( 10 )]
+emitting = false
+
+[node name="Trail" parent="." instance=ExtResource( 3 )]
+position = Vector2( -2, -5 )
+MAX_LENGTH = 30
+
+[node name="LeftWingtip" type="Position2D" parent="Trail"]
+position = Vector2( 0, -4.76837e-07 )
+
+[node name="Trail2" parent="." instance=ExtResource( 3 )]
+position = Vector2( -2, 5 )
+MAX_LENGTH = 30
+
+[node name="RightWingtip" type="Position2D" parent="Trail2"]
+
+[node name="Collision3" type="CollisionPolygon2D" parent="."]
+visible = false
+polygon = PoolVector2Array( -7, -4, -4, -4, -4, -6, -1, -6, 2, -2, 5, -2, 7, -1, 7, 1, 5, 2, 2, 2, -1, 6, -4, 6, -4, 4, -7, 4 )
+
+[node name="Sprite" type="Sprite" parent="."]
+z_index = 2
+z_as_relative = false
+texture = ExtResource( 4 )
+hframes = 9
+
+[node name="Timer" type="Timer" parent="."]
+
+[node name="thrustsfxin" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 5 )
+
+[node name="thrustsfxloop" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 2 )
+volume_db = -8.0
+
+[node name="thrustsfxend" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 6 )
+volume_db = -4.0
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
+"anims/Die Anim" = SubResource( 38 )
+anims/Down = SubResource( 5 )
+anims/IdleDown = SubResource( 22 )
+anims/IdleRight = SubResource( 23 )
+anims/IdleUp = SubResource( 21 )
+anims/RESET = SubResource( 40 )
+anims/Right = SubResource( 7 )
+anims/Up = SubResource( 4 )
+
+[node name="AnimationTree" type="AnimationTree" parent="."]
+tree_root = SubResource( 27 )
+anim_player = NodePath("../AnimationPlayer")
+parameters/playback = SubResource( 3 )
+parameters/Idle/blend_position = Vector2( 0, 0 )
+parameters/Turn/blend_position = Vector2( 0, 0 )
+
+[node name="CPUParticles2D" type="CPUParticles2D" parent="."]
+position = Vector2( -12, -19 )
+scale = Vector2( 2, 2 )
+emitting = false
+amount = 100
+lifetime = 0.5
+one_shot = true
+explosiveness = 0.5
+local_coords = false
+draw_order = 1
+emission_shape = 3
+emission_points = PoolVector2Array( 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 2, 12, 3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3, 7, 3, 8, 3, 9, 3, 10, 3, 11, 3, 12, 3, 13, 3, 14, 3, 15, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5, 4, 6, 4, 7, 4, 8, 4, 9, 4, 10, 4, 11, 4, 12, 4, 13, 4, 14, 4, 15, 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8, 5, 9, 5, 10, 5, 11, 5, 12, 5, 13, 5, 14, 5, 15, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5, 6, 6, 6, 7, 6, 8, 6, 9, 6, 10, 6, 11, 6, 12, 6, 13, 6, 14, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7, 7, 7, 8, 7, 9, 7, 10, 7, 11, 7, 12, 7, 13, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, 8, 8, 8, 9, 8, 10, 8, 11, 8, 12, 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 9, 10, 9, 11, 10, 5, 10, 6, 10, 7, 10, 8, 10, 9, 10, 10, 11, 5, 11, 6, 11, 7, 11, 8, 11, 9, 11, 10, 12, 5, 12, 6, 12, 7, 12, 8, 12, 9, 12, 10, 13, 6, 13, 7, 13, 8, 13, 9, 14, 6, 14, 7, 14, 8, 14, 9, 15, 7, 15, 8 )
+emission_colors = PoolColorArray( 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 )
+direction = Vector2( 1, -1 )
+spread = 100.0
+initial_velocity = 90.0
+scale_amount = 1.5
+scale_amount_random = 0.2
+
+[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
+stream = ExtResource( 8 )
+volume_db = -20.0
+
+[node name="MobileJoystick" parent="." instance=ExtResource( 9 )]
+
+[node name="MobileControls" parent="MobileJoystick" instance=ExtResource( 1 )]
+
+[node name="Change gun" parent="MobileJoystick/MobileControls" index="1"]
+action = "change_gun_1"
+
+[node name="damage" type="Area2D" parent="." groups=["Player", "player"]]
+
+[node name="Collision2" type="CollisionPolygon2D" parent="damage"]
+visible = false
+polygon = PoolVector2Array( -7, -4, -4, -4, -4, -6, -1, -6, 2, -2, 5, -2, 7, -1, 7, 1, 5, 2, 2, 2, -1, 6, -4, 6, -4, 4, -7, 4 )
+
+[node name="target_getter" type="Area2D" parent="." groups=["Player"]]
+z_index = 2
+z_as_relative = false
+collision_layer = 32
+collision_mask = 32
+script = ExtResource( 7 )
+
+[node name="Collision" type="CollisionShape2D" parent="target_getter"]
+visible = false
+shape = SubResource( 39 )
+
+[node name="Muzzles" type="Node2D" parent="."]
+visible = false
+
+[node name="LaserMuzzle" type="Node2D" parent="Muzzles"]
+
+[node name="Position2D" type="Position2D" parent="Muzzles/LaserMuzzle"]
+position = Vector2( 5, 0 )
+
+[node name="RocketMuzzle" type="Node2D" parent="Muzzles"]
+
+[node name="Position2D" type="Position2D" parent="Muzzles/RocketMuzzle"]
+position = Vector2( -2, -5 )
+
+[node name="Position2D2" type="Position2D" parent="Muzzles/RocketMuzzle"]
+position = Vector2( -2, 5 )
+
+[node name="SplitMuzzle" type="Node2D" parent="Muzzles"]
+
+[node name="Position2D" type="Position2D" parent="Muzzles/SplitMuzzle"]
+position = Vector2( -2, -5 )
+
+[node name="Position2D2" type="Position2D" parent="Muzzles/SplitMuzzle"]
+position = Vector2( -2, 5 )
+
+[node name="Position2D3" type="Position2D" parent="Muzzles/SplitMuzzle"]
+position = Vector2( 5, 0 )
+
+[node name="FlakMuzzle" type="Node2D" parent="Muzzles"]
+
+[node name="Position2D" type="Position2D" parent="Muzzles/FlakMuzzle"]
+position = Vector2( 5, 0 )
+
+[connection signal="finished" from="AudioStreamPlayer" to="." method="_on_AudioStreamPlayer_finished"]
+[connection signal="area_entered" from="damage" to="." method="_on_Ship_area_entered"]
+[connection signal="body_entered" from="damage" to="." method="_on_Ship_body_entered"]
+[connection signal="target" from="target_getter" to="." method="_on_target_getter_target"]
+
+[editable path="MobileJoystick"]
+[editable path="MobileJoystick/MobileControls"]