Game Settings File - The Dark Eye

Discussion of your thoughts & requests, help for users and game specific configuration files for Character Tool

Moderators: dorpond, Azhrei

Post Reply
wacko76
Cave Troll
Posts: 80
Joined: Sat Jun 14, 2008 8:34 am
Contact:

Game Settings File - The Dark Eye

Post by wacko76 »

Hi jay.

Let's first state what I need from a CT settings file:

1) to use an XML-export file from my Character generator as is.
2) to display these Characters in a pleasant way, i.e. a Character Sheet
3) to edit some values (HP, XP, ability and skill changes), with the ability to later feed the changes back to the Character generator.
4) to load these characters into InitiativeTool (and Maptool?)

Points 1, 2 and 4 seem to be straighforward adapting the CT properties to the properties used in the export-XML.

Point 3 might be trickier. Editing should be easily possible, feeding the changes to the generator is not that easy. Maybe for a start, have an HTML-output of the changes, so they can be entered into the generator tool by hand.

I will state now my understanding on how to implement the points, please correct me or hit me over the head if I talk nonsense.

1) Simply editing the CT properties to match the names used in the export-file?

2) creating a form with the abeille editor using the properties used in step 1) (though I have no idea how to use that thing). The generator has an HTML-output of its data that could be used as a template.

3) I suppose abeille can create editable fields (or the properties must be marked as edible, uhm, editable?). HTML-export? Sounds easy, but I am only a poor little biologist.

4) uhm, I guess once a character is inside CT, it automatically should be compatible to IT? Although the Initiative system must be adapted in IT, but that is a separate project?

Okay, now I bow down and you may start hitting me over the head.

EDIT: I forgot: the export XML-file provides all modifiers in a final fashion, including Race/Culture and Profession mods, so no data lookup (SLOTS?) aside from the XML-file should be necessary.

wacko76
Cave Troll
Posts: 80
Joined: Sat Jun 14, 2008 8:34 am
Contact:

Sample XML-export file

Post by wacko76 »

This is a simple, level 1 fighter:

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="helden.xsl"?>

