SimpleTest/tools/charactercreation/charactertool.xml
2026-04-20 16:59:56 +02:00

555 lines
25 KiB
XML

<Tool>
<Name>charactercreator</Name>
<AccessRule>[rule.access]</AccessRule>
<Display>Character Creator</Display>
<Description>The Character Creation Tool</Description>
<Data>
<DataSlot Name="character">
<DataStructure>characterdata</DataStructure>
</DataSlot>
</Data>
<Bases>
<BaseReference Name="races">
<Path>wiki/races/Races</Path>
</BaseReference>
</Bases>
<Libraries>
<LibraryReference>charlib</LibraryReference>
</Libraries>
<StartPage>"start"</StartPage>
<Pages>
<Page Name="start">
<Content>
<DataSlotLoader>
<DataSlot>[data.character]</DataSlot>
<Create>
<Rule>[rule.createcharacter]</Rule>
</Create>
<OnPostLoad>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
</OnPostLoad>
<OnPostCreate>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
</OnPostCreate>
</DataSlotLoader>
</Content>
<!--
<OnOpen/>
<OnClose/>
-->
</Page>
<Page Name="newchar">
<Content>
<GridContainer>
<Cols>2</Cols>
<Content>
<Label>
<Text>"Name"</Text>
</Label>
<StringInput>
<Output>[data.character.definition.name]</Output>
</StringInput>
<Label>
<Text>"Rasse"</Text>
</Label>
<BaseSingleSelect>
<Base>[base.races.Playable]</Base>
<Output>[data.character.race.id]</Output>
<Display>[file.name]</Display>
<PropertyOutputs>
<PropertyOutput>
<Property>[race.speed]</Property>
<Output>[data.character.race.speed]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[file.name]</Property>
<Output>[data.character.race.name]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[race.minage]</Property>
<Output>[data.character.race.minage]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[race.maxage]</Property>
<Output>[data.character.race.maxage]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[race.minweight]</Property>
<Output>[data.character.race.minweight]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[race.maxweight]</Property>
<Output>[data.character.race.maxweight]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[race.minheight]</Property>
<Output>[data.character.race.minheight]</Output>
</PropertyOutput>
<PropertyOutput>
<Property>[race.maxheight]</Property>
<Output>[data.character.race.maxheight]</Output>
</PropertyOutput>
</PropertyOutputs>
</BaseSingleSelect>
</Content>
</GridContainer>
<GridContainer>
<Cols>3</Cols>
<Content>
<Empty/>
<Empty/>
<Button>
<Text>"Weiter"</Text>
<OnClick>
<Action>
<Do>"profile"</Do>
<Output>[data.character.flow.currentPage]</Output>
</Action>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
</OnClick>
</Button>
</Content>
</GridContainer>
<GridContainer>
<Cols>3</Cols>
<Content>
<Empty/>
<MarkdownDisplay>
<MarkdownId>[data.character.race.id]</MarkdownId>
</MarkdownDisplay>
</Content>
</GridContainer>
</Content>
</Page>
<Page Name="profile">
<Content>
<!-- Header Bar -->
<Bar>
<Displays>
<BarDisplay>
<Name>"Name"</Name>
<Value>[data.character.definition.name]</Value>
</BarDisplay>
<BarDisplay>
<Name>"Rasse"</Name>
<Value>[data.character.race.name]</Value>
</BarDisplay>
<BarDisplay>
<Name>"XP"</Name>
<Value>[data.character.control.xp]</Value>
</BarDisplay>
<BarDisplay>
<Name>"Kreuzer"</Name>
<Value>[data.character.control.coins]</Value>
</BarDisplay>
</Displays>
</Bar>
<HorizontalContainer>
<Content>
<Button>
<Text>"Profil"</Text>
<OnClick>
<Action>
<Do>"profile"</Do>
<Output>[data.character.flow.currentPage]</Output>
</Action>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
</OnClick>
</Button>
<Button>
<Text>"Grundattribute"</Text>
<OnClick>
<Action>
<Do>"baseattributes"</Do>
<Output>[data.character.flow.currentPage]</Output>
</Action>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
</OnClick>
</Button>
</Content>
</HorizontalContainer>
<!-- End Header Bar -->
<Header>
<Level>2</Level>
<Text>"Persönliche Daten"</Text>
</Header>
<GridContainer>
<Cols>2</Cols>
<Content>
<Label>
<Text>"Name"</Text>
</Label>
<StringInput>
<Output>[data.character.definition.name]</Output>
</StringInput>
<Label>
<Text>"Geschlecht"</Text>
</Label>
<StringInput>
<Output>[data.character.definition.gender]</Output>
</StringInput>
<Label>
<Text>"Titel"</Text>
</Label>
<StringInput>
<Output>[data.character.definition.title]</Output>
</StringInput>
<Label>
<Text>"Herkunft"</Text>
</Label>
<StringInput>
<Output>[data.character.definition.origin]</Output>
</StringInput>
<Label>
<Text>"Profession"</Text>
</Label>
<StringInput>
<Output>[data.character.definition.profession]</Output>
</StringInput>
</Content>
</GridContainer>
<Header>
<Level>2</Level>
<Text>"Äußerliches"</Text>
</Header>
<GridContainer>
<Cols>3</Cols>
<Content>
<Label>
<Text>"Größe"</Text>
</Label>
<ValueAndBorders>
<Value>[data.character.definition.height]</Value>
<LowerBorder>[data.character.race.minheight]</LowerBorder>
<UpperBorder>[data.character.race.maxheight]</UpperBorder>
</ValueAndBorders>
<ValueButtons>
<Output>[data.character.definition.height]</Output>
<Buttons>
<ValueButton>
<Value>-10</Value>
</ValueButton>
<ValueButton>
<Value>-5</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+5</Value>
</ValueButton>
<ValueButton>
<Value>+10</Value>
</ValueButton>
</Buttons>
</ValueButtons>
</Content>
</GridContainer>
</Content>
</Page><!-- End Profile Page-->
<Page Name="baseattributes">
<Content>
<!-- Header Bar -->
<Bar>
<Displays>
<BarDisplay>
<Name>"Name"</Name>
<Value>[data.character.definition.name]</Value>
</BarDisplay>
<BarDisplay>
<Name>"Rasse"</Name>
<Value>[data.character.race.name]</Value>
</BarDisplay>
<BarDisplay>
<Name>"XP"</Name>
<Value>[data.character.control.xp]</Value>
</BarDisplay>
<BarDisplay>
<Name>"Kreuzer"</Name>
<Value>[data.character.control.coins]</Value>
</BarDisplay>
</Displays>
</Bar>
<HorizontalContainer>
<Content>
<Button>
<Text>"Profil"</Text>
<OnClick>
<Action>
<Do>"profile"</Do>
<Output>[data.character.flow.currentPage]</Output>
</Action>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
</OnClick>
</Button>
<Button>
<Text>"Grundattribute"</Text>
<OnClick>
<Action>
<Do>"baseattributes"</Do>
<Output>[data.character.flow.currentPage]</Output>
</Action>
<OpenPage>
<Page>[data.character.flow.currentPage]</Page>
</OpenPage>
</OnClick>
</Button>
</Content>
</HorizontalContainer>
<!-- End Header Bar -->
<GridContainer>
<Cols>3</Cols>
<Content>
<!-- Courage/Mut -->
<Label>
<Text>Mut</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.courage]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
<!-- Intelligence/Intelligenz -->
<Label>
<Text>Intelligenz</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.intelligence]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
<!-- Intuition/Intuition -->
<Label>
<Text>Intuition</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.intuition]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
<!-- Charisma/Charisma -->
<Label>
<Text>Charisma</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.charisma]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
<!-- Dexterity/Fingerfertigkeit -->
<Label>
<Text>Fingerfertigkeit</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.dexterity]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
<!-- agility/Gewandheit -->
<Label>
<Text>Gewandheit</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.agility]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
<!-- physique/Konstitution -->
<Label>
<Text>Konstitution</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.physique]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
<!-- Strength/Körperkraft -->
<Label>
<Text>Körperkraft</Text>
</Label>
<ValueAndBorders>
<LowerBorder>8</LowerBorder>
<UpperBorder>15</UpperBorder>
<Value>8</Value>
</ValueAndBorders>
<ValueButtons>
<Budget>[data.character.control.xp]</Budget>
<Cost>charlib_cost_attr([params.0])</Cost>
<Output>[data.character.attributes.strength]</Output>
<Buttons>
<ValueButton>
<Value>-3</Value>
</ValueButton>
<ValueButton>
<Value>-1</Value>
</ValueButton>
<ValueButton>
<Value>+1</Value>
</ValueButton>
<ValueButton>
<Value>+3</Value>
</ValueButton>
</Buttons>
</ValueButtons>
</Content>
</GridContainer>
</Content>
</Page>
</Pages>
</Tool>