StendhalRefactoring: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>MiguelAngelBlanchLardin |
imported>AntumDeluge →Code: remove outdated/implemented |
||
| (539 intermediate revisions by 19 users not shown) | |||
| Line 1: | Line 1: | ||
{{Navigation for Stendhal Top|Contributing}} |
|||
=Items= |
|||
{{Navigation for Stendhal Contributors}} |
|||
==List== |
|||
We can have two types of items lists: |
|||
* Tibia like list |
|||
* AD&D like list |
|||
This page proposes some possible, very long term, goals for Stendhal.<br> |
|||
Tibia is more random, and has more items than AD&D, and you are encourage to upgrade your items, while AD&D abuses a bit of +1,+2. |
|||
Please see also [[StendhalOpenTasks]] for shorter term open tasks. |
|||
I think that we could try a mix approach perhaps, but i do see ridiculous to see pure AD&D approach like in shield+15 ( that is the difference between a wooden shield and a copper shield ) |
|||
If you are interested in any of these goals, or have other ideas, please visit [[ChatWithOtherUsersDevs|IRC at irc.libera.chat #arianne]] |
|||
We have the next items structure: |
|||
=RP System= |
|||
===Shields=== |
|||
[[StendhalRPProposal| ''Working document'' for RP System proposal]]<br> |
|||
* Wooden shield |
|||
[[StendhalRefactoringRP| RP System proposal]]<br> |
|||
* Studded shield |
|||
[[StendhalRefactoringRP#Skill_system|Skill System]]<br> |
|||
* Metal Plate shield |
|||
[[StendhalRefactoringRP#Melee_Combat|Combat: Melee]]<br> |
|||
* Copper shield |
|||
[[StendhalRefactoringRP#Range_Combat|Combat: Range]]<br> |
|||
* Silver shield |
|||
[[StendhalRefactoringRP#Magic|Magic]]<br> |
|||
* Gold shield |
|||
[[StendhalRefactoringRP#Trading_system|Trading System]]<br> |
|||
* Mithril shield |
|||
[[StendhalRefactoringRP#Shopping_system|Shopping System]]<br> |
|||
* Blessed shield |
|||
[[StendhalRefactoringRP#Auctioning_system|Auctioning System]]<br> |
|||
[[StendhalRefactoringRP#Party_system|Party System]]<br> |
|||
[[StendhalJobs|Jobs System]]<br> |
|||
=Economy= |
|||
===Swords=== |
|||
[[StendhalEconomy|Balancing the economy]] |
|||
* Knife |
|||
* Dagger |
|||
* Sword |
|||
* Katana |
|||
* Long sword |
|||
* Scimitar |
|||
* Broadsword |
|||
* Two-handed sword |
|||
* Huge sword |
|||
* Blessed sword |
|||
=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> |
|||
===Armors=== |
|||
* Dress |
|||
* Leather armor |
|||
* Studded Leather armor |
|||
* Plate Mail armor |
|||
* Copper Plate armor |
|||
* Copper armor |
|||
* Silver armor |
|||
* Gold armor |
|||
* Mithril armor |
|||
* Blessed armor |
|||
===Boots=== |
|||
* Sandals |
|||
* Leather boots |
|||
= Items = |
|||
===Helmet=== |
|||
* Leather helmet |
|||
* Studded helmet |
|||
* Chain Mail helmet |
|||
* Viking helmet |
|||
* Copper helmet |
|||
* Legion helmet |
|||
* Silver helmet |
|||
* Gold helmet |
|||
* Mithril helmet |
|||
* Blessed helmet |
|||
* [[StendhalRefactoringEquipment| Weapons & Armor System]] |
|||
===Leg Armour=== |
|||
* [[StendhalRefactoringItemsBase| Base Implementation page]] ''outdated'' |
|||
* Leather Leg Armour |
|||
* [[StendhalRefactoringItems| Items available after refactoring, min level list]] ''outdated'' |
|||
* Studded Leather Leg Armour |
|||
* Chain Mail Leg Armour |
|||
* Copper Leg Armour |
|||
* Silver Leg Armour |
|||
* Gold Leg Armour |
|||
* Mithril Leg Armour |
|||
* Blessed Leg Armour |
|||
===Corpse=== |
|||
===Money=== |
|||
===Book=== |
|||
===Food=== |
|||
* Meat |
|||
* Cheese |
|||
* Bread |
|||
== Properties == |
|||
We have several common attributes for all the items. Mainly: |
|||
* Type |
|||
* Class |
|||
* Subclass |
|||
And some attributes that objects may or many not have: |
|||
* Attack |
|||
* Defense |
|||
* Quantity |
|||
== Extra information == |
|||
Additionally items should explain: |
|||
* What slots can they be equipped |
|||
* tiled id |
|||
=Creatures= |
=Creatures= |
||
[[StendhalRefactoringCreatures| Creatures available after refactoring]]<br> |
|||
==List== |
|||
[[StendhalRefactoringCreatures#Actions| Creatures' actions available after refactoring]]<br> |
|||
Feel free to expand this list.<br> |
|||
[[StendhalRefactoringCreatures#Events| Creatures' events system proposal]]<br> |
|||
Please be original :) |
|||
[[StendhalRefactoringCreatures#AI| Creatures' AI system proposal]]<br> |
|||
===Animals=== |
|||
* Boar |
|||
* Caverat |
|||
* Cobra |
|||
* Giantrat |
|||
* Rat |
|||
* Wolf |
|||
=Out of Game= |
|||
===Gargoyle=== |
|||
* [[StendhalRefactoringUpdates]] |
|||
* Gargoyle |
|||
= Code = |
|||
===Orcs=== |
|||
* Demon Orc |
|||
* Demon Orc Hunter |
|||
* Demon Orc Lord |
|||
* Demon Orc Warrior |
|||
* Orc |
|||
* Orc Hunter |
|||
* Orc Lord |
|||
* Orc Warrior |
|||
* Improve rendering engine by adding dirty rectangles. |
|||
===Kobold=== |
|||
* Kobold |
|||
===Goblin=== |
|||
* Goblin |
|||
[[Category:Development]] |
|||
===Ogre=== |
|||
* Ogre |
|||
===Troll=== |
|||
* Troll |
|||
== 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. |
|||
Latest revision as of 19:14, 24 June 2022
This page proposes some possible, very long term, goals for Stendhal.
Please see also StendhalOpenTasks for shorter term open tasks.
If you are interested in any of these goals, or have other ideas, please visit IRC at irc.libera.chat #arianne
RP System
Working document for RP System proposal
RP System proposal
Skill System
Combat: Melee
Combat: Range
Magic
Trading System
Shopping System
Auctioning System
Party System
Jobs System
Economy
Class System
Class Basics
About the different classes
Class:Archer
Class:Mage
Class:Priest
Class:Warrior
General Skills
Items
- Weapons & Armor System
- Base Implementation page outdated
- Items available after refactoring, min level list outdated
Creatures
Creatures available after refactoring
Creatures' actions available after refactoring
Creatures' events system proposal
Creatures' AI system proposal
Out of Game
Code
- Improve rendering engine by adding dirty rectangles.