|
@@ -1,9 +1,10 @@
|
|
|
:: introCharacterSelectScript[script]
|
|
|
setup.getStartingCharacter = function(id){
|
|
|
let currentData = clone(setup.startingCharacters[id]);
|
|
|
+ currentData.inheritance = [id];
|
|
|
if("parent" in currentData){
|
|
|
let parentData = setup.getStartingCharacter(currentData.parent);
|
|
|
- let newcurrentData = setup.mergeDeep(parentData,currentData);
|
|
|
+ let newcurrentData = setup.mergeDeep(parentData,currentData,{inheritance:[...parentData.inheritance,...currentData.inheritance]});
|
|
|
|
|
|
currentData = newcurrentData;
|
|
|
delete currentData.parent;
|
|
@@ -26,6 +27,12 @@ setup.getStartingCharactersByFilter = function(filters,shallow = true){
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+setup.startingCharacterTagsIncludes = function(tag){
|
|
|
+ const startData = setup.getStartingCharacter(State.variables.startCharacter) ?? {};
|
|
|
+ const startDataTags = startData.tags ?? [];
|
|
|
+ return startDataTags.includes(tag);
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
:: introCharacterSelectWidgets[widget]
|
|
|
<<widget 'characterSelect'>>
|
|
@@ -98,8 +105,13 @@ setup.getStartingCharactersByFilter = function(filters,shallow = true){
|
|
|
<<set _optionKey = $location_var[$here][0]>>
|
|
|
<<set _optionData = setup.getStartingCharacter(_optionKey)>>
|
|
|
|
|
|
+ <!-- Meta Data -->
|
|
|
+ <<set $startCharacter = _optionKey>>
|
|
|
+
|
|
|
+ <!-- Appearance -->
|
|
|
<<set $pc.avatar = _optionData.image>>
|
|
|
|
|
|
+ <!-- Time -->
|
|
|
<<if _optionData.time>>
|
|
|
<<if _optionData.time.start>>
|
|
|
<<run $time.initTime(
|
|
@@ -185,5 +197,6 @@ setup.getStartingCharactersByFilter = function(filters,shallow = true){
|
|
|
<</switch>>
|
|
|
<</for>>
|
|
|
<</for>>
|
|
|
+
|
|
|
|
|
|
|