Compare commits

..
19 Commits
Author SHA1 Message Date
cthangover 9bf0ec9de6 Test screenshots through ViewportCapture: sRGB instead of the dark linear HDR frame 2026-10-23 09:03:55 +02:00
cthangover ce62db9553 Site shots test suite 2026-10-23 09:29:41 +03:00
cthangover 98abf41a3c Starter kit (wolf meat, branches) given by start.scenario 2026-10-22 19:14:54 +02:00
iisaev b9f2b82d5d upd resources 2026-10-21 20:20:50 +03:00
cthangoverandClaude Opus 5.5 a48f064f54 town_entry: own background town/town_entry instead of the pack variants
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 16:04:45 +02:00
cthangover 4f8e123418 Action card texts moved to characters_base, which defines the cards 2026-10-21 14:58:57 +02:00
cthangover b30f98c870 Line endings: LF everywhere
.gitattributes forces LF (CRLF only for .bat/.cmd), core.autocrlf is off;
files that differed only by CRLF are normalized.
2026-10-21 13:29:34 +02:00
cthangover 2ea57b7240 Commit pending working-tree changes (local edits, line endings) 2026-10-21 12:31:49 +02:00
iisaev 1d1192977b new 4x pixelart resources 2026-10-20 19:50:38 +03:00
cthangover baea449122 Template game = own mod + reusable town_pack
The novel template becomes the intended layering: collection novel_template
lists my_novel_game (its own scenes, scenarios, text), town_pack (reusable
backgrounds and the bar ambience) and the engine. The town entrance and the
home vestibule move from cthangover_game into town_pack instead of being
copied; cthangover_game depends on it. Docs explain how to start a game from
these three layers.
2026-10-18 20:09:06 +02:00
cthangover d979595f8a Rename cthangover_story to cthangover_game
The mod holding the main game's own scenes and story follows the <game>_game
naming rule; further parts stay <game>_<part>, reusable content is <theme>_pack.
2026-10-18 19:45:47 +02:00
cthangover 953ef70a86 Collections are packages of their own
A collection is no longer a file inside a mod: it is a package (folder or zip)
named after its id with collection.json, cover and optional locale/, shipped in
collections/ next to the mods or kept by the player in user://collections/.
Covers and texts come from the package; mods do not ship collections.
2026-10-18 19:21:35 +02:00
cthangover 56f94e4a43 Mod naming rule and engine UI in engine mods
Mods are renamed by role (shell2d_base, menu_base, ui_base, live2d_base,
editor_tools, cthangover_story, cthangover_murakami, cthangover_party) and
every reference follows. Engine UI prefabs (dialog, answers, message, game
menu, inventory, map, skills) and their panel entries moved out of the story
mod into the subsystem mods; the card_novel and vn_starter_novel collections
are removed.
2026-10-18 19:00:15 +02:00
iisaev 5dc96f0595 update backgrounds and lights 2026-10-18 12:29:22 +03:00
cthangover 5f66d73149 Locale cleanup from the locale atlas
- An empty select "" carries no key=: the prompt keys go from the
  scenarios and from the locale files.
- Scenario option strings live only in scenarios_<lang>.properties; the
  duplicates in en/ru.properties are removed.
- English names/info for the map zones (mapzone/home, town_entry).
- locale/scenarios_ru.properties: Russian scenario strings get their own
  file next to scenarios_en.
