Stendhal/Creature Organization/Examples
These changes should be able to be made without affecting the game. But the logic tilesets for Tiled should eventually be reworked. Creature classes only appear to affect class definition on the website.
Option 1: Very generalized categories
animal.xml
- Merge the following:
- farm_animal.xml
- small_animal.xml
- crocodile
- giant spider
- giantrat
- king cobra
human.xml
- Merge the following:
- amazoness.xml
- chaos.xml
- madaram.xml
- giant, elder giant, master giant, amazoness giant, ice giant, black giant (optionally to mythical.xml or hybrid.xml)
hybrid.xml
- Merge the following into this file:
- beholder.xml
- demon.xml (optionally to undead.xml)
- elemental.xml (optionally to mythical_being.xml)
- ent.xml (optionally to mythical_being.xml)
- frogman.xml
- gargoyle.xml
- giant.xml
- goblin.xml
- golem.xml
- kobold.xml
- minotaur.xml
- oni.xml
- orc.xml
- ratfolk.xml
- sheepman.xml
- troll.xml
- cat woman
- dark mutant
- devil queen (optional)
- dwarf golem
- giant kobold
- glow monster
- green slime, brown slime, black slime, twilight slime
- imperial experiment
- imperial mutant
- lamia
- naga, high naga & armed naga
- thing
- werewolf
dragon.xml
- green dragon, blue dragon, red dragon, twin headed dragon, flying golden dragon, black dragon
- bone dragon (optionally to undead.xml)
- chaos green dragonrider (optionally to human.xml)
- chaos red dragonrider (optionally to human.xml)
undead.xml
- Merge the following:
- mummy.xml
- vampire.xml
- black death
- gashadokuro
- golden death
- tiny skelly
- zombie rat (optional)
Option 2: More distinction between classes
This organization has been implemented in CVS. The reorganization does not break client/server compatibility, but does cause some inconsistencies with logic tilesets and sprite locations. Below are some suggestions for reorganizing logic tilesets. However, changing those will break compatibility. Reorganizing logic tilesets and spritesheet locations will need to be done a little at a time to not create a huge incompatibility between the server and client.
(***) Unsure about these options
angel.xml
- dark
- fallen
- light
animal.xml
- arachnid
- crustacean
- fowl
- insect
- mammal
- deer
- babybear & panda
- bat & killer bat
- bear & black bear
- beaver
- boar
- cow & bull
- elephant
- fox
- goat
- horse & white horse
- lion & tiger
- monkey
- mouse
- piglet
- ram
- rat, caverat, venomrat, razorrat & giantrat
- wolf & <creature "big bad wolf" not found>
- zombie rat (optionally animal_undead.xml, undead.xml or animal.xml)
- reptile
beast.xml ***
- beholder (possibly in its own class)
- mutant
- slime (possibly in its own class)
demon.xml
- demon
- violet avenger
- devil queen
- demon
- imperial demon servant & imperial demon lord (alternate subclass "imperial")
- balrog (alternate subclass "giant")
- imp
dragon.xml
- chaos
- chaos green dragonrider & chaos red dragonrider (alternate class "chaos.xml")
- dragon
- flying
dwarf.xml
- duergar
- dwarf
- giant dwarf
- mountain dwarf
elemental.xml
- air
- earth
- fire
- stone (or merged with earth)
- dwarf golem ***
- stone golem ***
- water
- wind
- wood
- ent, old ent & entwife ***
- wooden golem ***
elf.xml
- albino_elf
- dark_elf
- elf
giant.xml
- amazon
- human
- giant, elder giant, master giant
- black giant (alternative subclass "dark")
- imperial
- kobold
- madaram
gnome.xml
- gnome
- militant
goblin.xml
- goblin
human.xml
- amazon
- assassin
- barbarian
- cannibal
- chaos
- imperial
- imperial archer, imperial archer leader & imperial elite archer
- imperial chief
- imperial commander
- imperial defender
- imperial demon servant & imperial demon lord (optionally demon.xml)
- imperial elite guardian
- imperial general
- imperial general giant (optionally giant.xml)
- imperial knight
- imperial leader
- imperial priest & imperial high priest
- imperial scientist
- imperial veteran
- madaram
- madaram archer
- madaram peasant
- madaram trooper
- madaram soldier
- madaram healer
- madaram axeman
- madaram queen
- madaram hero
- madaram windwalker (alternate subclass "wind")
- madaram cavalry
- madaram stalker
- madaram buster blader
- chess pieces
- misc
- emperor dalmung (not sure where this belongs)
- mithrilbourgh.xml
- monk
- pirate (not activated)
- pirate
- pirate wench
- buccaneer
- smuggler
- evil pirate
- pirate leader
- wizard ***
humanoid.xml ***
- aruthon
- fairy
- misc
- mohiko
- roohako
hybrid.xml
- arachnid
- cat woman
- frogman
- minotaur
- naga
- werewolf
oni.xml
orc.xml
- orc
- mountain orc
troll.xml ***
Perhaps each of these should have its own category or placed in hybrid or humanoid?
- cyclops
- ogre
- troll
undead.xml
- animal
- misc
- mummy
- vampire
- zombie
- bloody zombie
- zombie
- rotten zombie
- headless monster
- myling (not activated)
Examples
- A possible method of organization would be to put the creatures in a file with a corresponding class name, and use a subclass tag to segregate different creatures within their class.
Example: undead.xml This method will not be used. There is currently no use for using a subclass tag.
<creatures> <subclass value="skeleton"> <creature name="skeleton"> </creature> <creature name="warrior skeleton"> </creature> </subclass> <subclass value="zombie"> <creature name="zombie"> </creature> <creature name="rotten zombie"> </creature> </subclass> </creatures>
In the above example creatures skeleton & warrior skeleton would be of class undead and subclass skeleton while zombie & rotten zombie would be class undead and subclass zombie.
If subclass tags not possible comments can be used in place of them in the traditional method: This is how the reorganizations is laid out. It is the same as before with comments to separate subclasses within the creature.xml.
<creatures> <!-- START: skeleton --> <creature name="skeleton"> </creature> <creature name="warrior skeleton"> </creature> <!-- END: skeleton --> <!-- START: zombie --> <creature name="zombie"> </creature> <creature name="rotten zombie"> </creature> <!-- END: zombie --> </creatures>
Organization of logic tilesets
The logic tilesets can either be kept in the currently used directory and just refactored to match the creature.xml files. Or the tilesets can be placed in a subdirectory of "tileset/logic/creature". For example: amazon, which is a subclass of human, would be located in "tileset/logic/creature/human/amazon.png". NOTE: classes with many subclasses can be divided up.
- tileset/logic/creature/
angel
animal
beast
chess pieces
demon
- demon.png
- Notes: violet avenger, devil queen & balrog added.
dragon
dwarf
- dwarf.png
- Notes: Removed giant dwarf, Dhohr Nuggetcutter & Lord Durin.
elemental
elf
giant
gnome
goblin
human
- human_imperial.png
- Notes: imperial veteran added.
- human_kalavan.png
- Notes: imperial veteran removed. wisewoman tile ID has changed from 4 to 0.
- human_madaram.png
- Notes: kasarkutominubat removed. windwalker tile ID changed from 12 to 0.
- human_pirate
- Notes: This category has no logic tileset yet.