Finish base intro tutorial mission, new particles, saving fixes, checkpoints, etc.
This commit is contained in:
parent
a24c06737b
commit
e18abd8bef
28 changed files with 677 additions and 68 deletions
104
scenes/doors/door_medium_horizontial.tscn
Normal file
104
scenes/doors/door_medium_horizontial.tscn
Normal file
|
|
@ -0,0 +1,104 @@
|
||||||
|
[gd_scene load_steps=12 format=3 uid="uid://cs30mgkcn74is"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b88ykyte6oi3i" path="res://scripts/door_medium_horizontial.gd" id="1_8opqd"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://djmlhid6f4xwi" path="res://textures/door_medium_horziontial.png" id="2_8opqd"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ydv31"]
|
||||||
|
atlas = ExtResource("2_8opqd")
|
||||||
|
region = Rect2(384, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_tlrp8"]
|
||||||
|
atlas = ExtResource("2_8opqd")
|
||||||
|
region = Rect2(320, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ruhr2"]
|
||||||
|
atlas = ExtResource("2_8opqd")
|
||||||
|
region = Rect2(256, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_388o4"]
|
||||||
|
atlas = ExtResource("2_8opqd")
|
||||||
|
region = Rect2(192, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_apq5w"]
|
||||||
|
atlas = ExtResource("2_8opqd")
|
||||||
|
region = Rect2(128, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_kxlda"]
|
||||||
|
atlas = ExtResource("2_8opqd")
|
||||||
|
region = Rect2(64, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_5gimo"]
|
||||||
|
atlas = ExtResource("2_8opqd")
|
||||||
|
region = Rect2(0, 0, 64, 64)
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_vvdds"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ydv31")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_tlrp8")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ruhr2")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_388o4")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_apq5w")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_kxlda")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_5gimo")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 12.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_5gimo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_kxlda")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_apq5w")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_388o4")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ruhr2")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_tlrp8")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": SubResource("AtlasTexture_ydv31")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"open",
|
||||||
|
"speed": 12.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhfm6"]
|
||||||
|
size = Vector2(96, 32)
|
||||||
|
|
||||||
|
[node name="DoorMediumHorizontial" type="StaticBody2D"]
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
script = ExtResource("1_8opqd")
|
||||||
|
|
||||||
|
[node name="Sprite" type="AnimatedSprite2D" parent="."]
|
||||||
|
sprite_frames = SubResource("SpriteFrames_vvdds")
|
||||||
|
autoplay = "default"
|
||||||
|
frame = 6
|
||||||
|
frame_progress = 1.0
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(0, 16)
|
||||||
|
shape = SubResource("RectangleShape2D_bhfm6")
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
[gd_scene load_steps=64 format=4 uid="uid://dfjnikjjynj0e"]
|
[gd_scene load_steps=69 format=4 uid="uid://dfjnikjjynj0e"]
|
||||||
|
|
||||||
[ext_resource type="AudioStream" uid="uid://dgv01wy8r7ej2" path="res://sounds/uglyburger.mp3" id="1_kpeax"]
|
[ext_resource type="AudioStream" uid="uid://dgv01wy8r7ej2" path="res://sounds/uglyburger.mp3" id="1_kpeax"]
|
||||||
[ext_resource type="Texture2D" uid="uid://btcap3oh2dqt8" path="res://textures/wall_tile.png" id="2_4uppp"]
|
[ext_resource type="Texture2D" uid="uid://btcap3oh2dqt8" path="res://textures/wall_tile.png" id="2_4uppp"]
|
||||||
[ext_resource type="AudioStream" uid="uid://w3hai62ji61g" path="res://sounds/heart_monitor.mp3" id="2_v7oqm"]
|
[ext_resource type="AudioStream" uid="uid://w3hai62ji61g" path="res://sounds/heart_monitor.mp3" id="2_v7oqm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://xs6tjca62pw1" path="res://textures/wall_side_tile.png" id="3_ir5n7"]
|
[ext_resource type="Texture2D" uid="uid://xs6tjca62pw1" path="res://textures/wall_side_tile.png" id="3_ir5n7"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://7cvp5b3mq1tn" path="res://sounds/music/dnbd_sudden.mp3" id="3_kl2qk"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ddfp7u4a7llnr" path="res://textures/wall_side_tile_left.png" id="4_50pdk"]
|
[ext_resource type="Texture2D" uid="uid://ddfp7u4a7llnr" path="res://textures/wall_side_tile_left.png" id="4_50pdk"]
|
||||||
[ext_resource type="Texture2D" uid="uid://gl7rcrys46ay" path="res://textures/wall_side_tile_right.png" id="5_83fjc"]
|
[ext_resource type="Texture2D" uid="uid://gl7rcrys46ay" path="res://textures/wall_side_tile_right.png" id="5_83fjc"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cj5sjx1jhrah6" path="res://textures/wall_side_tile_center.png" id="6_akl5n"]
|
[ext_resource type="Texture2D" uid="uid://cj5sjx1jhrah6" path="res://textures/wall_side_tile_center.png" id="6_akl5n"]
|
||||||
|
|
@ -18,13 +19,17 @@
|
||||||
[ext_resource type="Texture2D" uid="uid://dtwo7g0ipc4k" path="res://textures/ship_1.png" id="13_vmpfq"]
|
[ext_resource type="Texture2D" uid="uid://dtwo7g0ipc4k" path="res://textures/ship_1.png" id="13_vmpfq"]
|
||||||
[ext_resource type="Script" uid="uid://khas1kkt2t3k" path="res://scripts/exit_ship.gd" id="14_jxmby"]
|
[ext_resource type="Script" uid="uid://khas1kkt2t3k" path="res://scripts/exit_ship.gd" id="14_jxmby"]
|
||||||
[ext_resource type="Script" uid="uid://mmptv0l2ahhh" path="res://scripts/doctor.gd" id="14_vmimc"]
|
[ext_resource type="Script" uid="uid://mmptv0l2ahhh" path="res://scripts/doctor.gd" id="14_vmimc"]
|
||||||
|
[ext_resource type="Script" uid="uid://cytses4dvcif2" path="res://scripts/doctor_2.gd" id="16_bhfm6"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://csrlh1sbdroud" path="res://textures/pistol.png" id="16_mdep3"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ktvnppfhchoj" path="res://textures/bed.png" id="17_50pdk"]
|
[ext_resource type="Texture2D" uid="uid://ktvnppfhchoj" path="res://textures/bed.png" id="17_50pdk"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://5x8fl2mk082h" path="res://sounds/gunshot_1.mp3" id="17_bhfm6"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b0c5hws6ki8p5" path="res://textures/door_large_vertical.png" id="17_vmpfq"]
|
[ext_resource type="Texture2D" uid="uid://b0c5hws6ki8p5" path="res://textures/door_large_vertical.png" id="17_vmpfq"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cmv4wou5glrl7" path="res://textures/bed_foot.png" id="18_83fjc"]
|
[ext_resource type="Texture2D" uid="uid://cmv4wou5glrl7" path="res://textures/bed_foot.png" id="18_83fjc"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bgui3ranlk441" path="res://textures/locker.png" id="18_jxmby"]
|
[ext_resource type="Texture2D" uid="uid://bgui3ranlk441" path="res://textures/locker.png" id="18_jxmby"]
|
||||||
[ext_resource type="Texture2D" uid="uid://iim42wat824h" path="res://textures/door_large_horizontial.png" id="18_vmimc"]
|
[ext_resource type="Texture2D" uid="uid://iim42wat824h" path="res://textures/door_large_horizontial.png" id="18_vmimc"]
|
||||||
[ext_resource type="Script" uid="uid://cva4b60iqolqy" path="res://scripts/story_handler_1.gd" id="19_akl5n"]
|
[ext_resource type="Script" uid="uid://cva4b60iqolqy" path="res://scripts/story_handler_1.gd" id="19_akl5n"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dh3psx6ilrtql" path="res://scenes/enemy_ground.tscn" id="22_janyw"]
|
[ext_resource type="PackedScene" uid="uid://dh3psx6ilrtql" path="res://scenes/enemy_ground.tscn" id="22_janyw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cs30mgkcn74is" path="res://scenes/doors/door_medium_horizontial.tscn" id="23_ga4dw"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bahp733iqv2us" path="res://textures/desk.png" id="26_vmpfq"]
|
[ext_resource type="Texture2D" uid="uid://bahp733iqv2us" path="res://textures/desk.png" id="26_vmpfq"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c13fyse8fxmio" path="res://sounds/intrusion_alarm.mp3" id="28_k741b"]
|
[ext_resource type="AudioStream" uid="uid://c13fyse8fxmio" path="res://sounds/intrusion_alarm.mp3" id="28_k741b"]
|
||||||
[ext_resource type="AudioStream" uid="uid://f6l56kvndidj" path="res://sounds/background_gunshots.mp3" id="28_vmimc"]
|
[ext_resource type="AudioStream" uid="uid://f6l56kvndidj" path="res://sounds/background_gunshots.mp3" id="28_vmimc"]
|
||||||
|
|
@ -41,6 +46,7 @@ texture = ExtResource("2_4uppp")
|
||||||
0:0/0 = 0
|
0:0/0 = 0
|
||||||
0:0/0/occlusion_layer_0/polygon_0/polygon = SubResource("OccluderPolygon2D_gysiw")
|
0:0/0/occlusion_layer_0/polygon_0/polygon = SubResource("OccluderPolygon2D_gysiw")
|
||||||
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||||
|
0:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
|
||||||
|
|
||||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mdep3"]
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mdep3"]
|
||||||
texture = ExtResource("3_ir5n7")
|
texture = ExtResource("3_ir5n7")
|
||||||
|
|
@ -93,8 +99,9 @@ texture_region_size = Vector2i(32, 32)
|
||||||
[sub_resource type="TileSet" id="TileSet_uxsmb"]
|
[sub_resource type="TileSet" id="TileSet_uxsmb"]
|
||||||
tile_size = Vector2i(32, 32)
|
tile_size = Vector2i(32, 32)
|
||||||
occlusion_layer_0/light_mask = 1
|
occlusion_layer_0/light_mask = 1
|
||||||
physics_layer_0/collision_layer = 3
|
physics_layer_0/collision_layer = 1
|
||||||
physics_layer_0/collision_mask = 3
|
physics_layer_1/collision_layer = 2
|
||||||
|
physics_layer_1/collision_mask = 2
|
||||||
navigation_layer_0/layers = 1
|
navigation_layer_0/layers = 1
|
||||||
sources/0 = SubResource("TileSetAtlasSource_k741b")
|
sources/0 = SubResource("TileSetAtlasSource_k741b")
|
||||||
sources/1 = SubResource("TileSetAtlasSource_mdep3")
|
sources/1 = SubResource("TileSetAtlasSource_mdep3")
|
||||||
|
|
@ -240,7 +247,7 @@ size = Vector2(40, 40)
|
||||||
size = Vector2(223, 442)
|
size = Vector2(223, 442)
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vmimc"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vmimc"]
|
||||||
size = Vector2(353, 401)
|
size = Vector2(353, 655)
|
||||||
|
|
||||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_83fjc"]
|
[sub_resource type="RectangleShape2D" id="RectangleShape2D_83fjc"]
|
||||||
size = Vector2(61.5, 21)
|
size = Vector2(61.5, 21)
|
||||||
|
|
@ -260,6 +267,11 @@ parameters/looping = true
|
||||||
stream = ExtResource("2_v7oqm")
|
stream = ExtResource("2_v7oqm")
|
||||||
parameters/looping = true
|
parameters/looping = true
|
||||||
|
|
||||||
|
[node name="Dnbd" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("3_kl2qk")
|
||||||
|
volume_db = -8.0
|
||||||
|
bus = &"Music"
|
||||||
|
|
||||||
[node name="Map" type="TileMapLayer" parent="."]
|
[node name="Map" type="TileMapLayer" parent="."]
|
||||||
modulate = Color(0.53333336, 0.53333336, 0.53333336, 1)
|
modulate = Color(0.53333336, 0.53333336, 0.53333336, 1)
|
||||||
z_index = -4096
|
z_index = -4096
|
||||||
|
|
@ -329,9 +341,22 @@ collision_mask = 2
|
||||||
shape = SubResource("CapsuleShape2D_janyw")
|
shape = SubResource("CapsuleShape2D_janyw")
|
||||||
debug_color = Color(1, 0, 0, 0.41960785)
|
debug_color = Color(1, 0, 0, 0.41960785)
|
||||||
|
|
||||||
|
[node name="HospitalEscapeD2State1" type="Area2D" parent="."]
|
||||||
|
position = Vector2(1216, -1408)
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape2D" parent="HospitalEscapeD2State1"]
|
||||||
|
position = Vector2(-144, 0)
|
||||||
|
shape = SubResource("CircleShape2D_janyw")
|
||||||
|
|
||||||
|
[node name="HospitalEscapeD2State2" type="Area2D" parent="."]
|
||||||
|
position = Vector2(1360, -1072)
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape2D" parent="HospitalEscapeD2State2"]
|
||||||
|
shape = SubResource("CircleShape2D_janyw")
|
||||||
|
|
||||||
[node name="Doctor2" type="CharacterBody2D" parent="."]
|
[node name="Doctor2" type="CharacterBody2D" parent="."]
|
||||||
position = Vector2(1664, -1328)
|
position = Vector2(1664, -1328)
|
||||||
script = ExtResource("14_vmimc")
|
script = ExtResource("16_bhfm6")
|
||||||
|
|
||||||
[node name="Sprite" type="AnimatedSprite2D" parent="Doctor2"]
|
[node name="Sprite" type="AnimatedSprite2D" parent="Doctor2"]
|
||||||
scale = Vector2(-2, 2)
|
scale = Vector2(-2, 2)
|
||||||
|
|
@ -341,13 +366,6 @@ sprite_frames = SubResource("SpriteFrames_c5r8y")
|
||||||
position = Vector2(0, 40)
|
position = Vector2(0, 40)
|
||||||
shape = SubResource("CapsuleShape2D_2ss3m")
|
shape = SubResource("CapsuleShape2D_2ss3m")
|
||||||
|
|
||||||
[node name="InteractArea" type="Area2D" parent="Doctor2"]
|
|
||||||
script = ExtResource("10_tvsp8")
|
|
||||||
interact_text = "TALK"
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape2D" parent="Doctor2/InteractArea"]
|
|
||||||
shape = SubResource("CircleShape2D_janyw")
|
|
||||||
|
|
||||||
[node name="Navagent" type="NavigationAgent2D" parent="Doctor2"]
|
[node name="Navagent" type="NavigationAgent2D" parent="Doctor2"]
|
||||||
path_desired_distance = 34.0
|
path_desired_distance = 34.0
|
||||||
target_desired_distance = 34.0
|
target_desired_distance = 34.0
|
||||||
|
|
@ -361,6 +379,22 @@ collision_mask = 2
|
||||||
shape = SubResource("CapsuleShape2D_janyw")
|
shape = SubResource("CapsuleShape2D_janyw")
|
||||||
debug_color = Color(1, 0, 0, 0.41960785)
|
debug_color = Color(1, 0, 0, 0.41960785)
|
||||||
|
|
||||||
|
[node name="HeldItem" type="Node2D" parent="Doctor2"]
|
||||||
|
|
||||||
|
[node name="Cast" type="RayCast2D" parent="Doctor2/HeldItem"]
|
||||||
|
position = Vector2(64, 0)
|
||||||
|
target_position = Vector2(2048, 0)
|
||||||
|
collision_mask = 2
|
||||||
|
collide_with_areas = true
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="Doctor2/HeldItem"]
|
||||||
|
position = Vector2(56, 0)
|
||||||
|
texture = ExtResource("16_mdep3")
|
||||||
|
|
||||||
|
[node name="Gunshot" type="AudioStreamPlayer2D" parent="Doctor2/HeldItem"]
|
||||||
|
stream = ExtResource("17_bhfm6")
|
||||||
|
bus = &"Sound Effects"
|
||||||
|
|
||||||
[node name="GalactaCounter" type="StaticBody2D" parent="."]
|
[node name="GalactaCounter" type="StaticBody2D" parent="."]
|
||||||
position = Vector2(-64, -883)
|
position = Vector2(-64, -883)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
|
|
@ -392,6 +426,16 @@ texture = ExtResource("17_vmpfq")
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="MedbayDoorLargeVertical3"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="MedbayDoorLargeVertical3"]
|
||||||
shape = SubResource("RectangleShape2D_whbip")
|
shape = SubResource("RectangleShape2D_whbip")
|
||||||
|
|
||||||
|
[node name="MedbayDoorLargeVertical6" type="StaticBody2D" parent="."]
|
||||||
|
position = Vector2(224, -3104)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="MedbayDoorLargeVertical6"]
|
||||||
|
texture = ExtResource("17_vmpfq")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="MedbayDoorLargeVertical6"]
|
||||||
|
shape = SubResource("RectangleShape2D_whbip")
|
||||||
|
|
||||||
[node name="MedbayDoorLargeVertical2" type="StaticBody2D" parent="."]
|
[node name="MedbayDoorLargeVertical2" type="StaticBody2D" parent="."]
|
||||||
position = Vector2(352, -1280)
|
position = Vector2(352, -1280)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
|
|
@ -403,6 +447,20 @@ texture = ExtResource("18_vmimc")
|
||||||
position = Vector2(0, 16)
|
position = Vector2(0, 16)
|
||||||
shape = SubResource("RectangleShape2D_bhfm6")
|
shape = SubResource("RectangleShape2D_bhfm6")
|
||||||
|
|
||||||
|
[node name="MedbayDoorLargeVertical5" type="StaticBody2D" parent="."]
|
||||||
|
position = Vector2(352, -1280)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="MedbayDoorLargeVertical5"]
|
||||||
|
texture = ExtResource("18_vmimc")
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="MedbayDoorLargeVertical5"]
|
||||||
|
position = Vector2(0, 16)
|
||||||
|
shape = SubResource("RectangleShape2D_bhfm6")
|
||||||
|
|
||||||
|
[node name="Doctor2DoorToOpen" parent="." instance=ExtResource("23_ga4dw")]
|
||||||
|
position = Vector2(1344, -960)
|
||||||
|
|
||||||
[node name="MedbayDoorLargeVertical4" type="StaticBody2D" parent="."]
|
[node name="MedbayDoorLargeVertical4" type="StaticBody2D" parent="."]
|
||||||
position = Vector2(352, -2432)
|
position = Vector2(352, -2432)
|
||||||
scale = Vector2(2, 2)
|
scale = Vector2(2, 2)
|
||||||
|
|
@ -499,14 +557,29 @@ position = Vector2(126, -1796)
|
||||||
position = Vector2(-1119, -1537)
|
position = Vector2(-1119, -1537)
|
||||||
|
|
||||||
[node name="DoctorHallWaypoint" type="Node2D" parent="."]
|
[node name="DoctorHallWaypoint" type="Node2D" parent="."]
|
||||||
position = Vector2(-730, -1375)
|
position = Vector2(-768, -1376)
|
||||||
|
|
||||||
|
[node name="Doctor2DoorWaypoint" type="Node2D" parent="."]
|
||||||
|
position = Vector2(1376, -1056)
|
||||||
|
|
||||||
[node name="CamperSpawn1" type="Node2D" parent="."]
|
[node name="CamperSpawn1" type="Node2D" parent="."]
|
||||||
position = Vector2(-1248, -1984)
|
position = Vector2(-1248, -1984)
|
||||||
|
|
||||||
|
[node name="CamperSpawn2" type="Node2D" parent="."]
|
||||||
|
position = Vector2(-544, -1408)
|
||||||
|
|
||||||
|
[node name="CamperSpawn3" type="Node2D" parent="."]
|
||||||
|
position = Vector2(992, -32)
|
||||||
|
|
||||||
|
[node name="CamperSpawn4" type="Node2D" parent="."]
|
||||||
|
position = Vector2(1632, 752)
|
||||||
|
|
||||||
[node name="Checkpoint1PlayerSpawn" type="Node2D" parent="."]
|
[node name="Checkpoint1PlayerSpawn" type="Node2D" parent="."]
|
||||||
position = Vector2(-928, -2112)
|
position = Vector2(-928, -2112)
|
||||||
|
|
||||||
|
[node name="Checkpoint2PlayerSpawn" type="Node2D" parent="."]
|
||||||
|
position = Vector2(1312, -1056)
|
||||||
|
|
||||||
[node name="Checkpoint1DoctorSpawn" type="Node2D" parent="."]
|
[node name="Checkpoint1DoctorSpawn" type="Node2D" parent="."]
|
||||||
position = Vector2(-864, -2224)
|
position = Vector2(-864, -2224)
|
||||||
|
|
||||||
|
|
@ -527,7 +600,7 @@ position = Vector2(-827, -3082)
|
||||||
position = Vector2(-52, 45)
|
position = Vector2(-52, 45)
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="DoctorEscapeWaypoint2/Area"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="DoctorEscapeWaypoint2/Area"]
|
||||||
position = Vector2(146.5, 70.5)
|
position = Vector2(146.5, 197.5)
|
||||||
shape = SubResource("RectangleShape2D_vmimc")
|
shape = SubResource("RectangleShape2D_vmimc")
|
||||||
|
|
||||||
[node name="StoryHandler1" type="Node2D" parent="."]
|
[node name="StoryHandler1" type="Node2D" parent="."]
|
||||||
|
|
@ -613,23 +686,41 @@ position = Vector2(-0.25, 37.5)
|
||||||
shape = SubResource("RectangleShape2D_83fjc")
|
shape = SubResource("RectangleShape2D_83fjc")
|
||||||
|
|
||||||
[node name="Camper1" parent="." instance=ExtResource("22_janyw")]
|
[node name="Camper1" parent="." instance=ExtResource("22_janyw")]
|
||||||
position = Vector2(33, -3149)
|
position = Vector2(-128, -3149)
|
||||||
starting_gun = "smg"
|
starting_gun = "smg"
|
||||||
starting_health = 100
|
starting_health = 300
|
||||||
concious = false
|
concious = false
|
||||||
always_sees_player = true
|
always_sees_player = true
|
||||||
|
|
||||||
[node name="Camper2" parent="." instance=ExtResource("22_janyw")]
|
[node name="Camper2" parent="." instance=ExtResource("22_janyw")]
|
||||||
position = Vector2(33, -3085)
|
position = Vector2(-128, -3085)
|
||||||
starting_gun = "smg"
|
starting_gun = "smg"
|
||||||
starting_health = 100
|
starting_health = 300
|
||||||
concious = false
|
concious = false
|
||||||
always_sees_player = true
|
always_sees_player = true
|
||||||
|
|
||||||
[node name="Camper3" parent="." instance=ExtResource("22_janyw")]
|
[node name="Camper3" parent="." instance=ExtResource("22_janyw")]
|
||||||
position = Vector2(-6704, -6000)
|
position = Vector2(-6704, -6000)
|
||||||
starting_gun = "smg"
|
starting_gun = "smg"
|
||||||
starting_health = 100
|
starting_health = 300
|
||||||
|
|
||||||
|
[node name="Camper4" parent="." instance=ExtResource("22_janyw")]
|
||||||
|
position = Vector2(-6704, -6000)
|
||||||
|
starting_gun = "smg"
|
||||||
|
starting_health = 300
|
||||||
|
inaccuracy = 30
|
||||||
|
|
||||||
|
[node name="Camper5" parent="." instance=ExtResource("22_janyw")]
|
||||||
|
position = Vector2(-6704, -6000)
|
||||||
|
starting_health = 35
|
||||||
|
reaction_time = 0.4
|
||||||
|
inaccuracy = 30
|
||||||
|
|
||||||
|
[node name="Camper6" parent="." instance=ExtResource("22_janyw")]
|
||||||
|
position = Vector2(-6704, -6000)
|
||||||
|
starting_health = 35
|
||||||
|
reaction_time = 0.4
|
||||||
|
inaccuracy = 30
|
||||||
|
|
||||||
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
[node name="StaticBody2D" type="StaticBody2D" parent="."]
|
||||||
position = Vector2(-1145.8125, -1537.0664)
|
position = Vector2(-1145.8125, -1537.0664)
|
||||||
|
|
@ -669,7 +760,7 @@ bus = &"Sound Effects"
|
||||||
[connection signal="body_exited" from="GalactamartWorker/InteractArea" to="GalactamartWorker/InteractArea" method="_on_body_exited"]
|
[connection signal="body_exited" from="GalactamartWorker/InteractArea" to="GalactamartWorker/InteractArea" method="_on_body_exited"]
|
||||||
[connection signal="body_entered" from="Doctor/InteractArea" to="Doctor/InteractArea" method="_on_body_entered"]
|
[connection signal="body_entered" from="Doctor/InteractArea" to="Doctor/InteractArea" method="_on_body_entered"]
|
||||||
[connection signal="body_exited" from="Doctor/InteractArea" to="Doctor/InteractArea" method="_on_body_exited"]
|
[connection signal="body_exited" from="Doctor/InteractArea" to="Doctor/InteractArea" method="_on_body_exited"]
|
||||||
[connection signal="body_entered" from="Doctor2/InteractArea" to="Doctor2/InteractArea" method="_on_body_entered"]
|
[connection signal="body_entered" from="HospitalEscapeD2State1" to="Doctor2" method="_on_state_1_body_entered"]
|
||||||
[connection signal="body_exited" from="Doctor2/InteractArea" to="Doctor2/InteractArea" method="_on_body_exited"]
|
[connection signal="body_entered" from="HospitalEscapeD2State2" to="Doctor2" method="_on_state_2_body_entered"]
|
||||||
[connection signal="body_entered" from="ExitShip/InteractArea" to="ExitShip/InteractArea" method="_on_body_entered"]
|
[connection signal="body_entered" from="ExitShip/InteractArea" to="ExitShip/InteractArea" method="_on_body_entered"]
|
||||||
[connection signal="body_exited" from="ExitShip/InteractArea" to="ExitShip/InteractArea" method="_on_body_exited"]
|
[connection signal="body_exited" from="ExitShip/InteractArea" to="ExitShip/InteractArea" method="_on_body_exited"]
|
||||||
|
|
|
||||||
38
scenes/particles/blood.tscn
Normal file
38
scenes/particles/blood.tscn
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://c2s1tterykyu5"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://ck38qwl4qytnt" path="res://scripts/particle_group.gd" id="1_8186p"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ccfofitk3x5jj" path="res://textures/particles/laser.png" id="2_a658j"]
|
||||||
|
|
||||||
|
[sub_resource type="Curve" id="Curve_ipns3"]
|
||||||
|
_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.49242425, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
|
||||||
|
point_count = 3
|
||||||
|
|
||||||
|
[sub_resource type="CurveTexture" id="CurveTexture_416m4"]
|
||||||
|
curve = SubResource("Curve_ipns3")
|
||||||
|
|
||||||
|
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_8186p"]
|
||||||
|
particle_flag_disable_z = true
|
||||||
|
angle_min = -720.0
|
||||||
|
angle_max = 720.0
|
||||||
|
spread = 180.0
|
||||||
|
initial_velocity_min = 30.3
|
||||||
|
initial_velocity_max = 260.81
|
||||||
|
gravity = Vector3(0, 400, 0)
|
||||||
|
damping_min = 8.0
|
||||||
|
damping_max = 14.000001
|
||||||
|
scale_min = 0.29999998
|
||||||
|
scale_max = 0.5
|
||||||
|
alpha_curve = SubResource("CurveTexture_416m4")
|
||||||
|
collision_use_scale = true
|
||||||
|
|
||||||
|
[node name="Blood" type="Node2D"]
|
||||||
|
script = ExtResource("1_8186p")
|
||||||
|
|
||||||
|
[node name="GPUParticles2D" type="GPUParticles2D" parent="."]
|
||||||
|
emitting = false
|
||||||
|
amount = 24
|
||||||
|
texture = ExtResource("2_a658j")
|
||||||
|
lifetime = 0.4
|
||||||
|
one_shot = true
|
||||||
|
explosiveness = 1.0
|
||||||
|
process_material = SubResource("ParticleProcessMaterial_8186p")
|
||||||
|
|
@ -109,13 +109,21 @@ func _process(delta: float) -> void:
|
||||||
|
|
||||||
if hit_target:
|
if hit_target:
|
||||||
if "health" in hit_target.get_parent():
|
if "health" in hit_target.get_parent():
|
||||||
hit_target.get_parent().health -= 10
|
hit_target.get_parent().health -= global.ground_guns[equipped_ground_gun].damage
|
||||||
|
|
||||||
|
var blood = preload("res://scenes/particles/blood.tscn").instantiate()
|
||||||
|
blood.global_position = $HeldItem/Cast.get_collision_point()
|
||||||
|
|
||||||
|
get_parent().add_child(blood)
|
||||||
|
|
||||||
|
blood.play()
|
||||||
|
else:
|
||||||
var bullet_impact = preload("res://scenes/particles/bullet_impact.tscn").instantiate()
|
var bullet_impact = preload("res://scenes/particles/bullet_impact.tscn").instantiate()
|
||||||
bullet_impact.global_position = $HeldItem/Cast.get_collision_point()
|
bullet_impact.global_position = $HeldItem/Cast.get_collision_point()
|
||||||
|
|
||||||
get_parent().add_child(bullet_impact)
|
get_parent().add_child(bullet_impact)
|
||||||
|
|
||||||
|
|
||||||
bullet_impact.play()
|
bullet_impact.play()
|
||||||
|
|
||||||
var bullet_trail = preload("res://scenes/particles/bullet_trail.tscn").instantiate()
|
var bullet_trail = preload("res://scenes/particles/bullet_trail.tscn").instantiate()
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ func _interact(player: Node2D) -> void:
|
||||||
|
|
||||||
player.busy = true
|
player.busy = true
|
||||||
|
|
||||||
await game.dialogue("Ready to leave?", "doctor", false)
|
await game.dialogue("Ready to leave?", "doctor_1", false)
|
||||||
|
|
||||||
var option = await game.make_choice({
|
var option = await game.make_choice({
|
||||||
"yes": "Yes",
|
"yes": "Yes",
|
||||||
|
|
@ -22,20 +22,20 @@ func _interact(player: Node2D) -> void:
|
||||||
})
|
})
|
||||||
|
|
||||||
if option == "yes":
|
if option == "yes":
|
||||||
await game.dialogue("Alrighty!", "doctor")
|
await game.dialogue("Alrighty!", "doctor_1")
|
||||||
|
|
||||||
await game.dialogue("We have your stuff back here, let me go grab it real quick...", "doctor")
|
await game.dialogue("We have your stuff back here, let me go grab it real quick...", "doctor_1")
|
||||||
|
|
||||||
|
|
||||||
await game.dialogue("Here's your bag.", "doctor")
|
await game.dialogue("Here's your bag.", "doctor_1")
|
||||||
|
|
||||||
await game.dialogue("Should have everything - tablet, ship keys, a pistol...", "doctor")
|
await game.dialogue("Should have everything - tablet, ship keys, a pistol...", "doctor_1")
|
||||||
|
|
||||||
game.get_node("DistantGunshots1").play()
|
game.get_node("DistantGunshots1").play()
|
||||||
|
|
||||||
await get_tree().create_timer(2).timeout
|
await get_tree().create_timer(2).timeout
|
||||||
|
|
||||||
await game.dialogue("...the hell?", "doctor", false)
|
await game.dialogue("...the hell?", "doctor_1", false)
|
||||||
|
|
||||||
await get_tree().create_timer(1.5).timeout
|
await get_tree().create_timer(1.5).timeout
|
||||||
|
|
||||||
|
|
@ -45,11 +45,11 @@ func _interact(player: Node2D) -> void:
|
||||||
|
|
||||||
await get_tree().create_timer(1).timeout
|
await get_tree().create_timer(1).timeout
|
||||||
|
|
||||||
await game.dialogue("Oh, no.", "doctor", true)
|
await game.dialogue("Oh, no.", "doctor_1", true)
|
||||||
|
|
||||||
await get_tree().create_timer(0.5).timeout
|
await get_tree().create_timer(0.5).timeout
|
||||||
|
|
||||||
await game.dialogue("We need to leave. Now.", "doctor", true)
|
await game.dialogue("We need to leave. Now.", "doctor_1", true)
|
||||||
|
|
||||||
await get_tree().create_timer(0.5).timeout
|
await get_tree().create_timer(0.5).timeout
|
||||||
|
|
||||||
|
|
@ -58,7 +58,7 @@ func _interact(player: Node2D) -> void:
|
||||||
|
|
||||||
player.busy = false
|
player.busy = false
|
||||||
|
|
||||||
await game.dialogue("Follow me.", "doctor", false)
|
await game.dialogue("Follow me.", "doctor_1", false)
|
||||||
|
|
||||||
await navigate_to(game.get_node("DoctorEscapeWaypoint1").position)
|
await navigate_to(game.get_node("DoctorEscapeWaypoint1").position)
|
||||||
|
|
||||||
|
|
@ -66,15 +66,15 @@ func _interact(player: Node2D) -> void:
|
||||||
|
|
||||||
player.busy = true
|
player.busy = true
|
||||||
|
|
||||||
await game.dialogue("You good with that gun?", "doctor", true)
|
await game.dialogue("You good with that gun?", "doctor_1", true)
|
||||||
|
|
||||||
var option_2 = await game.make_choice({
|
var option_2 = await game.make_choice({
|
||||||
"yes": "Yes",
|
"yes": "Yes",
|
||||||
"no": "No"
|
"no": "No"
|
||||||
})
|
})
|
||||||
|
|
||||||
if option_2 == "yes": await game.dialogue("Good to know.", "doctor", true)
|
if option_2 == "yes": await game.dialogue("Good to know.", "doctor_1", true)
|
||||||
else: await game.dialogue("Well, you're still probably better than I would be.", "doctor", true)
|
else: await game.dialogue("Well, you're still probably better than I would be.", "doctor_1", true)
|
||||||
|
|
||||||
global.stats.story_progress = 2
|
global.stats.story_progress = 2
|
||||||
|
|
||||||
|
|
@ -83,7 +83,7 @@ func _interact(player: Node2D) -> void:
|
||||||
checkpoint_1()
|
checkpoint_1()
|
||||||
|
|
||||||
elif option == "no":
|
elif option == "no":
|
||||||
await game.dialogue("Well, I'm here whenever you need me.", "doctor")
|
await game.dialogue("Well, I'm here whenever you need me.", "doctor_1")
|
||||||
|
|
||||||
|
|
||||||
player.get_node("Camera").enabled = true
|
player.get_node("Camera").enabled = true
|
||||||
|
|
@ -96,9 +96,11 @@ func _interact(player: Node2D) -> void:
|
||||||
|
|
||||||
|
|
||||||
func checkpoint_1():
|
func checkpoint_1():
|
||||||
|
$InteractArea.monitoring = false
|
||||||
|
|
||||||
var player = game.get_node("PlayerGround")
|
var player = game.get_node("PlayerGround")
|
||||||
|
|
||||||
await game.dialogue("You should probably get it out.", "doctor", false)
|
await game.dialogue("You should probably get it out.", "doctor_1", false)
|
||||||
|
|
||||||
player.busy = false
|
player.busy = false
|
||||||
|
|
||||||
|
|
@ -110,7 +112,7 @@ func checkpoint_1():
|
||||||
|
|
||||||
game.get_node("UI/Control/UnholsterTutorial").visible = false
|
game.get_node("UI/Control/UnholsterTutorial").visible = false
|
||||||
|
|
||||||
await game.dialogue("Let's go.", "doctor", false)
|
await game.dialogue("Let's go.", "doctor_1", false)
|
||||||
|
|
||||||
game.checkpoint()
|
game.checkpoint()
|
||||||
|
|
||||||
|
|
@ -118,7 +120,10 @@ func checkpoint_1():
|
||||||
|
|
||||||
while !game.get_node("DoctorEscapeWaypoint2/Area").get_overlapping_bodies().has(player): await get_tree().create_timer(0.2).timeout
|
while !game.get_node("DoctorEscapeWaypoint2/Area").get_overlapping_bodies().has(player): await get_tree().create_timer(0.2).timeout
|
||||||
|
|
||||||
await game.dialogue("RUN!", "doctor", false)
|
game.get_node("Dnbd").play()
|
||||||
|
game.get_node("IntrusionAlarm").stop()
|
||||||
|
|
||||||
|
await game.dialogue("OH GOD!", "doctor_1", false)
|
||||||
|
|
||||||
game.get_node("MedbayDoorLargeVertical").free()
|
game.get_node("MedbayDoorLargeVertical").free()
|
||||||
|
|
||||||
|
|
@ -131,6 +136,9 @@ func checkpoint_1():
|
||||||
await get_tree().create_timer(0.06).timeout
|
await get_tree().create_timer(0.06).timeout
|
||||||
game.get_node("Camper2").firing = true
|
game.get_node("Camper2").firing = true
|
||||||
|
|
||||||
|
|
||||||
|
await game.dialogue("RUN!", "doctor_1", false)
|
||||||
|
|
||||||
while health > 0: await get_tree().create_timer(0.2).timeout
|
while health > 0: await get_tree().create_timer(0.2).timeout
|
||||||
|
|
||||||
await game.end_dialogue()
|
await game.end_dialogue()
|
||||||
|
|
@ -145,3 +153,4 @@ func checkpoint_1():
|
||||||
game.get_node("Camper2").concious = true
|
game.get_node("Camper2").concious = true
|
||||||
|
|
||||||
game.get_node("Camper3").global_position = game.get_node("CamperSpawn1").global_position
|
game.get_node("Camper3").global_position = game.get_node("CamperSpawn1").global_position
|
||||||
|
game.get_node("Camper4").global_position = game.get_node("CamperSpawn2").global_position
|
||||||
|
|
|
||||||
138
scripts/doctor_2.gd
Normal file
138
scripts/doctor_2.gd
Normal file
|
|
@ -0,0 +1,138 @@
|
||||||
|
extends "res://scripts/character_ground.gd"
|
||||||
|
|
||||||
|
@onready var game = get_parent()
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
equipped_ground_gun = "docgun"
|
||||||
|
|
||||||
|
super()
|
||||||
|
|
||||||
|
health = 999
|
||||||
|
|
||||||
|
func _on_state_1_body_entered(body: Node2D) -> void:
|
||||||
|
if body != game.get_node("PlayerGround"): return
|
||||||
|
|
||||||
|
game.get_node("HospitalEscapeD2State1").monitoring = false
|
||||||
|
|
||||||
|
print("test")
|
||||||
|
|
||||||
|
vertical_movement = -1
|
||||||
|
horizontial_movement = -1
|
||||||
|
|
||||||
|
while global_position.y > -1376.0: await get_tree().create_timer(0.1).timeout
|
||||||
|
|
||||||
|
vertical_movement = 0
|
||||||
|
horizontial_movement = 0
|
||||||
|
|
||||||
|
await game.dialogue("Get over here!", "doctor_2", false)
|
||||||
|
|
||||||
|
func _on_state_2_body_entered(body: Node2D) -> void:
|
||||||
|
if body != game.get_node("PlayerGround"): return
|
||||||
|
|
||||||
|
game.get_node("HospitalEscapeD2State2").monitoring = false
|
||||||
|
|
||||||
|
firing = true
|
||||||
|
|
||||||
|
while game.get_node("Camper1").health > 0:
|
||||||
|
$HeldItem.look_at(game.get_node("Camper1").global_position)
|
||||||
|
|
||||||
|
await get_tree().create_timer(0.2).timeout
|
||||||
|
|
||||||
|
while game.get_node("Camper2").health > 0:
|
||||||
|
$HeldItem.look_at(game.get_node("Camper2").global_position)
|
||||||
|
|
||||||
|
await get_tree().create_timer(0.2).timeout
|
||||||
|
|
||||||
|
while game.get_node("Camper4").health > 0:
|
||||||
|
$HeldItem.look_at(game.get_node("Camper4").global_position)
|
||||||
|
|
||||||
|
await get_tree().create_timer(0.2).timeout
|
||||||
|
|
||||||
|
firing = false
|
||||||
|
|
||||||
|
await get_tree().create_timer(0.666).timeout
|
||||||
|
|
||||||
|
set_ground_gun(null)
|
||||||
|
|
||||||
|
game.get_node("Dnbd").playing = false
|
||||||
|
game.get_node("IntrusionAlarm").play()
|
||||||
|
|
||||||
|
await game.dialogue("You need to go, now.", "doctor_2", true)
|
||||||
|
|
||||||
|
await navigate_to(game.get_node("Doctor2DoorWaypoint").global_position)
|
||||||
|
|
||||||
|
var player = game.get_node("PlayerGround")
|
||||||
|
|
||||||
|
if (global_position - player.global_position).length() > 200:
|
||||||
|
await game.dialogue("Come.", "doctor_2", false)
|
||||||
|
|
||||||
|
while (global_position - player.global_position).length() > 200: await get_tree().create_timer(0.25).timeout
|
||||||
|
|
||||||
|
player.busy = true
|
||||||
|
|
||||||
|
await game.dialogue("Is the other doctor dead?", "doctor_2", false)
|
||||||
|
|
||||||
|
var option = await game.make_choice({
|
||||||
|
"yes": "Yes",
|
||||||
|
"no": "No"
|
||||||
|
})
|
||||||
|
|
||||||
|
if option == "yes":
|
||||||
|
await game.dialogue("Shit. I liked hating him.", "doctor_2", true)
|
||||||
|
else:
|
||||||
|
await game.dialogue("Damnit. Was hoping he was.", "doctor_2", true)
|
||||||
|
|
||||||
|
await game.dialogue("Anyways, there's probably some of those bastards in there, so be careful.", "doctor_2", true)
|
||||||
|
|
||||||
|
await game.dialogue("Your ship is on the first row, furthest to the left.", "doctor_2", false)
|
||||||
|
|
||||||
|
var option_2 = null
|
||||||
|
|
||||||
|
while option_2 != "got_it":
|
||||||
|
option_2 = await game.make_choice({
|
||||||
|
"whoarethey": "Who are they?",
|
||||||
|
"whataboutyou": "What about you?",
|
||||||
|
"got_it": "Got it",
|
||||||
|
})
|
||||||
|
|
||||||
|
if option_2 == "whoarethey":
|
||||||
|
await game.dialogue("Who are these people, anyways?", "player", true)
|
||||||
|
|
||||||
|
await game.dialogue("You don't know?... oh wait, that makes sense.", "doctor_2", true)
|
||||||
|
await game.dialogue("Those guys are from HADA, the Humble Anarchist's Defense Alliance.", "doctor_2", true)
|
||||||
|
await game.dialogue("Nasty people. They do a lot of things...", "doctor_2", true)
|
||||||
|
await game.dialogue("but they also iketo try and destroy anything they see as a threat to their ideals.", "doctor_2", true)
|
||||||
|
await game.dialogue("They almost never fully succeed, but that doesn't mean they don't leave a mark.", "doctor_2", true)
|
||||||
|
elif option_2 == "whataboutyou":
|
||||||
|
await game.dialogue("What are you going to do?", "player", true)
|
||||||
|
|
||||||
|
await game.dialogue("I will be camping it out.", "doctor_2", true)
|
||||||
|
await game.dialogue("I live here. If I left all my stuff behind like this, I would hate myself.", "doctor_2", true)
|
||||||
|
await game.dialogue("That's not something you should worry about excessively, though. You don't even know me.", "doctor_2", true)
|
||||||
|
|
||||||
|
game.save_game()
|
||||||
|
|
||||||
|
checkpoint_2()
|
||||||
|
|
||||||
|
func checkpoint_2():
|
||||||
|
game.get_node("Dnbd").playing = false
|
||||||
|
game.get_node("IntrusionAlarm").play()
|
||||||
|
|
||||||
|
var player = game.get_node("PlayerGround")
|
||||||
|
|
||||||
|
player.busy = true
|
||||||
|
|
||||||
|
await game.dialogue("I wish you luck.", "doctor_2", true)
|
||||||
|
|
||||||
|
game.get_node("Dnbd").playing = true
|
||||||
|
|
||||||
|
player.health = 100
|
||||||
|
|
||||||
|
game.get_node("Camper5").global_position = game.get_node("CamperSpawn3").global_position
|
||||||
|
game.get_node("Camper6").global_position = game.get_node("CamperSpawn4").global_position
|
||||||
|
|
||||||
|
player.busy = false
|
||||||
|
|
||||||
|
game.get_node("Doctor2DoorToOpen").set_open(true)
|
||||||
|
|
||||||
|
global.stats.story_progress = 3
|
||||||
1
scripts/doctor_2.gd.uid
Normal file
1
scripts/doctor_2.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://cytses4dvcif2
|
||||||
18
scripts/door_medium_horizontial.gd
Normal file
18
scripts/door_medium_horizontial.gd
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
extends StaticBody2D
|
||||||
|
|
||||||
|
@export var open: bool = false
|
||||||
|
|
||||||
|
func set_open(value: bool) -> void:
|
||||||
|
open = value
|
||||||
|
if open:
|
||||||
|
$CollisionShape.disabled = true
|
||||||
|
$Sprite.animation = "open"
|
||||||
|
|
||||||
|
else:
|
||||||
|
$CollisionShape.disabled = false
|
||||||
|
$Sprite.animation = "default"
|
||||||
|
|
||||||
|
$Sprite.play()
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
set_open(open)
|
||||||
1
scripts/door_medium_horizontial.gd.uid
Normal file
1
scripts/door_medium_horizontial.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://b88ykyte6oi3i
|
||||||
|
|
@ -3,8 +3,6 @@ extends "res://scripts/character_ground.gd"
|
||||||
var last_aim_direction = Vector2(0, 0)
|
var last_aim_direction = Vector2(0, 0)
|
||||||
var alerted = false
|
var alerted = false
|
||||||
|
|
||||||
var inaccuracy = 15
|
|
||||||
|
|
||||||
var reaction_halve_distance = 720
|
var reaction_halve_distance = 720
|
||||||
var reaction_timer = 0
|
var reaction_timer = 0
|
||||||
|
|
||||||
|
|
@ -39,6 +37,8 @@ var game = null
|
||||||
## The time it takes for an enemy to start shooting / notice the player.
|
## The time it takes for an enemy to start shooting / notice the player.
|
||||||
@export var reaction_time: float = 0.35
|
@export var reaction_time: float = 0.35
|
||||||
|
|
||||||
|
@export var inaccuracy: int = 15
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
super()
|
super()
|
||||||
|
|
||||||
|
|
@ -133,6 +133,8 @@ func _process(delta: float) -> void:
|
||||||
|
|
||||||
last_seen_player_position = player.global_position
|
last_seen_player_position = player.global_position
|
||||||
elif ai_state == AI_STATE_CHASE_LAST_SEEN:
|
elif ai_state == AI_STATE_CHASE_LAST_SEEN:
|
||||||
|
firing = false
|
||||||
|
|
||||||
if $Navagent.is_navigation_finished():
|
if $Navagent.is_navigation_finished():
|
||||||
last_seen_player_position = null
|
last_seen_player_position = null
|
||||||
ai_mode = AI_MODE_IDLE
|
ai_mode = AI_MODE_IDLE
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ var enemy_scene = preload("res://scenes/enemy.tscn")
|
||||||
var star_scene = preload("res://scenes/star.tscn")
|
var star_scene = preload("res://scenes/star.tscn")
|
||||||
|
|
||||||
@onready var spawn_points = {
|
@onready var spawn_points = {
|
||||||
"SpaceStation1": $Orbits/SpaceStation1/SpaceStation1/ExitPoint
|
"space_station_1": $Orbits/SpaceStation1/SpaceStation1/ExitPoint
|
||||||
}
|
}
|
||||||
|
|
||||||
@onready var navigation_points = [
|
@onready var navigation_points = [
|
||||||
|
|
@ -50,6 +50,8 @@ func save_game() -> void:
|
||||||
"y": $Player.global_position.y
|
"y": $Player.global_position.y
|
||||||
}
|
}
|
||||||
|
|
||||||
|
global.stats.location = "space"
|
||||||
|
|
||||||
global.save_game()
|
global.save_game()
|
||||||
|
|
||||||
await get_tree().create_timer(2).timeout
|
await get_tree().create_timer(2).timeout
|
||||||
|
|
@ -84,10 +86,6 @@ func _ready() -> void:
|
||||||
|
|
||||||
var events = InputMap.action_get_events("forward")
|
var events = InputMap.action_get_events("forward")
|
||||||
|
|
||||||
if (global.stats.location != "space") and (spawn_points.has(global.stats.location)):
|
|
||||||
$Player.global_position = spawn_points[global.stats.location].global_position
|
|
||||||
$Player.rotation = spawn_points[global.stats.location].rotation
|
|
||||||
|
|
||||||
for n in navigation_points:
|
for n in navigation_points:
|
||||||
var navigation_item = preload("res://scenes/navigation_item.tscn").instantiate()
|
var navigation_item = preload("res://scenes/navigation_item.tscn").instantiate()
|
||||||
|
|
||||||
|
|
@ -125,21 +123,35 @@ func _ready() -> void:
|
||||||
|
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
if global.stats.position:
|
if (global.stats.location != "space") and (spawn_points.has(global.stats.location)):
|
||||||
|
$Player.global_position = spawn_points[global.stats.location].global_position
|
||||||
|
$Player.rotation = spawn_points[global.stats.location].rotation
|
||||||
|
elif global.stats.position:
|
||||||
$Player.global_position.x = global.stats.position.x
|
$Player.global_position.x = global.stats.position.x
|
||||||
$Player.global_position.y = global.stats.position.y
|
$Player.global_position.y = global.stats.position.y
|
||||||
|
|
||||||
global.stats.position = null
|
global.stats.position = null
|
||||||
else:
|
|
||||||
|
global.stats.location = "space"
|
||||||
|
|
||||||
|
if global.stats.story_progress < 4: global.stats.story_progress = 4
|
||||||
|
|
||||||
|
if global.stats.loaded:
|
||||||
save_game()
|
save_game()
|
||||||
|
else:
|
||||||
|
global.stats.loaded = true
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if get_tree().paused:
|
if get_tree().paused:
|
||||||
return
|
return
|
||||||
|
|
||||||
if global.stats.navigation_goal:
|
if global.stats.navigation_goal:
|
||||||
if not global.stats.navigation_goal.point:
|
if !global.stats.navigation_goal.point || (typeof(global.stats.navigation_goal.point) == TYPE_STRING):
|
||||||
global.stats.navigation_goal = null
|
if global.stats.navigation_goal.id:
|
||||||
|
for n in navigation_points:
|
||||||
|
if n.id == global.stats.navigation_goal.id:
|
||||||
|
global.stats.navigation_goal.point = n.point
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
if !$Navring.has_node("NavigationMarker"):
|
if !$Navring.has_node("NavigationMarker"):
|
||||||
var navigation_marker = preload("res://scenes/navigation_marker.tscn").instantiate()
|
var navigation_marker = preload("res://scenes/navigation_marker.tscn").instantiate()
|
||||||
|
|
@ -161,6 +173,7 @@ func _process(delta: float) -> void:
|
||||||
|
|
||||||
$UI/Control/Navpanel/Navigation/Hyperboost.visible = true
|
$UI/Control/Navpanel/Navigation/Hyperboost.visible = true
|
||||||
|
|
||||||
|
if global.stats.navigation_goal.point and (typeof(global.stats.navigation_goal.point) != TYPE_STRING):
|
||||||
var goal_distance = (global.stats.navigation_goal.point.position - $Player.position).length()
|
var goal_distance = (global.stats.navigation_goal.point.position - $Player.position).length()
|
||||||
|
|
||||||
$UI/Control/Navpanel/Navigation/Destination.text = global.stats.navigation_goal.name + " (" + str(floori(goal_distance)) + "u)"
|
$UI/Control/Navpanel/Navigation/Destination.text = global.stats.navigation_goal.name + " (" + str(floori(goal_distance)) + "u)"
|
||||||
|
|
|
||||||
|
|
@ -36,9 +36,6 @@ func checkpoint() -> void:
|
||||||
var packed_scene = PackedScene.new()
|
var packed_scene = PackedScene.new()
|
||||||
packed_scene.pack(get_tree().get_current_scene())
|
packed_scene.pack(get_tree().get_current_scene())
|
||||||
|
|
||||||
if global.checkpoint:
|
|
||||||
global.checkpoint.free()
|
|
||||||
|
|
||||||
global.checkpoint = packed_scene
|
global.checkpoint = packed_scene
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
|
@ -65,11 +62,17 @@ func _ready() -> void:
|
||||||
location_scene.free()
|
location_scene.free()
|
||||||
|
|
||||||
if global.stats.position:
|
if global.stats.position:
|
||||||
|
print("AAA ", global.stats.position)
|
||||||
$PlayerGround.global_position.x = global.stats.position.x
|
$PlayerGround.global_position.x = global.stats.position.x
|
||||||
$PlayerGround.global_position.y = global.stats.position.y
|
$PlayerGround.global_position.y = global.stats.position.y
|
||||||
|
|
||||||
global.stats.position = null
|
global.stats.position = null
|
||||||
|
|
||||||
|
if global.stats.loaded:
|
||||||
|
save_game()
|
||||||
|
else:
|
||||||
|
global.stats.loaded = true
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
if current_interaction_area:
|
if current_interaction_area:
|
||||||
$UI/Control/Interact.visible = true
|
$UI/Control/Interact.visible = true
|
||||||
|
|
@ -102,7 +105,7 @@ func dialogue(text: String, type: String = "generic", allow_input: bool = true)
|
||||||
|
|
||||||
$Dialogue.play()
|
$Dialogue.play()
|
||||||
|
|
||||||
#await get_tree().create_timer(speed).timeout
|
await get_tree().create_timer(speed).timeout
|
||||||
|
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,13 @@ var ground_guns = {
|
||||||
"magazine_size": 12,
|
"magazine_size": 12,
|
||||||
"fire_rate": 0.3
|
"fire_rate": 0.3
|
||||||
},
|
},
|
||||||
|
"docgun": {
|
||||||
|
"name": "Docgun",
|
||||||
|
"type": "kinetic",
|
||||||
|
"damage": 150,
|
||||||
|
"magazine_size": 12,
|
||||||
|
"fire_rate": 0.25
|
||||||
|
},
|
||||||
"smg": {
|
"smg": {
|
||||||
"name": "Ripper",
|
"name": "Ripper",
|
||||||
"type": "energy",
|
"type": "energy",
|
||||||
|
|
|
||||||
|
|
@ -46,12 +46,17 @@ func _process(delta: float) -> void:
|
||||||
$HeldItem/Line.visible = false
|
$HeldItem/Line.visible = false
|
||||||
|
|
||||||
if Input.is_action_just_pressed("toggle_holster"):
|
if Input.is_action_just_pressed("toggle_holster"):
|
||||||
|
if global.stats.equipped_ground_gun:
|
||||||
global.stats.gun_holstered = !global.stats.gun_holstered
|
global.stats.gun_holstered = !global.stats.gun_holstered
|
||||||
|
|
||||||
if global.stats.gun_holstered:
|
if global.stats.gun_holstered:
|
||||||
set_ground_gun(null)
|
set_ground_gun(null)
|
||||||
else:
|
else:
|
||||||
set_ground_gun(global.stats.equipped_ground_gun)
|
set_ground_gun(global.stats.equipped_ground_gun)
|
||||||
|
else:
|
||||||
|
global.stats.gun_holstered = true
|
||||||
|
|
||||||
|
set_ground_gun(null)
|
||||||
|
|
||||||
|
|
||||||
firing = Input.is_action_pressed("fire")
|
firing = Input.is_action_pressed("fire")
|
||||||
|
|
|
||||||
|
|
@ -225,9 +225,20 @@ func _ground_ready() -> void:
|
||||||
|
|
||||||
game.get_node("Doctor/InteractArea").monitoring = false
|
game.get_node("Doctor/InteractArea").monitoring = false
|
||||||
|
|
||||||
player.global_position = game.get_node("Checkpoint1PlayerSpawn").global_position
|
#player.global_position = game.get_node("Checkpoint1PlayerSpawn").global_position
|
||||||
game.get_node("Doctor").global_position = game.get_node("Checkpoint1DoctorSpawn").global_position
|
game.get_node("Doctor").global_position = game.get_node("Checkpoint1DoctorSpawn").global_position
|
||||||
|
|
||||||
game.get_node("Doctor").checkpoint_1()
|
game.get_node("Doctor").checkpoint_1()
|
||||||
else:
|
elif global.stats.story_progress == 3:
|
||||||
game.save_game()
|
game.get_node("Uglyburger").stop()
|
||||||
|
|
||||||
|
game.get_node("HospitalEscapeD2State1").monitoring = false
|
||||||
|
game.get_node("HospitalEscapeD2State2").monitoring = false
|
||||||
|
|
||||||
|
game.get_node("Map").modulate = Color(0.5, 0.35, 0.35)
|
||||||
|
|
||||||
|
game.get_node("Doctor2").global_position = game.get_node("Doctor2DoorWaypoint").global_position
|
||||||
|
|
||||||
|
game.get_node("Doctor2").firing = false
|
||||||
|
|
||||||
|
game.get_node("Doctor2").checkpoint_2()
|
||||||
|
|
|
||||||
|
|
@ -273,6 +273,8 @@ func _on_load_game_pressed() -> void:
|
||||||
|
|
||||||
await global.load_game()
|
await global.load_game()
|
||||||
|
|
||||||
|
global.stats.loaded = false
|
||||||
|
|
||||||
if global.stats.location == "space":
|
if global.stats.location == "space":
|
||||||
get_tree().change_scene_to_file("res://scenes/game.tscn")
|
get_tree().change_scene_to_file("res://scenes/game.tscn")
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
BIN
sounds/music/dnbd.mp3
Normal file
BIN
sounds/music/dnbd.mp3
Normal file
Binary file not shown.
19
sounds/music/dnbd.mp3.import
Normal file
19
sounds/music/dnbd.mp3.import
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
uid="uid://cqco8ncle0u0j"
|
||||||
|
path="res://.godot/imported/dnbd.mp3-c371aef019a254e92edc32d9620186a2.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sounds/music/dnbd.mp3"
|
||||||
|
dest_files=["res://.godot/imported/dnbd.mp3-c371aef019a254e92edc32d9620186a2.mp3str"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
BIN
sounds/music/dnbd_sudden.mp3
Normal file
BIN
sounds/music/dnbd_sudden.mp3
Normal file
Binary file not shown.
19
sounds/music/dnbd_sudden.mp3.import
Normal file
19
sounds/music/dnbd_sudden.mp3.import
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
uid="uid://7cvp5b3mq1tn"
|
||||||
|
path="res://.godot/imported/dnbd_sudden.mp3-154358d4b626b7474adf08b4244e8089.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sounds/music/dnbd_sudden.mp3"
|
||||||
|
dest_files=["res://.godot/imported/dnbd_sudden.mp3-154358d4b626b7474adf08b4244e8089.mp3str"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
BIN
textures/Sprite-0001.aseprite
Normal file
BIN
textures/Sprite-0001.aseprite
Normal file
Binary file not shown.
BIN
textures/bag.png
Normal file
BIN
textures/bag.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 266 B |
40
textures/bag.png.import
Normal file
40
textures/bag.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://oh8y7lbiprs4"
|
||||||
|
path="res://.godot/imported/bag.png-1d3569746a0afa7a50020e78aeb3fcf6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://textures/bag.png"
|
||||||
|
dest_files=["res://.godot/imported/bag.png-1d3569746a0afa7a50020e78aeb3fcf6.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
textures/docgun.png
Normal file
BIN
textures/docgun.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 451 B |
40
textures/docgun.png.import
Normal file
40
textures/docgun.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://kg37aadtiumw"
|
||||||
|
path="res://.godot/imported/docgun.png-7020161270f57741a5c61a0720a68af0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://textures/docgun.png"
|
||||||
|
dest_files=["res://.godot/imported/docgun.png-7020161270f57741a5c61a0720a68af0.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
textures/door_medium_horziontial.aseprite
Normal file
BIN
textures/door_medium_horziontial.aseprite
Normal file
Binary file not shown.
BIN
textures/door_medium_horziontial.png
Normal file
BIN
textures/door_medium_horziontial.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 779 B |
40
textures/door_medium_horziontial.png.import
Normal file
40
textures/door_medium_horziontial.png.import
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://djmlhid6f4xwi"
|
||||||
|
path="res://.godot/imported/door_medium_horziontial.png-60b5ecd0bd81d95adb1ce6c5aa367884.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://textures/door_medium_horziontial.png"
|
||||||
|
dest_files=["res://.godot/imported/door_medium_horziontial.png-60b5ecd0bd81d95adb1ce6c5aa367884.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
Loading…
Reference in a new issue