StendhalRefactoring: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>MiguelAngelBlanchLardin No edit summary |
imported>MiguelAngelBlanchLardin No edit summary |
||
| Line 6: | Line 6: | ||
=Creatures= |
=Creatures= |
||
[[StendhalRefactoringCreatures| Creatures available after refactoring]] |
|||
==List== |
|||
Feel free to expand this list.<br> |
|||
Please be original :) |
|||
Have a look to this: http://en.wikipedia.org/wiki/List_of_species_in_fantasy_fiction |
|||
===Animals=== |
|||
* Boar |
|||
* Caverat |
|||
* Cobra |
|||
* Bear |
|||
* Giantrat |
|||
* Rat |
|||
* Wolf |
|||
===Beholders=== |
|||
* Beholder |
|||
* Elder Beholder |
|||
===Dragon=== |
|||
* Green Dragon |
|||
* Blue Dragon |
|||
* White Dragon |
|||
* Black Dragon |
|||
===Dwarves=== |
|||
* Dwarf |
|||
* Dwarf Warrior |
|||
* Dwarf Veteran |
|||
* Dwarf Leader |
|||
===Elves=== |
|||
* Elf |
|||
* Elf Hunter |
|||
* Elf Warrior |
|||
* Elf Veteran |
|||
* Elf Leader |
|||
* Drow |
|||
* Drow Hunter |
|||
* Drow Warrior |
|||
* Drow Veteran |
|||
* Drow Leader |
|||
===Gargoyle=== |
|||
* Gargoyle |
|||
===Giants=== |
|||
* Ogre |
|||
* Hill Giants |
|||
* Cyclops |
|||
* Mountain Giants |
|||
* Fire Giants |
|||
* Ice Giants |
|||
===Goblin=== |
|||
* Goblin |
|||
* Goblin Veteran |
|||
* Goblin Chief |
|||
===Human=== |
|||
* Bandit |
|||
* Assassin |
|||
* Hunter |
|||
===Kobold=== |
|||
* Kobold |
|||
* Kobold Hunter |
|||
* Kobold Chief |
|||
===Orcs=== |
|||
* Orc |
|||
* Orc Hunter |
|||
* Orc Warrior |
|||
* Orc Veteran |
|||
* Orc Leader |
|||
===Troll=== |
|||
* Young Troll |
|||
* Troll |
|||
* Troll Veteran |
|||
* Troll Chief |
|||
===Undead=== |
|||
* Ghost |
|||
* Zombi |
|||
* Zombi Veteran |
|||
* Vampire |
|||
* Lich |
|||
== Actions == |
|||
* Move |
|||
* Stop |
|||
* Chat |
|||
* Tell |
|||
* Outfit |
|||
* Attack |
|||
* Use |
|||
* Equip |
|||
* Drop |
|||
* Own ( a sheep ) |
|||
== Events == |
|||
I see two different approachs here: |
|||
# Active one, in the form of ''onAttack'', that requieres something like |
|||
Player.onAttack(target, weapon) |
|||
{ |
|||
if(target is of type ghost) |
|||
{ |
|||
return false; |
|||
} |
|||
return true; |
|||
} |
|||
# Passive one, in the form of ''onAttacked'' |
|||
Ghost.onAttacked(source, weapon) |
|||
{ |
|||
return false; |
|||
} |
|||
I think passive approach can lead to simpler more mantenible code. So I break the below list in those two categories. |
|||
Creatures can recieve the next list of events: |
|||
===Passive way=== |
|||
====boolean onAttacked(attacker, weapon)==== |
|||
''called when attacked by someone with a given weapon.'' |
|||
====void onStopAttacked(target)==== |
|||
''called when target stops attacking us'' |
|||
====boolean onDamage(type, amount)==== |
|||
''called when entity is damaged with the damage type (physical, fire, poison, magical, ... ) and the amount of damage done.'' |
|||
====boolean onKilled(attacker, weapon)==== |
|||
''called when attacked killed us with the given weapon'' |
|||
====boolean onMove(x,y)==== |
|||
''called when entity moves to x,y ( before moving in fact )'' |
|||
====boolean onCollidedWith(source)==== |
|||
''called when entity collide with another entity'' |
|||
====boolean onEquipped(source, slot)==== |
|||
''called when entity is equipped on the source entity and in the given slot'' |
|||
====boolean onDropped(source, x, y)==== |
|||
''called when entity is dropped by source to floor at position x,y'' |
|||
====void onChat(source, text)==== |
|||
''called when someone speaks near entity or write to entity'' |
|||
====boolean onUsed(source)==== |
|||
''called when entity is used by source'' |
|||
====boolean onUsedWith(source, base)==== |
|||
''called when entity is used by source on base item'' |
|||
====boolean onStop()==== |
|||
''called when entity stops moving, attacking, etc...'' |
|||
===Active way=== |
|||
==== boolean onAttack(target, weapon)==== |
|||
''called when attacking a target with the given weapon.'' |
|||
====void onStopAttack(target)==== |
|||
''called when we stop attacking target'' |
|||
====boolean onDamage(type, amount)==== |
|||
''called when entity is damaged with the damage type (physical, fire, poison, magical, ... ) and the amount of damage done.'' |
|||
====boolean onKill(target)==== |
|||
''called when entity kills target'' |
|||
====boolean onMove(x,y)==== |
|||
''called when entity moves to x,y ( before moving in fact )'' |
|||
====boolean onCollide(x,y)==== |
|||
''called when entity collide at position x,y'' |
|||
====boolean onCollideWith(target)==== |
|||
''called when entity collide with another entity'' |
|||
====boolean onEquip(item, slot)==== |
|||
''called when entity equips item on the given slot'' |
|||
====boolean onDrop(item, slot)==== |
|||
''called when entity drops item from the given slot to floor'' |
|||
====void onChat(source, text)==== |
|||
''called when someone speaks near entity or write to entity'' |
|||
====boolean onUse(item)==== |
|||
''called when entity use item'' |
|||
====boolean onUseWith(base, item)==== |
|||
''called when entity use item on base item'' |
|||
====boolean onStop()==== |
|||
''called when entity stops moving, attacking, etc...'' |
|||
=RP System= |
=RP System= |
||