Compare commits

...
10 Commits
Author SHA1 Message Date
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
115 changed files with 643 additions and 1980 deletions

No files matched your search

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 371 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: 381 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 932 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 321 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

-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", "Id": "werewolf_girl_1",
"Name": "characters/enemies/werewolf_girl", "Name": "characters/enemies/werewolf_girl",
"Image": "characters/enemies/werewolf_girl_1", "Image": "characters/enemies/werewolf_girl_1",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 25, "Health": 25,
"Defence": 0, "Defence": 0,
"Attack": 8, "Attack": 8,
"Exp": 50, "Exp": 50,
"RecruitmentChance": 50, "RecruitmentChance": 50,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_1",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_1", "Image": "characters/enemies/wolf_1",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_10",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_10", "Image": "characters/enemies/wolf_10",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_2",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_2", "Image": "characters/enemies/wolf_2",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_3",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_3", "Image": "characters/enemies/wolf_3",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_4",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_4", "Image": "characters/enemies/wolf_4",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_5",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_5", "Image": "characters/enemies/wolf_5",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_6",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_6", "Image": "characters/enemies/wolf_6",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_7",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_7", "Image": "characters/enemies/wolf_7",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_8",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_8", "Image": "characters/enemies/wolf_8",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "wolf_9",
"Name": "characters/enemies/wolf", "Name": "characters/enemies/wolf",
"Image": "characters/enemies/wolf_9", "Image": "characters/enemies/wolf_9",
"Behaviour": "base", "Behaviour": "base",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 15, "Health": 15,
@@ -11,10 +13,24 @@
"Attack": 4, "Attack": 4,
"Exp": 5, "Exp": 5,
"RecruitmentChance": 0, "RecruitmentChance": 0,
"Actions": [
"Actions": ["physics/attack", "physics/defence"], "physics/attack",
"physics/defence"
],
"Loot": [ "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", "Id": "Marao",
"Name": "characters/player/marao", "Name": "characters/player/marao",
"Image": "characters/player/marao", "Image": "characters/player/marao",
"Level": 1, "Level": 1,
"Point": 1, "Point": 1,
"Health": 16, "Health": 16,
"Defence": 0, "Defence": 0,
"Attack": 5, "Attack": 5,
"Actions": [
"Actions": ["physics/attack", "physics/defence"] "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", "Id": "slave_master",
"Name": "characters/skills/slave_master_name", "Name": "characters/skills/slave_master_name",
"Description": "characters/skills/slave_master", "Description": "characters/skills/slave_master",
"Image": "characters/skills/slave_master", "Image": "characters/skills/slave_master",
"Type": 1, "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, "visible": true,
"cursor": "PointingHand", "cursor": "PointingHand",
"hitArea": { "hitArea": {
"type": "rect", "type": "polygon",
"x": 0.27239782, "x": 0.2788022,
"y": 0.7092288, "y": 0.7062248,
"width": 0.06675094, "width": 0.091567576,
"height": 0.17319852, "height": 0.17770463,
"radius": 0.05 "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": { "actions": {
"onClick": { "scenario": "scenarios/prolog/morning_cloak.scenario" } "onClick": {
"scenario": "scenarios/prolog/morning_cloak.scenario"
}
} }
}, },
{ {
@@ -29,10 +61,23 @@
"enabled": true, "enabled": true,
"visible": true, "visible": true,
"cursor": "PointingHand", "cursor": "PointingHand",
"hitArea": { "type": "rect", "x": 0.30, "y": 0.66, "width": 0.10, "height": 0.09 }, "hitArea": {
"highlight": { "color": "#9966FF44", "scale": 1, "duration": 0.12 }, "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": { "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", "Id": "food/ration",
"Name": "items/food/ration/name", "Name": "items/food/ration/name",
"Description": "items/food/ration/desc", "Description": "items/food/ration/desc",
@@ -6,4 +9,6 @@
"Sprite": "food/ration", "Sprite": "food/ration",
"ItemType": "Food", "ItemType": "Food",
"ItemAction": "null" "ItemAction": "null"
}
]
} }
+6 -1
View File
@@ -1,4 +1,7 @@
{ {
"Kind": "item",
"Items": [
{
"Id": "food/wolf_meat", "Id": "food/wolf_meat",
"Name": "items/food/wolf_meat/name", "Name": "items/food/wolf_meat/name",
"Description": "items/food/wolf_meat/desc", "Description": "items/food/wolf_meat/desc",
@@ -6,4 +9,6 @@
"Sprite": "food/wolf_meat", "Sprite": "food/wolf_meat",
"ItemType": "Resource,Food", "ItemType": "Resource,Food",
"ItemAction": "null" "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", "Id": "resource/branches",
"Name": "items/resource/branches/name", "Name": "items/resource/branches/name",
"Description": "items/resource/branches/desc", "Description": "items/resource/branches/desc",
@@ -6,4 +9,6 @@
"Sprite": "resource/branches", "Sprite": "resource/branches",
"ItemType": "Resource", "ItemType": "Resource",
"ItemAction": "null" "ItemAction": "null"
}
]
} }
+23 -50
View File
@@ -1,5 +1,5 @@
mod_core_name = Core mod_cthangover_game_name = Cthangover: Story
mod_core_desc = Game core 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/title = * A few missed moments earlier *
prolog/line1 = Being thoroughly wasted, Marao lay peacefully in the alley. 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/choose_path = [What to do?]
prolog/opt_home = Return home prolog/opt_home = Return home
prolog/opt_alley = Check the alley 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/version = v1.0 - 2026.01.29
menu/resume = Resume menu/resume = Resume
menu/saves = Saves menu/saves = Saves
@@ -25,8 +15,6 @@ menu/settings = Settings
menu/exit = Exit menu/exit = Exit
menu/newgame = New Game menu/newgame = New Game
ui/add_to_party = New party member 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/next = End turn
ui/battle/endgame = End ui/battle/endgame = End
ui/battle/endgame/to_main_menu = Main menu ui/battle/endgame/to_main_menu = Main menu
@@ -43,11 +31,13 @@ ui/menu/new_game = New Game
ui/menu/load = Load ui/menu/load = Load
ui/menu/settings = Settings ui/menu/settings = Settings
ui/menu/exit = Exit ui/menu/exit = Exit
quest/prolog = Prologue quest/awakening = Awakening
quest/prolog/0 = It's cold, need to put something on... quest/awakening/0 = Woke up naked in an alley. My head is splitting. Look around — find something to wear.
quest/prolog/1 = I don't remember a damn thing... Need to look around, maybe I can recall something. quest/awakening/1 = Covered myself with a rag and grabbed the book. Then the police showed up. No point arguing — run.
quest/prolog/2 = I found the recipe book I bought the night before. It's getting dark, need to find shelter. 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/prolog/3 = quest3 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/name = Ration
items/food/ration/desc = A daily ration unit for one person items/food/ration/desc = A daily ration unit for one person
items/food/wolf_meat/name = Wolf cutlet items/food/wolf_meat/name = Wolf cutlet
@@ -67,37 +57,20 @@ characters/action/stun/name = Stun
characters/action/stun/description = Stuns the target for 2 turns characters/action/stun/description = Stuns the target for 2 turns
characters/skills/slave_master_name = Slave Trader 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. 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 characters/skills/effects/recruit = recruitment chance
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
launcher/title = Settings launcher/title = Settings
launcher/play = Play launcher/play = Play
launcher/exit = Exit 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 -50
View File
@@ -1,5 +1,5 @@
mod_core_name = Ядро mod_cthangover_game_name = Cthangover: сюжет
mod_core_desc = Ядро игры mod_cthangover_game_desc = Сюжетный контент игры Cthangover: сцены, сценарии, персонажи, предметы, квесты, фоны и коллекция основной игры.
prolog/title = * Несколькими упущенными моментами ранее * prolog/title = * Несколькими упущенными моментами ранее *
prolog/line1 = Будучи изрядно набуханным, Марао мирно лежал в переулке. prolog/line1 = Будучи изрядно набуханным, Марао мирно лежал в переулке.
@@ -8,16 +8,6 @@ prolog/line4 = Во рту было нассано кошками, голова
prolog/choose_path = [Что делать?] prolog/choose_path = [Что делать?]
prolog/opt_home = Вернуться к дому prolog/opt_home = Вернуться к дому
prolog/opt_alley = Проверить переулок 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/version = v1.0 - 2026.01.29
menu/resume = Вернуться menu/resume = Вернуться
menu/saves = Сохранения menu/saves = Сохранения
@@ -25,8 +15,6 @@ menu/settings = Настройки
menu/exit = Выход menu/exit = Выход
menu/newgame = Новая игра menu/newgame = Новая игра
ui/add_to_party = Новый член отряда ui/add_to_party = Новый член отряда
ui/journal/new = Новая запись в журнале
ui/journal/updated = Задание обновлено
ui/battle/next = Конец хода ui/battle/next = Конец хода
ui/battle/endgame = Конец ui/battle/endgame = Конец
ui/battle/endgame/to_main_menu = Главное меню ui/battle/endgame/to_main_menu = Главное меню
@@ -43,11 +31,13 @@ ui/menu/new_game = Новая игра
ui/menu/load = Загрузить ui/menu/load = Загрузить
ui/menu/settings = Настройки ui/menu/settings = Настройки
ui/menu/exit = Выход ui/menu/exit = Выход
quest/prolog = Пролог quest/awakening = Пробуждение
quest/prolog/0 = Холодно, нужно во что-то одеться... quest/awakening/0 = Очнулся голым в переулке. Голова раскалывается. Надо осмотреться — хоть во что-то одеться.
quest/prolog/1 = Ничерта не помню... Нужно осмотреться, вдруг я смогу что нибудь вспомнить. quest/awakening/1 = Прикрылся тряпкой, забрал книгу. И тут же полиция. Спорить бесполезно — бежать.
quest/prolog/2 = Я нашёл книгу рецептов, которую купил на кануне. Уже темнеет нужно найти укрытие. quest/awakening/2 = Свистки стихли. Я на кладбище. Передохнуть и решить, что делать с книгой.
quest/prolog/3 = квест3 quest/awakening/3 = Прочитал вслух. Кажется, я что-то натворил. Вот только что именно?
quest/awakening/4 = Книга заговорила. Зовёт себя Аль Азифом. Пора убираться отсюда.
quest/awakening/5 = Иду вдоль реки к вилле «Забвение». Где-нибудь там пережду.
items/food/ration/name = Рацион items/food/ration/name = Рацион
items/food/ration/desc = Единица суточного рациона для одного человека items/food/ration/desc = Единица суточного рациона для одного человека
items/food/wolf_meat/name = Волчья вырезка items/food/wolf_meat/name = Волчья вырезка
@@ -67,37 +57,20 @@ characters/action/stun/name = Ошеломление
characters/action/stun/description = Ошеломляет цель на 2 хода characters/action/stun/description = Ошеломляет цель на 2 хода
characters/skills/slave_master_name = Работорговец characters/skills/slave_master_name = Работорговец
characters/skills/slave_master = Даёт возможность взять в рабство поверженного врага с базовым шансом в 10%. Содержание раба ложится на твои плечи. characters/skills/slave_master = Даёт возможность взять в рабство поверженного врага с базовым шансом в 10%. Содержание раба ложится на твои плечи.
settings/back = Назад characters/skills/effects/recruit = шанс рекрутинга
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 = Сбросить настройки
launcher/title = Настройки launcher/title = Настройки
launcher/play = Играть launcher/play = Играть
launcher/exit = Выход 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_enter = Enter the house
home_outside/opt_town = To the town home_outside/opt_town = To the town
home_outside/opt_forest = To the forest home_outside/opt_forest = To the forest
town_entry/prompt =
town_entry/opt_home = Return home town_entry/opt_home = Return home
town_entry/opt_square = To the square town_entry/opt_square = To the square
town_outskirts/prompt =
town_outskirts/opt_home = Return home town_outskirts/opt_home = Return home
town_outskirts/opt_forest = To the forest town_outskirts/opt_forest = To the forest
vestibule/diner/prompt =
vestibule/diner/opt_workroom = To the workroom vestibule/diner/opt_workroom = To the workroom
vestibule/diner/opt_dinerroom = To the dining room vestibule/diner/opt_dinerroom = To the dining room
vestibule/diner/opt_bedroom = To the bedroom 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 = Выйти
+6 -57
View File
@@ -1,60 +1,9 @@
{ {
"id": "core", "id": "cthangover_game",
"name": "Core", "name": "Cthangover: Story",
"version": "1.0.0", "version": "2.0.0",
"author": "ct", "author": "ct",
"description": "Game core", "description": "Story content of the Cthangover game: scenes, scenarios, characters, items, quests, backgrounds and the main game collection.",
"sources": [ "category": "story",
"src/*.cs" "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"]
],
"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
}
]
} }
+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": [ "Items": [
{ {
"Id": "PrologQuest", "Id": "AwakeningQuest",
"Name": "quest/prolog", "Name": "quest/awakening",
"StatusToDescription": { "StatusToDescription": {
"0": "quest/prolog/0", "0": "quest/awakening/0",
"1": "quest/prolog/1", "1": "quest/awakening/1",
"2": "quest/prolog/2" "2": "quest/awakening/2",
"3": "quest/awakening/3",
"4": "quest/awakening/4",
"5": "quest/awakening/5"
} }
}, },
{ {
"Id": "NakedMorningQuest", "Id": "OldHouseQuest",
"Name": "quest/naked_morning" "Name": "quest/old_house"
} }
] ]
} }
+1 -1
View File
@@ -1,7 +1,7 @@
scene: home_kitchen scene: home_kitchen
priority: 10 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 select "Комната оборудованная под кухню" key=rooms/kitchen/prompt
option "Выйти" key=rooms/kitchen/opt_exit -> :exit option "Выйти" key=rooms/kitchen/opt_exit -> :exit
@@ -2,7 +2,7 @@ scene: home_livingroom
priority: 10 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"}] 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 option "Выйти" key=rooms/livingroom/opt_exit -> :exit
:exit :exit
+2 -2
View File
@@ -1,8 +1,8 @@
scene: home_outside scene: home_outside
priority: 10 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"}] 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 "" key=home_outside/prompt select ""
option "Зайти в дом" key=home_outside/opt_enter -> :enter option "Зайти в дом" key=home_outside/opt_enter -> :enter
option "В город" key=home_outside/opt_town -> :town option "В город" key=home_outside/opt_town -> :town
option "В лес" key=home_outside/opt_forest -> :forest option "В лес" key=home_outside/opt_forest -> :forest
@@ -1,8 +1,8 @@
scene: home_vestibule scene: home_vestibule
priority: 40 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"}] 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 "" key=vestibule/diner/prompt select ""
option "В рабочую комнату" key=vestibule/diner/opt_workroom -> :workroom option "В рабочую комнату" key=vestibule/diner/opt_workroom -> :workroom
option "В обеденную комнату" key=vestibule/diner/opt_dinerroom -> :kitchen option "В обеденную комнату" key=vestibule/diner/opt_dinerroom -> :kitchen
option "В спальню" key=vestibule/diner/opt_bedroom -> :bedroom option "В спальню" key=vestibule/diner/opt_bedroom -> :bedroom
@@ -1,7 +1,7 @@
scene: home_workroom scene: home_workroom
priority: 10 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 select "Рабочий кабинет, тут тебя никто не будет отвлекать от исследований" key=rooms/workroom/prompt
option "Выйти" key=rooms/workroom/opt_exit -> :exit option "Выйти" key=rooms/workroom/opt_exit -> :exit
@@ -3,6 +3,7 @@ priority: 10
is_one_run: true is_one_run: true
--- ---
background prolog/00025-165590409 background prolog/00025-165590409
title "Глава 3. Кладбище святого Угробья"
text "Могильные плиты тянулись вдаль, серые и мрачные. Старые дубы качали голыми ветвями. Где-то каркала ворона." text "Могильные плиты тянулись вдаль, серые и мрачные. Старые дубы качали голыми ветвями. Где-то каркала ворона."
text "Свистки стихли — полицейские потеряли его из виду." first=marao/think text "Свистки стихли — полицейские потеряли его из виду." first=marao/think
@@ -12,5 +13,6 @@ text "— Ну вот. Организм. Раньше я мог пол-литр
text "Он покосился на книгу, которая всё ещё была у него под мышкой." first=marao/think text "Он покосился на книгу, которая всё ещё была у него под мышкой." first=marao/think
text "— Хм. А чего бы и нет? Всё равно время есть." first=marao/smile text "— Хм. А чего бы и нет? Всё равно время есть." first=marao/smile
action quest.set_data_status quest_id=AwakeningQuest level=2
notify "За склепом можно уединиться." notify "За склепом можно уединиться."
end end
+4 -2
View File
@@ -1,5 +1,6 @@
# Клик по книге — Аль-Азиф просыпается (канон: глава 4). # Клик по книге — Аль-Азиф просыпается (канон: глава 4).
# Файл без шапки: InteractiveManager отрезает метаданные, играет только тело. # Файл без шапки: InteractiveManager отрезает метаданные, играет только тело.
title "Глава 4. Аль Азиф просыпается"
text "Марао плюнул и присел, сложив книгу стопкой страниц. Поднёс к пятой точке." first=marao/think text "Марао плюнул и присел, сложив книгу стопкой страниц. Поднёс к пятой точке." first=marao/think
ptext "Книга заорала." ptext "Книга заорала."
ptext "— НЕ СМЕЙ!" ptext "— НЕ СМЕЙ!"
@@ -28,8 +29,9 @@ ptext "Вдалеке снова засвистели полицейские с
sound locations/prolog/police sound locations/prolog/police
text "Марао встал, накинул красную тряпку и сунул книгу под мышку." first=marao/smile text "Марао встал, накинул красную тряпку и сунул книгу под мышку." first=marao/smile
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 interactive_remove book_wipe
switch_scene prolog_river
end end
@@ -1,6 +1,6 @@
scene: prolog_graveyard scene: prolog_graveyard
priority: 15 priority: 15
condition: NakedMorningQuest.hasTag("graveyard_read") && NakedMorningQuest.notHasTag("azif_awake") condition: AwakeningQuest.hasTag("graveyard_read") && AwakeningQuest.notHasTag("azif_awake")
--- ---
# Прочитано, но Аль-Азиф ещё не проснулся: держим хотспот книги на сцене. # Прочитано, но Аль-Азиф ещё не проснулся: держим хотспот книги на сцене.
interactive_add book_wipe interactive_add book_wipe
@@ -1,6 +1,6 @@
scene: prolog_graveyard scene: prolog_graveyard
priority: 15 priority: 15
condition: NakedMorningQuest.notHasTag("graveyard_read") condition: AwakeningQuest.notHasTag("graveyard_read")
--- ---
# Книга ещё не прочитана вслух: держим хотспот «за склепом» на сцене. # Книга ещё не прочитана вслух: держим хотспот «за склепом» на сцене.
# Идемпотентно при каждом входе (Add по тому же id возвращает существующий объект). # Идемпотентно при каждом входе (Add по тому же id возвращает существующий объект).
+2 -1
View File
@@ -19,7 +19,8 @@ text "Лопухов не было. Только крапива да стары
text "Он потянул страницу за уголок — ноль реакции. Дёрнул сильнее: бумага была твёрдой, как металл, но гибкой. Он рвал и так, и сяк, даже ногтями пытался. Бесполезно." first=marao/sad text "Он потянул страницу за уголок — ноль реакции. Дёрнул сильнее: бумага была твёрдой, как металл, но гибкой. Он рвал и так, и сяк, даже ногтями пытался. Бесполезно." first=marao/sad
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_remove crypt_spot
interactive_add book_wipe interactive_add book_wipe
end end
+1 -1
View File
@@ -6,7 +6,7 @@ text "— Какая-то мутная хрень. Откуда она у мен
text "В голове мелькнул смутный образ: он в какой-то лавке протягивает монеты и берёт книгу. Но когда? Где? Почему? Больше ничего." first=marao/think text "В голове мелькнул смутный образ: он в какой-то лавке протягивает монеты и берёт книгу. Но когда? Где? Почему? Больше ничего." first=marao/think
text "Марао пожал плечами и сунул книгу под мышку." first=marao/smile text "Марао пожал плечами и сунул книгу под мышку." first=marao/smile
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 interactive_remove book_ground
switch_scene prolog_alley switch_scene prolog_alley
end end
+1 -1
View File
@@ -4,7 +4,7 @@ text "Он сделал шаг, другой, придерживаясь за с
text "Выцветшая, с бахромой по краям. Когда-то это было что-то вроде плаща или шали. На ткани угадывался вышитый крест." first=marao/think text "Выцветшая, с бахромой по краям. Когда-то это было что-то вроде плаща или шали. На ткани угадывался вышитый крест." first=marao/think
text "Марао развернул её, оценил размер и намотал на плечи, как римскую тогу. Края едва доходили до колен." first=marao/smile text "Марао развернул её, оценил размер и намотал на плечи, как римскую тогу. Края едва доходили до колен." first=marao/smile
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 interactive_remove cloak_ground
switch_scene prolog_alley switch_scene prolog_alley
end end
@@ -1,6 +1,6 @@
scene: prolog_alley scene: prolog_alley
priority: 15 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 возвращает существующий). # Не is_one_run — идемпотентно пересоздаёт объекты при каждом входе (Add по тому же id возвращает существующий).
+2 -1
View File
@@ -1,11 +1,12 @@
scene: prolog_alley scene: prolog_alley
priority: 20 priority: 20
is_one_run: true 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 sound locations/prolog/police
delay 0.7 hidden=true delay 0.7 hidden=true
title "Глава 2. Погоня" title "Глава 2. Погоня"
action quest.set_data_status quest_id=AwakeningQuest level=1
ptext "Из подворотни вышли трое полицейских в синих мундирах, с медными пуговицами, начищенными до блеска." ptext "Из подворотни вышли трое полицейских в синих мундирах, с медными пуговицами, начищенными до блеска."
ptext "— ЭЙ, ТЫ! СТОЯТЬ!" ptext "— ЭЙ, ТЫ! СТОЯТЬ!"
@@ -1,6 +1,6 @@
scene: prolog_alley scene: prolog_alley
priority: 15 priority: 15
condition: NakedMorningQuest.hasTag("cloak_taken") && NakedMorningQuest.notHasTag("book_taken") condition: AwakeningQuest.hasTag("cloak_taken") && AwakeningQuest.notHasTag("book_taken")
--- ---
# Тряпка взята, книга ещё нет: возвращаем книгу после перезагрузки сцены. # Тряпка взята, книга ещё нет: возвращаем книгу после перезагрузки сцены.
interactive_add book_ground interactive_add book_ground
@@ -1,6 +1,6 @@
scene: prolog_alley scene: prolog_alley
priority: 15 priority: 15
condition: NakedMorningQuest.hasTag("book_taken") && NakedMorningQuest.notHasTag("cloak_taken") condition: AwakeningQuest.hasTag("book_taken") && AwakeningQuest.notHasTag("cloak_taken")
--- ---
# Книга взята, тряпка ещё нет: возвращаем тряпку после перезагрузки сцены. # Книга взята, тряпка ещё нет: возвращаем тряпку после перезагрузки сцены.
interactive_add cloak_ground interactive_add cloak_ground
+2
View File
@@ -13,5 +13,7 @@ text "Холодный воздух пробрал до костей. Марао
text "— Да что ж такое! Где мои штаны?!" first=marao/sad text "— Да что ж такое! Где мои штаны?!" first=marao/sad
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 "Осмотрись. В переулке что-то лежит." notify "Осмотрись. В переулке что-то лежит."
end 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
+1 -1
View File
@@ -1,7 +1,7 @@
scene: town_entry scene: town_entry
priority: 40 priority: 40
--- ---
select "" key=town_entry/prompt select ""
option "Вернуться к дому" key=town_entry/opt_home -> :home option "Вернуться к дому" key=town_entry/opt_home -> :home
option "На площадь" key=town_entry/opt_square -> :square option "На площадь" key=town_entry/opt_square -> :square
@@ -1,7 +1,7 @@
scene: town_outskirts scene: town_outskirts
priority: 10 priority: 10
--- ---
select "" key=town_outskirts/prompt select ""
option "Вернуться к дому" key=town_outskirts/opt_home -> :home option "Вернуться к дому" key=town_outskirts/opt_home -> :home
option "В лес" key=town_outskirts/opt_forest -> :forest 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
-370
View File
@@ -1,370 +0,0 @@
[gd_scene format=3 uid="uid://gqdtni3liast"]
[ext_resource type="Script" uid="uid://bjgxbheqsar5r" path="res://Core/UI/Menu/SettingsMenu.cs" id="SettingsMenuScript"]
[node name="SettingsMenu" type="Control" unique_id=894644832]
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("SettingsMenuScript")
[node name="Bg" type="ColorRect" parent="." unique_id=21945756]
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, 1)
[node name="Panel" type="Panel" parent="." unique_id=1554260654]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.1
anchor_top = 0.1
anchor_right = 0.9
anchor_bottom = 0.9
grow_horizontal = 2
grow_vertical = 2
[node name="Margin" type="MarginContainer" parent="Panel" unique_id=1929120286]
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=150548585]
layout_mode = 2
theme_override_constants/separation = 14
[node name="Title" type="Label" parent="Panel/Margin/VBox" unique_id=86160906]
layout_mode = 2
theme_override_font_sizes/font_size = 26
text = "Settings"
horizontal_alignment = 1
[node name="Tabs" type="TabContainer" parent="Panel/Margin/VBox" unique_id=1524671125]
layout_mode = 2
size_flags_vertical = 3
tab_alignment = 1
current_tab = 0
[node name="GeneralMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"]
layout_mode = 2
metadata/_tab_index = 0
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 12
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 12
[node name="General" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/GeneralMargin" unique_id=2028800899]
layout_mode = 2
theme_override_constants/separation = 12
[node name="Spacer" type="Control" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General" unique_id=1203872148]
custom_minimum_size = Vector2(0, 12)
layout_mode = 2
[node name="LangBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General" unique_id=684741721]
layout_mode = 2
theme_override_constants/separation = 16
[node name="LangLabel" type="Label" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General/LangBox" unique_id=1707108944]
layout_mode = 2
size_flags_horizontal = 3
text = "Language"
[node name="LangSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General/LangBox" unique_id=2037857401]
layout_mode = 2
size_flags_horizontal = 3
[node name="AudioMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"]
layout_mode = 2
visible = false
metadata/_tab_index = 1
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 12
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 12
[node name="Audio" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin" unique_id=564523157]
layout_mode = 2
theme_override_constants/separation = 4
[node name="SoundsBox" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=508426867]
layout_mode = 2
theme_override_constants/separation = 4
[node name="ToggleRow" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox" unique_id=274422939]
layout_mode = 2
theme_override_constants/separation = 12
[node name="SoundsLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/ToggleRow" unique_id=1483011032]
layout_mode = 2
size_flags_horizontal = 3
text = "Sounds"
[node name="SoundsToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/ToggleRow" unique_id=126270437]
layout_mode = 2
[node name="VolumeRow" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox" unique_id=585263148]
layout_mode = 2
theme_override_constants/separation = 12
[node name="SoundsVolumeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/VolumeRow" unique_id=1327120426]
layout_mode = 2
text = "Volume"
[node name="SoundsVolume" type="HSlider" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/VolumeRow" unique_id=2061615116]
layout_mode = 2
size_flags_horizontal = 3
value = 100.0
[node name="SoundsVolumeValue" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/VolumeRow" unique_id=1079108664]
custom_minimum_size = Vector2(48, 0)
layout_mode = 2
text = "100%"
horizontal_alignment = 2
[node name="Sep" type="HSeparator" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=988886928]
custom_minimum_size = Vector2(0, 8)
layout_mode = 2
[node name="MusicBox" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=1316259016]
layout_mode = 2
theme_override_constants/separation = 4
[node name="ToggleRow2" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox" unique_id=553618696]
layout_mode = 2
theme_override_constants/separation = 12
[node name="MusicLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/ToggleRow2" unique_id=1559600377]
layout_mode = 2
size_flags_horizontal = 3
text = "Music"
[node name="MusicToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/ToggleRow2" unique_id=901979875]
layout_mode = 2
[node name="VolumeRow2" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox" unique_id=1411284591]
layout_mode = 2
theme_override_constants/separation = 12
[node name="MusicVolumeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/VolumeRow2" unique_id=1952498749]
layout_mode = 2
text = "Volume"
[node name="MusicVolume" type="HSlider" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/VolumeRow2" unique_id=504218348]
layout_mode = 2
size_flags_horizontal = 3
value = 5.0
[node name="MusicVolumeValue" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/VolumeRow2" unique_id=1866810087]
custom_minimum_size = Vector2(48, 0)
layout_mode = 2
text = "5%"
horizontal_alignment = 2
[node name="Sep2" type="HSeparator" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=1486966851]
custom_minimum_size = Vector2(0, 8)
layout_mode = 2
[node name="AmbientBox" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=127969403]
layout_mode = 2
theme_override_constants/separation = 4
[node name="ToggleRow3" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox" unique_id=338401886]
layout_mode = 2
theme_override_constants/separation = 12
[node name="AmbientLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/ToggleRow3" unique_id=872436692]
layout_mode = 2
size_flags_horizontal = 3
text = "Ambient"
[node name="AmbientToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/ToggleRow3" unique_id=1160929014]
layout_mode = 2
[node name="VolumeRow3" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox" unique_id=1139865718]
layout_mode = 2
theme_override_constants/separation = 12
[node name="AmbientVolumeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/VolumeRow3" unique_id=1610793395]
layout_mode = 2
text = "Volume"
[node name="AmbientVolume" type="HSlider" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/VolumeRow3" unique_id=1343104331]
layout_mode = 2
size_flags_horizontal = 3
value = 5.0
[node name="AmbientVolumeValue" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/VolumeRow3" unique_id=1909728919]
custom_minimum_size = Vector2(48, 0)
layout_mode = 2
text = "5%"
horizontal_alignment = 2
[node name="DisplayMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"]
layout_mode = 2
visible = false
metadata/_tab_index = 2
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 12
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 12
[node name="Display" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin" unique_id=1371435162]
layout_mode = 2
theme_override_constants/separation = 10
[node name="Spacer2" type="Control" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=270871165]
custom_minimum_size = Vector2(0, 12)
layout_mode = 2
[node name="ModeBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=455596205]
layout_mode = 2
theme_override_constants/separation = 16
[node name="ModeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ModeBox" unique_id=1346202262]
layout_mode = 2
size_flags_horizontal = 3
text = "Window Mode"
[node name="ModeSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ModeBox" unique_id=631713497]
layout_mode = 2
size_flags_horizontal = 3
[node name="ResBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=603217917]
layout_mode = 2
theme_override_constants/separation = 16
[node name="ResLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ResBox" unique_id=1714673968]
layout_mode = 2
size_flags_horizontal = 3
text = "Resolution"
[node name="ResSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ResBox" unique_id=651322592]
layout_mode = 2
size_flags_horizontal = 3
[node name="MonitorBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=284981749]
layout_mode = 2
theme_override_constants/separation = 16
[node name="MonitorLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/MonitorBox" unique_id=1905911340]
layout_mode = 2
size_flags_horizontal = 3
text = "Monitor"
[node name="MonitorSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/MonitorBox" unique_id=1334336966]
layout_mode = 2
size_flags_horizontal = 3
[node name="ScaleBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=930383631]
layout_mode = 2
theme_override_constants/separation = 16
[node name="ScaleLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ScaleBox" unique_id=1924008447]
layout_mode = 2
size_flags_horizontal = 3
text = "Scale"
[node name="ScaleSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ScaleBox" unique_id=2096132155]
layout_mode = 2
size_flags_horizontal = 3
[node name="VSyncRow" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=348516587]
layout_mode = 2
theme_override_constants/separation = 12
[node name="VSyncLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/VSyncRow" unique_id=1204827790]
layout_mode = 2
size_flags_horizontal = 3
text = "VSync"
[node name="VSyncToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/VSyncRow" unique_id=1909935663]
layout_mode = 2
[node name="ModSettingsMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"]
layout_mode = 2
visible = false
metadata/_tab_index = 3
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 12
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 12
[node name="ModSettings" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin" unique_id=2038671463]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 12
[node name="LeftPanel" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings" unique_id=1856089080]
custom_minimum_size = Vector2(240, 0)
layout_mode = 2
theme_override_constants/separation = 6
[node name="ModsTitle" type="Label" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/LeftPanel" unique_id=1639725410]
layout_mode = 2
theme_override_font_sizes/font_size = 15
text = "Mods"
horizontal_alignment = 1
[node name="ModScroll" type="ScrollContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/LeftPanel" unique_id=1412822434]
layout_mode = 2
size_flags_vertical = 3
horizontal_scroll_mode = 0
[node name="ModList" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/LeftPanel/ModScroll" unique_id=543902025]
layout_mode = 2
[node name="Sep" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings" unique_id=950619413]
custom_minimum_size = Vector2(10, 0)
layout_mode = 2
[node name="RightPanel" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings" unique_id=272738827]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="TopBar" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel" unique_id=678746437]
layout_mode = 2
theme_override_constants/separation = 12
[node name="SelectedModName" type="Label" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/TopBar" unique_id=393931159]
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 16
[node name="ResetBtn" type="Button" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/TopBar" unique_id=531057889]
layout_mode = 2
text = "Reset"
[node name="SettingsScroll" type="ScrollContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel" unique_id=674333894]
layout_mode = 2
size_flags_vertical = 3
horizontal_scroll_mode = 0
[node name="SettingsContainer" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/SettingsScroll" unique_id=1664189823]
layout_mode = 2
theme_override_constants/separation = 6
[node name="Placeholder" type="Label" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/SettingsScroll/SettingsContainer" unique_id=1501445323]
layout_mode = 2
text = "No mod settings available"
horizontal_alignment = 1
[node name="BackBtn" type="Button" parent="Panel/Margin/VBox" unique_id=249196016]
layout_mode = 2
size_flags_horizontal = 8
text = "Back"
+6
View File
@@ -0,0 +1,6 @@
{
"name": "prolog_river",
"defaultBackground": "prolog/river",
"defaultAmbient": "locations/home/outside/river",
"defaultScenario": "scenarios/prolog/river_arrival.scenario"
}
+6
View File
@@ -0,0 +1,6 @@
{
"name": "prolog_villa",
"defaultBackground": "prolog/villa",
"defaultAmbient": "locations/home/outside/river",
"defaultScenario": "scenarios/prolog/villa_arrival.scenario"
}
-26
View File
@@ -1,26 +0,0 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://Core/UI/Dialog/AnswerBox.cs" id="1_answerbox"]
[ext_resource type="PackedScene" path="res://scenes/ui/answer_item.tscn" id="2_answeritem"]
[node name="AnswerBox" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_answerbox")
itemScene = ExtResource("2_answeritem")
content = NodePath("Content")
[node name="Content" type="VBoxContainer" parent="."]
layout_mode = 1
anchor_left = 0.6
anchor_top = 0.35
anchor_right = 0.95
anchor_bottom = 0.65
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
alignment = 1
-30
View File
@@ -1,30 +0,0 @@
[gd_scene format=3 uid="uid://bv80qy227xxee"]
[ext_resource type="Script" uid="uid://dbrnsck0vtfb3" path="res://Core/UI/Dialog/AnswerItem.cs" id="1_answeritem"]
[node name="AnswerItem" type="Control" unique_id=1180917887]
custom_minimum_size = Vector2(0, 50)
layout_mode = 3
anchors_preset = 0
size_flags_horizontal = 3
size_flags_vertical = 0
script = ExtResource("1_answeritem")
[node name="Button" type="Button" parent="." unique_id=2087954476]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="TextLabel" type="Label" parent="Button" unique_id=1302827224]
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 = 22
horizontal_alignment = 1
vertical_alignment = 1
-1
View File
@@ -1 +0,0 @@
uid://bv80qy227xxee
@@ -1,41 +0,0 @@
[gd_scene format=3 uid="uid://bb36m1yaqwt8k"]
[ext_resource type="Script" uid="uid://de8plnw63lfno" path="res://Core/UI/CharacterPanel/ActionCardBehaviour.cs" id="1_script"]
[node name="ActionCard" type="Control" unique_id=576160337]
custom_minimum_size = Vector2(300, 100)
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("1_script")
[node name="Icon" type="TextureRect" parent="." unique_id=910618115]
custom_minimum_size = Vector2(50, 100)
layout_mode = 1
anchors_preset = -1
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 4.0
offset_top = -14.0
offset_right = 32.0
offset_bottom = 14.0
grow_vertical = 2
mouse_filter = 2
expand_mode = 2
stretch_mode = 5
[node name="NameLabel" type="Label" parent="." unique_id=1356044091]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 110.0
offset_right = -4.0
grow_horizontal = 2
grow_vertical = 2
text = "Action"
vertical_alignment = 1
@@ -1,18 +0,0 @@
[gd_scene format=3 uid="uid://cgjc22lv4w4s5"]
[ext_resource type="Script" uid="uid://cwois2ld152sn" path="res://Core/UI/CharacterPanel/ActionPoolBehaviour.cs" id="1_script"]
[node name="ActionPool" type="Control" unique_id=1854115493]
layout_mode = 3
anchors_preset = 0
mouse_filter = 1
script = ExtResource("1_script")
[node name="Container" type="VBoxContainer" parent="." unique_id=1312152261]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 4
@@ -1,24 +0,0 @@
[gd_scene format=3 uid="uid://b00u0cgcip134"]
[ext_resource type="Script" uid="uid://bfawx4g6dyrjo" path="res://Core/UI/CharacterPanel/ActionSlotBehaviour.cs" id="1_script"]
[node name="ActionSlot" type="Control" unique_id=1066231859]
custom_minimum_size = Vector2(300, 100)
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("1_script")
[node name="Bg" type="ColorRect" parent="." unique_id=1234999814]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0.1, 0.1, 0.15, 0.5)
@@ -1,56 +0,0 @@
[gd_scene format=3 uid="uid://67q36mh0x454"]
[ext_resource type="Script" uid="uid://dkioyb2bx5e10" path="res://Core/UI/CharacterPanel/CharacterCardBehaviour.cs" id="1_script"]
[ext_resource type="PackedScene" uid="uid://b00u0cgcip134" path="res://scenes/ui/character_panel/action_slot.tscn" id="2_slot"]
[node name="CharacterCard" type="Control" unique_id=161727493]
custom_minimum_size = Vector2(250, 370)
layout_mode = 3
anchors_preset = 10
anchor_right = 1.0
grow_horizontal = 2
mouse_filter = 1
script = ExtResource("1_script")
[node name="Margin" type="MarginContainer" parent="." unique_id=540453317]
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 = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
[node name="VBox" type="VBoxContainer" parent="Margin" unique_id=1477867509]
layout_mode = 2
theme_override_constants/separation = 6
[node name="Header" type="HBoxContainer" parent="Margin/VBox" unique_id=410961700]
layout_mode = 2
[node name="Portrait" type="TextureRect" parent="Margin/VBox/Header" unique_id=427546847]
custom_minimum_size = Vector2(60, 60)
layout_mode = 2
expand_mode = 2
stretch_mode = 5
[node name="NameLabel" type="Label" parent="Margin/VBox/Header" unique_id=604539797]
layout_mode = 2
size_flags_horizontal = 3
text = "Character Name"
[node name="Slots" type="VBoxContainer" parent="Margin/VBox" unique_id=2066648023]
layout_mode = 2
theme_override_constants/separation = 4
[node name="Slot0" parent="Margin/VBox/Slots" unique_id=592809057 instance=ExtResource("2_slot")]
layout_mode = 2
[node name="Slot1" parent="Margin/VBox/Slots" unique_id=424670098 instance=ExtResource("2_slot")]
layout_mode = 2
[node name="Slot2" parent="Margin/VBox/Slots" unique_id=1790943736 instance=ExtResource("2_slot")]
layout_mode = 2
@@ -1,120 +0,0 @@
[gd_scene format=3 uid="uid://boo65s3v3vn2c"]
[ext_resource type="Script" uid="uid://b60voxni8jut4" path="res://Core/UI/CharacterPanel/CharacterPanelBehaviour.cs" id="1_script"]
[ext_resource type="PackedScene" uid="uid://cgjc22lv4w4s5" path="res://scenes/ui/character_panel/action_pool.tscn" id="2_pool"]
[node name="CharacterPanel" type="Control" unique_id=2003172289]
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("1_script")
[node name="Bg" type="ColorRect" parent="." unique_id=538790315]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0.05, 0.05, 0.1, 0.9)
[node name="LeftPanel" type="Panel" parent="." unique_id=582936654]
layout_mode = 1
anchors_preset = -1
anchor_right = 0.68700004
anchor_bottom = 1.0
offset_right = 0.95996094
size_flags_horizontal = 3
[node name="LeftVBox" type="VBoxContainer" parent="LeftPanel" unique_id=927965975]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Title" type="Label" parent="LeftPanel/LeftVBox" unique_id=1322979441]
layout_mode = 2
theme_override_font_sizes/font_size = 18
text = "ui/character_panel/title"
horizontal_alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="LeftPanel/LeftVBox" unique_id=649910277]
layout_mode = 2
size_flags_vertical = 3
horizontal_scroll_mode = 0
[node name="CharactersContainer" type="VBoxContainer" parent="LeftPanel/LeftVBox/ScrollContainer" unique_id=15539617]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10
[node name="RightPanel" type="Panel" parent="." unique_id=94541911]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.69500005
anchor_right = 1.0
anchor_bottom = 0.91800004
offset_left = 0.5998535
offset_bottom = -0.032043457
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
[node name="ActionPoolScroll" type="ScrollContainer" parent="RightPanel" unique_id=1837472944]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
horizontal_scroll_mode = 0
[node name="ActionPool" parent="RightPanel/ActionPoolScroll" unique_id=2092045870 instance=ExtResource("2_pool")]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="CloseButton" type="Button" parent="." unique_id=140259217]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.697
anchor_top = 0.94100004
anchor_right = 0.85
anchor_bottom = 0.9850001
offset_left = -0.23999023
offset_top = 0.4159546
offset_bottom = 0.35992432
grow_horizontal = 0
grow_vertical = 0
text = "ui/character_panel/close"
[node name="ResetButton" type="Button" parent="." unique_id=73911922]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.855
anchor_top = 0.94100004
anchor_right = 0.99300003
anchor_bottom = 0.9850001
offset_left = 0.39990234
offset_top = 0.4159546
offset_right = 0.4399414
offset_bottom = 0.35992432
grow_horizontal = 0
grow_vertical = 0
text = "ui/character_panel/reset"
[node name="DragLayer" type="Control" parent="." unique_id=1296303852]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
-107
View File
@@ -1,107 +0,0 @@
[gd_scene format=3 uid="uid://b8vnxfoixyust"]
[ext_resource type="Script" uid="uid://b41bti3wq4m88" path="res://Core/UI/Dialog/DialogBox.cs" id="1_dialogbox"]
[ext_resource type="PackedScene" path="res://scenes/ui/answer_box.tscn" id="2_answerbox"]
[node name="DialogBox" type="Control" unique_id=702809053 node_paths=PackedStringArray("textField", "titleField", "titleBody", "firstAvatar", "secondAvatar")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_dialogbox")
answerBoxScene = ExtResource("2_answerbox")
textField = NodePath("DialogBody/TextField")
titleField = NodePath("TitleBody/TitleField")
titleBody = NodePath("TitleBody")
firstAvatar = NodePath("FirstAvatar")
secondAvatar = NodePath("SecondAvatar")
[node name="DialogBody" type="ColorRect" parent="." unique_id=1510369637]
layout_mode = 1
anchors_preset = 12
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -300.0
grow_horizontal = 2
grow_vertical = 0
color = Color(0, 0, 0, 0.85)
[node name="TextField" type="Label" parent="DialogBody" unique_id=2065569930]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 20.0
offset_top = 10.0
offset_right = -20.0
offset_bottom = -10.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 24
vertical_alignment = 1
autowrap_mode = 2
[node name="FirstAvatar" type="TextureRect" parent="." unique_id=1696535122]
visible = false
texture_filter = 1
layout_mode = 1
anchors_preset = -1
anchor_top = 0.6
anchor_right = 0.13
anchor_bottom = 1.0
offset_left = 90.0
offset_top = -300.0
offset_right = 90.0
offset_bottom = -300.0
grow_horizontal = 0
grow_vertical = 0
expand_mode = 1
stretch_mode = 4
[node name="SecondAvatar" type="TextureRect" parent="." unique_id=1913233391]
visible = false
texture_filter = 1
layout_mode = 1
anchors_preset = -1
anchor_left = 0.87
anchor_top = 0.6
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -90.0
offset_top = -300.0
offset_right = -90.0
offset_bottom = -300.0
grow_horizontal = 0
grow_vertical = 0
expand_mode = 1
stretch_mode = 4
[node name="TitleBody" type="Control" parent="." unique_id=1986161675]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -400.0
offset_top = -60.0
offset_right = 400.0
offset_bottom = 60.0
grow_horizontal = 2
grow_vertical = 2
[node name="TitleField" type="Label" parent="TitleBody" unique_id=2046072321]
visible = false
layout_mode = 1
anchors_preset = -1
anchor_left = -0.5
anchor_right = 1.5
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 28
horizontal_alignment = 1
vertical_alignment = 1
Loaded 100 of 115 files, more files were not shown because too many files have changed in this diff. Show more