StendhalRefactoring: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>MiguelAngelBlanchLardin
imported>AntumDeluge
Code: remove outdated/implemented
 
(623 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=
===Armors===
[[StendhalRefactoringClassBasics|Class Basics]]<br>
* Dress
<br>
* Leather armor
About the different classes <br>
* Studded Leather armor
[[StendhalRefactoringClassArcher|Class:Archer]]<br>
* Plate Mail armor
[[StendhalRefactoringClassMage|Class:Mage]]<br>
* Copper Plate armor
[[StendhalRefactoringClassPriest|Class:Priest]]<br>
* Copper armor
[[StendhalRefactoringClassWarrior|Class:Warrior]]<br>
* Silver armor
<br>
* Gold armor
[[StendhalRefactoringClassGeneral|General Skills]]<br>
* Mithril armor
* Blessed armor


===Boots===
* Sandals
* Leather boots


===Helmet===
* Leather helmet
* Studded helmet
* Chain Mail helmet
* Viking helmet
* Copper helmet
* Legion helmet
* Silver helmet
* Gold helmet
* Mithril helmet
* Blessed helmet


= Items =
===Leg Armour===
* Leather Leg Armour
* Studded Leather Leg Armour
* Chain Mail Leg Armour
* Copper Leg Armour
* Silver Leg Armour
* Gold Leg Armour
* Mithril Leg Armour
* Blessed Leg Armour


* [[StendhalRefactoringEquipment| Weapons & Armor System]]
===Corpse===
* [[StendhalRefactoringItemsBase| Base Implementation page]] ''outdated''

* [[StendhalRefactoringItems| Items available after refactoring, min level list]] ''outdated''
===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.