<object name="orc_1">
<inherit name="orc_object_type"
</object>
<object name="orc_2">
<inherit name="orc_object_type"
</object>
<type name="orc_object_type">
<alias>orc</alias>
<description>Orcs are ugly, green, and stupid, but they're strong.</description>
<attr name="condition" type="simplestringlist">normal</attr>
<attr name="locomotion" type="simplestringlist">bipedal;walking</attr>
<attr name="race" type="string">orc</attr>
<attr name="current_life" type="int">100</attr>
<attr name="maximum_life" type="int">100</attr>
<attr name="strength" type="int">25
<attr name="endurance" type="int">25
<attr name="dexterity" type="int">25
<attr name="agility" type="int">25
<attr name="speed" type="int">25
<attr name="luck" type="int">25
<attr name="fight" type="script">
// blah combat scripting
</attr>
</type>
<type name="equipment_object_type">
<attr name="equipable" type="boolean">true</attr>
<attr name="unequipable" type="boolean">true</attr>
<attr name="equipped" type="boolean">false</attr>
<attr name="weight" type="int">0</attr>
<attr name="price" type="int">0</attr>
<attr name="slot" type="simplestringlist">unknown</attr>
<attr name="layer" type="int">0</attr>
<attr name="durability" type="int">100</attr>
// etc Attributes
</type>
<type name="weapon_object_type">
<inherit name="equipment_object_type" />
<attr name="physical_damage" type="int">0</attr>
<attr name="fire_damage" type="int">0</attr>
<attr name="water_damage" type="int">0</attr>
<attr name="air_damage" type="int">0</attr>
<attr name="earth_damage" type="int">0</attr>
<attr name="light_damage" type="int">0</attr>
<attr name="dark_damage" type="int">0</attr>
<attr name="holy_damage" type="int">0</attr>
<attr name="unholy_damage" type="int">0</attr>
// etc Attributes
</type>
<type name="one_handed_object_type">
<inherit name="weapon_object_type" />
<attr name="two_handed" type="boolean">false</attr>
<attr name="slots" type="simplestringlist">right_hand</attr>
// etc Attributes
</type>
<type name="two_handed_object_type">
<inherit name="weapon_object_type" />
<attr name="two_handed" type="boolean">true</attr>
<attr name="slots" type="simplestringlist">right_hand; left_hand</attr>
// etc Attributes
</type>
<type name="melee_object_type">
<inherit name="weapon_object_type" />
<attr name="attack_range" type="int">0</attr>
<attr name="attack_speed" type="int">0</attr>
// etc Attributes
</type>
<type name="sword_object_type">
</type>
<type name="axe_object_type">
</type>
<type name="ranged_object_type">
<inherit name="weapon_object_type" />
<attr name="range" type="int">1</attr>
<attr name="rate_of_fire" type="int">0</attr>
<attr name="recoil_force" type="int">0</attr>
<attr name="recoil_time" type="int">0</attr>
<attr name="reload_time" type="int">0</attr>
<attr name="maximum_rounds" type="int">1</attr>
<attr name="current_rounds" type="int">0</attr>
// etc Attributes
</type>
<type name="armor_object_type">
<inherit name="equipment_object_type" />
<attr name="physical_resistance" type="int">0</attr>
<attr name="fire_resistance" type="int">0</attr>
<attr name="water_resistance" type="int">0</attr>
<attr name="air_resistance" type="int">0</attr>
<attr name="earth_resistance" type="int">0</attr>
<attr name="light_resistance" type="int">0</attr>
<attr name="dark_resistance" type="int">0</attr>
<attr name="holy_resistance" type="int">0</attr>
<attr name="unholy_resistance" type="int">0</attr>
// etc Attributes
</type>
<type name="clothing_object_type">
<inherit name="equipment_object_type" />
// etc Attributes
</type>
<object name="orc_king">
<inherit name="orc_object_type" />
<alias>orc king</attr>
<attr name="strength" type="int">75</attr>
</object>
<type name="orc_object_type">
<alias>orc</alias>
<attr name="strength" type="int">25</attr>
</type>
Stardog wrote:The only thing stopping me using Quest is that Attributes seem like they can only be one of these:
String
Boolean
Integer
Double
Script
String List
Object
Command Pattern
String dictionary
Script dictionary
Null
How do I choose a custom "Object Type" from here?
I'm looking to make a Gun (inherited type Weapon), with attribute AmmoSlot (needs to be type Ammo, but isn't allowed).
It seems like we can't do basic subclassing for some reason. How do I do this? I need this structure:
Base types/classes
Weapon (Object Type)
- AmmoSlot (Attribute type Ammo)
Ammo (Object Type)
AmmoShell (Object Type - inherited type Ammo)
Objects
Shotgun (inherited type Weapon)
ShotgunShells (inherited type AmmoShell)