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
|
~ interfloor_1
|
||||||
|
|
||||||
do Patient.marker.fill(0)
|
do Patient.marker.fill(0)
|
||||||
|
|||||||
+8
-3
@@ -95,16 +95,21 @@ 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
|
||||||
|
|||||||
+22
-6
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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