Spray Supervisor

This commit is contained in:
2026-01-25 21:57:27 +01:00
parent 930d5b27b0
commit b3d31dffa9
8 changed files with 138 additions and 10 deletions
+12
View File
@@ -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 ~ interfloor_1
do Patient.marker.fill(0) do Patient.marker.fill(0)
+8 -3
View File
@@ -95,17 +95,22 @@ func start_day():
await get_tree().create_timer(1.0).timeout await get_tree().create_timer(1.0).timeout
#Setting up new patient #Setting up new patient
$ScreeningDesk.console_display(Globals.directives)
$ScreeningDesk.accurate_diagnoses = 0 #Resetting accurate_diagnoses value at the day's beginning $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) $ScreeningDesk.update_middle_screen(Globals.day_count, Globals.floor_count, $ScreeningDesk.accurate_diagnoses, Globals.diagnoses_quota)
#Transitioning to the screening desk #Transitioning to the screening desk
scenes_to_hide = scenes_to_show 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) TransitionScreen.transition("big", scenes_to_hide, scenes_to_show)
await TransitionScreen.transition_finished 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 #Saves game state on the selected save slot
func save_game(save_slot_number:int): func save_game(save_slot_number:int):
+22 -6
View File
@@ -5,6 +5,7 @@ extends Control
@onready var patient_file_title = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/FileContainer/PatientFileTitle @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_recording = $LowerHalf/Computer/Margin/ComputerScreen/ComputerTabs/Recording
@onready var patient = $UpperHalf/ControlGlass/Patient @onready var patient = $UpperHalf/ControlGlass/Patient
@onready var supervisor = $UpperHalf/ControlGlass/Supervisor
@onready var next_patient = $LowerHalf/Computer/Margin/NextPatient @onready var next_patient = $LowerHalf/Computer/Margin/NextPatient
@onready var end_day = $LowerHalf/Computer/Margin/EndDay @onready var end_day = $LowerHalf/Computer/Margin/EndDay
@onready var green_button = $LowerHalf/GreenButton @onready var green_button = $LowerHalf/GreenButton
@@ -38,6 +39,8 @@ extends Control
var main: Node var main: Node
var accurate_diagnoses = 0 var accurate_diagnoses = 0
signal supervisor_dialogue_finished
func _ready() -> void: func _ready() -> void:
#Referencing main node #Referencing main node
@@ -366,12 +369,25 @@ func descend_floor(): #Descends to next floor
console_screen.hide() console_screen.hide()
#Interfloor dialogue #Interfloor dialogue
var file_path = "res://Art/Patients/prime_supervisor/prime_supervisor_hologram.png" supervisor_dialogue(Globals.interfloor_dialogue, "interfloor_" + str(-Globals.floor_count-1))
patient.texture = load(file_path) await supervisor_dialogue_finished
patient.show()
main.start_balloon("screening", Globals.interfloor_dialogue, "interfloor_" + str(-Globals.floor_count-1))
await DialogueManager.dialogue_ended
patient.hide()
#Setting up new patient #Setting up new patient
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
View File
@@ -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="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://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://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="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://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://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"] [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"] [sub_resource type="Theme" id="Theme_63o5x"]
RichTextLabel/fonts/normal_font = ExtResource("14_0pvwy") 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"] [sub_resource type="Animation" id="Animation_ub1ft"]
length = 0.001 length = 0.001
tracks/0/type = "value" tracks/0/type = "value"
@@ -296,6 +303,7 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="Patient" type="TextureRect" parent="UpperHalf/ControlGlass"] [node name="Patient" type="TextureRect" parent="UpperHalf/ControlGlass"]
visible = false
z_index = 2 z_index = 2
layout_mode = 1 layout_mode = 1
anchors_preset = 7 anchors_preset = 7
@@ -311,6 +319,25 @@ grow_vertical = 0
texture = ExtResource("3_fev1v") texture = ExtResource("3_fev1v")
stretch_mode = 3 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="."] [node name="LowerHalf" type="Control" parent="."]
z_index = 6 z_index = 6
layout_mode = 1 layout_mode = 1
+54
View File
@@ -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)
+1
View File
@@ -0,0 +1 @@
uid://cdkbyikbjqlsh
+12
View File
@@ -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);
}
+1
View File
@@ -0,0 +1 @@
uid://dwepb0lm1veje