Compare commits

...

2 Commits

33 changed files with 224 additions and 162 deletions

View File

@ -11,7 +11,7 @@ enum id {
}
@export var station_name: StringName = ""
@export var memory: Scenes.id = Scenes.id.YOUTH_DRAEVEN
@export var memory: Scenes.id = Scenes.id.YOUTH_DRAVEN
@export_file("*.tscn") var station_path: String = ""
@export var arriving_lines: Dictionary[TrainLine.id, float]
@export var departing_lines: Dictionary[TrainLine.id, float]

View File

@ -1,19 +0,0 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://d1r1tvb1paup4"
path="res://.godot/imported/draeven.ogg-f2cd990bd1c11bdd8b59fe3f4d2ec30b.oggvorbisstr"
[deps]
source_file="res://base-environments/youth_room/audio/draeven.ogg"
dest_files=["res://.godot/imported/draeven.ogg-f2cd990bd1c11bdd8b59fe3f4d2ec30b.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://d1r1tvb1paup4"
path="res://.godot/imported/draven.ogg-0b0fce547c634a7f56f440b73b703e77.oggvorbisstr"
[deps]
source_file="res://base-environments/youth_room/audio/draven.ogg"
dest_files=["res://.godot/imported/draven.ogg-0b0fce547c634a7f56f440b73b703e77.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View File

@ -6,7 +6,7 @@
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="5_ddnfo"]
[ext_resource type="AudioStream" uid="uid://cvlqvlrc6lqru" path="res://base-environments/youth_room/audio/draven-de.wav" id="5_f6vs7"]
[ext_resource type="AudioStream" uid="uid://c4clagpd3ril0" path="res://base-environments/youth_room/audio/Ambient 5.ogg" id="6_7f2et"]
[ext_resource type="AudioStream" uid="uid://d1r1tvb1paup4" path="res://base-environments/youth_room/audio/draeven.ogg" id="7_nbb1o"]
[ext_resource type="AudioStream" uid="uid://d1r1tvb1paup4" path="res://base-environments/youth_room/audio/draven.ogg" id="7_nbb1o"]
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="8_hxlqo"]
[sub_resource type="Animation" id="Animation_ytihj"]
@ -86,7 +86,7 @@ tracks/5/keys = {
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("%AnimationPlayer/Music:stream")
tracks/6/path = NodePath("../../../AnimationPlayer/Music:stream")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
@ -98,7 +98,7 @@ tracks/6/keys = {
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("%AnimationPlayer/Music:playing")
tracks/7/path = NodePath("../../../AnimationPlayer/Music:playing")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
@ -114,7 +114,7 @@ length = 151.0
tracks/0/type = "audio"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("%AnimationPlayer/Text")
tracks/0/path = NodePath("../../../AnimationPlayer/Text")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@ -230,7 +230,7 @@ tracks/6/keys = {
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("%AnimationPlayer/Music:stream")
tracks/7/path = NodePath("../../../AnimationPlayer/Music:stream")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
@ -260,7 +260,7 @@ tracks/0/keys = {
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("%AnimationPlayer/Music:playing")
tracks/1/path = NodePath("../../../AnimationPlayer/Music:playing")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
@ -276,7 +276,7 @@ length = 150.0
tracks/0/type = "audio"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("%AnimationPlayer/Text")
tracks/0/path = NodePath("../../../AnimationPlayer/Text")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
@ -380,7 +380,7 @@ tracks/6/keys = {
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("%AnimationPlayer/Music:stream")
tracks/7/path = NodePath("../../../AnimationPlayer/Music:stream")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {

View File

@ -14,7 +14,7 @@ func start_room():
%UI.show()
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
if not Scenes.is_sequence_repeating(Scenes.id.YOUTH_DRAEVEN):
if not Scenes.is_sequence_repeating(Scenes.id.YOUTH_DRAVEN):
# Play intro scene directly (not triggered by CollectableUi)
await _play_intro_scene()
else:
@ -37,7 +37,7 @@ func _play_intro_scene() -> void:
# Play the story (StoryPlayable handles its own visibility via animations)
await intro.play_story()
Scenes.end_sequence(Scenes.id.YOUTH_DRAEVEN)
Scenes.end_sequence(Scenes.id.YOUTH_DRAVEN)

View File

@ -426,7 +426,7 @@ tracks/1/keys = {
}
[sub_resource type="Animation" id="Animation_1kp3w"]
resource_name = "draeven"
resource_name = "draven"
length = 160.0
tracks/0/type = "value"
tracks/0/imported = false
@ -826,7 +826,7 @@ tracks/1/keys = {
_data = {
&"RESET": SubResource("Animation_nwry8"),
&"childhood_music": SubResource("Animation_ea6x8"),
&"draeven": SubResource("Animation_1kp3w"),
&"draven": SubResource("Animation_1kp3w"),
&"intro": SubResource("Animation_1pmhi"),
&"jui_jutsu": SubResource("Animation_dot4p"),
&"jui_jutsu_music": SubResource("Animation_corra"),

View File

@ -24,8 +24,8 @@ func _on_scene_starting(scene_id: Scenes.id, _repeat: bool) -> void:
_play_chest_animation()
Scenes.id.YOUTH_JUI_JUTSU:
play("jui_jutsu_music")
Scenes.id.YOUTH_DRAEVEN:
play("draeven")
Scenes.id.YOUTH_DRAVEN:
play("draven")
func _on_scene_finished(scene_id: Scenes.id, _repeat: bool) -> void:
print_debug("YouthRoomScenePlayer._on_scene_finished(%s)" % Scenes.id.keys()[scene_id])

View File

@ -13,46 +13,46 @@ grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ols6o")
[node name="draeven" type="Control" parent="."]
[node name="draven" type="Control" parent="."]
anchors_preset = 0
offset_left = 190.0
offset_top = 141.0
offset_right = 230.0
offset_bottom = 181.0
[node name="c_out-of-world" parent="draeven" instance=ExtResource("1_xrckx")]
[node name="c_out-of-world" parent="draven" instance=ExtResource("1_xrckx")]
position = Vector2(2, -6)
text = "I feel like I am not from of this world"
[node name="p_unique" parent="draeven/c_out-of-world" groups=["c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")]
[node name="p_unique" parent="draven/c_out-of-world" groups=["c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")]
position = Vector2(-32, 50)
text = "I like being unique like that"
[node name="p_few_friends" parent="draeven/c_out-of-world" groups=["c_comic_heroes", "c_fighting", "c_joy", "c_out-of-world", "c_rejection", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
[node name="p_few_friends" parent="draven/c_out-of-world" groups=["c_comic_heroes", "c_fighting", "c_joy", "c_out-of-world", "c_rejection", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
position = Vector2(-32, 140)
text = "I am thankful for the few friends that get me"
[node name="c_rejection" parent="draeven" instance=ExtResource("1_xrckx")]
[node name="c_rejection" parent="draven" instance=ExtResource("1_xrckx")]
position = Vector2(9, 294)
text = "I fear being rejected"
[node name="p_friends" parent="draeven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
[node name="p_friends" parent="draven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
position = Vector2(-32, 50)
text = "that makes it hard to find friends"
[node name="p_laughed" parent="draeven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_confusion", "c_homework", "c_joy", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
[node name="p_laughed" parent="draven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_confusion", "c_homework", "c_joy", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
position = Vector2(-32, 140)
text = "I'm afraid I will just get laughed at"
[node name="c_confusion" parent="draeven" instance=ExtResource("1_xrckx")]
[node name="c_confusion" parent="draven" instance=ExtResource("1_xrckx")]
position = Vector2(11, 593)
text = "I am just too many things at once"
[node name="p_inner_conflict" parent="draeven/c_confusion" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_homework", "c_rejection", "c_teasing"] instance=ExtResource("2_ucudl")]
[node name="p_inner_conflict" parent="draven/c_confusion" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_homework", "c_rejection", "c_teasing"] instance=ExtResource("2_ucudl")]
position = Vector2(-32, 50)
text = "it is just so overwhelming for me"
[node name="p_outer_conflict" parent="draeven/c_confusion" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
[node name="p_outer_conflict" parent="draven/c_confusion" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
position = Vector2(-32, 140)
text = "this is just too much for others"

View File

@ -1,6 +1,9 @@
class_name HardCards extends Control
class_name HardcodedCards extends Control
static var source_dicts: Array[Dictionary] = [
@onready var card_prefab : PackedScene = preload("res://logic-scenes/board/card.tscn")
@onready var note_prefab : PackedScene = preload("res://logic-scenes/board/sticky-note.tscn")
var source_dicts: Array[Dictionary] = [
{
"c_out_of_world": ["p_unique", "p_few_friends", []],
"c_rejection": ["p_finding_friends", "p_laughed_at", []],
@ -63,13 +66,13 @@ static var source_dicts: Array[Dictionary] = [
},
]
static var id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, true)
var id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, true)
static var card_id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, false)
static var sticky_id_reference: Dictionary[StringName, StringName] = generate_id_reference(false, true)
static var obscure_reference: Dictionary[StringName, StringName] = generate_obscure_reference()
var card_id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, false)
var sticky_id_reference: Dictionary[StringName, StringName] = generate_id_reference(false, true)
var obscure_reference: Dictionary[StringName, StringName] = generate_obscure_reference()
static func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]:
func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]:
var out:Dictionary[StringName, StringName] = {}
for id in range(source_dicts.size()):
@ -83,7 +86,7 @@ static func generate_id_reference(include_cards: bool, include_sticky: bool) ->
return out
static func generate_obscure_reference():
func generate_obscure_reference():
var out:Dictionary[StringName, StringName] = {}
randomize()
@ -100,7 +103,7 @@ static func generate_obscure_reference():
return out
static func get_child_names_of(parent_id: StringName) -> Array[StringName]:
func get_child_names_of(parent_id: StringName) -> Array[StringName]:
var out: Array[StringName]
for child_name: StringName in id_reference.keys():
if id_reference[child_name].contains(parent_id):
@ -109,10 +112,10 @@ static func get_child_names_of(parent_id: StringName) -> Array[StringName]:
return out
#FIXME: enhance typing!
static func get_children_of(parent_id: StringName) -> Array:
func get_children_of(parent_id: StringName) -> Array:
return get_cards_by_name_array(get_child_names_of(parent_id))["sticky_notes"]
static func get_obscure_name(card_name: StringName):
func get_obscure_name(card_name: StringName):
if State.obscure_logs and not OS.is_debug_build():
return obscure_reference[card_name]
else:
@ -178,16 +181,18 @@ func is_out_of_bounds(card: Card, rect: Rect2):
return true
return false
static func get_cards_by_scene_id(id: int) -> Array:
func get_cards_by_scene_id(id: int) -> Array:
var output:Array
for card_name in source_dicts[id].keys():
output.append(Card.new(card_name, id_reference[card_name]))
var card := card_prefab.instantiate() as Card
card.init(card_name, id_reference[card_name]);
output.append(card)
return output
# used to put cards on the dev board
static func get_cards_by_name_array(names: Array[StringName]) -> Dictionary:
func get_cards_by_name_array(names: Array[StringName]) -> Dictionary:
var output:Dictionary = {
"cards": [],
"sticky_notes": []
@ -201,21 +206,21 @@ static func get_cards_by_name_array(names: Array[StringName]) -> Dictionary:
return output
static func create_from_id(id:StringName) -> Area2D:
func create_from_id(id:StringName) -> Area2D:
var parsed: PackedStringArray = id.rsplit(".")
#var helper := card_id_reference
#var keys := card_id_reference.keys()
if card_id_reference.values().has(id):
return Card.new(parsed[1], id)
var card := card_prefab.instantiate() as Card
card.init(parsed[1], id);
return card
elif sticky_id_reference.values().has(id):
return StickyNote.new(parsed[2], id)
var note := note_prefab.instantiate() as StickyNote
note.init(parsed[2], id)
return note
else:
push_error("Attempted to create Card or Sticky from non-existent ID!")
return null
static func create_dev_board(parent: Control, _rect: Rect2) -> void:
func create_dev_board(parent: Control, _rect: Rect2) -> void:
var scroll_container := ScrollContainer.new()
var panel := Panel.new()

View File

@ -3,9 +3,12 @@
[ext_resource type="Script" uid="uid://dysgoaaesqjbg" path="res://dev-util/hardcoded_cards.gd" id="1_5kg6w"]
[node name="Node2D" type="PanelContainer"]
process_mode = 4
visible = false
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
focus_behavior_recursive = 1
script = ExtResource("1_5kg6w")

View File

@ -564,8 +564,8 @@ To see its beauty. It helped a lot.,To see its beauty. It helped a lot.,Weil es
More Options,More Options,Mehr Optionen,,,
MementoLabel_collect,collect,einsammeln,,,
MementoLabel_CN,CN,CN,,,
MementoLabel_Draeven,,,,,
MementoLabel_DraevenCN,Alienation,Einsamkeit,,,
MementoLabel_Draven,,,,,
MementoLabel_DravenCN,Alienation,Einsamkeit,,,
MementoLabel_Childhood,,,,,
MementoLabel_ChildhoodCN,"Eating Issues, Alienation, Swearing","Probleme mit Essen, soziale Isolation, Fluchen",,,
MementoLabel_Voice,,,,,

1 keys en de es ja notes
564
565
566
567
568
569
570
571

View File

@ -45,10 +45,11 @@ var has_stage := false:
sticky.is_dragged = false
visible = has_stage
@onready var dropzone = $HBoxContainer/dropzone
@onready var dropzone := $HBoxContainer/dropzone
var dropzone_size: Vector2
@export var dropzone_padding:int = 100
@onready var sticky_note_container = $HBoxContainer/ScrollContainer/VBoxContainer
@onready var sticky_note_container := $HBoxContainer/ScrollContainer/VBoxContainer
@onready var current_context:int = NAVIGATE:
set(context):
#if current_context == ASSIGN and !context == ASSIGN:
@ -61,8 +62,8 @@ var dropzone_size: Vector2
# ASSIGN:
# pass
current_context = context
@onready var instructions = $instructions_panel/HBoxContainer/cards_remaining
@onready var timer: Timer = $Timer
@onready var instructions := $instructions_panel/HBoxContainer/cards_remaining
@onready var timer := $Timer
var mementos_collected: int = 0:
set(mementos):
@ -96,7 +97,7 @@ var mementos_collected: int = 0:
if current_context == ASSIGN and not focus_stickies:
while not dropzone.get_child(current_dropzone_id) is Card:
current_dropzone_id = (current_dropzone_id + (1 if not new_id == -1 else -1)) % dropzone.get_child_count()
dropzone.get_child(current_dropzone_id).preview_sticky_note(currently_active_node)
(dropzone.get_child(current_dropzone_id) as Card).preview_sticky_note(currently_active_node)
elif not focus_stickies:
currently_active_node = dropzone.get_child(current_dropzone_id)
@ -133,7 +134,7 @@ signal board_completed
# Called when the node enters the scene tree for the first time.
func _ready():
var size_reference = StickyNotePanel.new()
var size_reference := StickyNotePanel.new()
dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + size_reference.minimum_size.x, dropzone_padding)

View File

@ -18,8 +18,8 @@ var current_sticky_note: StickyNote = null
var wiggle_pos: float = 0
var wiggle_intensity: float = 0
var noise: Noise = FastNoiseLite.new()
var wiggle_tween
var scale_tween
var wiggle_tween : Tween
var scale_tween : Tween
var transfor_arr: Array[Transform2D] = [
Transform2D(0.9, Vector2(-125, -83)),
@ -37,8 +37,6 @@ var transfor_arr: Array[Transform2D] = [
@onready var label: Label = $Label
@onready var background_sprite: AnimatedSprite2D = $AnimatedSprite2D
@export var picked_random: bool = false
@export var wiggle_strength: float = 0.2
@ -48,6 +46,7 @@ var transfor_arr: Array[Transform2D] = [
@export var highlighted: bool = false:
set(highlight):
if highlight != highlighted:
printt(self, highlight)
highlighted = highlight
if is_inside_tree() and is_node_ready():
@ -132,7 +131,7 @@ var sticky_note_position: Vector2 = Vector2(-66, 83)
var is_mouse_entered: bool = false
var mouse_offset: Vector2
func _init(card_name: String = "card", own_id:StringName = "-1") -> void:
func init(card_name: String = "card", own_id:StringName = "-1") -> void:
if card_name != "c_void":
text = card_name
card_id = own_id
@ -141,8 +140,6 @@ func _init(card_name: String = "card", own_id:StringName = "-1") -> void:
func _ready():
input_event.connect(_on_input_event)
mouse_entered.connect(_on_mouse_entered)
mouse_exited.connect(_on_mouse_exited)
_handle_wiggle(0)
_on_text_updated.call_deferred()
@ -151,7 +148,6 @@ func _on_text_updated():
if is_node_ready():
var curr_frame := text.hash() % background_sprite.sprite_frames.get_frame_count(background_sprite.animation)
background_sprite.frame = curr_frame
background_sprite.scale = Vector2(0.6, 0.6)
if text == "":
if background_sprite.get_child_count() == 0:
@ -165,7 +161,7 @@ func _on_text_updated():
wiggle_pos = float(text.hash() % 100)
label.rotation = deg_to_rad(transfor_arr[curr_frame].get_rotation())
label.position = transfor_arr[curr_frame].origin
#label.position = transfor_arr[curr_frame].origin
burn_progress = burn_progress
@ -192,25 +188,18 @@ func _handle_wiggle(delta):
rotation = noise.get_noise_1d(wiggle_pos)*wiggle_strength
## Deprecated
func replace_with(card: Card):
self.text = card.text
self.compatible_sticky_notes = card.compatible_sticky_notes
self.own_sticky_notes = card.own_sticky_notes
self.voice_line = card.voice_line
self.name = card.name
func _input(event: InputEvent) -> void:
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:
is_dragged = false
func _on_mouse_entered():
func _on_mouse_entered() -> void:
is_mouse_entered = true
if not Input.is_action_pressed("mouse_left"):
# Do nothing if mouse hovers over sticky_note
if has_sticky_note_attached():
if current_sticky_note.highlighted:
if current_sticky_note and current_sticky_note.highlighted:
return
highlighted = true
if "handle_hover" in owner:

View File

@ -5,7 +5,7 @@
[ext_resource type="Theme" uid="uid://d1jvpqykmpfyg" path="res://logic-scenes/themes/serif.theme" id="3_mdi7r"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_mai6h"]
size = Vector2(511, 410)
size = Vector2(277, 231)
[node name="Card" type="Area2D"]
script = ExtResource("1_emip0")
@ -14,25 +14,29 @@ metadata/_custom_type_script = "uid://ddy8kb2hjvgss"
metadata/type = "card"
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(0.6, 0.6)
sprite_frames = ExtResource("2_mai6h")
[node name="Label" type="Label" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -203.0
offset_top = -166.29167
offset_right = 224.0
offset_bottom = 173.12498
offset_left = -126.0
offset_top = -88.0
offset_right = 136.0
offset_bottom = 89.95834
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("3_mdi7r")
theme_type_variation = &"card_text"
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. "
text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 3
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(11, -2)
position = Vector2(5.5, 0)
shape = SubResource("RectangleShape2D_mai6h")
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]

View File

@ -20,6 +20,8 @@ var position_locked: bool = false
signal transform_tween_finished
@onready var background_sprite: AnimatedSprite2D = %BackgroundSprite
@export var text: String = "" :
set (value):
if is_node_ready():
@ -27,7 +29,6 @@ signal transform_tween_finished
text = value
var content: Node2D
var label: Label
var background_sprite: AnimatedSprite2D
@export var picked_random: bool = false
@ -59,8 +60,8 @@ var background_sprite: AnimatedSprite2D
@export var voice_line: AudioStream = null
@export var is_dragable: bool = false
@onready var base_rotation = rotation
@onready var base_scale = scale
@onready var base_rotation := rotation
@onready var base_scale := scale
var is_dragged: bool = false:
set(dragged):
is_dragged = dragged
@ -70,48 +71,21 @@ var is_dragged: bool = false:
var initial_drag_position: Vector2
var mouse_diff: Vector2
@onready var diameter = 312.0
@onready var diameter := 312.0
@export_range(1.0, 10.0) var bounce_speed: float = 8
var on_board: bool = false
func _init(sticky_name: String = "sticky_note", card_id: StringName = "-1") -> void:
func init(sticky_name: String = "sticky_note", card_id: StringName = "-1") -> void:
name = sticky_name
text = sticky_name
parent_id = StringName(card_id.rsplit(".", false, 1)[0])
sticky_id = card_id
func _ready() -> void:
if get_child_count() == 0:
content = Node2D.new()
add_child(content, false, Node.INTERNAL_MODE_BACK)
label = Label.new()
label.autowrap_mode = TextServer.AUTOWRAP_WORD
label.size = Vector2( 295.0, 97.0 )
label.position = Vector2( -52.0, -50.0 )
label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER
#FIXME eventually replace with better theme handling
label.theme = State.current_main_theme
State.theme_changed.connect(func change_theme(new_theme): label.theme = new_theme)
content.add_child(label, false, Node.INTERNAL_MODE_BACK)
background_sprite = AnimatedSprite2D.new()
background_sprite.sprite_frames = preload("res://logic-scenes/board/card-textures/sticky-note_sprites.tres")
background_sprite.scale = Vector2(0.65, 0.65)
background_sprite.position = Vector2(99.5, 0)
content.add_child(background_sprite, false, Node.INTERNAL_MODE_FRONT)
var collision_shape := CollisionShape2D.new()
var capsule := CapsuleShape2D.new()
capsule.radius = 48.0
capsule.height = diameter
collision_shape.shape = capsule
add_child(collision_shape, false, Node.INTERNAL_MODE_FRONT)
collision_shape.position.x = 99.5
collision_shape.rotation = PI/2
label = $Content/Label
background_sprite = $Content/BackgroundSprite
content = $Content
label.theme_type_variation = "card_text"
else:
label = $Content/Label
background_sprite = $Content/BackgroundSprite
content = $Content
_on_text_updated.call_deferred()
input_event.connect(_on_input_event)

View File

@ -22,6 +22,7 @@ shape = SubResource("CapsuleShape2D_ml4q7")
[node name="Content" type="Node2D" parent="."]
[node name="BackgroundSprite" type="AnimatedSprite2D" parent="Content"]
unique_name_in_owner = true
position = Vector2(99.5, 0)
scale = Vector2(0.65, 0.65)
sprite_frames = ExtResource("2_260t4")
@ -41,6 +42,6 @@ grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("3_qmm0h")
theme_type_variation = &"card_text"
text = "card"
text = "sticksum ipsum dolor sit amet met post-it sulcum dulce est 3M, et tesa est."
vertical_alignment = 1
autowrap_mode = 3

View File

@ -200,9 +200,53 @@ libraries = {
}
[node name="Card1" parent="." instance=ExtResource("5_ckmi5")]
picked_random = null
wiggle_strength = null
wiggle_speed = null
scale_bump = null
bounce_speed = null
highlighted = null
is_dragable = null
diameter = null
burn_progress = null
burn_state = null
direction = null
[node name="Card2" parent="." instance=ExtResource("5_ckmi5")]
picked_random = null
wiggle_strength = null
wiggle_speed = null
scale_bump = null
bounce_speed = null
highlighted = null
is_dragable = null
diameter = null
burn_progress = null
burn_state = null
direction = null
[node name="Card3" parent="." instance=ExtResource("5_ckmi5")]
picked_random = null
wiggle_strength = null
wiggle_speed = null
scale_bump = null
bounce_speed = null
highlighted = null
is_dragable = null
diameter = null
burn_progress = null
burn_state = null
direction = null
[node name="Card4" parent="." instance=ExtResource("5_ckmi5")]
picked_random = null
wiggle_strength = null
wiggle_speed = null
scale_bump = null
bounce_speed = null
highlighted = null
is_dragable = null
diameter = null
burn_progress = null
burn_state = null
direction = null

View File

@ -240,6 +240,6 @@ func pick_cards(id: int, repeat: bool):
reset()
show()
selection_state = CARDS
if id == Scenes.id.YOUTH_DRAEVEN and not repeat:
if id == Scenes.id.YOUTH_DRAVEN and not repeat:
$Meaning.play()
await cards_picked

View File

@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://bdb6n10apk1en" path="res://logic-scenes/card_picker/card_picker.gd" id="1_pjntm"]
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="2_t7byf"]
[ext_resource type="Script" uid="uid://r12efqgk6t4n" path="res://logic-scenes/board/sticky-note.gd" id="3_f4sp4"]
[ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/sticky-note.tscn" id="3_et74x"]
[ext_resource type="AudioStream" uid="uid://bakwypwhs7a5n" path="res://base-environments/youth_room/audio/why-does-it-mean.wav" id="4_ujc5a"]
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="5_et74x"]
[ext_resource type="AudioStream" uid="uid://tbx31bdlhbtr" path="res://base-environments/youth_room/audio/why-does-it-mean_de.wav" id="6_et74x"]
@ -1774,6 +1774,17 @@ libraries = {
}
[node name="Card" parent="cards/card_1" instance=ExtResource("2_t7byf")]
picked_random = null
wiggle_strength = null
wiggle_speed = null
scale_bump = null
bounce_speed = null
highlighted = null
is_dragable = null
diameter = null
burn_progress = null
burn_state = null
direction = null
[node name="card_2" type="Control" parent="cards"]
anchors_preset = 0
@ -1784,6 +1795,17 @@ libraries = {
}
[node name="Card" parent="cards/card_2" instance=ExtResource("2_t7byf")]
picked_random = null
wiggle_strength = null
wiggle_speed = null
scale_bump = null
bounce_speed = null
highlighted = null
is_dragable = null
diameter = null
burn_progress = null
burn_state = null
direction = null
[node name="card_3" type="Control" parent="cards"]
anchors_preset = 0
@ -1799,6 +1821,17 @@ libraries = {
}
[node name="Card" parent="cards/card_3" instance=ExtResource("2_t7byf")]
picked_random = null
wiggle_strength = null
wiggle_speed = null
scale_bump = null
bounce_speed = null
highlighted = null
is_dragable = null
diameter = null
burn_progress = null
burn_state = null
direction = null
[node name="sticky_notes" type="Panel" parent="."]
layout_mode = 2
@ -1815,10 +1848,7 @@ libraries = {
}
autoplay = "ini"
[node name="StickyNote" type="Area2D" parent="sticky_notes/sticky_note_1"]
script = ExtResource("3_f4sp4")
text = "Slot 1"
metadata/_custom_type_script = "uid://r12efqgk6t4n"
[node name="sticky-note" parent="sticky_notes/sticky_note_1" instance=ExtResource("3_et74x")]
[node name="sticky_note_2" type="Control" parent="sticky_notes"]
anchors_preset = 0
@ -1832,10 +1862,7 @@ libraries = {
}
autoplay = "ini"
[node name="StickyNote" type="Area2D" parent="sticky_notes/sticky_note_2"]
script = ExtResource("3_f4sp4")
text = "Slot 2"
metadata/_custom_type_script = "uid://r12efqgk6t4n"
[node name="sticky-note" parent="sticky_notes/sticky_note_2" instance=ExtResource("3_et74x")]
[node name="sticky_note_3" type="Control" parent="sticky_notes"]
anchors_preset = 0
@ -1849,10 +1876,7 @@ libraries = {
}
autoplay = "ini"
[node name="StickyNote" type="Area2D" parent="sticky_notes/sticky_note_3"]
script = ExtResource("3_f4sp4")
text = "Slot 3"
metadata/_custom_type_script = "uid://r12efqgk6t4n"
[node name="sticky-note" parent="sticky_notes/sticky_note_3" instance=ExtResource("3_et74x")]
[node name="sticky_note_4" type="Control" parent="sticky_notes"]
anchors_preset = 0
@ -1866,10 +1890,7 @@ libraries = {
}
autoplay = "ini"
[node name="StickyNote" type="Area2D" parent="sticky_notes/sticky_note_4"]
script = ExtResource("3_f4sp4")
text = "Slot 4"
metadata/_custom_type_script = "uid://r12efqgk6t4n"
[node name="sticky-note" parent="sticky_notes/sticky_note_4" instance=ExtResource("3_et74x")]
[node name="thought_prompt" type="Control" parent="."]
layout_mode = 2

View File

@ -19,15 +19,15 @@ var story_playable: StoryPlayable
@export var scene: Scenes.id = Scenes.id.YOUTH_DRAEVEN:
@export var scene: Scenes.id = Scenes.id.YOUTH_DRAVEN:
set(id):
scene = id
if is_inside_tree() and not is_board:
match id:
Scenes.id.YOUTH_DRAEVEN:
Scenes.id.YOUTH_DRAVEN:
# FIXME: this explicit translation should not be nessecary
if title_override == "": title_label.text = TranslationServer.translate("Starlight")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_DraevenCN")]
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_DravenCN")]
Scenes.id.YOUTH_CHILDHOOD:
if title_override == "": title_label.text = TranslationServer.translate("crafted Mask")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_ChildhoodCN")]

View File

@ -273,7 +273,7 @@ func _input(event:InputEvent) -> void:
func play_scene(_id: int, _repeat: bool):
pass
#if id == Scenes.id.YOUTH_DRAEVEN:
#if id == Scenes.id.YOUTH_DRAVEN:
# var rotation_tween := create_tween()
func scene_finished(_id, repeat: bool):

View File

@ -27,6 +27,7 @@ Steamworks="*res://dev-util/steamworks.gd"
PromptManager="*res://addons/input_prompts/input_prompt_manager.gd"
Steam="*res://dev-util/steam.gd"
Main="*res://singletons/main/main.tscn"
HardCards="*res://dev-util/hardcoded_cards.tscn"
[debug]

View File

@ -299,7 +299,7 @@ enum rooms {
}
enum sequences {
DRAEVEN,
DRAVEN,
CHILDHOOD,
VOICE,
JUI_JUTSU,

View File

@ -13,7 +13,7 @@ var normal_boot : bool = false
@onready var pause_menu: PauseManu = %PauseMenu
@onready var room_paths := {
State.rooms.NULL: youth_room_path, # Maybe Draeven story?
State.rooms.NULL: youth_room_path, # Maybe Draven story?
State.rooms.YOUTH: youth_room_path,
State.rooms.TRANSITION: transition_room_path,
State.rooms.ADULTHOOD: adulthood_room_path,

View File

@ -91,6 +91,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("1_rqkns")
youth_room_path = "uid://b3b0gyvklqn50"
transition_room_path = "uid://fgp3s28h7msy"
@ -107,6 +108,7 @@ offset_bottom = 0.0
[node name="MainMenu" parent="." instance=ExtResource("3_ik73t")]
unique_name_in_owner = true
visible = false
layout_mode = 1
[node name="FPSLabel" type="Label" parent="."]

View File

@ -13,7 +13,7 @@ var is_playing: bool:
get: return current_sequence != -1
enum id {
YOUTH_DRAEVEN,
YOUTH_DRAVEN,
YOUTH_CHILDHOOD,
YOUTH_VOICE_TRAINING,
YOUTH_JUI_JUTSU,

17
src/tests/card_tests.tscn Normal file
View File

@ -0,0 +1,17 @@
[gd_scene load_steps=2 format=3 uid="uid://j1g0cakfiusk"]
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="1_qc7lg"]
[node name="CardTests" type="Node2D"]
[node name="Card" parent="." instance=ExtResource("1_qc7lg")]
position = Vector2(1416, 350)
[node name="Card2" parent="." instance=ExtResource("1_qc7lg")]
position = Vector2(418, 255)
[node name="Card3" parent="." instance=ExtResource("1_qc7lg")]
position = Vector2(415, 552)
[node name="Card4" parent="." instance=ExtResource("1_qc7lg")]
position = Vector2(877, 360)