StendhalRPProposal: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>MiguelAngelBlanchLardin No edit summary |
imported>Hendrik Brummermann added navigation |
||
| (100 intermediate revisions by 6 users not shown) | |||
| Line 1: | Line 1: | ||
{{Navigation for Stendhal Top|Developing}} |
|||
This document explain what it is going to be our new RP system for Stendhal 0.60 |
|||
{{Navigation for Stendhal Developers}} |
|||
We have a small timeframe to develop this system but we need to make sure it works and we need to make sure that problems that had arose from older versions are now not present. |
|||
{{Likely Outdated}} |
|||
I have placed a cleaned irc log on the discussion page for this article, so the things that was said wont be lost in all irc logs:<br> |
|||
{{Future Concept}} |
|||
{{Ideas for Stendhal}} |
|||
This document explain what could be the new RP system for Stendhal's future. |
|||
I have placed a cleaned irc log on the discussion page for this article, so the things that was said won't be lost in all irc logs:<br> |
|||
[[Talk:StendhalRPProposal|Stendhal RP proposal discussion]]<br> |
[[Talk:StendhalRPProposal|Stendhal RP proposal discussion]]<br> |
||
<br> |
<br> |
||
We have a small timeframe to develop this system but we need to make sure it works and we need to make sure that problems that had arose from older versions are now not present. |
|||
=Attributes= |
=Attributes= |
||
The first thing that our RP needs to define are Attributes. |
The first thing that our RP needs to define are Attributes. |
||
Previous version |
Previous version lacked of any kind of character personalization which led to a poor RP experience. |
||
Our new RP will be based on the following set of attributes: |
Our new RP will be based on the following set of attributes: |
||
| Line 16: | Line 25: | ||
Strengh is used to determine: |
Strengh is used to determine: |
||
* Attack and damage done. |
* Attack and damage done. |
||
* Weight can be carried. |
* Weight that can be carried. |
||
* Damage that can be |
* Damage that can be absorbed with the shield. |
||
==DEX== |
==DEX== |
||
Dexterity is used to determine: |
Dexterity is used to determine: |
||
* Attack rate |
* Attack rate |
||
* |
* Handling of the weapons |
||
==AGI== |
==AGI== |
||
Agility is used to determine: |
Agility is used to determine: |
||
* How fast we can move. |
* How fast we can move. |
||
* How good |
* How good we are at dodging. |
||
==CON== |
==CON== |
||
Constitution is used to determine: |
Constitution is used to determine: |
||
* Amount of HP points. |
* Amount of HP points. |
||
* How fast |
* How fast we can restore HP points |
||
* How fast we restore MP points. |
* How fast we can restore MP points. |
||
==WIS== |
==WIS== |
||
Wisdom |
Wisdom defines how united you are with your deity. |
||
* |
* Defines how much faith you have. |
||
* How strong your prayers are. |
* How strong your prayers are. |
||
| Line 47: | Line 56: | ||
==KAR== |
==KAR== |
||
Karma |
Karma determines most of the RP. |
||
Good actions give positive karma and bad actions give negative karma. |
Good actions give positive karma and bad actions give negative karma. |
||
Karma is initially 0 except if modified by race. |
Karma is initially 0 except if modified by race. |
||
| Line 76: | Line 85: | ||
= Minor attributes = |
= Minor attributes = |
||
There are also other attributes that are important but that don't decide to such extreme our player *look*. |
There are also other attributes that are important but that don't decide to such extreme our player's *look*. |
||
== Race == |
== Race == |
||
| Line 86: | Line 95: | ||
This will decide the base outfit and the place where you enter world. |
This will decide the base outfit and the place where you enter world. |
||
Also of course, Dwarves are not hostile |
Also of course, Dwarves are not hostile against dwarves, and so on. |
||
== Gender == |
== Gender == |
||
| Line 113: | Line 122: | ||
Human race will have 1 at every race factor. |
Human race will have 1 at every race factor. |
||
{|border="1" cellpadding="5" cellspacing="0" style="text-align:center" |
|||
Table with factors: |
|||
|+'''Race Factors''' |
|||
! !!Race_STR !!Race_DEX !!Race_AGI !!Race_CON !!Race_INT !!Race_WIS |
|||
|- |
|||
!Human |
|||
|1 ||1 ||1 ||1 ||1 ||1 |
|||
|- |
|||
!Orc |
|||
|1.4 ||0.8 ||1.1 ||1.2 ||0.3 ||0.8 |
|||
|- |
|||
!Elf |
|||
|0.7 ||1.3 ||1.3 ||0.7 ||1.2 ||0.9 |
|||
|- |
|||
!Dwarf |
|||
|1.5 ||0.7 ||0.7 ||1.4 ||0.7 ||0.9 |
|||
|} |
|||
<pre> |
|||
|STR |DEX |AGI |CON |INT |WIS |
|||
Human |1 |1 |1 |1 |1 |1 |
|||
Orc |1.4 |0.8 |1.1 |1.2 |0.3 |0.8 |
|||
Elf |0.7 |1.3 |1.3 |0.7 |1.2 |0.9 |
|||
Dwarf |1.5 |0.7 |0.7 |1.4 |0.7 |0.9 |
|||
</pre> |
|||
===Class factor=== |
===Class factor=== |
||
Each player can choose one and only one class at creation time ( or later ), but just once. |
Each player can choose one and only one class at creation time ( or later ), but just once. |
||
That class will affect how attributes are considered: |
That class will affect how attributes are considered: |
||
* Warriors |
* Warriors have better CON and STR. |
||
* Rangers |
* Rangers have better CON and AGI |
||
* Archers |
* Archers have better AGI and DEX |
||
* ... |
* ... |
||
{|border="1" cellpadding="5" cellspacing="0" style="text-align:center" |
|||
Table with factors: |
|||
|+'''Class Factors''' |
|||
! !!Class_STR !!Class_DEX !!Class_AGI !!Class_CON !!Class_INT !!Class_WIS |
|||
<pre> |
|||
|- |
|||
|STR |DEX |AGI |CON |INT |WIS |
|||
!None |
|||
None |1 |1 |1 |1 |1 |1 |
|||
|1 ||1 ||1 ||1 ||1 ||1 |
|||
|- |
|||
Warrior |1.5 |1.2 |1.2 |1.1 |0.4 |0.6 |
|||
!Berseker |
|||
Ranger |0.8 |1.4 |1.4 |0.9 |0.6 |0.9 |
|||
|2.2 ||0.7 ||0.5 ||1 ||0.5 ||1.1 |
|||
|- |
|||
Mage |0.5 |1.6 |0.5 |0.7 |2 |0.7 |
|||
!Warrior |
|||
Priest |0.7 |1.3 |0.5 |0.8 |0.7 |2 |
|||
|1.5 ||1.2 ||1.2 ||1.1 ||0.4 ||0.6 |
|||
</pre> |
|||
|- |
|||
!Ranger |
|||
|0.8 ||1.4 ||1.4 ||0.9 ||0.6 ||0.9 |
|||
|- |
|||
!Archer |
|||
|0.6 ||1.8 ||1.5 ||0.8 ||0.7 ||0,6 |
|||
|- |
|||
!Mage |
|||
|0.5 ||1.6 ||0.5 ||0.7 ||2 ||0.7 |
|||
|- |
|||
!Priest |
|||
|0.7 ||1.3 ||0.5 ||0.8 ||0.7 ||2 |
|||
|} |
|||
==HP== |
==HP== |
||
It is the amount of health points we have. |
It is the amount of health points we have. |
||
HP=m· |
HP=m · CON · Race_CON · Class_CON ·(Level/k+1)·CON |
||
Where m=k=10 |
Where m=k=10 |
||
| Line 154: | Line 184: | ||
It is the amount of magic points we have. |
It is the amount of magic points we have. |
||
MP=m·(INT |
MP=m · (INT · Race_INT · Class_INT + WIS · Race_WIS · Class_WIS)/2 · (Level/k+1)·((INT + WIS)/2) |
||
Where m=3, k=10 |
Where m=3, k=10 |
||
| Line 161: | Line 191: | ||
It is the maximum amount of weight (in whatever unit) a player can carry without having a penalty at AGI and DEX. |
It is the maximum amount of weight (in whatever unit) a player can carry without having a penalty at AGI and DEX. |
||
Weight=m·(STR · |
Weight=m·(STR · Race_STR · Class_STR) · (Level/k+1) · ((STR + CON + AGI)/3) |
||
Where k=10 and m is used to adjust the units to something that makes sense. |
Where k=10 and m is used to adjust the units to something that makes sense. |
||
| Line 169: | Line 199: | ||
It is how fast this player moves, in tiles per second. |
It is how fast this player moves, in tiles per second. |
||
speed=m· |
speed=m · Race_AGI · Class_AGI · (Level/k+1) · AGI |
||
Where k=10 and m is again used to adjust the value. |
Where k=10 and m is again used to adjust the value. |
||
| Line 180: | Line 210: | ||
===Types of damage=== |
===Types of damage=== |
||
There are several types of damage, and each weapon is useful for one of them and each armor is special to protect against some of them. |
There are several types of damage, and each weapon is useful for one of them and each armor is special to protect against some of them. |
||
* |
* Slash |
||
* Bash |
|||
* Aplastar |
|||
* |
* Stab |
||
* Magical |
* Magical |
||
** Each of the magic schools we have. TODO |
** Each of the magic schools we have. TODO |
||
| Line 192: | Line 222: | ||
** Poison |
** Poison |
||
Resistence factor to damage: |
|||
<pre> |
|||
{|border="1" cellpadding="5" cellspacing="0" style="text-align:center" |
|||
|Cut |Apl |Clav |Magic |Fire |Cold |Acid |Dis |Poison |
|||
|+'''Resistence factor to damage''' |
|||
Human |0 |0 |0 |0 |0 |0 |0 |0 |0 |
|||
! !!Slash !!Bash !!Stab !!Magic !!Fire !!Cold !!Acid !!Dis !!Poison |
|||
Orc |0.1 |0 |0 |0 |0 |0 |0 |0.1 |0.1 |
|||
|- |
|||
Elf |0 |0 |0 |0.1 |0 |0 |0 |0.1 |0 |
|||
!Human |
|||
Dwarf |0 |0.1 |0 |0.4 |0 |0 |0 |0 |0 |
|||
|0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 |
|||
</pre> |
|||
|- |
|||
!Orc |
|||
|0.1 ||0 ||0 ||0 ||0 ||0 ||0 ||0.1 ||0.1 |
|||
|- |
|||
!Elf |
|||
|0 ||0 ||0 ||0.1 ||0 ||0 ||0 ||0.1 ||0 |
|||
|- |
|||
!Dwarf |
|||
|0 ||0.1 ||0 ||0.4 ||0 ||0 ||0 ||0 ||0 |
|||
|} |
|||
This represent how much damage is absorbed. |
This represent how much damage is absorbed. |
||
| Line 215: | Line 254: | ||
The damage needs to be coded correctly on the array so that usually: |
The damage needs to be coded correctly on the array so that usually: |
||
slash < bash < stab |
|||
The damage is later scaled based on player attributes. |
The damage is later scaled based on player attributes. |
||
| Line 272: | Line 311: | ||
By now just one skill per armor. |
By now just one skill per armor. |
||
Skill will be used to know how good are you at handling the armor. |
Skill will be used to know how good are you at handling the armor. |
||
== Asserts== |
== Asserts== |
||
| Line 286: | Line 324: | ||
This will determine how often we can attack. |
This will determine how often we can attack. |
||
Attack rate= k · 1 / ( DEX · STR / |
Attack rate= k · 1 / ( DEX · STR / Weapon_weight ) |
||
The lower the better. |
The lower the better. |
||
| Line 293: | Line 331: | ||
Doing a hit is simple if the weapon suits us, and we don't try a hard type of damage. |
Doing a hit is simple if the weapon suits us, and we don't try a hard type of damage. |
||
Hit=a ( Attacker.DEX ) |
Hit = a ( Attacker.DEX ) |
||
b ( Weapon Skill ) |
|||
c ( STR/Weapon_weight ) |
|||
d ( facing ) |
|||
Profile |
|||
The bigger the better. |
The bigger the better. |
||
| Line 309: | Line 347: | ||
The more armor weight the less you can move. |
The more armor weight the less you can move. |
||
Dodge rate= k · 1 / ( AGI · STR/ |
Dodge rate= k · 1 / ( AGI · STR/Armor_weight ) |
||
The lower the better. |
The lower the better. |
||
| Line 315: | Line 353: | ||
===Decide if player dodge attack=== |
===Decide if player dodge attack=== |
||
Dodge=a ( Defender.AGI ) |
Dodge = a ( Defender.AGI ) |
||
b ( STR/Armor_weight ) |
|||
c ( facing ) |
|||
( 1 - Profile ) |
|||
The bigger the better. |
The bigger the better. |
||
| Line 324: | Line 362: | ||
===Decide how much damage is casted and which types=== |
===Decide how much damage is casted and which types=== |
||
Weapons can |
Weapons can do several types of damage, some of them are exclusive and some other are additive. |
||
Damage = a · STR · |
Damage = a · STR · Skill_used · Weapon_Damage_type · Hit |
||
We will have several damage values, one for each of the damages that the weapon does. |
We will have several damage values, one for each of the damages that the weapon does. |
||
Each of the values are applied |
Each of the values are applied independently. |
||
===Decide if hit is blocked by shield=== |
===Decide if hit is blocked by shield=== |
||
If the hit can' |
If the hit can't be dodged, then it's time to decide if the shield blocks it. |
||
Shield_rate = k · 1 / ( DEX · STR / Shield_weight ) |
|||
If we can use shield, then: |
If we can use the shield, then: |
||
Shield_absorption = STR · Shield_skill · DEX · Shield_type_of_damage_protection · ( 1 - Profile ) |
|||
The more agressive, the less useful the shield is. |
The more agressive, the less useful the shield is. |
||
===Decide how much damage is absorbed by armor=== |
===Decide how much damage is absorbed by armor=== |
||
As armor is a passive entity, you can't apply really any attribute to it. |
As armor is a passive entity, you can't apply really any attribute to it. |
||
Armor_absorption = Armor_skill · Armor_type_of_damage_protection |
|||
Armor absorbs = Armor skill · Armor type of damage protection |
|||
===Apply damage=== |
===Apply damage=== |
||
Finally |
Finally |
||
HP = HP - damage · ( 1 - |
HP = HP - damage · ( 1 - Race_resistence_to_type_of_damage ) |
||
if HP == 0 then defender is dead. |
if HP == 0 then defender is dead. |
||
| Line 358: | Line 396: | ||
= Magic = |
= Magic = |
||
There are |
There are some things written in Danter's documents. |
||
Also on IRC we have been talking about Magic system. |
Also on IRC we have been talking about Magic system. |
||
| Line 416: | Line 454: | ||
[[StendhalRefactoring| Back to Stendhal refactoring page]] <br> |
[[StendhalRefactoring| Back to Stendhal refactoring page]] <br> |
||
[[Stendhal | Back to Stendhal main wiki page]] <br> |
[[Stendhal | Back to Stendhal main wiki page]] <br> |
||
[[Category:Development]] |
|||