<helden xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="4.7.5.fix" xsi:noNamespaceSchemaLocation="helden.xsd">
<held key="1150590838531" name="Bernhard(Krieger)">
<geschlecht name="männlich"/>
<rasse name="helden.model.rasse.Mittellaender" string="Mittelländer">
<groesse gewicht="84" value="184"/>
<aussehen augenfarbe="dunkelbraun" aussehentext0="" aussehentext1="" aussehentext2="" aussehentext3="" familietext0="" familietext1="" familietext2="" familietext3="" familietext4="" familietext5="" gbjahr="1003" gbmonat="1" gbtag="18" gprest="0" gpstart="110" haarfarbe="schwarz" kalender="Bosparans Fall" stand="" titel=""/>
</rasse>
<kultur name="helden.model.kultur.Garetien" string="Garetien/Städte mit wichtigem Tempel/Pilgerstätte/Städtischer Adel">
<variante name="Städte mit wichtigem Tempel/Pilgerstätte"/>
<variante name="Städtischer Adel"/>
</kultur>
<profession name="helden.model.profession.Krieger" string="Krieger: Institut der Hohen Schule der Reiterei zu Gareth">
<variante name="Institut der Hohen Schule der Reiterei zu Gareth"/>
</profession>
<ausbildung>
<profession name="helden.model.profession.Krieger" string="Krieger: Institut der Hohen Schule der Reiterei zu Gareth">
<variante name="Institut der Hohen Schule der Reiterei zu Gareth"/>
</profession>
</ausbildung>
<notiz notiz0="Notizen" notiz1="" notiz10="" notiz11="" notiz2="" notiz3="" notiz4="" notiz5="" notiz6="" notiz7="" notiz8="" notiz9=""/>
<portraet value=""/>
<abenteuerpunkte value="0"/>
<freieabenteuerpunkte value="0"/>
<eigenschaft mod="0" name="Mut" startwert="14" value="14"/>
<eigenschaft mod="0" name="Klugheit" startwert="10" value="10"/>
<eigenschaft mod="0" name="Intuition" startwert="12" value="12"/>
<eigenschaft mod="0" name="Charisma" startwert="10" value="10"/>
<eigenschaft mod="0" name="Fingerfertigkeit" startwert="12" value="12"/>
<eigenschaft mod="0" name="Gewandtheit" startwert="14" value="14"/>
<eigenschaft mod="0" name="Konstitution" startwert="14" value="14"/>
<eigenschaft mod="0" name="Körperkraft" startwert="14" value="14"/>
<eigenschaft mod="1" name="Sozialstatus" startwert="7" value="7"/>
<eigenschaft mod="12" name="Lebensenergie" value="0"/>
<eigenschaft mod="13" name="Ausdauer" value="0"/>
<eigenschaft grossemeditation="0" mod="0" mrmod="-4" name="Astralenergie" value="0"/>
<eigenschaft karmalqueste="0" mod="0" name="Karmaenergie" value="0"/>
<eigenschaft mod="0" name="ini" value="11"/>
<eigenschaft mod="0" name="at" value="8"/>
<eigenschaft mod="0" name="pa" value="8"/>
<eigenschaft mod="0" name="fk" value="8"/>
<vorteil name="Adlige Abstammung"/>
<vorteil name="Akademische Ausbildung (Krieger)"/>
<vorteil name="Göttergeschenk: Greif"/>
<vorteil name="Linkshänder"/>
<vorteil name="Arroganz" value="5"/>
<vorteil name="Autoritätsgläubig" value="6"/>
<vorteil name="Prinzipientreue"/>
<vorteil name="Schulden"/>
<vorteil name="Verpflichtungen"/>
<vorteil name="Vorurteile" value="6"/>
<sonderfertigkeit name="Linkhand"/>
<sonderfertigkeit name="Reiterkampf"/>
<sonderfertigkeit name="Rüstungsgewöhnung I"/>
<talent lernmethode="Lehrmeister" name="Bogen" probe=" (GE/GE/KK)" value="4"/>
<talent lernmethode="Lehrmeister" name="Dolche" probe=" (GE/GE/KK)" value="3"/>
<talent lernmethode="Lehrmeister" name="Hiebwaffen" probe=" (GE/GE/KK)" value="0"/>
<talent lernmethode="Lehrmeister" name="Lanzenreiten" probe=" (GE/GE/KK)" value="7"/>
<talent lernmethode="Lehrmeister" name="Raufen" probe=" (GE/GE/KK)" value="7"/>
<talent lernmethode="Lehrmeister" name="Ringen" probe=" (GE/GE/KK)" value="7"/>
<talent lernmethode="Lehrmeister" name="Schwerter" probe=" (GE/GE/KK)" value="5"/>
<talent lernmethode="Lehrmeister" name="Säbel" probe=" (GE/GE/KK)" value="10"/>
<talent lernmethode="Lehrmeister" name="Wurfmesser" probe=" (GE/GE/KK)" value="0"/>
<talent be="BEx2" lernmethode="Lehrmeister" name="Athletik" probe=" (GE/KO/KK)" value="5"/>
<talent be="BEx2" lernmethode="Lehrmeister" name="Klettern" probe=" (MU/GE/KK)" value="2"/>
<talent be="BEx2" lernmethode="Lehrmeister" name="Körperbeherrschung" probe=" (MU/IN/GE)" value="5"/>
<talent be="BE-2" lernmethode="Lehrmeister" name="Reiten" probe=" (CH/GE/KK)" value="7"/>
<talent be="BE" lernmethode="Lehrmeister" name="Schleichen" probe=" (MU/IN/GE)" value="0"/>
<talent be="BEx2" lernmethode="Lehrmeister" name="Schwimmen" probe=" (GE/KO/KK)" value="2"/>
<talent be="" lernmethode="Lehrmeister" name="Selbstbeherrschung" probe=" (MU/KO/KK)" value="5"/>
<talent be="BE-2" lernmethode="Lehrmeister" name="Sich verstecken" probe=" (MU/IN/GE)" value="0"/>
<talent be="BE-3" lernmethode="Lehrmeister" name="Singen" probe=" (IN/CH/CH)" value="0"/>
<talent be="0->BE" lernmethode="Lehrmeister" name="Sinnenschärfe" probe=" (KL/IN/IN)" value="5"/>
<talent be="BEx2" lernmethode="Lehrmeister" name="Tanzen" probe=" (CH/GE/GE)" value="0"/>
<talent be="" lernmethode="Lehrmeister" name="Zechen" probe=" (IN/KO/KK)" value="1"/>
<talent lernmethode="Lehrmeister" name="Etikette" probe=" (KL/IN/CH)" value="7"/>
<talent lernmethode="Lehrmeister" name="Menschenkenntnis" probe=" (KL/IN/CH)" value="6"/>
<talent lernmethode="Lehrmeister" name="Überreden" probe=" (MU/IN/CH)" value="2"/>
<talent lernmethode="Lehrmeister" name="Fesseln/Entfesseln" probe=" (FF/GE/KK)" value="1"/>
<talent lernmethode="Lehrmeister" name="Fährtensuchen" probe=" (KL/IN/KO)" value="0"/>
<talent lernmethode="Lehrmeister" name="Orientierung" probe=" (KL/IN/IN)" value="3"/>
<talent lernmethode="Lehrmeister" name="Wildnisleben" probe=" (IN/GE/KO)" value="0"/>
<talent lernmethode="Lehrmeister" name="Geografie" probe=" (KL/KL/IN)" value="3"/>
<talent lernmethode="Lehrmeister" name="Geschichtswissen" probe=" (KL/KL/IN)" value="4"/>
<talent lernmethode="Lehrmeister" name="Götter und Kulte" probe=" (KL/KL/IN)" value="6"/>
<talent lernmethode="Lehrmeister" name="Heraldik" probe=" (KL/KL/FF)" value="6"/>
<talent lernmethode="Lehrmeister" name="Kriegskunst" probe=" (MU/KL/CH)" value="7"/>
<talent lernmethode="Lehrmeister" name="Pflanzenkunde" probe=" (KL/IN/FF)" value="1"/>
<talent lernmethode="Lehrmeister" name="Rechnen" probe=" (KL/KL/IN)" value="3"/>
<talent lernmethode="Lehrmeister" name="Rechtskunde" probe=" (KL/KL/IN)" value="2"/>
<talent lernmethode="Lehrmeister" name="Sagen und Legenden" probe=" (KL/IN/CH)" value="5"/>
<talent lernmethode="Lehrmeister" name="Tierkunde" probe=" (MU/KL/IN)" value="3"/>
<talent k="18" lernmethode="Lehrmeister" name="Sprachen kennen Garethi" probe=" (KL/IN/CH)" value="8"/>
<talent k="21" lernmethode="Lehrmeister" name="Sprachen kennen Rogolan" probe=" (KL/IN/CH)" value="3"/>
<talent k="18" lernmethode="Lehrmeister" name="Sprachen kennen Tulamidya" probe=" (KL/IN/CH)" value="5"/>
<talent k="10" lernmethode="Lehrmeister" name="Lesen/Schreiben Kusliker Zeichen" probe=" (KL/KL/FF)" value="6"/>
<talent lernmethode="Lehrmeister" name="Fahrzeug lenken" probe=" (IN/CH/FF)" value="3"/>
<talent lernmethode="Lehrmeister" name="Hauswirtschaft" probe=" (IN/CH/FF)" value="1"/>
<talent lernmethode="Lehrmeister" name="Heilkunde: Wunden" probe=" (KL/CH/FF)" value="5"/>
<talent lernmethode="Lehrmeister" name="Holzbearbeitung" probe=" (KL/FF/KK)" value="0"/>
<talent lernmethode="Lehrmeister" name="Kochen" probe=" (KL/IN/FF)" value="0"/>
<talent lernmethode="Lehrmeister" name="Lederarbeiten" probe=" (KL/FF/FF)" value="0"/>
<talent lernmethode="Lehrmeister" name="Malen/Zeichnen" probe=" (KL/IN/FF)" value="0"/>
<talent lernmethode="Lehrmeister" name="Schneidern" probe=" (KL/FF/FF)" value="0"/>
<kampfwerte name="Dolche">
<attacke value="9"/>
<parade value="10"/>
</kampfwerte>
<kampfwerte name="Hiebwaffen">
<attacke value="8"/>
<parade value="8"/>
</kampfwerte>
<kampfwerte name="Raufen">
<attacke value="13"/>
<parade value="10"/>
</kampfwerte>
<kampfwerte name="Ringen">
<attacke value="10"/>
<parade value="13"/>
</kampfwerte>
<kampfwerte name="Schwerter">
<attacke value="11"/>
<parade value="10"/>
</kampfwerte>
<kampfwerte name="Säbel">
<attacke value="15"/>
<parade value="11"/>
</kampfwerte>
<ausruestung aktivenkw="0" aktiveruestung="0" aktivesschild="0" name="allgemein"/>
<ausruestungneu name="jagtwaffe" nummer="0"/>
<extention/>
<geldboerse/>
</held>
</helden>

