StendhalRefactoring: Difference between revisions

From Arianne
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=

Revision as of 12:17, 26 October 2005

This page propose goals to achieve in next releases of Stendhal.
So please feel free to add new things that we may have forgotten.

Items

Items available after refactoring

Creatures

Creatures available after refactoring

RP System

We need a rebalance of the RP system so it is playable and fun for both newbiews and high levels. We have to talk about several things here:

Skill system

Leveling up

Combat

Range combat

Magic

Quests