StendhalRPProposal: Difference between revisions

Content deleted Content added
imported>MiguelAngelBlanchLardin
No edit summary
imported>Hendrik Brummermann
added navigation
 
(122 intermediate revisions by 6 users not shown)
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 it is going tocould be ourthe new RP system for Stendhal's 0future.60
 
I have placed a cleaned irc log on the discussion page for this article, so the things that was said wontwon't be lost in all irc logs:<br>
[[Talk:StendhalRPProposal|Stendhal RP proposal discussion]]<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=
The first thing that our RP needs to define are Attributes.
 
Previous version lackslacked of any kind of character personalization which leadled to a poor RP experience.
Our new RP will be based on the following set of attributes:
 
Line 16 ⟶ 25:
Strengh is used to determine:
* Attack and damage done.
* Weight that can be carried.
* Damage that can be absorbabsorbed with the shield.
 
==DEX==
Dexterity is used to determine:
* Attack rate
* HandleHandling of the weapons
 
==AGI==
Agility is used to determine:
* How fast we can move.
* How good are we are at dodging.
 
==CON==
Constitution is used to determine:
* Amount of HP points.
* How fast youwe can restore HP points
* How fast we can restore MP points.
 
==WIS==
Wisdom definedefines how in joinedunited you are with your deity.
* DefineDefines how much faith you have.
* How strong your prayers are.
 
Line 47 ⟶ 56:
 
==KAR==
Karma determinedetermines most of the RP.
Good actions give positive karma and bad actions give negative karma.
Karma is initially 0 except if modified by race.
Line 76 ⟶ 85:
 
= Minor attributes =
There are also other attributes that are important but that don't decide to such extreme our player's *look*.
 
== Race ==
Line 86 ⟶ 95:
 
This will decide the base outfit and the place where you enter world.
Also of course, Dwarves are not hostile againsagainst dwarves, and so on.
 
== Gender ==
Line 113 ⟶ 122:
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
None |1 ||1 ||1 ||1 ||1 ||1
|-
!Orc
Orc |1.4 ||0.8 ||1.1 ||1.2 ||0.3 ||0.8
|-
!Elf
Elf |0.7 ||1.3 ||1.3 ||0.7 ||1.2 ||0.9
|-
!Dwarf
Dwarf |1.5 ||0.7 ||0.7 ||1.4 ||0.7 ||0.9
|}
 
|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
 
===Class factor===
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:
* Warriors hashave better CON and STR.
* Rangers hashave better CON and AGI
* Archers hashave 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
|STR |DEX |AGI |CON |INT |WIS
|-
None |1 |1 |1 |1 |1 |1
!None
Berseker|2.2 |0.7 |0.5 |1 |0.5 |1.1
Warrior |1.5 ||1.2 ||1.2 |1.|1 |0.4|1 |0.6|1
|-
Ranger |0.8 |1.4 |1.4 |0.9 |0.6 |0.9
!Berseker
Archer |0.6 |1.8 |1.5 |0.8 |0.7 |0,6
Mage |02.52 |1|0.67 ||0.5 ||1 ||0.75 |2 |01.71
|-
Priest |0.7 |1.3 |0.5 |0.8 |0.7 |2
!Warrior
Berseker|21.25 |0|1.72 |0|1.52 ||1.1 ||0.54 |1|0.16
|-
!Ranger
Ranger |0.8 ||1.4 ||1.4 ||0.9 ||0.6 ||0.9
|-
!Archer
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
Priest |0.7 ||1.3 ||0.5 ||0.8 ||0.7 ||2
|}
 
==HP==
It is the amount of health points we have.
 
HP=m ·( CON Race· Race_CON factor)·(Class factor)Class_CON ·(Level/k+1)·CON
Where m=k=10
Line 150 ⟶ 184:
It is the amount of magic points we have.
 
MP=m · (INT Race· Race_INT · Class_INT factor+ WIS Race· Race_WIS · factorClass_WIS)/2·(Class factor)· (Level/k+1)·((INT + WIS)/2)
Where m=3, k=10
Line 157 ⟶ 191:
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 · RaceRace_STR factor)·(Class factorClass_STR) · (Level/k+1) · ((STR + CON + AGI)/3)
Where k=10 and m is used to adjust the units to something that makes sense.
Line 165 ⟶ 199:
It is how fast this player moves, in tiles per second.
 
