Schemas for monster, item, and terrain definitions
This commit is contained in:
13
rsrc/boes/items.xml
Normal file
13
rsrc/boes/items.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<items>
|
||||
<item>
|
||||
<variety>12</variety>
|
||||
<level>3</level>
|
||||
<pic>12</pic>
|
||||
<name>Test Item</name>
|
||||
<full-name>Test Item</full-name>
|
||||
<value>3</value>
|
||||
<weight>10</weight>
|
||||
<properties/>
|
||||
</item>
|
||||
</items>
|
58
rsrc/boes/items.xsd
Normal file
58
rsrc/boes/items.xsd
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:simpleType name="bool">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="true"/>
|
||||
<xs:enumeration value="false"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="item">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="variety" type="xs:integer"/>
|
||||
<xs:element name="level" type="xs:integer"/>
|
||||
<xs:element name="awkward" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="bonus" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="protection" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="charges" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="melee-type" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="pic" type="xs:integer"/>
|
||||
<xs:element name="flag" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="value" type="xs:integer"/>
|
||||
<xs:element name="weight" type="xs:integer"/>
|
||||
<xs:element name="class" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="full-name" type="xs:string"/>
|
||||
<xs:element name="treasure" type="xs:integer" minOccurs="0"/>
|
||||
<xs:element name="ability" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="type" type="xs:integer"/>
|
||||
<xs:element name="strength" type="xs:integer"/>
|
||||
<xs:element name="use-flag" type="xs:integer" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="properties" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="identified" type="bool" minOccurs="0"/>
|
||||
<xs:element name="magic" type="bool" minOccurs="0"/>
|
||||
<xs:element name="cursed" type="bool" minOccurs="0"/>
|
||||
<xs:element name="concealed" type="bool" minOccurs="0"/>
|
||||
<xs:element name="enchanted" type="bool" minOccurs="0"/>
|
||||
<xs:element name="unsellable" type="bool" minOccurs="0"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="items">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
41
rsrc/boes/monsters.xml
Normal file
41
rsrc/boes/monsters.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<monsters>
|
||||
<monster id="7">
|
||||
<!-- The monster's name -->
|
||||
<name>Cave Cow</name>
|
||||
<!-- Monster picture -->
|
||||
<pic w='1' h='1'>5</pic>
|
||||
<!-- Experience level -->
|
||||
<level>1</level>
|
||||
<!-- Essential stats -->
|
||||
<armor>0</armor>
|
||||
<skill>1</skill>
|
||||
<hp>5</hp>
|
||||
<speed>4</speed>
|
||||
<!-- Treasure class -->
|
||||
<treasure>0</treasure>
|
||||
<!-- Attacks -->
|
||||
<attacks>
|
||||
<attack type='0'>1d4</attack>
|
||||
</attacks>
|
||||
<!-- Breath weapon -->
|
||||
<breath type='dark'>1</breath>
|
||||
<!-- Special abilities -->
|
||||
<abilities>
|
||||
<ability>
|
||||
<type>0</type>
|
||||
<param>4</param>
|
||||
</ability>
|
||||
</abilities>
|
||||
<!-- Actions on sighting -->
|
||||
<onsight/>
|
||||
<!-- Ambient sound (eg cow mooing) -->
|
||||
<voice>17</voice>
|
||||
<!-- Summon class -->
|
||||
<summon>0</summon>
|
||||
<!-- Default attitude -->
|
||||
<attitude>2</attitude>
|
||||
<!-- Immunities (bit field) -->
|
||||
<immunity>0</immunity>
|
||||
</monster>
|
||||
</monsters>
|
126
rsrc/boes/monsters.xsd
Normal file
126
rsrc/boes/monsters.xsd
Normal file
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:simpleType name="bool">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="true"/>
|
||||
<xs:enumeration value="false"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name='dice'>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:pattern value="\d*d\d+"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:element name="ability">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="type" type="xs:integer"/>
|
||||
<xs:element name="param" type="xs:integer" minOccurs="0" maxOccurs="2"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="attack">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="dice">
|
||||
<xs:attribute name="type" type="xs:integer" use="required"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="monster">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="level" type="xs:integer"/>
|
||||
<xs:element name="armor" type="xs:integer"/>
|
||||
<xs:element name="skill" type="xs:integer"/>
|
||||
<xs:element name="hp" type="xs:integer"/>
|
||||
<xs:element name="speed" type="xs:integer"/>
|
||||
<xs:element name="treasure" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="mage" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="priest" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="breath" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="type" use="required">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="fire"/>
|
||||
<xs:enumeration value="cold"/>
|
||||
<xs:enumeration value="shock"/>
|
||||
<xs:enumeration value="dark"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="poison" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="abilities" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="ability" maxOccurs="2"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="attacks">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="attack" maxOccurs="3"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="pic">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:integer">
|
||||
<xs:attribute name="w" type="xs:integer" use="required"/>
|
||||
<xs:attribute name="h" type="xs:integer" use="required"/>
|
||||
<xs:attribute name="custom" type="bool" default="false"/>
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="default-face" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="onsight" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:all minOccurs="1">
|
||||
<xs:element name="sound" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="special" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="message" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="text" maxOccurs="2" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="voice" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="summon" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="attitude" type="xs:integer"/>
|
||||
<xs:element name="immunity" type="xs:integer"/>
|
||||
<xs:element name="loot" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="type" type="xs:integer"/>
|
||||
<xs:element name="chance" type="xs:integer"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="monsters">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="monster" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
133
rsrc/boes/terrain.xsd
Normal file
133
rsrc/boes/terrain.xsd
Normal file
@@ -0,0 +1,133 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:simpleType name="bool">
|
||||
<xs:restriction base="xs:token">
|
||||
<xs:enumeration value="true"/>
|
||||
<xs:enumeration value="false"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="point">
|
||||
<xs:attribute name="x" use="required" type="xs:integer"/>
|
||||
<xs:attribute name="y" use="required" type="xs:integer"/>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="key">
|
||||
<xs:union>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="0"/>
|
||||
<xs:enumeration value="1"/>
|
||||
<xs:enumeration value="2"/>
|
||||
<xs:enumeration value="3"/>
|
||||
<xs:enumeration value="4"/>
|
||||
<xs:enumeration value="5"/>
|
||||
<xs:enumeration value="6"/>
|
||||
<xs:enumeration value="7"/>
|
||||
<xs:enumeration value="8"/>
|
||||
<xs:enumeration value="9"/>
|
||||
<xs:enumeration value="a"/>
|
||||
<xs:enumeration value="b"/>
|
||||
<xs:enumeration value="c"/>
|
||||
<xs:enumeration value="d"/>
|
||||
<xs:enumeration value="e"/>
|
||||
<xs:enumeration value="f"/>
|
||||
<xs:enumeration value="g"/>
|
||||
<xs:enumeration value="h"/>
|
||||
<xs:enumeration value="i"/>
|
||||
<xs:enumeration value="j"/>
|
||||
<xs:enumeration value="k"/>
|
||||
<xs:enumeration value="l"/>
|
||||
<xs:enumeration value="m"/>
|
||||
<xs:enumeration value="n"/>
|
||||
<xs:enumeration value="o"/>
|
||||
<xs:enumeration value="p"/>
|
||||
<xs:enumeration value="q"/>
|
||||
<xs:enumeration value="r"/>
|
||||
<xs:enumeration value="s"/>
|
||||
<xs:enumeration value="t"/>
|
||||
<xs:enumeration value="u"/>
|
||||
<xs:enumeration value="v"/>
|
||||
<xs:enumeration value="w"/>
|
||||
<xs:enumeration value="x"/>
|
||||
<xs:enumeration value="y"/>
|
||||
<xs:enumeration value="z"/>
|
||||
<xs:enumeration value="`"/>
|
||||
<xs:enumeration value="-"/>
|
||||
<xs:enumeration value="="/>
|
||||
<xs:enumeration value="["/>
|
||||
<xs:enumeration value="]"/>
|
||||
<xs:enumeration value="\"/>
|
||||
<xs:enumeration value=";"/>
|
||||
<xs:enumeration value="'"/>
|
||||
<xs:enumeration value=","/>
|
||||
<xs:enumeration value="."/>
|
||||
<xs:enumeration value="/"/>
|
||||
<xs:enumeration value="left"/>
|
||||
<xs:enumeration value="right"/>
|
||||
<xs:enumeration value="up"/>
|
||||
<xs:enumeration value="down"/>
|
||||
<xs:enumeration value="esc"/>
|
||||
<xs:enumeration value="enter"/>
|
||||
<xs:enumeration value="return"/>
|
||||
<xs:enumeration value="tab"/>
|
||||
<xs:enumeration value="help"/>
|
||||
<xs:enumeration value="space"/>
|
||||
<xs:enumeration value="none"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
<xs:element name="editor">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="shortcut" minOccurs="0" type="key"/>
|
||||
<xs:element name="object" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="num" type="xs:integer"/>
|
||||
<xs:element name="pos" type="point"/>
|
||||
<xs:element name="size" type="point"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ground" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="trim-for" minOccurs="0" type="xs:integer"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="terrain">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="pic" type="xs:integer"/>
|
||||
<xs:element name="map" type="xs:integer"/>
|
||||
<xs:element name="blockage" type="xs:integer"/>
|
||||
<xs:element name="special">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="type" type="xs:integer"/>
|
||||
<xs:element name="flag" minOccurs="0" maxOccurs="3" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="transform" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="fly" minOccurs="0" type="bool"/>
|
||||
<xs:element name="boat" minOccurs="0" type="bool"/>
|
||||
<xs:element name="ride" minOccurs="0" type="bool"/>
|
||||
<xs:element name="light" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="step-sound" minOccurs="0" type="xs:integer"/>
|
||||
<xs:element name="trim" type="xs:integer"/>
|
||||
<xs:element name="arena" type="xs:integer"/>
|
||||
<xs:element ref="editor" minOccurs="0"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="id" type="xs:integer" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="terrains">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="terrain" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="boes" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
30
rsrc/boes/terrains.xml
Normal file
30
rsrc/boes/terrains.xml
Normal file
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<terrains>
|
||||
<terrain id='2'>
|
||||
<name>Grass</name>
|
||||
<!-- The picture, and the automap picture -->
|
||||
<pic>2</pic>
|
||||
<map>2</map>
|
||||
<!-- Blockage information -->
|
||||
<blockage>0</blockage>
|
||||
<fly>true</fly>
|
||||
<boat>false</boat>
|
||||
<ride>true</ride>
|
||||
<!-- Trim type, if it's a trim; this isn't -->
|
||||
<trim>0</trim>
|
||||
<!-- Combat arena to use -->
|
||||
<arena>2</arena>
|
||||
<!-- Special terrain property -->
|
||||
<special>
|
||||
<type>0</type>
|
||||
<!-- Can include flags here, if necessary -->
|
||||
</special>
|
||||
<!-- Editor information -->
|
||||
<editor>
|
||||
<!-- Shortcut key -->
|
||||
<shortcut>g</shortcut>
|
||||
<!-- Base terrain type -->
|
||||
<ground>2</ground>
|
||||
</editor>
|
||||
</terrain>
|
||||
</terrains>
|
@@ -1,3 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<dialogue boes="1.0">
|
||||
<!-- Basic personalities -->
|
||||
<personality id="0">
|
||||
|
Reference in New Issue
Block a user