User avatar
harchunk
Giant
Posts: 116
Joined: Sat Mar 22, 2008 7:12 pm

Post by harchunk »

Simple?!?

wacko76
Cave Troll
Posts: 80
Joined: Sat Jun 14, 2008 8:34 am
Contact:

Post by wacko76 »

Yeah, simple as in: no magic user, no cleric (divine powers), no a special race like dwarf, orc, lizardman, elf, goblin, or whatever, plain and simple human fighter. :D

Well, to be honest, he could be a bit simpler. It's not a generic fighter, he is from a specific academy.

User avatar
jay
RPTools Team
Posts: 1767
Joined: Tue Feb 07, 2006 1:07 am
Location: Austin, Tx

Re: Game Settings File - The Dark Eye

Post by jay »

wacko76 wrote:Hi jay.

Let's first state what I need from a CT settings file:

1) to use an XML-export file from my Character generator as is.
2) to display these Characters in a pleasant way, i.e. a Character Sheet
3) to edit some values (HP, XP, ability and skill changes), with the ability to later feed the changes back to the Character generator.
4) to load these characters into InitiativeTool (and Maptool?)
These are good goals :)
wacko76 wrote:Points 1, 2 and 4 seem to be straighforward adapting the CT properties to the properties used in the export-XML.
You are right about 2 & 4, they are fairly straight forward. It is number 1 that I am worried about. CT will not be able to read the posted XML file without transforming it from the tool's XML to CT's XML. There isn't support for that in CT, but I think that functionality would be a good upgrade for the tool. The XSL transform files, which contains the instructions on how to convert from one XML file to the other, will still have to be created. There will need to be one for importing the file and one for exporting it back to the character generator.
wacko76 wrote:Point 3 might be trickier. Editing should be easily possible, feeding the changes to the generator is not that easy. Maybe for a start, have an HTML-output of the changes, so they can be entered into the generator tool by hand.
CT doesn't do HTML yet :) The transforms I mention above will create a new file that can be loaded into the generator. As long as the generator doesn't re-calculate the value it should show up their.
wacko76 wrote:I will state now my understanding on how to implement the points, please correct me or hit me over the head if I talk nonsense.

