Spray Supervisor
This commit is contained in:
@@ -1,3 +1,15 @@
|
||||
~ interfloor_0
|
||||
|
||||
do Patient.marker.fill(0)
|
||||
set Patient.dialog_tree = Patient.build_dialog_tree([])
|
||||
|
||||
do Globals.character_label_color_change.emit(Color(0,0.8,1,1))
|
||||
|
||||
Prime Supervisor: FIRST DIALOGUE - WORK IN PROGRESS
|
||||
|
||||
=> END
|
||||
|
||||
|
||||
~ interfloor_1
|
||||
|
||||
do Patient.marker.fill(0)
|
||||
|
||||
+8
-3
@@ -95,17 +95,22 @@ func start_day():
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
|
||||
#Setting up new patient
|
||||
$ScreeningDesk.console_display(Globals.directives)
|
||||
$ScreeningDesk.accurate_diagnoses = 0 #Resetting accurate_diagnoses value at the day's beginning
|
||||
$ScreeningDesk.new_patient()
|
||||
$ScreeningDesk.update_middle_screen(Globals.day_count, Globals.floor_count, $ScreeningDesk.accurate_diagnoses, Globals.diagnoses_quota)
|
||||
|
||||
#Transitioning to the screening desk
|
||||
scenes_to_hide = scenes_to_show
|
||||
scenes_to_show = [$ScreeningDesk, $ScreeningDesk.next_patient, UI, UI.get_node("UI/UpperContainer")]
|
||||
scenes_to_show = [$ScreeningDesk, UI, UI.get_node("UI/UpperContainer")]
|
||||
TransitionScreen.transition("big", scenes_to_hide, scenes_to_show)
|
||||
await TransitionScreen.transition_finished
|
||||
|
||||
#Supervisor Dialogue
|
||||
$ScreeningDesk.supervisor_dialogue(Globals.interfloor_dialogue, "interfloor_" + str(-Globals.floor_count-1))
|
||||
await $ScreeningDesk.supervisor_dialogue_finished
|
||||
|
||||
$ScreeningDesk.console_display(Globals.directives)
|
||||
$ScreeningDesk.new_patient()
|
||||
|
||||
|
||||
#Saves game state on the selected save slot
|
||||
func save_game(save_slot_number:int):
|
||||
|
||||
+22
-6
@@ -5,6 +5,7 @@ extends Control
|
||||
@onready var patient_file_title = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/FileContainer/PatientFileTitle
|
||||
@onready var patient_recording = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/Recording
|
||||
@onready var patient = $UpperHalf/ControlGlass/Patient
|
||||
@onready var supervisor = $UpperHalf/ControlGlass/Supervisor
|
||||
@onready var next_patient = $LowerHalf/Computer/Margin/NextPatient
|
||||
@onready var end_day = $LowerHalf/Computer/Margin/EndDay
|
||||
@onready var green_button = $LowerHalf/GreenButton
|
||||
@@ -38,6 +39,8 @@ extends Control
|
||||
var main: Node
|
||||
var accurate_diagnoses = 0
|
||||
|
||||
signal supervisor_dialogue_finished
|
||||
|
||||
func _ready() -> void:
|
||||
|
||||
#Referencing main node
|
||||
@@ -366,12 +369,25 @@ func descend_floor(): #Descends to next floor
|
||||
console_screen.hide()
|
||||
|
||||
#Interfloor dialogue
|
||||
var file_path = "res://Art/Patients/prime_supervisor/prime_supervisor_hologram.png"
|
||||
patient.texture = load(file_path)
|
||||
patient.show()
|
||||
main.start_balloon("screening", Globals.interfloor_dialogue, "interfloor_" + str(-Globals.floor_count-1))
|
||||
await DialogueManager.dialogue_ended
|
||||
patient.hide()
|
||||
supervisor_dialogue(Globals.interfloor_dialogue, "interfloor_" + str(-Globals.floor_count-1))
|
||||
await supervisor_dialogue_finished
|
||||
|
||||
#Setting up new patient
|
||||
new_patient()
|
||||
|
||||
|
||||
|
||||
#Supervisor dialogue, mainly between floors
|
||||
func supervisor_dialogue(dialogue_resource, dialogue_start):
|
||||
|
||||
#Interfloor dialogue
|
||||
supervisor.show()
|
||||
supervisor.reveal_spray()
|
||||
await supervisor.reveal_done
|
||||
main.start_balloon("screening", dialogue_resource, dialogue_start)
|
||||
await DialogueManager.dialogue_ended
|
||||
supervisor.hide_spray()
|
||||
await supervisor.hide_done
|
||||
supervisor.hide()
|
||||
|
||||
supervisor_dialogue_finished.emit()
|
||||
|
||||
+28
-1
@@ -1,9 +1,11 @@
|
||||
[gd_scene load_steps=40 format=3 uid="uid://chytk2cctjk3x"]
|
||||
[gd_scene load_steps=43 format=3 uid="uid://chytk2cctjk3x"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b3ms0imu0umn8" path="res://screening_desk.gd" id="1_1s7k3"]
|
||||
[ext_resource type="Texture2D" uid="uid://5f5bsergnjtv" path="res://Art/Patients/prime_supervisor/prime_supervisor_hologram.png" id="3_fev1v"]
|
||||
[ext_resource type="Texture2D" uid="uid://b2epvjeqvmgrs" path="res://Art/Rooms/screening_room/screening_room_glass.png" id="3_nxnrp"]
|
||||
[ext_resource type="Texture2D" uid="uid://by34irl73n8pb" path="res://Art/Rooms/screening_room/backroom.png" id="4_fij8w"]
|
||||
[ext_resource type="Shader" uid="uid://dwepb0lm1veje" path="res://supervisor.gdshader" id="4_qsin6"]
|
||||
[ext_resource type="Script" uid="uid://cdkbyikbjqlsh" path="res://supervisor.gd" id="5_43vqp"]
|
||||
[ext_resource type="Texture2D" uid="uid://ds1whnmwt7xjt" path="res://Art/Rooms/screening_room/screening_room.png" id="5_aa8r5"]
|
||||
[ext_resource type="Texture2D" uid="uid://4qtc0tkq2wba" path="res://Art/Rooms/screening_room/shutter_top.png" id="6_1rj24"]
|
||||
[ext_resource type="Texture2D" uid="uid://cci0pb12chlps" path="res://Art/Rooms/screening_room/computer.png" id="6_6a8ar"]
|
||||
@@ -31,6 +33,11 @@
|
||||
[sub_resource type="Theme" id="Theme_63o5x"]
|
||||
RichTextLabel/fonts/normal_font = ExtResource("14_0pvwy")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_w70jd"]
|
||||
shader = ExtResource("4_qsin6")
|
||||
shader_parameter/progress = 0.0
|
||||
shader_parameter/softness = 0.05
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ub1ft"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@@ -296,6 +303,7 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Patient" type="TextureRect" parent="UpperHalf/ControlGlass"]
|
||||
visible = false
|
||||
z_index = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
@@ -311,6 +319,25 @@ grow_vertical = 0
|
||||
texture = ExtResource("3_fev1v")
|
||||
stretch_mode = 3
|
||||
|
||||
[node name="Supervisor" type="TextureRect" parent="UpperHalf/ControlGlass"]
|
||||
visible = false
|
||||
z_index = 2
|
||||
material = SubResource("ShaderMaterial_w70jd")
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -300.0
|
||||
offset_top = -450.0
|
||||
offset_right = 300.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
texture = ExtResource("3_fev1v")
|
||||
stretch_mode = 3
|
||||
script = ExtResource("5_43vqp")
|
||||
|
||||
[node name="LowerHalf" type="Control" parent="."]
|
||||
z_index = 6
|
||||
layout_mode = 1
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
extends TextureRect
|
||||
|
||||
@onready var mat := material as ShaderMaterial
|
||||
|
||||
signal reveal_done
|
||||
signal hide_done
|
||||
|
||||
func _ready():
|
||||
|
||||
randomize()
|
||||
# --- Création du bruit ---
|
||||
var noise := FastNoiseLite.new()
|
||||
noise.noise_type = FastNoiseLite.TYPE_SIMPLEX
|
||||
noise.frequency = 20.0
|
||||
noise.seed = randi()
|
||||
|
||||
var noise_tex := NoiseTexture2D.new()
|
||||
noise_tex.noise = noise
|
||||
noise_tex.width = 512
|
||||
noise_tex.height = 512
|
||||
noise_tex.seamless = true
|
||||
|
||||
mat.set_shader_parameter("noise_tex", noise_tex)
|
||||
|
||||
|
||||
func reveal_spray():
|
||||
|
||||
mat.set_shader_parameter("progress", 0.0)
|
||||
|
||||
var tween = create_tween()
|
||||
tween.tween_method(set_progress, 0.0, 1.0, 3.0) \
|
||||
.set_trans(Tween.TRANS_SINE) \
|
||||
.set_ease(Tween.EASE_OUT)
|
||||
|
||||
await tween.finished
|
||||
reveal_done.emit()
|
||||
|
||||
|
||||
func hide_spray():
|
||||
|
||||
mat.set_shader_parameter("progress", 1.0)
|
||||
|
||||
var tween = create_tween()
|
||||
tween.tween_method(set_progress, 1.0, 0.0, 3.0) \
|
||||
.set_trans(Tween.TRANS_SINE) \
|
||||
.set_ease(Tween.EASE_OUT)
|
||||
|
||||
await tween.finished
|
||||
hide_done.emit()
|
||||
|
||||
|
||||
func set_progress(value: float):
|
||||
|
||||
mat.set_shader_parameter("progress", value)
|
||||
@@ -0,0 +1 @@
|
||||
uid://cdkbyikbjqlsh
|
||||
@@ -0,0 +1,12 @@
|
||||
shader_type canvas_item;
|
||||
|
||||
uniform sampler2D noise_tex;
|
||||
uniform float progress : hint_range(0.0, 1.0) = 0.0;
|
||||
uniform float softness : hint_range(0.001, 0.2) = 0.05;
|
||||
|
||||
void fragment() {
|
||||
vec4 img = texture(TEXTURE, UV);
|
||||
float noise = texture(noise_tex, UV).r;
|
||||
float alpha = 1.0 - smoothstep(progress - softness, progress + softness, noise);
|
||||
COLOR = vec4(img.rgb, img.a * alpha);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://dwepb0lm1veje
|
||||
Reference in New Issue
Block a user