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 |
||
| (578 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== |
|||