1) Simply editing the CT properties to match the names used in the export-file?
That is correct. But, CT doesn't use attributes like the XML file from the generator tool does. The attributes are those name value pairs within an element. You will have to break these out to their own properties. It would work something like this:

Code: Select all

In the XML from the generation tool what looks like this:
  <element>element-values</element>

Would look like something like this in the XML used by CT:
  <element>
    <attribute>attribute-value</attribute>
    <element>element-value</element>
  <element>
wacko76 wrote:2) creating a form with the abeille editor using the properties used in step 1) (though I have no idea how to use that thing). The generator has an HTML-output of its data that could be used as a template.
Eventually I'll write some instructions on using Abeille. But, it is a visual tool so there is only so much you can learn without actually trying it out. The HTML output is a good place to start if you like the format.
wacko76 wrote:3) I suppose abeille can create editable fields (or the properties must be marked as edible, uhm, editable?). HTML-export? Sounds easy, but I am only a poor little biologist.
You add Text Fields or Text areas to the Abeille character sheet to create editable fields. You give them the name of a property defined in the game settings file and CT will handle updating the values for you in the actual character.
wacko76 wrote:4) uhm, I guess once a character is inside CT, it automatically should be compatible to IT? Although the Initiative system must be adapted in IT, but that is a separate project?
CT & IT use the same game settings file since they share a lot of the same data, but there are some IT specific files. They don't have to exist to just run CT so they can be done later.
wacko76 wrote:Okay, now I bow down and you may start hitting me over the head.

