StendhalRefactoring: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>MiguelAngelBlanchLardin
No edit summary
imported>AntumDeluge
Code: remove outdated/implemented
 
(573 intermediate revisions by 19 users not shown)
Line 1: Line 1:
{{Navigation for Stendhal Top|Contributing}}
This page propose goals to achieve in next releases of Stendhal.<br>
{{Navigation for Stendhal Contributors}}
So please feel free to add new things that we may have forgotten.


This page proposes some possible, very long term, goals for Stendhal.<br>
=Items=
Please see also [[StendhalOpenTasks]] for shorter term open tasks.
[[StendhalRefactoringItems| Items available after refactoring]]


If you are interested in any of these goals, or have other ideas, please visit [[ChatWithOtherUsersDevs|IRC at irc.libera.chat #arianne]]
=Creatures=
=RP System=
==List==
[[StendhalRPProposal| ''Working document'' for RP System proposal]]<br>
Feel free to expand this list.<br>
[[StendhalRefactoringRP| RP System proposal]]<br>
Please be original :)
[[StendhalRefactoringRP#Skill_system|Skill System]]<br>
[[StendhalRefactoringRP#Melee_Combat|Combat: Melee]]<br>
[[StendhalRefactoringRP#Range_Combat|Combat: Range]]<br>
[[StendhalRefactoringRP#Magic|Magic]]<br>
[[StendhalRefactoringRP#Trading_system|Trading System]]<br>
[[StendhalRefactoringRP#Shopping_system|Shopping System]]<br>
[[StendhalRefactoringRP#Auctioning_system|Auctioning System]]<br>
[[StendhalRefactoringRP#Party_system|Party System]]<br>
[[StendhalJobs|Jobs System]]<br>


=Economy=
Have a look to this: http://en.wikipedia.org/wiki/List_of_species_in_fantasy_fiction
[[StendhalEconomy|Balancing the economy]]


=Class System=
[[StendhalRefactoringClassBasics|Class Basics]]<br>
<br>
About the different classes <br>
[[StendhalRefactoringClassArcher|Class:Archer]]<br>
[[StendhalRefactoringClassMage|Class:Mage]]<br>
[[StendhalRefactoringClassPriest|Class:Priest]]<br>
[[StendhalRefactoringClassWarrior|Class:Warrior]]<br>
<br>
[[StendhalRefactoringClassGeneral|General Skills]]<br>


===Animals===
* Boar
* Caverat
* Cobra
* Bear
* Giantrat
* Rat
* Wolf


===Beholders===
* Beholder
* Elder Beholder


= Items =
===Dragon===
* Green Dragon
* Blue Dragon
* White Dragon
* Black Dragon


* [[StendhalRefactoringEquipment| Weapons & Armor System]]
===Dwarves===
* [[StendhalRefactoringItemsBase| Base Implementation page]] ''outdated''
* Dwarf
* [[StendhalRefactoringItems| Items available after refactoring, min level list]] ''outdated''
* Dwarf Warrior
* Dwarf Veteran
* Dwarf Leader


=Creatures=
===Elves===
[[StendhalRefactoringCreatures| Creatures available after refactoring]]<br>
* Elf
[[StendhalRefactoringCreatures#Actions| Creatures' actions available after refactoring]]<br>
* Elf Hunter
[[StendhalRefactoringCreatures#Events| Creatures' events system proposal]]<br>
* Elf Warrior
[[StendhalRefactoringCreatures#AI| Creatures' AI system proposal]]<br>
* 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=
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==


=Out of Game=
==Leveling up==
* [[StendhalRefactoringUpdates]]


= Code =
==Combat==


* Improve rendering engine by adding dirty rectangles.
===Range combat===


==Magic==


[[Category:Development]]
==Quests==