StendhalRPProposal: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
imported>MiguelAngelBlanchLardin |
imported>Hendrik Brummermann added navigation |
||
| (90 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 192: | Line 222: | ||
** Poison |
** Poison |
||
Resistence factor to damage: |
|||
<pre> |
|||
{|border="1" cellpadding="5" cellspacing="0" style="text-align:center" |
|||
|Slash |Bash |Stab |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 285: | 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 292: | 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 308: | 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 314: | 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 323: | 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 357: | 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 415: | 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]] |
|||