2026-10-17 14:30:15 +00:00
cthangover cf58703889 Hand shared resources to the mods that use them
Findings of the resource atlas: engine and shell mods took these
resources from the content mod without depending on it.
- Main menu music (Serpent's Lament + the mainmenu playlist) -> base_menu.
- Battle win/defeat sounds -> turn_battle_base; UI sounds close_click and
  skip -> interface; card selection effect -> card_battle.
- Journal notification texts (ui/journal/new, updated) -> quests_base;
  settings screen texts (settings/*) -> base_menu.
- depends now declares characters_base, items_base and quests_base, whose
  resources the content uses.
2026-10-17 14:30:14 +00:00
cthangover 8f6d0c26c1 Game collections: cthangover (the full game), vn_starter_novel entry
- collections/cthangover.json: the main game as a "game" collection — the
  story with characters, quests, items and cooking, both battle cores,
  recruitment, Live2D and the developer tools; entry scene start_scene,
  battle.core = card_battle, cover, en/ru texts.
- vn_starter_novel: entry scene and battle core settings; the story block
  pulls starter_party, the battle block pulls card_battle.
2026-10-17 14:30:13 +00:00
iisaevandClaude Opus 5.5 bea3e5948e upd: sync local changes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 16:18:26 +00:00
cthangover bf76a60b17 upd 2026-09-24 11:17:05 +03:00
131 changed files with 1000 additions and 1992 deletions

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
# Line endings: LF everywhere, on every OS, whatever core.autocrlf says.
* text=auto eol=lf
# cmd.exe misreads labels and goto in LF batch files, so they stay CRLF.
*.bat text eol=crlf
*.cmd text eol=crlf
# Binaries: never converted, never diffed as text.
*.png binary
*.jpg binary
*.jpeg binary
*.webp binary
*.svg text
*.ogg binary
*.wav binary
*.mp3 binary
*.ttf binary
*.otf binary
*.woff binary
*.woff2 binary
*.dll binary
*.so binary
*.dylib binary
*.pdb binary
*.exe binary
*.zip binary
*.pck binary
*.moc3 binary
*.res binary
*.scn binary
Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 KiB

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 932 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1005 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

File renamed without changes.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 728 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 838 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 909 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 964 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

-5
View File
@@ -1,5 +0,0 @@
{ "Items": [
${actions/physics_attack},
${actions/physics_defence},
${actions/physics_stun}
]}
-12
View File
@@ -1,12 +0,0 @@
{
"Id": "physics/attack",
"Name": "characters/action/physics_attack/name",
"Description": "characters/action/physics_attack/description",
"Image": "characters/actions/physics_attack",
"Type": "ToEnemy",
"Values": [
"RequiredPoint=1",
"Attack=1.0",
"AttackType=Physics"
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

-11
View File
@@ -1,11 +0,0 @@
{
"Id": "physics/defence",
"Name": "characters/action/defence/name",
"Description": "characters/action/defence/description",
"Image": "characters/actions/physics_defence",
"Type": "ToAlias",
"Values": [
"RequiredPoint=1",
"Defence=4"
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

-12
View File
@@ -1,12 +0,0 @@
{
"Id": "physics/stun",
"Name": "characters/action/stun/name",
"Description": "characters/action/stun/description",
"Image": "characters/actions/physics_stun",
"Type": "ToEnemy",
"Values": [
"RequiredPoint=2",
"AttackType=Physics",
"Turn=3"
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

-3
View File
@@ -1,3 +0,0 @@
{ "Items": [
${player/marao}
]}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

-13
View File
@@ -1,13 +0,0 @@
{ "Items": [
${enemies/wolf_1},
${enemies/wolf_2},
${enemies/wolf_3},
${enemies/wolf_4},
${enemies/wolf_5},
${enemies/wolf_6},
${enemies/wolf_7},
${enemies/wolf_8},
${enemies/wolf_9},
${enemies/wolf_10},
${enemies/werewolf_girl_1}
]}
+16 -6
View File
@@ -1,20 +1,30 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "werewolf_girl_1",
"Name": "characters/enemies/werewolf_girl",
"Image": "characters/enemies/werewolf_girl_1",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 25,
"Defence": 0,
"Attack": 8,
"Exp": 50,
"RecruitmentChance": 50,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 2, "MaxCount": 2, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 2,
"MaxCount": 2,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_1",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_1",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_10",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_10",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_2",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_2",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_3",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_3",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_4",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_4",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_5",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_5",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_6",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_6",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_7",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_7",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_8",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_8",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+22 -6
View File
@@ -1,9 +1,11 @@
{
{
"Kind": "character",
"Items": [
{
"Id": "wolf_9",
"Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_9",
"Behaviour": "base",
"Level": 1,
"Point": 1,
"Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4,
"Exp": 5,
"RecruitmentChance": 0,
"Actions": ["physics/attack", "physics/defence"],
"Actions": [
"physics/attack",
"physics/defence"
],
"Loot": [
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
{
"ItemId": "food/wolf_meat",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
},
{
"ItemId": "resource/branches",
"MinCount": 1,
"MaxCount": 1,
"Probability": 100
}
]
}
]
}
+9 -3
View File
@@ -1,13 +1,19 @@
{
"Kind": "character",
"Items": [
{
"Id": "Marao",
"Name": "characters/player/marao",
"Image": "characters/player/marao",
"Level": 1,
"Point": 1,
"Health": 16,
"Defence": 0,
"Attack": 5,
"Actions": ["physics/attack", "physics/defence"]
"Actions": [
"physics/attack",
"physics/defence"
]
}
]
}
-3
View File
@@ -1,3 +0,0 @@
{ "Items": [
${skills/slave_master}
]}
+10 -2
View File
@@ -1,8 +1,16 @@
{
{
"Kind": "skill",
"Items": [
{
"Id": "slave_master",
"Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master",
"Type": 1,
"Rare": 3
"Rare": 3,
"Effects": [
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
]
}
]
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

+56 -11
View File
@@ -9,16 +9,48 @@
"visible": true,
"cursor": "PointingHand",
"hitArea": {
"type": "rect",
"x": 0.27239782,
"y": 0.7092288,
"width": 0.06675094,
"height": 0.17319852,
"radius": 0.05
"type": "polygon",
"x": 0.2788022,
"y": 0.7062248,
"width": 0.091567576,
"height": 0.17770463,
"radius": 0.05,
"vertices": [
{
"x": 0.27960268,
"y": 0.7317591
},
{
"x": 0.32073653,
"y": 0.716739
},
{
"x": 0.34555304,
"y": 0.84337497
},
{
"x": 0.3732654,
"y": 0.86139894
},
{
"x": 0.3386896,
"y": 0.8872055
},
{
"x": 0.3082694,
"y": 0.7610366
}
]
},
"highlight": {
"color": "#FFD70044",
"scale": 1,
"duration": 0.12
},
"highlight": { "color": "#FFD70044", "scale": 1, "duration": 0.12 },
"actions": {
"onClick": { "scenario": "scenarios/prolog/morning_cloak.scenario" }
"onClick": {
"scenario": "scenarios/prolog/morning_cloak.scenario"
}
}
},
{
@@ -29,10 +61,23 @@
"enabled": true,
"visible": true,
"cursor": "PointingHand",
"hitArea": { "type": "rect", "x": 0.30, "y": 0.66, "width": 0.10, "height": 0.09 },
"highlight": { "color": "#9966FF44", "scale": 1, "duration": 0.12 },
"hitArea": {
"type": "rect",
"x": 0.79553235,
"y": 0.74711686,
"width": 0.09439635,
"height": 0.07047379,
"radius": 0.05
},
"highlight": {
"color": "#9966FF44",
"scale": 1,
"duration": 0.12
},
"actions": {
"onClick": { "scenario": "scenarios/prolog/morning_book.scenario" }
"onClick": {
"scenario": "scenarios/prolog/morning_book.scenario"
}
}
}
]
+6 -1
View File
@@ -1,4 +1,7 @@
{
{
"Kind": "item",
"Items": [
{
"Id": "food/ration",
"Name": "items/food/ration/name",
"Description": "items/food/ration/desc",
@@ -7,3 +10,5 @@
"ItemType": "Food",
"ItemAction": "null"
}
]
}
+6 -1
View File
@@ -1,4 +1,7 @@
{
{
"Kind": "item",
"Items": [
{
"Id": "food/wolf_meat",
"Name": "items/food/wolf_meat/name",
"Description": "items/food/wolf_meat/desc",
@@ -7,3 +10,5 @@
"ItemType": "Resource,Food",
"ItemAction": "null"
}
]
}
-7
View File
@@ -1,7 +0,0 @@
{
"Items": [
${food/ration},
${food/wolf_meat},
${resource/branches}
]
}
+6 -1
View File
@@ -1,4 +1,7 @@
{
{
"Kind": "item",
"Items": [
{
"Id": "resource/branches",
"Name": "items/resource/branches/name",
"Description": "items/resource/branches/desc",
@@ -7,3 +10,5 @@
"ItemType": "Resource",
"ItemAction": "null"
}
]
}
+23 -56
View File
@@ -1,5 +1,5 @@
mod_core_name = Core
mod_core_desc = Game core
mod_cthangover_game_name = Cthangover: Story
mod_cthangover_game_desc = Story content of the Cthangover game: scenes, scenarios, characters, items, quests, backgrounds and the main game collection.
prolog/title = * A few missed moments earlier *
prolog/line1 = Being thoroughly wasted, Marao lay peacefully in the alley.
@@ -8,16 +8,6 @@ prolog/line4 = Cats had pissed in his mouth, his head and ass ached with pain.
prolog/choose_path = [What to do?]
prolog/opt_home = Return home
prolog/opt_alley = Check the alley
home_outside/prompt =
home_outside/opt_enter = Enter the house
home_outside/opt_town = To the town
home_outside/opt_forest = To the forest
town_entry/prompt =
town_entry/opt_home = Return home
town_entry/opt_square = To the square
town_outskirts/prompt =
town_outskirts/opt_home = Return home
town_outskirts/opt_forest = To the forest
menu/version = v1.0 - 2026.01.29
menu/resume = Resume
menu/saves = Saves
@@ -25,8 +15,6 @@ menu/settings = Settings
menu/exit = Exit
menu/newgame = New Game
ui/add_to_party = New party member
ui/journal/new = New journal entry
ui/journal/updated = Quest updated
ui/battle/next = End turn
ui/battle/endgame = End
ui/battle/endgame/to_main_menu = Main menu
@@ -43,11 +31,13 @@ ui/menu/new_game = New Game
ui/menu/load = Load
ui/menu/settings = Settings
ui/menu/exit = Exit
quest/prolog = Prologue
quest/prolog/0 = It's cold, need to put something on...
quest/prolog/1 = I don't remember a damn thing... Need to look around, maybe I can recall something.
quest/prolog/2 = I found the recipe book I bought the night before. It's getting dark, need to find shelter.
quest/prolog/3 = quest3
quest/awakening = Awakening
quest/awakening/0 = Woke up naked in an alley. My head is splitting. Look around — find something to wear.
quest/awakening/1 = Covered myself with a rag and grabbed the book. Then the police showed up. No point arguing — run.
quest/awakening/2 = The whistles died down. I'm at the cemetery. Catch my breath and figure out what to do with the book.
quest/awakening/3 = Read it aloud. Pretty sure I did something. Just what exactly?
quest/awakening/4 = The book started talking. Calls itself Al Azif. Time to get out of here.
quest/awakening/5 = Walking along the river to the villa. I'll wait it out somewhere there.
items/food/ration/name = Ration
items/food/ration/desc = A daily ration unit for one person
items/food/wolf_meat/name = Wolf cutlet
@@ -59,45 +49,22 @@ recipe/wolf_meat_to_ration/desc = A recipe describing how to properly cook wolf
characters/player/marao = Marao
characters/enemies/wolf = Wolf
characters/enemies/werewolf_girl = Werewolf
characters/action/physics_attack/name = Basic attack
characters/action/physics_attack/description = Attacks an enemy with a weapon, with a damage multiplier of <g>1.0</g>
characters/action/defence/name = Defence
characters/action/defence/description = Protects the target with a defence multiplier of <g>1.0</g>
characters/action/stun/name = Stun
characters/action/stun/description = Stuns the target for 2 turns
characters/skills/slave_master_name = Slave Trader
characters/skills/slave_master = Gives the ability to enslave a defeated enemy with a base chance of 10%. The upkeep of the slave falls on your shoulders.
settings/back = Back
settings/audio = Audio
settings/sounds = Sounds
settings/music = Music
settings/volume = Volume
settings/language = Language
settings/lang_ru = Russian
settings/lang_en = English
settings/lang_zh = 中文
settings/tab_general = General
settings/tab_audio = Sound
settings/tab_display = Display
settings/display = Display
settings/window_mode = Window Mode
settings/window_mode_windowed = Windowed
settings/window_mode_fullscreen = Fullscreen
settings/window_mode_borderless = Borderless
settings/resolution = Resolution
settings/monitor = Monitor
settings/monitor_screen = Screen {0} ({1}x{2})
settings/vsync = V-Sync
settings/scale = Scale
settings/scale_1x = 1x
settings/scale_2x = 2x
settings/scale_3x = 3x
settings/scale_4x = 4x
settings/tab_mods = Mod Settings
settings/mod_list_title = Mods
settings/mods_no_settings = No mod settings available
settings/mods_reset = Reset to Defaults
characters/skills/effects/recruit = recruitment chance
launcher/title = Settings
launcher/play = Play
launcher/exit = Exit
quest/naked_morning = Naked Morning
quest/old_house = The Old House
quest/awakening/tag/cloak_taken = Cloak found
quest/awakening/tag/book_taken = Book found
quest/awakening/tag/graveyard_read = Read aloud
quest/awakening/tag/azif_awake = Azif awakened
quest/awakening/tag/villa_reached = Villa reached
mapzone/home = Villa
mapzone/home/info = An abandoned villa in the wilds on the riverbank
mapzone/town_entry = Town entrance
mapzone/town_entry/info = The northern entrance to the town
# Collections (vn_starter_novel)
+23 -56
View File
@@ -1,5 +1,5 @@
mod_core_name = Ядро
mod_core_desc = Ядро игры
mod_cthangover_game_name = Cthangover: сюжет
mod_cthangover_game_desc = Сюжетный контент игры Cthangover: сцены, сценарии, персонажи, предметы, квесты, фоны и коллекция основной игры.
prolog/title = * Несколькими упущенными моментами ранее *
prolog/line1 = Будучи изрядно набуханным, Марао мирно лежал в переулке.
@@ -8,16 +8,6 @@ prolog/line4 = Во рту было нассано кошками, голова
prolog/choose_path = [Что делать?]
prolog/opt_home = Вернуться к дому
prolog/opt_alley = Проверить переулок
home_outside/prompt =
home_outside/opt_enter = Зайти в дом
home_outside/opt_town = В город
home_outside/opt_forest = В лес
town_entry/prompt =
town_entry/opt_home = Вернуться к дому
town_entry/opt_square = На площадь
town_outskirts/prompt =
town_outskirts/opt_home = Вернуться к дому
town_outskirts/opt_forest = В лес
menu/version = v1.0 - 2026.01.29
menu/resume = Вернуться
menu/saves = Сохранения
@@ -25,8 +15,6 @@ menu/settings = Настройки
menu/exit = Выход
menu/newgame = Новая игра
ui/add_to_party = Новый член отряда
ui/journal/new = Новая запись в журнале
ui/journal/updated = Задание обновлено
ui/battle/next = Конец хода
ui/battle/endgame = Конец
ui/battle/endgame/to_main_menu = Главное меню
@@ -43,11 +31,13 @@ ui/menu/new_game = Новая игра
ui/menu/load = Загрузить
ui/menu/settings = Настройки
ui/menu/exit = Выход
quest/prolog = Пролог
quest/prolog/0 = Холодно, нужно во что-то одеться...
quest/prolog/1 = Ничерта не помню... Нужно осмотреться, вдруг я смогу что нибудь вспомнить.
quest/prolog/2 = Я нашёл книгу рецептов, которую купил на кануне. Уже темнеет нужно найти укрытие.
quest/prolog/3 = квест3
quest/awakening = Пробуждение
quest/awakening/0 = Очнулся голым в переулке. Голова раскалывается. Надо осмотреться — хоть во что-то одеться.
quest/awakening/1 = Прикрылся тряпкой, забрал книгу. И тут же полиция. Спорить бесполезно — бежать.
quest/awakening/2 = Свистки стихли. Я на кладбище. Передохнуть и решить, что делать с книгой.
quest/awakening/3 = Прочитал вслух. Кажется, я что-то натворил. Вот только что именно?
quest/awakening/4 = Книга заговорила. Зовёт себя Аль Азифом. Пора убираться отсюда.
quest/awakening/5 = Иду вдоль реки к вилле «Забвение». Где-нибудь там пережду.
items/food/ration/name = Рацион
items/food/ration/desc = Единица суточного рациона для одного человека
items/food/wolf_meat/name = Волчья вырезка
@@ -59,45 +49,22 @@ recipe/wolf_meat_to_ration/desc = Рецепт описывает как пра
characters/player/marao = Марао
characters/enemies/wolf = Волк
characters/enemies/werewolf_girl = Оборотень
characters/action/physics_attack/name = Простая атака
characters/action/physics_attack/description = Атакует врага оружием, с коэффициентом урона <g>1.0</g>
characters/action/defence/name = Защита
characters/action/defence/description = Защищает цель с коэффициентом защиты <g>1.0</g>
characters/action/stun/name = Ошеломление
characters/action/stun/description = Ошеломляет цель на 2 хода
characters/skills/slave_master_name = Работорговец
characters/skills/slave_master = Даёт возможность взять в рабство поверженного врага с базовым шансом в 10%. Содержание раба ложится на твои плечи.
settings/back = Назад
settings/audio = Аудио
settings/sounds = Звуки
settings/music = Музыка
settings/volume = Громкость
settings/language = Язык
settings/lang_ru = Русский
settings/lang_en = English
settings/lang_zh = 中文
settings/tab_general = Основное
settings/tab_audio = Звук
settings/tab_display = Экран
settings/display = Экран
settings/window_mode = Режим окна
settings/window_mode_windowed = Оконный
settings/window_mode_fullscreen = Полный экран
settings/window_mode_borderless = Без рамки
settings/resolution = Разрешение
settings/monitor = Монитор
settings/monitor_screen = Экран {0} ({1}x{2})
settings/vsync = Вертикальная синхронизация
settings/scale = Масштаб
settings/scale_1x = 1x
settings/scale_2x = 2x
settings/scale_3x = 3x
settings/scale_4x = 4x
settings/tab_mods = Настройки модов
settings/mod_list_title = Моды
settings/mods_no_settings = Нет доступных настроек модов
settings/mods_reset = Сбросить настройки
characters/skills/effects/recruit = шанс рекрутинга
launcher/title = Настройки
launcher/play = Играть
launcher/exit = Выход
quest/naked_morning = Голое утро
quest/old_house = Старый дом
quest/awakening/tag/cloak_taken = Плащ найден
quest/awakening/tag/book_taken = Книга найдена
quest/awakening/tag/graveyard_read = Прочитал вслух
quest/awakening/tag/azif_awake = Азиф пробуждён
quest/awakening/tag/villa_reached = Вилла найдена
mapzone/home = Вилла
mapzone/home/info = Заброшенная вилла в глуши на берегу реки
mapzone/town_entry = Вход в город
mapzone/town_entry/info = Северный вход в город
# Коллекции (vn_starter_novel)
-4
View File
@@ -1,14 +1,10 @@
home_outside/prompt =
home_outside/opt_enter = Enter the house
home_outside/opt_town = To the town
home_outside/opt_forest = To the forest
town_entry/prompt =
town_entry/opt_home = Return home
town_entry/opt_square = To the square
town_outskirts/prompt =
town_outskirts/opt_home = Return home
town_outskirts/opt_forest = To the forest
vestibule/diner/prompt =
vestibule/diner/opt_workroom = To the workroom
vestibule/diner/opt_dinerroom = To the dining room
vestibule/diner/opt_bedroom = To the bedroom
+22
View File
@@ -0,0 +1,22 @@
home_outside/opt_enter = Зайти в дом
home_outside/opt_town = В город
home_outside/opt_forest = В лес
town_entry/opt_home = Вернуться к дому
town_entry/opt_square = На площадь
town_outskirts/opt_home = Вернуться к дому
town_outskirts/opt_forest = В лес
vestibule/diner/opt_workroom = В рабочую комнату
vestibule/diner/opt_dinerroom = В обеденную комнату
vestibule/diner/opt_bedroom = В спальню
vestibule/diner/opt_cellar = В подвал
vestibule/diner/opt_outside = На улицу
rooms/workroom/prompt = Рабочий кабинет, тут тебя никто не будет отвлекать от исследований
rooms/workroom/opt_exit = Выйти
rooms/bedroom/prompt = Твоя спальня, тут можно поспать и набраться сил
rooms/bedroom/opt_exit = Выйти
rooms/kitchen/prompt = Комната оборудованная под кухню
rooms/kitchen/opt_exit = Выйти
rooms/livingroom/prompt = Гостиная
rooms/livingroom/opt_exit = Выйти
rooms/basement/prompt = Подвал
rooms/basement/opt_exit = Выйти
+8 -56
View File
@@ -1,60 +1,12 @@
{
"id": "core",
"name": "Core",
"version": "1.0.0",
"id": "cthangover_game",
"name": "Cthangover: Story",
"version": "2.0.0",
"author": "ct",
"description": "Game core",
"sources": [
"src/*.cs"
],
"ui": [
{
"id": "map",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/ui/map_widget.tscn",
"button": { "icon": "map", "locale": "ui/map/title", "index": 10 },
"priority": 10
},
{
"id": "inventory",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/ui/inventory_panel.tscn",
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
"priority": 10
},
{
"id": "characters",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/ui/character_panel/character_panel.tscn",
"button": { "icon": "cards", "locale": "ui/character_panel/title", "index": 30 },
"priority": 10
},
{
"id": "skills",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/ui/skills_panel/skills_panel.tscn",
"button": { "icon": "skills", "locale": "ui/skills/title", "index": 40 },
"priority": 10
},
{
"id": "game_menu",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/menu/game_menu.tscn",
"button": { "icon": "settings", "locale": "menu/settings", "index": 50 },
"priority": 10
},
{
"id": "journal",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/ui/quest_journal.tscn",
"button": { "icon": "journal", "locale": "ui/journal/title", "index": 60 },
"priority": 10
}
"description": "Story content of the Cthangover game: scenes, scenarios, characters, items, quests, backgrounds and the main game collection.",
"category": "story",
"depends": ["shell2d_base>=1", "dialog_base>=1", "interactive_base>=1", "skills_base>=1", "map_base>=1", "ui_base>=1", "characters_base>=1", "items_base>=1", "quests_base>=1", "town_pack>=1"],
"test_suites": [
{"id": "site_shots", "activate": ["--itest=site_shots"]}
]
}
+122
View File
@@ -0,0 +1,122 @@
{
"Items": [
{
"ID": "home",
"points": [
[
0.5887548,
0.264396
],
[
0.6100419,
0.25477746
],
[
0.6247227,
0.23549321
],
[
0.62986094,
0.2014098
],
[
0.60765624,
0.19486304
],
[
0.5865526,
0.18178055
],
[
0.5630633,
0.19693027
],
[
0.56253225,
0.233722
]
],
"title": "",
"scene": "home_outside",
"description": "mapzone/home/info",
"image_pos": [
0,
0
],
"locked": false,
"hidden": false
},
{
"ID": "home_label",
"points": [],
"title": "mapzone/home",
"image_pos": [
0,
0
],
"label_pos": [
0.5990954,
0.15155637
],
"locked": false,
"hidden": false
},
{
"ID": "town_entry",
"points": [
[
0.7098713,
0.24926566
],
[
0.7333606,
0.26303816
],
[
0.73482865,
0.2905831
],
[
0.73042434,
0.31537354
],
[
0.7091372,
0.34291852
],
[
0.69739264,
0.32639155
],
[
0.7010628,
0.2740561
]
],
"title": "",
"scene": "town_entry",
"description": "mapzone/town_entry/info",
"image_pos": [
0,
0
],
"locked": false,
"hidden": false
},
{
"ID": "town_entry_label",
"points": [],
"title": "mapzone/town_entry",
"image_pos": [
0,
0
],
"label_pos": [
0.72461617,
0.21628697
],
"locked": false,
"hidden": false
}
]
}
Binary file not shown.
-11
View File
@@ -1,11 +0,0 @@
{
"Scene": "MainMenu",
"Musics": [
{
"MusicType": "Ambient",
"MusicNames": [
"Serpent's Lament"
]
}
]
}
+11 -7
View File
@@ -1,17 +1,21 @@
{
"Kind": "quest",
"Items": [
{
"Id": "PrologQuest",
"Name": "quest/prolog",
"Id": "AwakeningQuest",
"Name": "quest/awakening",
"StatusToDescription": {
"0": "quest/prolog/0",
"1": "quest/prolog/1",
"2": "quest/prolog/2"
"0": "quest/awakening/0",
"1": "quest/awakening/1",
"2": "quest/awakening/2",
"3": "quest/awakening/3",
"4": "quest/awakening/4",
"5": "quest/awakening/5"
}
},
{
"Id": "NakedMorningQuest",
"Name": "quest/naked_morning"
"Id": "OldHouseQuest",
"Name": "quest/old_house"
}
]
}
+1 -1
View File
@@ -1,7 +1,7 @@
scene: home_kitchen
priority: 10
---
light_set [{"x":0.43052286,"y":0.5760054,"radius":500,"influence":1,"color":"#ffff00"},{"x":0.103702,"y":0.26946074,"radius":500,"influence":1,"color":"#ffff00"}]
light_set [{"x":0.6731463,"y":0.4611617,"radius":500,"influence":1,"color":"#ffff00"},{"x":0.13467516,"y":0.3151215,"radius":500,"influence":1,"color":"#ffff00"}]
select "Комната оборудованная под кухню" key=rooms/kitchen/prompt
option "Выйти" key=rooms/kitchen/opt_exit -> :exit
@@ -2,7 +2,7 @@ scene: home_livingroom
priority: 10
---
light_set [{"x":0.32427186,"y":0.5831858,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.11262136,"y":0.44159293,"radius":300,"influence":0.6,"color":"#ffff00"}]
select "Гостинная" key=rooms/livingroom/prompt
select "Гостиная" key=rooms/livingroom/prompt
option "Выйти" key=rooms/livingroom/opt_exit -> :exit
:exit
+2 -2
View File
@@ -1,8 +1,8 @@
scene: home_outside
priority: 10
---
light_set [{"x":0.29462293,"y":0.43369123,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.29967362,"y":0.62050235,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.49256954,"y":0.40350124,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.5846468,"y":0.37935096,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.33943588,"y":0.41643897,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.43495983,"y":0.41557643,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.30102944,"y":0.5208026,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.67573905,"y":0.40436372,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.3522381,"y":0.5113151,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.6782009,"y":0.507865,"radius":150,"influence":1,"color":"#ffff00"}]
select "" key=home_outside/prompt
light_set [{"x":0.805989,"y":0.28035545,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.6052956,"y":0.40425685,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.85641646,"y":0.49430165,"radius":100,"influence":1,"color":"#ffff00"},{"x":0.7054866,"y":0.4456003,"radius":150,"influence":1,"color":"#ffff00"},{"x":0.6645251,"y":0.26138362,"radius":100,"influence":1,"color":"#ffff00"}]
select ""
option "Зайти в дом" key=home_outside/opt_enter -> :enter
option "В город" key=home_outside/opt_town -> :town
option "В лес" key=home_outside/opt_forest -> :forest
@@ -1,8 +1,8 @@
scene: home_vestibule
priority: 40
---
light_set [{"x":0.32427186,"y":0.5831858,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.11262136,"y":0.44159293,"radius":300,"influence":0.6,"color":"#ffff00"}]
select "" key=vestibule/diner/prompt
light_set [{"x":0.31837204,"y":0.58041835,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.11557116,"y":0.44574395,"radius":300,"influence":0.6,"color":"#ffff00"}]
select ""
option "В рабочую комнату" key=vestibule/diner/opt_workroom -> :workroom
option "В обеденную комнату" key=vestibule/diner/opt_dinerroom -> :kitchen
option "В спальню" key=vestibule/diner/opt_bedroom -> :bedroom
@@ -1,7 +1,7 @@
scene: home_workroom
priority: 10
---
light_set [{"x":0.45825243,"y":0.5865044,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.5190939,"y":0.52787614,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.77411,"y":0.45929205,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.8699029,"y":0.4869469,"radius":300,"influence":1,"color":"#ffff00"}]
light_set [{"x":0.45825243,"y":0.5865044,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.53163075,"y":0.5458637,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.77411,"y":0.45929205,"radius":300,"influence":1,"color":"#ffff00"},{"x":0.8699029,"y":0.4869469,"radius":300,"influence":1,"color":"#ffff00"}]
select "Рабочий кабинет, тут тебя никто не будет отвлекать от исследований" key=rooms/workroom/prompt
option "Выйти" key=rooms/workroom/opt_exit -> :exit
@@ -3,6 +3,7 @@ priority: 10
is_one_run: true
---
background prolog/00025-165590409
title "Глава 3. Кладбище святого Угробья"
text "Могильные плиты тянулись вдаль, серые и мрачные. Старые дубы качали голыми ветвями. Где-то каркала ворона."
text "Свистки стихли — полицейские потеряли его из виду." first=marao/think
@@ -12,5 +13,6 @@ text "— Ну вот. Организм. Раньше я мог пол-литр
text "Он покосился на книгу, которая всё ещё была у него под мышкой." first=marao/think
text "— Хм. А чего бы и нет? Всё равно время есть." first=marao/smile
action quest.set_data_status quest_id=AwakeningQuest level=2
notify "За склепом можно уединиться."
end
+4 -2
View File
@@ -1,5 +1,6 @@
# Клик по книге — Аль-Азиф просыпается (канон: глава 4).
# Файл без шапки: InteractiveManager отрезает метаданные, играет только тело.
title "Глава 4. Аль Азиф просыпается"
text "Марао плюнул и присел, сложив книгу стопкой страниц. Поднёс к пятой точке." first=marao/think
ptext "Книга заорала."
ptext "— НЕ СМЕЙ!"
@@ -28,8 +29,9 @@ ptext "Вдалеке снова засвистели полицейские с
sound locations/prolog/police
text "Марао встал, накинул красную тряпку и сунул книгу под мышку." first=marao/smile
text "— Валим. Давай, книжка, показывай, где тут трактир. А то у меня всего две мысли: «нахера я такой голый» и «где бы опохмелиться»." first=marao/smile
title "Конец пролога. Впереди — дорога вдоль реки..."
action quest.add_tag quest_id=NakedMorningQuest tag=azif_awake
action quest.add_tag quest_id=AwakeningQuest tag=azif_awake
action quest.set_data_status quest_id=AwakeningQuest level=4
interactive_remove book_wipe
switch_scene prolog_river
end
@@ -1,6 +1,6 @@
scene: prolog_graveyard
priority: 15
condition: NakedMorningQuest.hasTag("graveyard_read") && NakedMorningQuest.notHasTag("azif_awake")
condition: AwakeningQuest.hasTag("graveyard_read") && AwakeningQuest.notHasTag("azif_awake")
---
# Прочитано, но Аль-Азиф ещё не проснулся: держим хотспот книги на сцене.
interactive_add book_wipe
@@ -1,6 +1,6 @@
scene: prolog_graveyard
priority: 15
condition: NakedMorningQuest.notHasTag("graveyard_read")
condition: AwakeningQuest.notHasTag("graveyard_read")
---
# Книга ещё не прочитана вслух: держим хотспот «за склепом» на сцене.
# Идемпотентно при каждом входе (Add по тому же id возвращает существующий объект).
+2 -1
View File
@@ -19,7 +19,8 @@ text "Лопухов не было. Только крапива да стары
text "Он потянул страницу за уголок — ноль реакции. Дёрнул сильнее: бумага была твёрдой, как металл, но гибкой. Он рвал и так, и сяк, даже ногтями пытался. Бесполезно." first=marao/sad
text "— Что за брак! Я за такие деньги..." first=marao/sad
action quest.add_tag quest_id=NakedMorningQuest tag=graveyard_read
action quest.add_tag quest_id=AwakeningQuest tag=graveyard_read
action quest.set_data_status quest_id=AwakeningQuest level=3
interactive_remove crypt_spot
interactive_add book_wipe
end
+1 -1
View File
@@ -6,7 +6,7 @@ text "— Какая-то мутная хрень. Откуда она у мен
text "В голове мелькнул смутный образ: он в какой-то лавке протягивает монеты и берёт книгу. Но когда? Где? Почему? Больше ничего." first=marao/think
text "Марао пожал плечами и сунул книгу под мышку." first=marao/smile
text "— Ладно, бумага не жрёт. Пойдём, найдём, где опохмелиться." first=marao/smile
action quest.add_tag quest_id=NakedMorningQuest tag=book_taken
action quest.add_tag quest_id=AwakeningQuest tag=book_taken
interactive_remove book_ground
switch_scene prolog_alley
end
+1 -1
View File
@@ -4,7 +4,7 @@ text "Он сделал шаг, другой, придерживаясь за с
text "Выцветшая, с бахромой по краям. Когда-то это было что-то вроде плаща или шали. На ткани угадывался вышитый крест." first=marao/think
text "Марао развернул её, оценил размер и намотал на плечи, как римскую тогу. Края едва доходили до колен." first=marao/smile
text "— Лучше, чем ничего. Срам прикрыт, хоть сзади и развевается, как знамя нищего легиона." first=marao/smile
action quest.add_tag quest_id=NakedMorningQuest tag=cloak_taken
action quest.add_tag quest_id=AwakeningQuest tag=cloak_taken
interactive_remove cloak_ground
switch_scene prolog_alley
end
@@ -1,6 +1,6 @@
scene: prolog_alley
priority: 15
condition: NakedMorningQuest.notHasTag("cloak_taken") && NakedMorningQuest.notHasTag("book_taken")
condition: AwakeningQuest.notHasTag("cloak_taken") && AwakeningQuest.notHasTag("book_taken")
---
# Ни один предмет ещё не взят: держим оба интерактива на сцене.
# Не is_one_run — идемпотентно пересоздаёт объекты при каждом входе (Add по тому же id возвращает существующий).
+2 -1
View File
@@ -1,11 +1,12 @@
scene: prolog_alley
priority: 20
is_one_run: true
condition: NakedMorningQuest.hasTag("cloak_taken") && NakedMorningQuest.hasTag("book_taken")
condition: AwakeningQuest.hasTag("cloak_taken") && AwakeningQuest.hasTag("book_taken")
---
sound locations/prolog/police
delay 0.7 hidden=true
title "Глава 2. Погоня"
action quest.set_data_status quest_id=AwakeningQuest level=1
ptext "Из подворотни вышли трое полицейских в синих мундирах, с медными пуговицами, начищенными до блеска."
ptext "— ЭЙ, ТЫ! СТОЯТЬ!"
@@ -1,6 +1,6 @@
scene: prolog_alley
priority: 15
condition: NakedMorningQuest.hasTag("cloak_taken") && NakedMorningQuest.notHasTag("book_taken")
condition: AwakeningQuest.hasTag("cloak_taken") && AwakeningQuest.notHasTag("book_taken")
---
# Тряпка взята, книга ещё нет: возвращаем книгу после перезагрузки сцены.
interactive_add book_ground
@@ -1,6 +1,6 @@
scene: prolog_alley
priority: 15
condition: NakedMorningQuest.hasTag("book_taken") && NakedMorningQuest.notHasTag("cloak_taken")
condition: AwakeningQuest.hasTag("book_taken") && AwakeningQuest.notHasTag("cloak_taken")
---
# Книга взята, тряпка ещё нет: возвращаем тряпку после перезагрузки сцены.
interactive_add cloak_ground
+2
View File
@@ -13,5 +13,7 @@ text "Холодный воздух пробрал до костей. Марао
text "— Да что ж такое! Где мои штаны?!" first=marao/sad
text "Он был абсолютно голый. Босые ступни на холодном камне. Тело болело — как будто его били чем-то тяжёлым. Возможно ногами. Возможно и по лицу." first=marao/sad
action quest.set_status quest_id=AwakeningQuest status=Progress
action quest.send_notification quest_id=AwakeningQuest
notify "Осмотрись. В переулке что-то лежит."
end
+40
View File
@@ -0,0 +1,40 @@
scene: prolog_river
priority: 10
is_one_run: true
---
background prolog/river
title "Глава 5. Дорога к вилле «Забвение»"
action quest.set_data_status quest_id=AwakeningQuest level=5
text "Марао выбрался с кладбища через дыру в заборе — подальше от ворот, где могли ждать свистки." first=marao/think
sound locations/prolog/police_go_on
text "Свистки ещё слышались за холмами. Далеко. Но он всё равно пригнулся и пошёл вдоль реки, прячась за кустами ивы." first=marao/think
text "Кусты хлестали по голым ногам. Трава резала ступни. Красная тряпка то и дело сползала, и Марао поправлял её, не сбавляя шага." first=marao/think
ptext "Книга молчала. Но вздрагивала каждые пару шагов — как будто переваривала обиду."
text "Река блеснула между деревьями. Марао остановился и принюхался к себе." first=marao/think
text "— Так. Помыться бы. А то от меня пахнет, как от склепа." first=marao/think
text "Он скинул тряпку на куст, огляделся и вошёл в воду по колено." first=marao/think
text "Вода обожгла. Марао зашипел, но не вышел — только быстрее зашлёпал по бокам и под мышками." first=marao/sad
ptext "На берегу книга засветилась багровым."
ptext "— ОСКВЕРНЕНИЕ! ТЫ ГОЛЫЙ! ПОД НЕБОМ! ОНО ВСЁ ВИДИТ!"
text "— Небо большое. Пусть терпит." first=marao/think
ptext "— Я ЧУВСТВУЮ, ЧЕМ ТЫ СОБИРАЕШЬСЯ ВЫТИРАТЬСЯ. НЕ СМЕЙ ДАЖЕ ДУМАТЬ!"
text "— А чем мне вытираться? Ты мне, что ли, полотенце?" first=marao/sad
text "Марао выбрался на берег и взял книгу. Страницы были гладкие, плотные, приятные на ощупь. Как хорошая бумага." first=marao/think
text "— Слушай. Вот тут у тебя пустые листы. Их много. А я весь мокрый." first=marao/smile
ptext "Книга задрожала. Потом заорала так, что с ближней ивы сорвалась ворона."
ptext "— НЕ СМЕЙ! Я — АЛЬ АЗИФ! Я СВЯТ! Я..."
text "— Ты мокрая. И орёшь. Значит, уговор в силе: я не вытираюсь — ты не орёшь. Мы же на кладбище договорились." first=marao/think
ptext "Книга замолчала."
ptext "Демонстративно. До самой темноты."
text "Марао натянул тряпку на плечи и пошёл дальше вдоль берега." first=marao/think
text "Километра через два лес начал редеть." first=marao/think
switch_scene prolog_villa
end
+27
View File
@@ -0,0 +1,27 @@
scene: prolog_villa
priority: 10
is_one_run: true
---
background prolog/villa
text "За поворотом реки показался дом." first=marao/think
text "Двухэтажный, деревянный, с резными наличниками. Штукатурка облезла, ставни висели криво — как зубы в пьяной драке." first=marao/think
text "Вокруг — сад в человеческий рост, ржавый колодец и тишина." first=marao/think
text "Над дверью — табличка: «Вилла “Забвение”»." first=marao/think
text "— Забвение. Красиво. — Марао хмыкнул. — Раньше тут, наверное, держали нервных. Ну, я как раз нервный. Без штанов." first=marao/smile
text "Он постучал. Тишина." first=marao/think
text "Постучал сильнее. Эхо прошлось по коридору и вернулось. Одинокое." first=marao/think
text "— Хозяева! Пустите путника переночевать! Я не маньяк, у меня даже оружия нет. Кроме книги!" first=marao/smile
ptext "Книга под мышкой возмущённо зашуршала. Но промолчала."
text "Марао дёрнул ручку. Дверь поддалась с противным скрипом, и в лицо ему пахнуло сыростью, плесенью и пылью." first=marao/think
text "— Ну хоть не падалью. — Он шагнул внутрь. — Уже дом." first=marao/smile
action quest.add_tag quest_id=AwakeningQuest tag=villa_reached
action quest.set_status quest_id=AwakeningQuest status=End
action quest.set_status quest_id=OldHouseQuest status=Progress
action quest.send_notification quest_id=OldHouseQuest
notify "Вилла «Забвение» стала твоим домом. Наверное."
switch_scene home_vestibule
end
+3
View File
@@ -2,5 +2,8 @@ scene: start_scene
priority: 0
is_one_run: true
---
# The starter kit of a new game (it used to be hard-coded in items_base's inventory).
action item.add id=food/wolf_meat count=10
action item.add id=resource/branches count=10
switch_scene prolog_alley
end
+1 -1
View File
@@ -1,7 +1,7 @@
scene: town_entry
priority: 40
---
select "" key=town_entry/prompt
select ""
option "Вернуться к дому" key=town_entry/opt_home -> :home
option "На площадь" key=town_entry/opt_square -> :square
@@ -1,7 +1,7 @@
scene: town_outskirts
priority: 10
---
select "" key=town_outskirts/prompt
select ""
option "Вернуться к дому" key=town_outskirts/opt_home -> :home
option "В лес" key=town_outskirts/opt_forest -> :forest
-86
View File
@@ -1,86 +0,0 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://Core/UI/Menu/GameMenu.cs" id="GameMenuScript"]
[node name="GameMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
script = ExtResource("GameMenuScript")
[node name="Bg" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.65)
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -220.0
offset_right = 200.0
offset_bottom = 220.0
grow_horizontal = 2
grow_vertical = 2
[node name="Margin" type="MarginContainer" parent="Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 28
theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 28
theme_override_constants/margin_bottom = 20
[node name="VBox" type="VBoxContainer" parent="Panel/Margin"]
layout_mode = 2
theme_override_constants/separation = 10
[node name="Title" type="Label" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Меню"
horizontal_alignment = 1
theme_override_font_sizes/font_size = 22
[node name="ReturnBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Вернуться"
[node name="SaveBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Сохранить"
[node name="LoadBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Загрузить"
[node name="SettingsBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Настройки"
[node name="Spacer" type="Control" parent="Panel/Margin/VBox"]
layout_mode = 2
custom_minimum_size = Vector2(0, 16)
[node name="MainMenuBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Главное меню"
[node name="ExitBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Выход"
-165
View File
@@ -1,165 +0,0 @@
[gd_scene format=3 uid="uid://hl0j46kh1rmc"]
[ext_resource type="Script" uid="uid://dq5snl02fmi16" path="res://Core/UI/Menu/ModsMenu.cs" id="ModsMenuScript"]
[node name="ModsMenu" type="Control" unique_id=2105177378]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
script = ExtResource("ModsMenuScript")
[node name="Bg" type="ColorRect" parent="." unique_id=950831612]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.98039216)
[node name="Panel" type="Panel" parent="." unique_id=664458435]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.1
anchor_top = 0.15
anchor_right = 0.9
anchor_bottom = 0.85
grow_horizontal = 2
grow_vertical = 2
[node name="Margin" type="MarginContainer" parent="Panel" unique_id=1196300517]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 28
theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 28
theme_override_constants/margin_bottom = 20
[node name="VBox" type="VBoxContainer" parent="Panel/Margin" unique_id=937529024]
layout_mode = 2
theme_override_constants/separation = 14
[node name="Title" type="Label" parent="Panel/Margin/VBox" unique_id=6175375]
layout_mode = 2
theme_override_font_sizes/font_size = 26
text = "Mods"
horizontal_alignment = 1
[node name="HBox" type="HBoxContainer" parent="Panel/Margin/VBox" unique_id=1102798166]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 0
[node name="LeftPanel" type="VBoxContainer" parent="Panel/Margin/VBox/HBox" unique_id=581222858]
layout_mode = 2
size_flags_horizontal = 3
size_flags_stretch_ratio = 2.0
[node name="FilterDisabledCheck" type="CheckButton" parent="Panel/Margin/VBox/HBox/LeftPanel" unique_id=1745806104]
layout_mode = 2
button_pressed = true
text = "Показать отключённые"
[node name="ResetOrderBtn" type="Button" parent="Panel/Margin/VBox/HBox/LeftPanel" unique_id=1745806105]
layout_mode = 2
text = "Сбросить порядок"
[node name="Scroll" type="ScrollContainer" parent="Panel/Margin/VBox/HBox/LeftPanel" unique_id=1745806103]
layout_mode = 2
size_flags_vertical = 3
horizontal_scroll_mode = 0
[node name="ModList" type="VBoxContainer" parent="Panel/Margin/VBox/HBox/LeftPanel/Scroll" unique_id=1970879274]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 2
[node name="RightPanel" type="Control" parent="Panel/Margin/VBox/HBox" unique_id=1554774704]
clip_contents = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_stretch_ratio = 3.0
[node name="Margin" type="MarginContainer" parent="Panel/Margin/VBox/HBox/RightPanel" unique_id=1241124709]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 0
theme_override_constants/margin_bottom = 0
[node name="DetailVBox" type="VBoxContainer" parent="Panel/Margin/VBox/HBox/RightPanel/Margin" unique_id=231694438]
layout_mode = 2
theme_override_constants/separation = 8
[node name="Icon" type="TextureRect" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1418987891]
custom_minimum_size = Vector2(128, 128)
layout_mode = 2
expand_mode = 1
stretch_mode = 5
[node name="NameLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=567148075]
custom_minimum_size = Vector2(1, 0)
layout_mode = 2
theme_override_font_sizes/font_size = 18
autowrap_mode = 3
[node name="StatusLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=673006819]
custom_minimum_size = Vector2(1, 0)
layout_mode = 2
autowrap_mode = 3
[node name="VersionLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=2102288160]
custom_minimum_size = Vector2(1, 0)
layout_mode = 2
theme_override_font_sizes/font_size = 13
autowrap_mode = 3
[node name="AuthorLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1135622511]
custom_minimum_size = Vector2(1, 0)
layout_mode = 2
theme_override_font_sizes/font_size = 13
autowrap_mode = 3
[node name="HSep" type="HSeparator" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=772722202]
layout_mode = 2
[node name="DescLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=270929917]
custom_minimum_size = Vector2(120, 70)
layout_mode = 2
theme_override_font_sizes/font_size = 13
autowrap_mode = 3
[node name="DependsLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1148832840]
custom_minimum_size = Vector2(1, 0)
layout_mode = 2
theme_override_font_sizes/font_size = 13
autowrap_mode = 3
[node name="UsedByLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1295125493]
custom_minimum_size = Vector2(1, 0)
layout_mode = 2
theme_override_font_sizes/font_size = 13
autowrap_mode = 3
[node name="ToggleBtn" type="Button" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=904879993]
layout_mode = 2
size_flags_horizontal = 8
text = "Toggle"
[node name="BackBtn" type="Button" parent="Panel/Margin/VBox" unique_id=1161869583]
layout_mode = 2
size_flags_horizontal = 8
text = "Back"
-71
View File
@@ -1,71 +0,0 @@
[gd_scene load_steps=3 format=3]
[ext_resource type="Script" path="res://Core/UI/Menu/SaveLoadMenu.cs" id="SaveLoadMenuScript"]
[ext_resource type="Script" path="res://Core/UI/Menu/SaveSlotList.cs" id="SaveSlotListScript"]
[node name="SaveLoadMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
script = ExtResource("SaveLoadMenuScript")
[node name="Bg" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.65)
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -420.0
offset_top = -280.0
offset_right = 420.0
offset_bottom = 280.0
grow_horizontal = 2
grow_vertical = 2
[node name="Margin" type="MarginContainer" parent="Panel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 28
theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 28
theme_override_constants/margin_bottom = 20
[node name="VBox" type="VBoxContainer" parent="Panel/Margin"]
layout_mode = 2
theme_override_constants/separation = 14
[node name="Title" type="Label" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Save/Load"
horizontal_alignment = 1
theme_override_font_sizes/font_size = 24
[node name="SlotGrid" type="Control" parent="Panel/Margin/VBox"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
custom_minimum_size = Vector2(0, 380)
script = ExtResource("SaveSlotListScript")
[node name="BackBtn" type="Button" parent="Panel/Margin/VBox"]
layout_mode = 2
text = "Back"
size_flags_horizontal = 8
-89
View File
@@ -1,89 +0,0 @@
[gd_scene format=3 uid="uid://c6kll6en347h1"]
[ext_resource type="Script" uid="uid://bkpfth5x606ge" path="res://Core/UI/Menu/SaveSlotItem.cs" id="SaveSlotItemScript"]
[node name="SaveSlotItem" type="Control" unique_id=2135443384]
custom_minimum_size = Vector2(120, 120)
layout_mode = 3
anchors_preset = 0
script = ExtResource("SaveSlotItemScript")
[node name="Background" type="ColorRect" parent="." unique_id=255218239]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.12, 0.12, 0.12, 0.9)
[node name="ScreenshotRect" type="TextureRect" parent="." unique_id=1290008068]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 0.55
grow_horizontal = 2
grow_vertical = 2
expand_mode = 1
stretch_mode = 5
[node name="DateLabel" type="Label" parent="." unique_id=408317888]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.02
anchor_top = 0.57
anchor_right = 0.98
anchor_bottom = 0.68
grow_horizontal = 2
theme_override_font_sizes/font_size = 12
[node name="SceneLabel" type="Label" parent="." unique_id=1968956898]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.02
anchor_top = 0.70
anchor_right = 0.98
anchor_bottom = 0.80
grow_horizontal = 2
theme_override_font_sizes/font_size = 11
[node name="TimeLabel" type="Label" parent="." unique_id=698436659]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.02
anchor_top = 0.83
anchor_right = 0.56
anchor_bottom = 0.95
grow_horizontal = 2
theme_override_font_sizes/font_size = 10
[node name="StatsLabel" type="Label" parent="." unique_id=400000001]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.58
anchor_top = 0.83
anchor_right = 0.98
anchor_bottom = 0.95
grow_horizontal = 2
theme_override_font_sizes/font_size = 10
horizontal_alignment = 2
[node name="EmptyLabel" type="Label" parent="." unique_id=1262712091]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 14
horizontal_alignment = 1
vertical_alignment = 1
[node name="SlotButton" type="Button" parent="." unique_id=1877010914]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
flat = true
-1
View File
@@ -1 +0,0 @@
uid://c6kll6en347h1
Loaded 100 of 131 files, more files were not shown because too many files have changed in this diff. Show more