EDIT: I forgot: the export XML-file provides all modifiers in a final fashion, including Race/Culture and Profession mods, so no data lookup (SLOTS?) aside from the XML-file should be necessary.
It doesn't sound like it. You may want to add look-up files for spell effects or modifiers applied for conditions. But, those can wait until later as well.

wacko76
Cave Troll
Posts: 80
Joined: Sat Jun 14, 2008 8:34 am
Contact:

Post by wacko76 »

1) Simply editing the CT properties to match the names used in the export-file?
That is correct. But, CT doesn't use attributes like the XML file from the generator tool does. The attributes are those name value pairs within an element. You will have to break these out to their own properties. It would work something like this:
In the XML from the generation tool what looks like this:

Code: Select all

<element>element-values</element>
Would look like something like this in the XML used by CT:

Code: Select all

<element>
    <attribute>attribute-value</attribute>
    <element>element-value</element>
  <element>
Sooo, and I'm using here your fighter Bruvan as a template, this:

Code: Select all

<eigenschaft mod="0" name="Mut" startwert="14" value="14"/>
would become this (not in the CT settings, but this would go into a rptoken-file, right?)

Code: Select all

<property-map>
  <mut>
    <startwert>14</startwert>
    <mod>0</mod>
    <value>14</value>
   </mut>
</property-map>

What must be put in the propertyDescriptorSet.xml then?

*smoke coming out of ears*

User avatar
jay
RPTools Team
Posts: 1767
Joined: Tue Feb 07, 2006 1:07 am
Location: Austin, Tx

Post by jay »

That is correct. The simplest propertyDescriptorSet.xml would be to just make them number fields:

Code: Select all

<property name="mut" type="MAP">
  <description>...</description>
  <properties>
    <property name="startwert" type="NUMBER"><description>...</description></property>
    <property name="value" type="NUMBER"><description>...</description></property>
    <property name="mod" type="NUMBER"><description>...</description></property>
  </properties>
</property>
But if there is something that modifies this value during game play (like a spell or wounds) you would want to do something different. This is what I use the property-set modifiableValue to do in other game settings files. Here is what it would look like without using @extends:

Code: Select all

<property name="mut" type="MAP">
  <description>...</description>
  <properties>
    <property name="startwert" type="NUMBER"><description>...</description></property>
    <property name="value" type="NUMBER"><description>...</description></property>
    <property name="mod" type="SCRIPT">
      <description>The calculated mod value.</description>
      <script>floor((current - 10)/2)</script>
    </property>
    <property name="modifiers" type="LIST">
      <description>A list of modifiers to this property.</description>
      <property name="modifier" type="SLOT" data="modifier"/>
    </property>
    <property name="totalModifiers" type="SCRIPT">
      <description>Add all of the modifiers together following stacking rules</description>
      <script>...</script>
    </property>
    <property name="current" type="SCRIPT">
       <description>Total of the base value and all of the modifiers</description>
       <script>value + totalModifiers</script>
  </properties>
</property>
I'm making a couple of assumptions here due to my almost non-existent knowledge of German and my completely non-existent knowledge of your game:
  • mod is a value that is calculated from the current value of "mut". I used the D&D modifier calculation in the example, but it would be whatever the game used.
  • value is the unmodified value of "mut".
  • startwert is not modified during play.
Since you have lots of "eigenschaft" you can create a property-set and use the same definition of each:

