upd: sync local changes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No files matched your search
|
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 497 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 147 KiB |
|
After Width: | Height: | Size: 377 KiB |
|
After Width: | Height: | Size: 321 KiB |
@@ -1,5 +0,0 @@
|
||||
{ "Items": [
|
||||
${actions/physics_attack},
|
||||
${actions/physics_defence},
|
||||
${actions/physics_stun}
|
||||
]}
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 126 KiB |
@@ -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"
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 106 KiB |
@@ -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"
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 108 KiB |
@@ -1,3 +0,0 @@
|
||||
{ "Items": [
|
||||
${player/marao}
|
||||
]}
|
||||
|
Before Width: | Height: | Size: 8.4 KiB |
@@ -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}
|
||||
]}
|
||||
@@ -1,20 +1,30 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "werewolf_girl_1",
|
||||
"Name": "characters/enemies/werewolf_girl",
|
||||
"Image": "characters/enemies/werewolf_girl_1",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 25,
|
||||
"Defence": 0,
|
||||
"Attack": 8,
|
||||
"Exp": 50,
|
||||
|
||||
"RecruitmentChance": 50,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 2, "MaxCount": 2, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 2,
|
||||
"MaxCount": 2,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_1",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_1",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_10",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_10",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_2",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_2",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_3",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_3",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_4",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_4",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_5",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_5",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_6",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_6",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_7",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_7",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_8",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_8",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
{
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "wolf_9",
|
||||
"Name": "characters/enemies/wolf",
|
||||
"Image": "characters/enemies/wolf_9",
|
||||
"Behaviour": "base",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 15,
|
||||
@@ -11,10 +13,24 @@
|
||||
"Attack": 4,
|
||||
"Exp": 5,
|
||||
"RecruitmentChance": 0,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"],
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
],
|
||||
"Loot": [
|
||||
{ "ItemId": "food/wolf_meat", "MinCount": 1, "MaxCount": 1, "Probability": 100 },
|
||||
{ "ItemId": "resource/branches", "MinCount": 1, "MaxCount": 1, "Probability": 100 }
|
||||
{
|
||||
"ItemId": "food/wolf_meat",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
},
|
||||
{
|
||||
"ItemId": "resource/branches",
|
||||
"MinCount": 1,
|
||||
"MaxCount": 1,
|
||||
"Probability": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,13 +1,19 @@
|
||||
{
|
||||
"Kind": "character",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "Marao",
|
||||
"Name": "characters/player/marao",
|
||||
"Image": "characters/player/marao",
|
||||
|
||||
"Level": 1,
|
||||
"Point": 1,
|
||||
"Health": 16,
|
||||
"Defence": 0,
|
||||
"Attack": 5,
|
||||
|
||||
"Actions": ["physics/attack", "physics/defence"]
|
||||
"Actions": [
|
||||
"physics/attack",
|
||||
"physics/defence"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
{ "Items": [
|
||||
${skills/slave_master}
|
||||
]}
|
||||
@@ -1,8 +1,16 @@
|
||||
{
|
||||
{
|
||||
"Kind": "skill",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "slave_master",
|
||||
"Name": "characters/skills/slave_master_name",
|
||||
"Description": "characters/skills/slave_master",
|
||||
"Image": "characters/skills/slave_master",
|
||||
"Type": 1,
|
||||
"Rare": 3
|
||||
"Rare": 3,
|
||||
"Effects": [
|
||||
{ "Key": "characters/skills/effects/recruit", "Value": 10, "Percent": true }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "vn_starter_novel",
|
||||
"kind": "Game",
|
||||
"name": "@collections/vn_starter_novel/name",
|
||||
"description": "@collections/vn_starter_novel/description",
|
||||
"author": "ct",
|
||||
"version": "1.0.0",
|
||||
"tags": [
|
||||
"novel",
|
||||
"cards"
|
||||
],
|
||||
"locale": [
|
||||
{
|
||||
"lang": "en",
|
||||
"name": "Visual Novel Starter",
|
||||
"description": "A visual novel with an optional card-battle layer."
|
||||
},
|
||||
{
|
||||
"lang": "ru",
|
||||
"name": "Стартовая новелла",
|
||||
"description": "Визуальная новелла с необязательным слоем карточных боёв."
|
||||
}
|
||||
],
|
||||
"mechanics": [
|
||||
{
|
||||
"id": "vn_core",
|
||||
"name": "@collections/vn_starter_novel/mechanic/vn_core/name",
|
||||
"description": "@collections/vn_starter_novel/mechanic/vn_core/description",
|
||||
"role": "story",
|
||||
"mods": [
|
||||
"visual_novel_core>=1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "cards",
|
||||
"name": "@collections/vn_starter_novel/mechanic/cards/name",
|
||||
"description": "@collections/vn_starter_novel/mechanic/cards/description",
|
||||
"role": "battle",
|
||||
"optional": true,
|
||||
"mods": [
|
||||
"turn_battle_base>=1"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
@@ -1,4 +1,7 @@
|
||||
{
|
||||
{
|
||||
"Kind": "item",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "food/ration",
|
||||
"Name": "items/food/ration/name",
|
||||
"Description": "items/food/ration/desc",
|
||||
@@ -7,3 +10,5 @@
|
||||
"ItemType": "Food",
|
||||
"ItemAction": "null"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
{
|
||||
"Kind": "item",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "food/wolf_meat",
|
||||
"Name": "items/food/wolf_meat/name",
|
||||
"Description": "items/food/wolf_meat/desc",
|
||||
@@ -7,3 +10,5 @@
|
||||
"ItemType": "Resource,Food",
|
||||
"ItemAction": "null"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"Items": [
|
||||
${food/ration},
|
||||
${food/wolf_meat},
|
||||
${resource/branches}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
{
|
||||
"Kind": "item",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "resource/branches",
|
||||
"Name": "items/resource/branches/name",
|
||||
"Description": "items/resource/branches/desc",
|
||||
@@ -7,3 +10,5 @@
|
||||
"ItemType": "Resource",
|
||||
"ItemAction": "null"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_core_name = Core
|
||||
mod_core_desc = Game core
|
||||
mod_visual_novel_core_name = Visual Novel Core
|
||||
mod_visual_novel_core_desc = Base content mod: scenarios, characters, items, quests and the dialog layer of the visual novel on top of the 2D platform.
|
||||
|
||||
prolog/title = * A few missed moments earlier *
|
||||
prolog/line1 = Being thoroughly wasted, Marao lay peacefully in the alley.
|
||||
@@ -43,11 +43,13 @@ ui/menu/new_game = New Game
|
||||
ui/menu/load = Load
|
||||
ui/menu/settings = Settings
|
||||
ui/menu/exit = Exit
|
||||
quest/prolog = Prologue
|
||||
quest/prolog/0 = It's cold, need to put something on...
|
||||
quest/prolog/1 = I don't remember a damn thing... Need to look around, maybe I can recall something.
|
||||
quest/prolog/2 = I found the recipe book I bought the night before. It's getting dark, need to find shelter.
|
||||
quest/prolog/3 = quest3
|
||||
quest/awakening = Awakening
|
||||
quest/awakening/0 = Woke up naked in an alley. My head is splitting. Look around — find something to wear.
|
||||
quest/awakening/1 = Covered myself with a rag and grabbed the book. Then the police showed up. No point arguing — run.
|
||||
quest/awakening/2 = The whistles died down. I'm at the cemetery. Catch my breath and figure out what to do with the book.
|
||||
quest/awakening/3 = Read it aloud. Pretty sure I did something. Just what exactly?
|
||||
quest/awakening/4 = The book started talking. Calls itself Al Azif. Time to get out of here.
|
||||
quest/awakening/5 = Walking along the river to the villa. I'll wait it out somewhere there.
|
||||
items/food/ration/name = Ration
|
||||
items/food/ration/desc = A daily ration unit for one person
|
||||
items/food/wolf_meat/name = Wolf cutlet
|
||||
@@ -67,6 +69,7 @@ characters/action/stun/name = Stun
|
||||
characters/action/stun/description = Stuns the target for 2 turns
|
||||
characters/skills/slave_master_name = Slave Trader
|
||||
characters/skills/slave_master = Gives the ability to enslave a defeated enemy with a base chance of 10%. The upkeep of the slave falls on your shoulders.
|
||||
characters/skills/effects/recruit = recruitment chance
|
||||
settings/back = Back
|
||||
settings/audio = Audio
|
||||
settings/sounds = Sounds
|
||||
@@ -100,4 +103,17 @@ settings/mods_reset = Reset to Defaults
|
||||
launcher/title = Settings
|
||||
launcher/play = Play
|
||||
launcher/exit = Exit
|
||||
quest/naked_morning = Naked Morning
|
||||
quest/old_house = The Old House
|
||||
quest/awakening/tag/cloak_taken = Cloak found
|
||||
quest/awakening/tag/book_taken = Book found
|
||||
quest/awakening/tag/graveyard_read = Read aloud
|
||||
quest/awakening/tag/azif_awake = Azif awakened
|
||||
quest/awakening/tag/villa_reached = Villa reached
|
||||
|
||||
# Collections (vn_starter_novel)
|
||||
collections/vn_starter_novel/name = Card Novel
|
||||
collections/vn_starter_novel/description = A visual novel with an optional card-battle layer.
|
||||
collections/vn_starter_novel/mechanic/vn_core/name = Novel
|
||||
collections/vn_starter_novel/mechanic/vn_core/description = Scenes, scenarios, dialogue and the story engine.
|
||||
collections/vn_starter_novel/mechanic/cards/name = Card Battle
|
||||
collections/vn_starter_novel/mechanic/cards/description = Card-driven battles on top of the turn-based engine.
|
||||
@@ -1,5 +1,5 @@
|
||||
mod_core_name = Ядро
|
||||
mod_core_desc = Ядро игры
|
||||
mod_visual_novel_core_name = Ядро
|
||||
mod_visual_novel_core_desc = Базовый контент-мод: сценарии, персонажи, предметы, квесты и диалоговый слой визуальной новеллы поверх 2D-платформы.
|
||||
|
||||
prolog/title = * Несколькими упущенными моментами ранее *
|
||||
prolog/line1 = Будучи изрядно набуханным, Марао мирно лежал в переулке.
|
||||
@@ -43,11 +43,13 @@ ui/menu/new_game = Новая игра
|
||||
ui/menu/load = Загрузить
|
||||
ui/menu/settings = Настройки
|
||||
ui/menu/exit = Выход
|
||||
quest/prolog = Пролог
|
||||
quest/prolog/0 = Холодно, нужно во что-то одеться...
|
||||
quest/prolog/1 = Ничерта не помню... Нужно осмотреться, вдруг я смогу что нибудь вспомнить.
|
||||
quest/prolog/2 = Я нашёл книгу рецептов, которую купил на кануне. Уже темнеет нужно найти укрытие.
|
||||
quest/prolog/3 = квест3
|
||||
quest/awakening = Пробуждение
|
||||
quest/awakening/0 = Очнулся голым в переулке. Голова раскалывается. Надо осмотреться — хоть во что-то одеться.
|
||||
quest/awakening/1 = Прикрылся тряпкой, забрал книгу. И тут же полиция. Спорить бесполезно — бежать.
|
||||
quest/awakening/2 = Свистки стихли. Я на кладбище. Передохнуть и решить, что делать с книгой.
|
||||
quest/awakening/3 = Прочитал вслух. Кажется, я что-то натворил. Вот только что именно?
|
||||
quest/awakening/4 = Книга заговорила. Зовёт себя Аль Азифом. Пора убираться отсюда.
|
||||
quest/awakening/5 = Иду вдоль реки к вилле «Забвение». Где-нибудь там пережду.
|
||||
items/food/ration/name = Рацион
|
||||
items/food/ration/desc = Единица суточного рациона для одного человека
|
||||
items/food/wolf_meat/name = Волчья вырезка
|
||||
@@ -67,6 +69,7 @@ characters/action/stun/name = Ошеломление
|
||||
characters/action/stun/description = Ошеломляет цель на 2 хода
|
||||
characters/skills/slave_master_name = Работорговец
|
||||
characters/skills/slave_master = Даёт возможность взять в рабство поверженного врага с базовым шансом в 10%. Содержание раба ложится на твои плечи.
|
||||
characters/skills/effects/recruit = шанс рекрутинга
|
||||
settings/back = Назад
|
||||
settings/audio = Аудио
|
||||
settings/sounds = Звуки
|
||||
@@ -100,4 +103,22 @@ settings/mods_reset = Сбросить настройки
|
||||
launcher/title = Настройки
|
||||
launcher/play = Играть
|
||||
launcher/exit = Выход
|
||||
quest/naked_morning = Голое утро
|
||||
quest/old_house = Старый дом
|
||||
quest/awakening/tag/cloak_taken = Плащ найден
|
||||
quest/awakening/tag/book_taken = Книга найдена
|
||||
quest/awakening/tag/graveyard_read = Прочитал вслух
|
||||
quest/awakening/tag/azif_awake = Азиф пробуждён
|
||||
quest/awakening/tag/villa_reached = Вилла найдена
|
||||
|
||||
mapzone/home = Вилла
|
||||
mapzone/home/info = Заброшенная вилла в глуши на берегу реки
|
||||
mapzone/town_entry = Вход в город
|
||||
mapzone/town_entry/info = Северный вход в город
|
||||
|
||||
# Коллекции (vn_starter_novel)
|
||||
collections/vn_starter_novel/name = Карточная новелла
|
||||
collections/vn_starter_novel/description = Визуальная новелла с необязательным слоем карточных боёв.
|
||||
collections/vn_starter_novel/mechanic/vn_core/name = Новелла
|
||||
collections/vn_starter_novel/mechanic/vn_core/description = Сцены, сценарии, диалоги и движок истории.
|
||||
collections/vn_starter_novel/mechanic/cards/name = Карточный бой
|
||||
collections/vn_starter_novel/mechanic/cards/description = Карточные бои поверх пошагового боевого движка.
|
||||
@@ -1,20 +1,22 @@
|
||||
{
|
||||
"id": "core",
|
||||
"name": "Core",
|
||||
"version": "1.0.0",
|
||||
"id": "visual_novel_core",
|
||||
"name": "Visual Novel Core",
|
||||
"version": "2.0.0",
|
||||
"author": "ct",
|
||||
"description": "Game core",
|
||||
"category": "library, story",
|
||||
"sources": [
|
||||
"src/*.cs"
|
||||
],
|
||||
"description": "Visual novel content and UI on top of the 2D platform: scenarios, characters, items, quests and the dialog layer patched into the base shell",
|
||||
"category": "engine, story",
|
||||
"depends": ["base2d>=1", "dialog_base>=1", "interactive_base>=1", "skills_base>=1", "map_base>=1", "interface>=1"],
|
||||
"ui": [
|
||||
{
|
||||
"id": "map",
|
||||
"kind": "panel",
|
||||
"slot": "ModBeforeUIPanel",
|
||||
"scene_path": "scenes/ui/map_widget.tscn",
|
||||
"button": { "icon": "map", "locale": "ui/map/title", "index": 10 },
|
||||
"button": {
|
||||
"icon": "map",
|
||||
"locale": "ui/map/title",
|
||||
"index": 10
|
||||
},
|
||||
"priority": 10
|
||||
},
|
||||
{
|
||||
@@ -22,15 +24,11 @@
|
||||
"kind": "panel",
|
||||
"slot": "ModBeforeUIPanel",
|
||||
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||
"priority": 10
|
||||
"button": {
|
||||
"icon": "bag",
|
||||
"locale": "ui/inventory/title",
|
||||
"index": 20
|
||||
},
|
||||
{
|
||||
"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
|
||||
},
|
||||
{
|
||||
@@ -38,7 +36,11 @@
|
||||
"kind": "panel",
|
||||
"slot": "ModBeforeUIPanel",
|
||||
"scene_path": "scenes/ui/skills_panel/skills_panel.tscn",
|
||||
"button": { "icon": "skills", "locale": "ui/skills/title", "index": 40 },
|
||||
"button": {
|
||||
"icon": "skills",
|
||||
"locale": "ui/skills/title",
|
||||
"index": 40
|
||||
},
|
||||
"priority": 10
|
||||
},
|
||||
{
|
||||
@@ -46,15 +48,11 @@
|
||||
"kind": "panel",
|
||||
"slot": "ModBeforeUIPanel",
|
||||
"scene_path": "scenes/menu/game_menu.tscn",
|
||||
"button": { "icon": "settings", "locale": "menu/settings", "index": 50 },
|
||||
"priority": 10
|
||||
"button": {
|
||||
"icon": "settings",
|
||||
"locale": "menu/settings",
|
||||
"index": 50
|
||||
},
|
||||
{
|
||||
"id": "journal",
|
||||
"kind": "panel",
|
||||
"slot": "ModBeforeUIPanel",
|
||||
"scene_path": "scenes/ui/quest_journal.tscn",
|
||||
"button": { "icon": "journal", "locale": "ui/journal/title", "index": 60 },
|
||||
"priority": 10
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
[gd_scene load_steps=3 format=3]
|
||||
|
||||
[ext_resource type="PackedScene" path="res://mods/base2d/scenes/ui/base_scene.tscn" id="1_target"]
|
||||
[ext_resource type="PackedScene" path="res://scenes/ui/dialog_canvas.tscn" id="2_dialog"]
|
||||
|
||||
[node name="BaseScene" instance=ExtResource("1_target")]
|
||||
|
||||
[node name="DialogCanvas" parent="Scene" index="2" instance=ExtResource("2_dialog")]
|
||||
@@ -1,17 +1,21 @@
|
||||
{
|
||||
"Kind": "quest",
|
||||
"Items": [
|
||||
{
|
||||
"Id": "PrologQuest",
|
||||
"Name": "quest/prolog",
|
||||
"Id": "AwakeningQuest",
|
||||
"Name": "quest/awakening",
|
||||
"StatusToDescription": {
|
||||
"0": "quest/prolog/0",
|
||||
"1": "quest/prolog/1",
|
||||
"2": "quest/prolog/2"
|
||||
"0": "quest/awakening/0",
|
||||
"1": "quest/awakening/1",
|
||||
"2": "quest/awakening/2",
|
||||
"3": "quest/awakening/3",
|
||||
"4": "quest/awakening/4",
|
||||
"5": "quest/awakening/5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": "NakedMorningQuest",
|
||||
"Name": "quest/naked_morning"
|
||||
"Id": "OldHouseQuest",
|
||||
"Name": "quest/old_house"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -3,6 +3,7 @@ priority: 10
|
||||
is_one_run: true
|
||||
---
|
||||
background prolog/00025-165590409
|
||||
title "Глава 3. Кладбище святого Угробья"
|
||||
|
||||
text "Могильные плиты тянулись вдаль, серые и мрачные. Старые дубы качали голыми ветвями. Где-то каркала ворона."
|
||||
text "Свистки стихли — полицейские потеряли его из виду." first=marao/think
|
||||
@@ -12,5 +13,6 @@ text "— Ну вот. Организм. Раньше я мог пол-литр
|
||||
text "Он покосился на книгу, которая всё ещё была у него под мышкой." first=marao/think
|
||||
text "— Хм. А чего бы и нет? Всё равно время есть." first=marao/smile
|
||||
|
||||
action quest.set_data_status quest_id=AwakeningQuest level=2
|
||||
notify "За склепом можно уединиться."
|
||||
end
|
||||
@@ -1,5 +1,6 @@
|
||||
# Клик по книге — Аль-Азиф просыпается (канон: глава 4).
|
||||
# Файл без шапки: InteractiveManager отрезает метаданные, играет только тело.
|
||||
title "Глава 4. Аль Азиф просыпается"
|
||||
text "Марао плюнул и присел, сложив книгу стопкой страниц. Поднёс к пятой точке." first=marao/think
|
||||
ptext "Книга заорала."
|
||||
ptext "— НЕ СМЕЙ!"
|
||||
@@ -28,8 +29,9 @@ ptext "Вдалеке снова засвистели полицейские с
|
||||
sound locations/prolog/police
|
||||
text "Марао встал, накинул красную тряпку и сунул книгу под мышку." first=marao/smile
|
||||
text "— Валим. Давай, книжка, показывай, где тут трактир. А то у меня всего две мысли: «нахера я такой голый» и «где бы опохмелиться»." first=marao/smile
|
||||
title "Конец пролога. Впереди — дорога вдоль реки..."
|
||||
|
||||
action quest.add_tag quest_id=NakedMorningQuest tag=azif_awake
|
||||
action quest.add_tag quest_id=AwakeningQuest tag=azif_awake
|
||||
action quest.set_data_status quest_id=AwakeningQuest level=4
|
||||
interactive_remove book_wipe
|
||||
switch_scene prolog_river
|
||||
end
|
||||
@@ -1,6 +1,6 @@
|
||||
scene: prolog_graveyard
|
||||
priority: 15
|
||||
condition: NakedMorningQuest.hasTag("graveyard_read") && NakedMorningQuest.notHasTag("azif_awake")
|
||||
condition: AwakeningQuest.hasTag("graveyard_read") && AwakeningQuest.notHasTag("azif_awake")
|
||||
---
|
||||
# Прочитано, но Аль-Азиф ещё не проснулся: держим хотспот книги на сцене.
|
||||
interactive_add book_wipe
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
scene: prolog_graveyard
|
||||
priority: 15
|
||||
condition: NakedMorningQuest.notHasTag("graveyard_read")
|
||||
condition: AwakeningQuest.notHasTag("graveyard_read")
|
||||
---
|
||||
# Книга ещё не прочитана вслух: держим хотспот «за склепом» на сцене.
|
||||
# Идемпотентно при каждом входе (Add по тому же id возвращает существующий объект).
|
||||
|
||||
@@ -19,7 +19,8 @@ text "Лопухов не было. Только крапива да стары
|
||||
text "Он потянул страницу за уголок — ноль реакции. Дёрнул сильнее: бумага была твёрдой, как металл, но гибкой. Он рвал и так, и сяк, даже ногтями пытался. Бесполезно." first=marao/sad
|
||||
text "— Что за брак! Я за такие деньги..." first=marao/sad
|
||||
|
||||
action quest.add_tag quest_id=NakedMorningQuest tag=graveyard_read
|
||||
action quest.add_tag quest_id=AwakeningQuest tag=graveyard_read
|
||||
action quest.set_data_status quest_id=AwakeningQuest level=3
|
||||
interactive_remove crypt_spot
|
||||
interactive_add book_wipe
|
||||
end
|
||||
@@ -6,7 +6,7 @@ text "— Какая-то мутная хрень. Откуда она у мен
|
||||
text "В голове мелькнул смутный образ: он в какой-то лавке протягивает монеты и берёт книгу. Но когда? Где? Почему? Больше ничего." first=marao/think
|
||||
text "Марао пожал плечами и сунул книгу под мышку." first=marao/smile
|
||||
text "— Ладно, бумага не жрёт. Пойдём, найдём, где опохмелиться." first=marao/smile
|
||||
action quest.add_tag quest_id=NakedMorningQuest tag=book_taken
|
||||
action quest.add_tag quest_id=AwakeningQuest tag=book_taken
|
||||
interactive_remove book_ground
|
||||
switch_scene prolog_alley
|
||||
end
|
||||
@@ -4,7 +4,7 @@ text "Он сделал шаг, другой, придерживаясь за с
|
||||
text "Выцветшая, с бахромой по краям. Когда-то это было что-то вроде плаща или шали. На ткани угадывался вышитый крест." first=marao/think
|
||||
text "Марао развернул её, оценил размер и намотал на плечи, как римскую тогу. Края едва доходили до колен." first=marao/smile
|
||||
text "— Лучше, чем ничего. Срам прикрыт, хоть сзади и развевается, как знамя нищего легиона." first=marao/smile
|
||||
action quest.add_tag quest_id=NakedMorningQuest tag=cloak_taken
|
||||
action quest.add_tag quest_id=AwakeningQuest tag=cloak_taken
|
||||
interactive_remove cloak_ground
|
||||
switch_scene prolog_alley
|
||||
end
|
||||
@@ -1,6 +1,6 @@
|
||||
scene: prolog_alley
|
||||
priority: 15
|
||||
condition: NakedMorningQuest.notHasTag("cloak_taken") && NakedMorningQuest.notHasTag("book_taken")
|
||||
condition: AwakeningQuest.notHasTag("cloak_taken") && AwakeningQuest.notHasTag("book_taken")
|
||||
---
|
||||
# Ни один предмет ещё не взят: держим оба интерактива на сцене.
|
||||
# Не is_one_run — идемпотентно пересоздаёт объекты при каждом входе (Add по тому же id возвращает существующий).
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
scene: prolog_alley
|
||||
priority: 20
|
||||
is_one_run: true
|
||||
condition: NakedMorningQuest.hasTag("cloak_taken") && NakedMorningQuest.hasTag("book_taken")
|
||||
condition: AwakeningQuest.hasTag("cloak_taken") && AwakeningQuest.hasTag("book_taken")
|
||||
---
|
||||
sound locations/prolog/police
|
||||
delay 0.7 hidden=true
|
||||
title "Глава 2. Погоня"
|
||||
action quest.set_data_status quest_id=AwakeningQuest level=1
|
||||
|
||||
ptext "Из подворотни вышли трое полицейских в синих мундирах, с медными пуговицами, начищенными до блеска."
|
||||
ptext "— ЭЙ, ТЫ! СТОЯТЬ!"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
scene: prolog_alley
|
||||
priority: 15
|
||||
condition: NakedMorningQuest.hasTag("cloak_taken") && NakedMorningQuest.notHasTag("book_taken")
|
||||
condition: AwakeningQuest.hasTag("cloak_taken") && AwakeningQuest.notHasTag("book_taken")
|
||||
---
|
||||
# Тряпка взята, книга ещё нет: возвращаем книгу после перезагрузки сцены.
|
||||
interactive_add book_ground
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
scene: prolog_alley
|
||||
priority: 15
|
||||
condition: NakedMorningQuest.hasTag("book_taken") && NakedMorningQuest.notHasTag("cloak_taken")
|
||||
condition: AwakeningQuest.hasTag("book_taken") && AwakeningQuest.notHasTag("cloak_taken")
|
||||
---
|
||||
# Книга взята, тряпка ещё нет: возвращаем тряпку после перезагрузки сцены.
|
||||
interactive_add cloak_ground
|
||||
|
||||
@@ -13,5 +13,7 @@ text "Холодный воздух пробрал до костей. Марао
|
||||
text "— Да что ж такое! Где мои штаны?!" first=marao/sad
|
||||
text "Он был абсолютно голый. Босые ступни на холодном камне. Тело болело — как будто его били чем-то тяжёлым. Возможно ногами. Возможно и по лицу." first=marao/sad
|
||||
|
||||
action quest.set_status quest_id=AwakeningQuest status=Progress
|
||||
action quest.send_notification quest_id=AwakeningQuest
|
||||
notify "Осмотрись. В переулке что-то лежит."
|
||||
end
|
||||
@@ -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
|
||||
@@ -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,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://Core/UI/Menu/GameMenu.cs" id="GameMenuScript"]
|
||||
[ext_resource type="Script" path="res://mods/interface/src/Menu/GameMenu.cs" id="GameMenuScript"]
|
||||
|
||||
[node name="GameMenu" type="Control"]
|
||||
layout_mode = 3
|
||||
@@ -19,7 +19,7 @@ anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0, 0, 0, 0.65)
|
||||
color = Color(0, 0, 0, 0.9)
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
@@ -53,13 +53,16 @@ theme_override_constants/separation = 10
|
||||
|
||||
[node name="Title" type="Label" parent="Panel/Margin/VBox"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
theme_override_colors/font_color = Color(0.956863, 0.941176, 0.905882, 1)
|
||||
text = "Меню"
|
||||
horizontal_alignment = 1
|
||||
theme_override_font_sizes/font_size = 22
|
||||
uppercase = true
|
||||
|
||||
[node name="ReturnBtn" type="Button" parent="Panel/Margin/VBox"]
|
||||
layout_mode = 2
|
||||
text = "Вернуться"
|
||||
theme_type_variation = "CthangoverPrimary"
|
||||
|
||||
[node name="SaveBtn" type="Button" parent="Panel/Margin/VBox"]
|
||||
layout_mode = 2
|
||||
@@ -84,3 +87,4 @@ text = "Главное меню"
|
||||
[node name="ExitBtn" type="Button" parent="Panel/Margin/VBox"]
|
||||
layout_mode = 2
|
||||
text = "Выход"
|
||||
theme_type_variation = "CthangoverDanger"
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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 +0,0 @@
|
||||
uid://c6kll6en347h1
|
||||
@@ -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"
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "prolog_river",
|
||||
"defaultBackground": "prolog/river",
|
||||
"defaultAmbient": "locations/home/outside/river",
|
||||
"defaultScenario": "scenarios/prolog/river_arrival.scenario"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "prolog_villa",
|
||||
"defaultBackground": "prolog/villa",
|
||||
"defaultAmbient": "locations/home/outside/river",
|
||||
"defaultScenario": "scenarios/prolog/villa_arrival.scenario"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
[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"]
|
||||
[ext_resource type="Script" path="res://mods/dialog_base/src/UI/Dialog/AnswerBox.cs" id="1_answerbox"]
|
||||
[ext_resource type="PackedScene" path="res://mods/visual_novel_core/scenes/ui/answer_item.tscn" id="2_answeritem"]
|
||||
|
||||
[node name="AnswerBox" type="Control"]
|
||||
layout_mode = 3
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene format=3 uid="uid://bv80qy227xxee"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dbrnsck0vtfb3" path="res://Core/UI/Dialog/AnswerItem.cs" id="1_answeritem"]
|
||||
[ext_resource type="Script" uid="uid://dbrnsck0vtfb3" path="res://mods/dialog_base/src/UI/Dialog/AnswerItem.cs" id="1_answeritem"]
|
||||
|
||||
[node name="AnswerItem" type="Control" unique_id=1180917887]
|
||||
custom_minimum_size = Vector2(0, 50)
|
||||
|
||||
@@ -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
|
||||
@@ -1,9 +1,10 @@
|
||||
[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"]
|
||||
[ext_resource type="Script" uid="uid://b41bti3wq4m88" path="res://mods/dialog_base/src/UI/Dialog/DialogBox.cs" id="1_dialogbox"]
|
||||
|
||||
[node name="DialogBox" type="Control" unique_id=702809053 node_paths=PackedStringArray("textField", "titleField", "titleBody", "firstAvatar", "secondAvatar")]
|
||||
[ext_resource type="PackedScene" path="res://mods/visual_novel_core/scenes/ui/answer_box.tscn" id="2_answerbox"]
|
||||
|
||||
[node name="DialogBox" type="Control" unique_id=702809053]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -12,11 +13,6 @@ 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
|
||||
@@ -27,7 +23,7 @@ anchor_bottom = 1.0
|
||||
offset_top = -300.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
color = Color(0, 0, 0, 0.85)
|
||||
color = Color(0.054902, 0.058824, 0.082353, 0.9)
|
||||
|
||||
[node name="TextField" type="Label" parent="DialogBody" unique_id=2065569930]
|
||||
layout_mode = 1
|
||||
@@ -41,6 +37,7 @@ offset_bottom = -10.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
theme_override_colors/font_color = Color(0.909804, 0.898039, 0.870588, 1)
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 2
|
||||
|
||||
@@ -103,5 +100,6 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_font_sizes/font_size = 28
|
||||
theme_override_colors/font_color = Color(0.956863, 0.941176, 0.905882, 1)
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
@@ -1 +0,0 @@
|
||||
uid://b8vnxfoixyust
|
||||
@@ -0,0 +1,12 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://mods/dialog_base/src/UI/Dialog/DialogCanvas.cs" id="1_canvas"]
|
||||
|
||||
[node name="DialogCanvas" 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_canvas")
|
||||
@@ -1,38 +1,10 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://Core/UI/Inventory/InventoryItemBehaviour.cs" id="1"]
|
||||
[ext_resource type="Script" path="res://mods/items_base/src/ui/InventoryItemBehaviour.cs" id="1"]
|
||||
|
||||
[node name="InventoryItem" type="Control" node_paths=PackedStringArray("imgIcon", "txtCount")]
|
||||
[node name="InventoryItem" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
script = ExtResource("1")
|
||||
imgIcon = NodePath("imgIcon")
|
||||
txtCount = NodePath("txtCount")
|
||||
|
||||
[node name="imgIcon" type="TextureRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
expand_mode = 1
|
||||
stretch_mode = 4
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="txtCount" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.6
|
||||
anchor_top = 0.7
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
theme_override_font_sizes/font_size = 14
|
||||
horizontal_alignment = 2
|
||||
vertical_alignment = 1
|
||||
mouse_filter = 2
|
||||
text = ""
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://Core/UI/Inventory/InventoryPanelBehaviour.cs" id="1_script"]
|
||||
[ext_resource type="Script" path="res://mods/items_base/src/ui/InventoryPanelBehaviour.cs" id="1_script"]
|
||||
|
||||
[node name="InventoryPanel" type="Control"]
|
||||
layout_mode = 3
|
||||
@@ -11,3 +11,142 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
script = ExtResource("1_script")
|
||||
|
||||
[node name="Backdrop" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 40.0
|
||||
offset_top = 78.0
|
||||
offset_right = -40.0
|
||||
offset_bottom = -30.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
|
||||
[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 = 24
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_right = 24
|
||||
theme_override_constants/margin_bottom = 14
|
||||
mouse_filter = 1
|
||||
|
||||
[node name="Root" type="VBoxContainer" parent="Panel/Margin"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
mouse_filter = 1
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="Panel/Margin/Root"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 18
|
||||
|
||||
[node name="Title" type="Label" parent="Panel/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
|
||||
[node name="Tabs" type="HBoxContainer" parent="Panel/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 6
|
||||
|
||||
[node name="HeaderSpacer" type="Control" parent="Panel/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ApBox" type="HBoxContainer" parent="Panel/Margin/Root/Header"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="ApLabel" type="Label" parent="Panel/Margin/Root/Header/ApBox"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 11
|
||||
|
||||
[node name="ApPips" type="HBoxContainer" parent="Panel/Margin/Root/Header/ApBox"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
|
||||
[node name="CloseButton" type="Button" parent="Panel/Margin/Root/Header"]
|
||||
custom_minimum_size = Vector2(38, 38)
|
||||
layout_mode = 2
|
||||
focus_mode = 0
|
||||
text = "✕"
|
||||
|
||||
[node name="Rule" type="Panel" parent="Panel/Margin/Root"]
|
||||
custom_minimum_size = Vector2(0, 1)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Toolbar" type="HBoxContainer" parent="Panel/Margin/Root"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="Search" type="LineEdit" parent="Panel/Margin/Root/Toolbar"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 13
|
||||
|
||||
[node name="SortOption" type="OptionButton" parent="Panel/Margin/Root/Toolbar"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 13
|
||||
|
||||
[node name="Body" type="HBoxContainer" parent="Panel/Margin/Root"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/separation = 14
|
||||
|
||||
[node name="Left" type="VBoxContainer" parent="Panel/Margin/Root/Body"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="GridScroll" type="ScrollContainer" parent="Panel/Margin/Root/Body/Left"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="GridContent" type="Control" parent="Panel/Margin/Root/Body/Left/GridScroll"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 0
|
||||
|
||||
[node name="GridFooter" type="HBoxContainer" parent="Panel/Margin/Root/Body/Left"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 16
|
||||
|
||||
[node name="ShownLabel" type="Label" parent="Panel/Margin/Root/Body/Left/GridFooter"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
|
||||
[node name="HintLabel" type="Label" parent="Panel/Margin/Root/Body/Left/GridFooter"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
|
||||
[node name="Right" type="PanelContainer" parent="Panel/Margin/Root/Body"]
|
||||
custom_minimum_size = Vector2(430, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="PassportScroll" type="ScrollContainer" parent="Panel/Margin/Root/Body/Right"]
|
||||
layout_mode = 2
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="Passport" type="VBoxContainer" parent="Panel/Margin/Root/Body/Right/PassportScroll"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 14
|
||||
@@ -0,0 +1,52 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://mods/map_base/src/MapMarker.cs" id="1_script"]
|
||||
|
||||
[node name="MapMarker" type="VBoxContainer"]
|
||||
theme_override_constants/separation = 4
|
||||
alignment = 1
|
||||
mouse_filter = 0
|
||||
script = ExtResource("1_script")
|
||||
|
||||
[node name="EmblemWrap" type="Control" parent="."]
|
||||
custom_minimum_size = Vector2(46, 46)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Emblem" type="Panel" parent="EmblemWrap"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Glyph" type="TextureRect" parent="EmblemWrap/Emblem"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 13.0
|
||||
offset_top = 13.0
|
||||
offset_right = -13.0
|
||||
offset_bottom = -13.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="NameLabel" type="Label" parent="."]
|
||||
layout_mode = 2
|
||||
text = "LOCATION"
|
||||
horizontal_alignment = 1
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="NoteLabel" type="Label" parent="."]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "NOTE"
|
||||
horizontal_alignment = 1
|
||||
mouse_filter = 2
|
||||
@@ -1,6 +1,7 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" uid="uid://djf3cf86eikq5" path="res://Core/UI/Tool/MapWidget.cs" id="1_script"]
|
||||
[ext_resource type="Script" path="res://mods/map_base/src/MapWidget.cs" id="1_script"]
|
||||
[ext_resource type="Script" path="res://mods/map_base/src/MapZonesLayer.cs" id="2_zones"]
|
||||
|
||||
[node name="MapWidget" type="Control"]
|
||||
layout_mode = 3
|
||||
@@ -11,3 +12,314 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
script = ExtResource("1_script")
|
||||
|
||||
[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
|
||||
mouse_filter = 2
|
||||
color = Color(0, 0, 0, 0.9)
|
||||
|
||||
[node name="EmptyState" type="CenterContainer" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="EmptyBox" type="VBoxContainer" parent="EmptyState"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 8
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Title" type="Label" parent="EmptyState/EmptyBox"]
|
||||
layout_mode = 2
|
||||
text = "MAP UNAVAILABLE"
|
||||
horizontal_alignment = 1
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Hint" type="Label" parent="EmptyState/EmptyBox"]
|
||||
custom_minimum_size = Vector2(420, 0)
|
||||
layout_mode = 2
|
||||
text = "EMPTY HINT"
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="MapRoot" type="Control" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Sheet" type="Panel" parent="MapRoot"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="MapImage" type="TextureRect" parent="MapRoot/Sheet"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 1
|
||||
stretch_mode = 0
|
||||
|
||||
[node name="Frame" type="Panel" parent="MapRoot/Sheet"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 12.0
|
||||
offset_top = 12.0
|
||||
offset_right = -12.0
|
||||
offset_bottom = -12.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ZonesLayer" type="Control" parent="MapRoot/Sheet"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 0
|
||||
script = ExtResource("2_zones")
|
||||
|
||||
[node name="MarkersLayer" type="Control" parent="MapRoot/Sheet"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="CloseButton" type="Button" parent="MapRoot/Sheet"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -62.0
|
||||
offset_top = 24.0
|
||||
offset_right = -24.0
|
||||
offset_bottom = 62.0
|
||||
grow_horizontal = 0
|
||||
mouse_filter = 0
|
||||
text = "X"
|
||||
|
||||
[node name="Hud" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 0
|
||||
offset_left = 40.0
|
||||
offset_top = 26.0
|
||||
offset_right = 400.0
|
||||
offset_bottom = 96.0
|
||||
grow_horizontal = 1
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="Title" type="Label" parent="Hud"]
|
||||
layout_mode = 2
|
||||
text = "MAP"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Sub" type="Label" parent="Hud"]
|
||||
layout_mode = 2
|
||||
text = "SUBTITLE"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Legend" type="PanelContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 40.0
|
||||
offset_top = -72.0
|
||||
offset_right = 340.0
|
||||
offset_bottom = -32.0
|
||||
grow_horizontal = 1
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Items" type="HBoxContainer" parent="Legend"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 16
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Current" type="HBoxContainer" parent="Legend/Items"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 7
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Dot" type="Panel" parent="Legend/Items/Current"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Text" type="Label" parent="Legend/Items/Current"]
|
||||
layout_mode = 2
|
||||
text = "HERE"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Available" type="HBoxContainer" parent="Legend/Items"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 7
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Dot" type="Panel" parent="Legend/Items/Available"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Text" type="Label" parent="Legend/Items/Available"]
|
||||
layout_mode = 2
|
||||
text = "AVAILABLE"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Locked" type="HBoxContainer" parent="Legend/Items"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 7
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Dot" type="Panel" parent="Legend/Items/Locked"]
|
||||
custom_minimum_size = Vector2(10, 10)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Text" type="Label" parent="Legend/Items/Locked"]
|
||||
layout_mode = 2
|
||||
text = "CLOSED"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Hint" type="PanelContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -220.0
|
||||
offset_top = -62.0
|
||||
offset_right = 220.0
|
||||
offset_bottom = -32.0
|
||||
grow_horizontal = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Label" type="Label" parent="Hint"]
|
||||
layout_mode = 2
|
||||
text = "HINT"
|
||||
horizontal_alignment = 1
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ZoneCard" type="PanelContainer" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -384.0
|
||||
offset_right = -24.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
mouse_filter = 0
|
||||
|
||||
[node name="Column" type="VBoxContainer" parent="ZoneCard"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Head" type="HBoxContainer" parent="ZoneCard/Column"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 12
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Emblem" type="Panel" parent="ZoneCard/Column/Head"]
|
||||
custom_minimum_size = Vector2(58, 58)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Glyph" type="TextureRect" parent="ZoneCard/Column/Head/Emblem"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 14.0
|
||||
offset_top = 14.0
|
||||
offset_right = -14.0
|
||||
offset_bottom = -14.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="Info" type="VBoxContainer" parent="ZoneCard/Column/Head"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Name" type="Label" parent="ZoneCard/Column/Head/Info"]
|
||||
layout_mode = 2
|
||||
text = "LOCATION"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Sub" type="Label" parent="ZoneCard/Column/Head/Info"]
|
||||
layout_mode = 2
|
||||
text = "scene"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Badges" type="HBoxContainer" parent="ZoneCard/Column"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 5
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Desc" type="Label" parent="ZoneCard/Column"]
|
||||
layout_mode = 2
|
||||
text = "DESCRIPTION"
|
||||
autowrap_mode = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Rule" type="Panel" parent="ZoneCard/Column"]
|
||||
custom_minimum_size = Vector2(0, 1)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Caption" type="Label" parent="ZoneCard/Column"]
|
||||
layout_mode = 2
|
||||
text = "TRANSITION"
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="CardHint" type="Label" parent="ZoneCard/Column"]
|
||||
layout_mode = 2
|
||||
text = "CARD HINT"
|
||||
autowrap_mode = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Message" type="Label" parent="ZoneCard/Column"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "MESSAGE"
|
||||
autowrap_mode = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="GoButton" type="Button" parent="ZoneCard/Column"]
|
||||
layout_mode = 2
|
||||
text = "GO"
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://Core/UI/Messages/UiMessage.cs" id="1_msg"]
|
||||
[ext_resource type="Script" path="res://mods/interface/src/Messages/UiMessage.cs" id="1_msg"]
|
||||
|
||||
[node name="Message" type="Control" node_paths=PackedStringArray("textField")]
|
||||
layout_mode = 3
|
||||
@@ -14,4 +14,5 @@ offset_left = 0.0
|
||||
offset_top = 0.0
|
||||
offset_right = 0.0
|
||||
offset_bottom = 0.0
|
||||
theme_override_colors/font_color = Color(0.909804, 0.898039, 0.870588, 1)
|
||||
text = ""
|
||||
@@ -1,13 +0,0 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://Core/UI/Quests/QuestJournalBehaviour.cs" id="1_script"]
|
||||
|
||||
[node name="QuestJournal" 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("1_script")
|
||||
@@ -1,23 +1,26 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://Core/Skills/SkillCardBehaviour.cs" id="1_script"]
|
||||
[ext_resource type="Script" path="res://Core/Skills/SkillCardFrameBehaviour.cs" id="2_frame_script"]
|
||||
[ext_resource type="Script" path="res://mods/skills_base/src/SkillCardBehaviour.cs" id="1_script"]
|
||||
|
||||
[node name="SkillCard" type="Control"]
|
||||
[node name="SkillCard" type="Control" node_paths=PackedStringArray("bg", "accent", "art", "imgCard", "txtName", "txtGems", "badgeBox", "badgeLabel", "effectRow", "effectValue", "effectLabel")]
|
||||
custom_minimum_size = Vector2(160, 210)
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 2
|
||||
script = ExtResource("1_script")
|
||||
frame = NodePath("Frame")
|
||||
bg = NodePath("Bg")
|
||||
accent = NodePath("Accent")
|
||||
art = NodePath("Art")
|
||||
imgCard = NodePath("Art/ImgCard")
|
||||
txtName = NodePath("TxtName")
|
||||
imgCard = NodePath("ImgCard")
|
||||
txtGems = NodePath("Gems")
|
||||
badgeBox = NodePath("BadgeBox")
|
||||
badgeLabel = NodePath("BadgeBox/BadgeLabel")
|
||||
effectRow = NodePath("EffectRow")
|
||||
effectValue = NodePath("EffectRow/EffectValue")
|
||||
effectLabel = NodePath("EffectRow/EffectLabel")
|
||||
|
||||
[node name="Frame" type="Control" parent="."]
|
||||
[node name="Bg" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -25,45 +28,106 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
script = ExtResource("2_frame_script")
|
||||
img = NodePath("FrameImg")
|
||||
|
||||
[node name="FrameImg" type="TextureRect" parent="Frame"]
|
||||
[node name="Accent" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_bottom = 3.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 3
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="ImgCard" type="TextureRect" parent="."]
|
||||
[node name="Art" type="PanelContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.08
|
||||
anchor_top = 0.05
|
||||
anchor_right = 0.92
|
||||
anchor_bottom = 0.75
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.62
|
||||
offset_left = 8.0
|
||||
offset_top = 9.0
|
||||
offset_right = -8.0
|
||||
grow_horizontal = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ImgCard" type="TextureRect" parent="Art"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 2
|
||||
stretch_mode = 5
|
||||
expand_mode = 1
|
||||
stretch_mode = 6
|
||||
|
||||
[node name="Gems" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
offset_left = -64.0
|
||||
offset_top = 13.0
|
||||
offset_right = -6.0
|
||||
offset_bottom = 29.0
|
||||
grow_horizontal = 0
|
||||
mouse_filter = 2
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="TxtName" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.05
|
||||
anchor_top = 0.78
|
||||
anchor_right = 0.95
|
||||
anchor_bottom = 0.98
|
||||
anchor_top = 0.62
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.8
|
||||
offset_left = 7.0
|
||||
offset_top = 4.0
|
||||
offset_right = -7.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_override_font_sizes/font_size = 12
|
||||
text = ""
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="BadgeBox" type="PanelContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 7.0
|
||||
offset_top = -40.0
|
||||
offset_right = -7.0
|
||||
offset_bottom = -24.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="BadgeLabel" type="Label" parent="BadgeBox"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="EffectRow" type="HBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 7.0
|
||||
offset_top = -21.0
|
||||
offset_right = -7.0
|
||||
offset_bottom = -4.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="EffectValue" type="Label" parent="EffectRow"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="EffectLabel" type="Label" parent="EffectRow"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
clip_text = true
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://Core/UI/SkillsPanel/SkillsPanelBehaviour.cs" id="1_script"]
|
||||
[ext_resource type="Script" path="res://mods/skills_base/src/SkillsPanel/SkillsPanelBehaviour.cs" id="1_script"]
|
||||
|
||||
[node name="SkillsPanel" type="Control"]
|
||||
layout_mode = 3
|
||||
@@ -9,7 +9,7 @@ anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
mouse_filter = 0
|
||||
script = ExtResource("1_script")
|
||||
|
||||
[node name="Bg" type="ColorRect" parent="."]
|
||||
@@ -20,68 +20,164 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0.05, 0.05, 0.1, 0.9)
|
||||
color = Color(0, 0, 0, 0.9)
|
||||
|
||||
[node name="Title" type="Label" parent="."]
|
||||
[node name="Window" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_right = 1.0
|
||||
offset_left = 20.0
|
||||
offset_top = 10.0
|
||||
offset_right = -20.0
|
||||
offset_bottom = 40.0
|
||||
grow_horizontal = 2
|
||||
theme_override_font_sizes/font_size = 22
|
||||
text = "Skills"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 20.0
|
||||
offset_top = 50.0
|
||||
offset_right = -20.0
|
||||
offset_bottom = -60.0
|
||||
offset_left = 40.0
|
||||
offset_top = 78.0
|
||||
offset_right = -40.0
|
||||
offset_bottom = -30.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
horizontal_scroll_mode = 0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="GridContent" type="Control" parent="ScrollContainer"]
|
||||
[node name="Margin" type="MarginContainer" parent="Window"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 24
|
||||
theme_override_constants/margin_top = 16
|
||||
theme_override_constants/margin_right = 24
|
||||
theme_override_constants/margin_bottom = 14
|
||||
|
||||
[node name="Root" type="VBoxContainer" parent="Window/Margin"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 12
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="Window/Margin/Root"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 18
|
||||
|
||||
[node name="Title" type="Label" parent="Window/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ClosePanel" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.85
|
||||
anchor_top = 0.94
|
||||
anchor_right = 0.99
|
||||
anchor_bottom = 0.99
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
[node name="TabsRow" type="HBoxContainer" parent="Window/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 6
|
||||
|
||||
[node name="CloseButton" type="Button" parent="ClosePanel"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
text = "Close"
|
||||
[node name="Spacer" type="Control" parent="Window/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ExpandedOverlay" type="Control" parent="."]
|
||||
[node name="ProgressLabel" type="Label" parent="Window/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ProgressValue" type="Label" parent="Window/Margin/Root/Header"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="CloseButton" type="Button" parent="Window/Margin/Root/Header"]
|
||||
custom_minimum_size = Vector2(38, 38)
|
||||
layout_mode = 2
|
||||
theme_type_variation = "CthangoverIcon"
|
||||
text = "✕"
|
||||
|
||||
[node name="Rule" type="Panel" parent="Window/Margin/Root"]
|
||||
custom_minimum_size = Vector2(0, 1)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Body" type="HBoxContainer" parent="Window/Margin/Root"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 14
|
||||
|
||||
[node name="Showcase" type="VBoxContainer" parent="Window/Margin/Root/Body"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="Toolbar" type="HBoxContainer" parent="Window/Margin/Root/Body/Showcase"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="SearchEdit" type="LineEdit" parent="Window/Margin/Root/Body/Showcase/Toolbar"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="SortOption" type="OptionButton" parent="Window/Margin/Root/Body/Showcase/Toolbar"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="RarityTabs" type="HFlowContainer" parent="Window/Margin/Root/Body/Showcase"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/h_separation = 6
|
||||
theme_override_constants/v_separation = 6
|
||||
|
||||
[node name="GridScroll" type="ScrollContainer" parent="Window/Margin/Root/Body/Showcase"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="GridContent" type="Control" parent="Window/Margin/Root/Body/Showcase/GridScroll"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="EmptyLabel" type="Label" parent="Window/Margin/Root/Body/Showcase"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
mouse_filter = 2
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="ExpandedBg" type="ColorRect" parent="ExpandedOverlay"]
|
||||
[node name="Footer" type="HBoxContainer" parent="Window/Margin/Root/Body/Showcase"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 16
|
||||
|
||||
[node name="Hint" type="Label" parent="Window/Margin/Root/Body/Showcase/Footer"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="ResetButton" type="Button" parent="Window/Margin/Root/Body/Showcase/Footer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Side" type="PanelContainer" parent="Window/Margin/Root/Body"]
|
||||
custom_minimum_size = Vector2(400, 0)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="SideScroll" type="ScrollContainer" parent="Window/Margin/Root/Body/Side"]
|
||||
layout_mode = 2
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="Passport" type="VBoxContainer" parent="Window/Margin/Root/Body/Side/SideScroll"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 14
|
||||
|
||||
[node name="SideLabel" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Plate" type="Control" parent="Window/Margin/Root/Body/Side/SideScroll/Passport"]
|
||||
custom_minimum_size = Vector2(340, 438)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="PlateBg" type="Panel" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -89,71 +185,220 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0, 0, 0, 0.9)
|
||||
|
||||
[node name="ExpandedFrameImg" type="TextureRect" parent="ExpandedOverlay"]
|
||||
[node name="PlateArt" type="PanelContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.1
|
||||
anchor_top = 0.1
|
||||
anchor_right = 0.9
|
||||
anchor_bottom = 0.9
|
||||
anchor_left = 0.03
|
||||
anchor_top = 0.03
|
||||
anchor_right = 0.97
|
||||
anchor_bottom = 0.68
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 3
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="ExpandedImage" type="TextureRect" parent="ExpandedOverlay"]
|
||||
[node name="PlateImage" type="TextureRect" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate/PlateArt"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.15
|
||||
anchor_top = 0.15
|
||||
anchor_right = 0.85
|
||||
anchor_bottom = 0.85
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 2
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="ExpandedName" type="Label" parent="ExpandedOverlay"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.15
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -40.0
|
||||
offset_right = -20.0
|
||||
offset_bottom = -14.0
|
||||
grow_horizontal = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = ""
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
expand_mode = 1
|
||||
stretch_mode = 6
|
||||
|
||||
[node name="PlateGems" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.97
|
||||
anchor_right = 0.97
|
||||
offset_left = -64.0
|
||||
offset_top = 14.0
|
||||
offset_right = -8.0
|
||||
offset_bottom = 32.0
|
||||
grow_horizontal = 0
|
||||
mouse_filter = 2
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="PlateMedal" type="PanelContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -17.0
|
||||
offset_top = -17.0
|
||||
offset_right = 17.0
|
||||
offset_bottom = 17.0
|
||||
grow_horizontal = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="MedalGlyph" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate/PlateMedal"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
text = "◆"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="DescriptionBg" type="ColorRect" parent="ExpandedOverlay"]
|
||||
[node name="PlateNameBox" type="PanelContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_top = 0.75
|
||||
anchor_right = 0.35
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
color = Color(0.05, 0.05, 0.1, 0.85)
|
||||
|
||||
[node name="DescriptionLabel" type="RichTextLabel" parent="ExpandedOverlay/DescriptionBg"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 12.0
|
||||
offset_top = 12.0
|
||||
offset_right = -12.0
|
||||
offset_bottom = -12.0
|
||||
anchor_left = 0.14
|
||||
anchor_top = 0.8
|
||||
anchor_right = 0.86
|
||||
anchor_bottom = 0.93
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
bbcode_enabled = true
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
|
||||
[node name="PlateName" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Plate/PlateNameBox"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="Badges" type="HFlowContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/h_separation = 6
|
||||
theme_override_constants/v_separation = 6
|
||||
|
||||
[node name="Desc" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="Chips" type="HFlowContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/h_separation = 5
|
||||
theme_override_constants/v_separation = 5
|
||||
|
||||
[node name="Grant" type="PanelContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="GrantRow" type="HBoxContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Grant"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="GrantIcon" type="TextureRect" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Grant/GrantRow"]
|
||||
custom_minimum_size = Vector2(44, 44)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 4
|
||||
mouse_filter = 2
|
||||
expand_mode = 1
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="GrantInfo" type="VBoxContainer" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Grant/GrantRow"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 2
|
||||
|
||||
[node name="GrantCaption" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Grant/GrantRow/GrantInfo"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="GrantName" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport/Grant/GrantRow/GrantInfo"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="Empty" type="Label" parent="Window/Margin/Root/Body/Side/SideScroll/Passport"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="Hud" type="Panel" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -458.0
|
||||
offset_top = -232.0
|
||||
offset_right = -32.0
|
||||
offset_bottom = -22.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="HudAccent" type="Panel" parent="Hud"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_bottom = 1.0
|
||||
offset_right = 2.0
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="HudMargin" type="MarginContainer" parent="Hud"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 15
|
||||
theme_override_constants/margin_top = 13
|
||||
theme_override_constants/margin_right = 15
|
||||
theme_override_constants/margin_bottom = 12
|
||||
|
||||
[node name="HudColumn" type="VBoxContainer" parent="Hud/HudMargin"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="HudHead" type="HBoxContainer" parent="Hud/HudMargin/HudColumn"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="HudTitle" type="Label" parent="Hud/HudMargin/HudColumn/HudHead"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="HudSpacer" type="Control" parent="Hud/HudMargin/HudColumn/HudHead"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="HudCount" type="Label" parent="Hud/HudMargin/HudColumn/HudHead"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="HudRule" type="Panel" parent="Hud/HudMargin/HudColumn"]
|
||||
custom_minimum_size = Vector2(0, 1)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="HudScroll" type="ScrollContainer" parent="Hud/HudMargin/HudColumn"]
|
||||
custom_minimum_size = Vector2(0, 96)
|
||||
layout_mode = 2
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="HudList" type="GridContainer" parent="Hud/HudMargin/HudColumn/HudScroll"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
theme_override_constants/h_separation = 20
|
||||
theme_override_constants/v_separation = 4
|
||||
columns = 2
|
||||
|
||||
[node name="HudEmpty" type="Label" parent="Hud/HudMargin/HudColumn"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
autowrap_mode = 3
|
||||
|
||||
[node name="HudFoot" type="Label" parent="Hud/HudMargin/HudColumn"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
autowrap_mode = 3
|
||||
@@ -1,34 +0,0 @@
|
||||
using Cthangover.Core.Characters;
|
||||
using Cthangover.Core.Relationship;
|
||||
using Cthangover.Core.Settings;
|
||||
|
||||
namespace Cthangover.Core.Relationship
|
||||
{
|
||||
/// <summary>
|
||||
/// Recruitment condition that gates the "enslave" recruit option
|
||||
/// behind the <c>slave_master</c> skill. When the player attempts to
|
||||
/// recruit an NPC, the recruitment system queries all registered
|
||||
/// <see cref="IRecruitCondition"/> implementations; if this condition
|
||||
/// is present and the player does not have the skill, the enslavement
|
||||
/// option is hidden or disabled.
|
||||
/// </summary>
|
||||
public class EnslaveCondition : IRecruitCondition
|
||||
{
|
||||
/// <summary>
|
||||
/// Identifies this condition as the enslavement gate for the
|
||||
/// recruitment system (maps to <c>enslave</c> option).
|
||||
/// </summary>
|
||||
public string Id => "enslave";
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether enslavement is available for the given enemy.
|
||||
/// Checks the runtime skill data for the <c>slave_master</c> skill.
|
||||
/// The target <paramref name="enemy"/> is provided but not inspected
|
||||
/// because the condition depends solely on the player's skills.
|
||||
/// </summary>
|
||||
public bool CanRecruit(Character enemy, RuntimeData runtime)
|
||||
{
|
||||
return runtime.SkillData.HasSkill("slave_master");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
using Cthangover.Core.Events;
|
||||
using Cthangover.Core.Mods;
|
||||
using Cthangover.Core.Settings;
|
||||
|
||||
namespace Cthangover.Core.Characters
|
||||
{
|
||||
/// <summary>
|
||||
/// Populates the initial player party with the default starter
|
||||
/// character <c>"Marao"</c> when the core mod finishes loading.
|
||||
///
|
||||
/// The party can only be populated during <c>OnModResourcesReady</c>,
|
||||
/// not earlier. <c>OnModLoaded</c> and the constructor fire inside
|
||||
/// <c>ModRegistry.Initialize</c> → <c>ModCompiler.LoadModCode</c>,
|
||||
/// where mod JSON resources are not yet guaranteed to be accessible.
|
||||
/// <c>AddCharacterToParty</c> chains into <c>CharacterFactory.Get</c>,
|
||||
/// which calls <c>ModManager.CollectJsonGroup</c> — this requires
|
||||
/// file providers to be fully set up, which only happens after the
|
||||
/// entire <c>ModRegistry.Initialize</c> pipeline completes.
|
||||
///
|
||||
/// <c>OnModResourcesReady</c> is invoked by <c>ModInitializerRegistry
|
||||
/// .NotifyResourcesReady</c> at the end of <c>SceneManager.Initialize</c>,
|
||||
/// after <c>ModRegistry</c> finishes discovery, <c>SceneEventRegistry</c>
|
||||
/// is primed, and scene definitions are collected. At that point all
|
||||
/// factories can safely read mod JSON data.
|
||||
///
|
||||
/// Mods that introduce additional starter characters should implement
|
||||
/// their own <c>IModInitializer</c> and call <c>AddCharacterToParty</c>
|
||||
/// from <c>OnModResourcesReady</c> for their character IDs.
|
||||
/// </summary>
|
||||
public class StarterPartyInitializer : IModInitializer
|
||||
{
|
||||
private static bool newGameHookInstalled;
|
||||
|
||||
/// <summary>
|
||||
/// No-op: cross-mod lifecycle notifications are not needed for
|
||||
/// starter party setup. Each mod's <c>OnModResourcesReady</c>
|
||||
/// handles its own default characters independently.
|
||||
/// </summary>
|
||||
public void OnModLoaded(string modId) { }
|
||||
|
||||
/// <summary>
|
||||
/// Adds the core mod's default starter character <c>"Marao"</c>
|
||||
/// to both <c>Characters</c> and <c>BattleSet</c> via
|
||||
/// <c>CharacterData.AddCharacterToParty</c>. Called once, after
|
||||
/// all mod file providers and JSON resources are guaranteed to
|
||||
/// be accessible. Also installs the one-time
|
||||
/// <see cref="NewGameStartedEvent"/> hook so the starter party is
|
||||
/// restored after <c>ResetRuntime</c> wipes it at the start of a
|
||||
/// new game. Both operations are idempotent.
|
||||
/// </summary>
|
||||
public void OnModResourcesReady()
|
||||
{
|
||||
SeedStarterParty();
|
||||
|
||||
if (newGameHookInstalled)
|
||||
return;
|
||||
|
||||
newGameHookInstalled = true;
|
||||
ModEventBus.Subscribe<NewGameStartedEvent>(_ => SeedStarterParty());
|
||||
}
|
||||
|
||||
private static void SeedStarterParty()
|
||||
{
|
||||
GameData.Instance.Runtime.CharacterData.AddCharacterToParty("Marao");
|
||||
GameData.Instance.Runtime.SkillData.AddSkill("slave_master");
|
||||
}
|
||||
}
|
||||
}
|
||||