speed=m ·(Race factor)Race_AGI ·(Class factor)Class_AGI · (Level/k+1) · AGI
Where k=10 and m is again used to adjust the value.
Line 176 ⟶ 210:
===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.
* CutSlash
* Bash
* Aplastar
* ClavarStab
* Magical
** Each of the magic schools we have. TODO
Line 188 ⟶ 222:
** Poison
 
Resistence factor to damage:
 
 
|Cut |Apl |Clav |Magic |Fire |Cold |Acid |Dis |Poison
{|border="1" cellpadding="5" cellspacing="0" style="text-align:center"
Human |0 |0 |0 |0 |0 |0 |0 |0 |0
|+'''Resistence factor to damage:'''
Orc |0.1 |0 |0 |0 |0 |0 |0 |0.1 |0.1
|Cut! !!Slash !!Bash |Apl!!Stab |Clav |!!Magic |!!Fire |!!Cold |!!Acid |!!Dis |!!Poison
Elf |0 |0 |0 |0.1 |0 |0 |0 |0.1 |0
|-
Dwarf |0 |0.1 |0 |0.4 |0 |0 |0 |0 |0
!Human
Human |0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 ||0
|-
!Orc
Orc |0.1 ||0 ||0 ||0 ||0 ||0 ||0 ||0.1 ||0.1
|-
!Elf
Elf |0 ||0 ||0 ||0.1 ||0 ||0 ||0 ||0.1 ||0
|-
!Dwarf
Dwarf |0 ||0.1 ||0 ||0.4 ||0 ||0 ||0 ||0 ||0
|}
 
This represent how much damage is absorbed.
Line 209 ⟶ 254:
The damage needs to be coded correctly on the array so that usually:
 
cutslash < clubbash < clavarstab
 
The damage is later scaled based on player attributes.
Line 266 ⟶ 311:
By now just one skill per armor.
Skill will be used to know how good are you at handling the armor.
 
 
== Asserts==
Line 280 ⟶ 324:
This will determine how often we can attack.
 
Attack rate= k · 1 / ( DEX · STR / Weapon weightWeapon_weight )
 
The lower the better.
Line 287 ⟶ 331:
Doing a hit is simple if the weapon suits us, and we don't try a hard type of damage.
 
Hit = a ( Attacker.DEX )
b ( Weapon Skill )
c ( STR/Weapon weightWeapon_weight )
d ( facing )
Profile
 
The bigger the better.
Line 303 ⟶ 347:
The more armor weight the less you can move.
Dodge rate= k · 1 / ( AGI · STR/Armor weightArmor_weight )
The lower the better.
Line 309 ⟶ 353:
===Decide if player dodge attack===
Dodge = a ( Defender.AGI )
b ( STR/Armor weightArmor_weight )
c ( facing )
( 1 - Profile )
 
The bigger the better.
Line 318 ⟶ 362:
 
===Decide how much damage is casted and which types===
Weapons can donedo several types of damage, some of them are exclusivesexclusive and some other are additivesadditive.
 
Damage = a · STR · Skill usedSkill_used · Weapon Damage typeWeapon_Damage_type · Hit
 
We will have several damage values, one for each of the damages that the weapon does.
Each of the values are applied independlyindependently.
 
===Decide if hit is blocked by shield===
If the hit can'tbet dodgebe dodged, then it's time to decide if the shield blockblocks it.
 
Shield rateShield_rate = k · 1 / ( DEX · STR / Shield weightShield_weight )
If we can use the shield, then:
 
Shield absorbsShield_absorption = STR · Shield skillShield_skill · DEX · Shield type of damage protectionShield_type_of_damage_protection · ( 1 - Profile )
The more agressive, the less useful the shield is.
 
===Decide how much damage is absorbed by armor===
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===
Finally
HP = HP - damage · ( 1 - race resistence to type of damageRace_resistence_to_type_of_damage )
if HP == 0 then defender is dead.
Line 352 ⟶ 396:
 
= Magic =
There are somethingssome things written atin Danter's documents.
 
Also on IRC we have been talking about Magic system.
Line 410 ⟶ 454:
[[StendhalRefactoring| Back to Stendhal refactoring page]] <br>
[[Stendhal | Back to Stendhal main wiki page]] <br>
 
[[Category:Development]]