Code: Select all

In the second section of the propertyDescriptorSet.xml you would have:
<property-sets>
  <properties name="eigenschaft">
    <property name="startwert" type="NUMBER"><description>...</description></property>
    <property name="value" type="NUMBER"><description>...</description></property>
    <property name="mod" type="SCRIPT">
      <description>The calculated mod value.</description>
      <script>floor((current - 10)/2)</script>
    </property>
    <property name="modifiers" type="LIST">
      <description>A list of modifiers to this property.</description>
      <property name="modifier" type="SLOT" data="modifier"/>
    </property>
    <property name="totalModifiers" type="SCRIPT">
      <description>Add all of the modifiers together following stacking rules</description>
      <script>...</script>
    </property>
    <property name="current" type="SCRIPT">
       <description>Total of the base value and all of the modifiers</description>
       <script>value + totalModifiers</script>
  </properties>
</property-sets>

Then in the third section you would have a single line for each of the eigenschaft in the game:
   <property name="mut" type="MAP" extends="eigenschaft"><description>...</description></property>
   <property name="klugheit" type="MAP" extends="eigenschaft"><description>...</description></property>
   <property name="intuition" type="MAP" extends="eigenschaft"><description>...</description></property>
   <property name="charisma" type="MAP" extends="eigenschaft"><description>...</description></property>
   ...

wacko76
Cave Troll
Posts: 80
Joined: Sat Jun 14, 2008 8:34 am
Contact:

Post by wacko76 »

hmhmhm, I don't seem to understand why "mut" has "MAP" as type.

"Mut" is an ability, like "Dexterity" or "Strength" in D&D.

The "startwert" is the value that the character has been generated with. this is the value a player gets for paying a number of generation points.

"mod" is the final total modifier for this value due to Race, Culture, Profession. For example a certain subset of dwarves get +2 on Strength. So a player that pays for Strength 14 actually begins play with Strength 16.

"value" is the current value of an ability, including any ability increases bought with XP. If a character receives XP, he can buy improvements, e.g. he could increase his strength by 1 point. In this case, "value" would be 17.

Abilities in the Dark Eye don't have modifiers for testing, like in D&D or Rolemaster. To test an ability, you simply roll d20, add/substract any mods for difficulty and if the results is equal or less of your current value, you pass the test.

I'll try and cobble together a PropertyDescriptorSet.xml from what you have written.

And thank you for your help in this. I really appreciate it.

wacko76
Cave Troll
Posts: 80
Joined: Sat Jun 14, 2008 8:34 am
Contact:

Post by wacko76 »

sooo, here my xml, i removed the complete skill section and all the things related to IT to keep it simple and basically just started with the basic Abilities:

Code: Select all

<property-set>
  <type>TDE-Combatant</type>
  <name>TDE Fantasy Combatant</name>
  <description>This is the descriptor set for The Dark Eye fantasy combatants.</description>
  <game>TDE 4.1</game>
  <source>jay and me</source>
  <property-sets>
    <properties name="eigenschaft">
      <property name="startwert" type="NUMBER"><description>The value of an ability after character generation.</description></property>
      <property name="value" type="NUMBER"><description>The current value of an ability, after applying bought improvements.</description></property>
      <property name="mod" type="NUMBER"><description>The final modifier for Race/Culture/Profession. Fixed value from the generator.</description></property>
      <property name="modifiers" type="LIST"><description>A list of modifiers to this property.</description>
        <property name="modifier" type="SLOT" data="modifier"/></property>
        <property name="totalModifiers" type="SCRIPT"><description>Add all of the modifiers together following stacking rules</description>
          <script>...</script>
      </property>
      <property name="current" type="SCRIPT"><description>Total of the base value and all of the modifiers</description>
        <script>value + totalModifiers</script>
    </properties> 
  </property-sets>
    <properties>
      <property name="race" group="Description" visibility="IN_IT_TABLE"><description>Race of the creature.</description></property>
      <property name="culture" group="Description" visibility="IN_IT_TABLE"><description>Culture of the creature.</description></property>
      <property name="Profession" group="Description" visibility="IN_IT_TABLE"><description>Profession of the creature.</description></property>
      <property name="gender" group="Description" visibility="IN_IT_TABLE"><description>Gender of the character.</description></property>
      <property name="xp" group="Description" visibility="IN_IT_TABLE"><description>Total experience points of character.</description></property>
      <property name="levels" group="Description" visibility="IN_IT_TABLE"><description>Level of the character.</description></property>
      <property name="height" group="Description" visibility="IN_IT_TABLE"><description>Height of the character.</description></property>
      <property name="weight" group="Description" visibility="IN_IT_TABLE"><description>Weight of the character.</description></property>
      <property name="age" group="Description" visibility="IN_IT_TABLE"><description>Age of the character.</description></property>

      <property name="mut" display="MU" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Mut"/>
      <property name="klugheit" display="KL" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Klugheit"/>
      <property name="intuition" display="IN" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Intuition"/>
      <property name="charisma" display="CH" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Charisma"/>
      <property name="fingerfertigkeit" display="FF" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Fingerfertigkeit"/>
      <property name="gewandtheit" display="GE" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Gewandtheit"/>
      <property name="konstitution" display="KO" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Konstitution"/>
      <property name="koerperkraft" display="KK" type="MAP" extends="eigenschaft" group="Eigenschaften" visibility="IN_IT_TABLE" mt-prop="Koerperkraft"/>
    </properties>
</property-set>

User avatar
jay
RPTools Team
Posts: 1767
Joined: Tue Feb 07, 2006 1:07 am
Location: Austin, Tx

Post by jay »

That looks good. The only thing that you are missing is the script for your totalModifiers property. I don't know if you have any special stacking rules in The Dark Eye, but below is the script to use if everything stacks. All it does is read each modifier, see if it applies and adds it to the total if it does apply.

Code: Select all

        <script><![CDATA[JavaScript::
          var Java = new JavaImporter(net.rptools.chartool.model.db, net.rptools.chartool.model.property,
                                      java.lang, java.util, java.math);
          with (Java) {
            if (modifiers != null && !modifiers.isEmpty()) {
              var i = modifiers.iterator();
              var bonus = 0;
              while (i.hasNext()) {
                var mod = i.next();
                if (!mod.get('applies').booleanValue()) continue;
                bonus = bonus + mod.get('bonus').intValue();
              } // endwhile
              new BigDecimal(bonus);
            } else {
              BigDecimal.ZERO;
            } // endif
          } // endwith]]>
        </script>

wacko76
Cave Troll
Posts: 80
Joined: Sat Jun 14, 2008 8:34 am
Contact:

Post by wacko76 »

Hm, those modifier scripts creep me out.

Maybe, let's first concentrate on getting CT to display (just display) a character, then we can start on introducing some interactivity.

I prefer to take little (really little, tiny, teeny, weeny, little) steps :oops:

What would happen if I out the above code in a copy of the say, D20 file and try to load that in CT?

Probably not much. I need the forms to display the data, right? And I'm allergic to bees (abeille = bee) :roll:

Btw, I added you to my Instant Messenger, you should have gotten an "Add me" request.

User avatar
jay
RPTools Team
Posts: 1767
Joined: Tue Feb 07, 2006 1:07 am
Location: Austin, Tx

Post by jay »

wacko76 wrote:Hm, those modifier scripts creep me out.

Maybe, let's first concentrate on getting CT to display (just display) a character, then we can start on introducing some interactivity.

I prefer to take little (really little, tiny, teeny, weeny, little) steps[/code]That is a complicated one, 80% of them are just (property1 * property2) / 2
wacko76 wrote:What would happen if I out the above code in a copy of the say, D20 file and try to load that in CT?

Probably not much. I need the forms to display the data, right? And I'm allergic to bees (abeille = bee) :roll:
That's what the bee on the splash screen means! :wink:
wacko76 wrote:Btw, I added you to my Instant Messenger, you should have gotten an "Add me" request.
I haven't seen any requests yet, but I'll keep an eye out.

Post Reply

Return to “CharacterTool”