StendhalRPProposal: Difference between revisions

From Arianne
Jump to navigation Jump to search
Content deleted Content added
imported>MiguelAngelBlanchLardin
imported>Hendrik Brummermann
added navigation
 
(187 intermediate revisions by 7 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>

[[Talk:StendhalRPProposal|Stedndhal RP proposal discussion]]<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>
<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 lacks of any kind of character personalization which lead to a poor RP experience.
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:


== Strength '''STR'''==
==STR==
It will be used to decide:
Strengh is used to determine:
* Attack and damage done.
* How hard we attack
* Weight that can be carried.
* How much weight we can carry
* Damage that can be absorbed with the shield.
* How much damage we can stand.


== Dexterity '''DEX''' ==
==DEX==
It will be used to decide:
Dexterity is used to determine:
* Attack rate
* How fast we can move
* Handling of the weapons
* How easy is for us to dodge an attack.


==AGI==
== Constitution '''CON''' ==
It will be used to decide:
Agility is used to determine:
* How much health we have.
* How fast we can move.
* How fast we recover health.
* How good we are at dodging.


==CON==
== Intelligence '''INT''' ==
It will be used to decide:
Constitution is used to determine:
* Amount of HP points.
* How much mana we will have.
* How strong spells will be.
* How fast we can restore HP points
* How much we can resist magic.
* How fast we can restore MP points.


== Karma ''KAR'' ==
==WIS==
Wisdom defines how united you are with your deity.
It will be used to decide most of the actions.
* Defines how much faith you have.
* It will begin at 0.
* How strong your prayers are.

==INT==
Wisdom and Inteligence is used to determine:
* Amount of Mana points.
* Strengh of the spell.
* How fast we can learn.

==KAR==
Karma determines most of the RP.
Good actions give positive karma and bad actions give negative karma.
Karma is initially 0 except if modified by race.
* You gain karma with good actions
* You gain karma with good actions
* You lose karma with bad actions
* You lose karma with bad actions
* It may be used mainly by magic and NPC reactions.
* It may be used mainly by magic and NPC reactions.

What it is a good or a bad action will be defined by Quests and NPC.

==Asserts==
* The more you have, the better you are. Except Karma.
* To increase an attribute you need to spend character points.
* To increase from Level N to Level N+1 of the attribute you need to spend N character points.
* Default amount of character points is 10 except when modified by race.
* Players get character points for doing quests and leveling up.
* Players can spend character points at any time.
* There is no increase in stats until attribute is fully level up.
* There are racial modifier to attributes, skills, and stats.


=Level up=
=Level up=
When you level up by gaining XP, you can spend some points in improving the attributes.
When you level up by gaining XP, you can spend some points in improving the attributes.
The higher the attribute the more points it cost to be incremented.
The higher the attribute the more points it cost to be incremented.

==Asserts==
* Players level up by earning XP.
* When you reach level N you are rewarded N Character points.
* When you level up, although attributes don't change, you get a bit better.


= 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 56: 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 agains dwarves, and so on.
Also of course, Dwarves are not hostile against dwarves, and so on.


== Gender ==
== Gender ==
Line 63: Line 102:
* Woman
* Woman


Once it is set you can't change it.
Once it is set you can't change it. So this decision will limit your available outfits.
Of course unless you master disguise skill. :)


== Age ==
== Age ==
Line 72: Line 112:
* Old
* Old
* Ancient
* Ancient

Perhaps we can do this as the younger your character, the less points you have to spend in game but the more your are prone to gain, while if you play an old character, you will get lots of points but you will gain very little.


=Stats=
==Concepts==
===Race factor===
Each attribute will have a Race factor about how this race is better at that that humans.
Human race will have 1 at every race factor.

{|border="1" cellpadding="5" cellspacing="0" style="text-align:center"
|+'''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
|}


===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 have better CON and STR.
* Rangers have better CON and AGI
* Archers have better AGI and DEX
* ...

{|border="1" cellpadding="5" cellspacing="0" style="text-align:center"
|+'''Class Factors'''
! !!Class_STR !!Class_DEX !!Class_AGI !!Class_CON !!Class_INT !!Class_WIS
|-
!None
|1 ||1 ||1 ||1 ||1 ||1
|-
!Berseker
|2.2 ||0.7 ||0.5 ||1 ||0.5 ||1.1
|-
!Warrior
|1.5 ||1.2 ||1.2 ||1.1 ||0.4 ||0.6
|-
!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==
It is the amount of health points we have.

HP=m · CON · Race_CON · Class_CON ·(Level/k+1)·CON
Where m=k=10

==MP==
It is the amount of magic points we have.

MP=m · (INT · Race_INT · Class_INT + WIS · Race_WIS · Class_WIS)/2 · (Level/k+1)·((INT + WIS)/2)
Where m=3, k=10

==Max weight carried==
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 · 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.
A common human lvl 0 with STR=CON=AGI=10 should be able to carry around 50 Kg.

==Speed==
It is how fast this player moves, in tiles per second.

speed=m · Race_AGI · Class_AGI · (Level/k+1) · AGI
Where k=10 and m is again used to adjust the value.
A common human lvl 0 with AGI=10 should walk around 0.5-0.7 tiles per second.

=Combat=
Previous to describe how combat works, let's see how items works.

==Items==
===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.
* Slash
* Bash
* Stab
* Magical
** Each of the magic schools we have. TODO
* Elemental
** Fire
** Cold
** Acid
** Disease
** Poison



{|border="1" cellpadding="5" cellspacing="0" style="text-align:center"
|+'''Resistence factor to damage'''
! !!Slash !!Bash !!Stab !!Magic !!Fire !!Cold !!Acid !!Dis !!Poison
|-
!Human
|0 ||0 ||0 ||0 ||0 ||0 ||0 ||0 ||0
|-
!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.
0.1 stands for 10% is absorbed.

===Weapon===
It has the next set of attributes:
====Weight ====
Determine mainly relating to STR and DEX how fast the weapon can be used.
The more weight, the slower.

====Damage done====
It is done as an array that determine how much damage is done for each type of damage.
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.

For example:

DamageDone={ "cut"=10, "elemental_poison"=5 }

====Damage protects====
It is also done as an array and show the types of damage this weapon protect against.
It can be possible that weapon protects agains nothing.

For example:
DamageProtect={ "elemental_poison"=10 }
====Resistence====
It is a value between 100 and 0 to indicate how broken is the weapon.
Different types of damage can break more the weapon than others.
This is here for completion and it is not prone to feature on the first versions of the new RP.

====Skill====
It tells which skill the weapon uses.
By now just one skill per weapon.
Skill will be used to know how good are you at handling the weapon.

==== Throwable and Range====
Determine is weapon is throwable and how much range it has.
Real range will be scaled based on attributes.

====Dificulty====
This is how dificult is to handle the weapon.
The more difficult, the more skill you need to properly handle it.

===Armor, Shield, Legs and boots===
They share mostly the same type of structure.

====Weight ====
The more weight, the slower.

====Damage protects====
It is also done as an array and show the types of damage this armor protect against.
It can be possible that armor protects agains nothing.

For example:
DamageProtect={ cut="30", "club"="10", "elemental_poison"=10 }

====Resistence====
It is a value between 100 and 0 to indicate how broken is the armor.
Different types of damage can break more the armor than others.
This is here for completion and it is not prone to feature on the first versions of the new RP.

====Skill====
It tells which skill the armor uses.
By now just one skill per armor.
Skill will be used to know how good are you at handling the armor.

== Asserts==
* All attributes but karma are involved at combat.
* The more weight the less attack rate. This show in several things:
** The more weight the weapon has, the less attack rate player has.
** The more weight the armor set has, the less ability the player has to dodge.
** The more weight the shield has, the less often it can be used.

==Inners==
We can split combat sequence in the next set of states.
===Check attack rate to see if we can attack===
This will determine how often we can attack.

Attack rate= k · 1 / ( DEX · STR / Weapon_weight )

The lower the better.

===Decide if hit is done===
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_weight )
d ( facing )
Profile

The bigger the better.

Profile indicate how offensive player is as:
* 0 means totally defensive
* 1 means totally agressive

===Check dodge rate to see if we can dodge===
This determine how often you can dodge.
The more armor weight the less you can move.
Dodge rate= k · 1 / ( AGI · STR/Armor_weight )
The lower the better.

===Decide if player dodge attack===
Dodge = a ( Defender.AGI )
b ( STR/Armor_weight )
c ( facing )
( 1 - Profile )

The bigger the better.
To dodge the hit, you need to roll against hit.

===Decide how much damage is casted and which types===
Weapons can do several types of damage, some of them are exclusive and some other are additive.

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.
Each of the values are applied independently.

===Decide if hit is blocked by shield===
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 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.

===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
===Apply damage===
Finally
HP = HP - damage · ( 1 - Race_resistence_to_type_of_damage )
if HP == 0 then defender is dead.
== Considerations==
As you can see it can work directly with magic, magical resistences,poison, illness, ...


= Magic =
= Magic =
There are some things written in Danter's documents.

Also on IRC we have been talking about Magic system.
Nothing clear ( for me ) yet, but I know magic will be as spell and as scrolls.

= Classes =
= Classes =
We may short it using a Profession tree.
We may short it using a Profession tree.
Line 94: Line 421:
If you want to develop a skill you need to have the right karma or you won't be able to progress at the skill.
If you want to develop a skill you need to have the right karma or you won't be able to progress at the skill.


I have though about the next set of skills:
= Combat =
* spell caster
Combat should work on a similar way to this:
* invocation
== How often to attack ==
* healing
The attack rate should be based on the character DEX and ATK value and it will be also proportional to the Weapon attack rate.
* items incantatory

* scrolls writer
== Determine if defender is hit ==
* potions maker
Roll (Attacker.DEX+Attacker.Weapon.DEX) vs (Defender.DEX-Defender.Armor.DEX)
* infravision
Weapons will have bonus for attributes.
* transfiguration
We should add Bonus to each side, attacker and defender:
* animal talking
** Alert
* trapper
** Facing
* trap discovery
** Healthy
* follow trails
And penalty:
* walk in shadows
** Distracted
* silence
** Not facing
* invisible
** Poisoned
** Ill
* steal
* open lock
** Injured.
* sing

* aiming
If roll is successful attacker has hit defender.
* faith

* sword skill
If multiple attackers, Each Attacker is as above, but Defender must be divided down against the number of attackers
* axe skill

* club skill
Defender(DEX) is divided among the attackers evenly, incorporating Defender(INT) will allow the defender to train a greater percentage of Armour against the stronger Attackers while being able to attack the weaker Attackers.
* shield skill

* armor skill
For a defender to be able to attack multiple attackers, you need training in fighting skill, weapons skills/arts, and defensive training too.

== Determine if hit is blocked ==
Decide if the hit is blocked or not by a shield by doing a roll (Attacker.STR+Weapon.STR) vs (Defender.STR+Shield.STR)
Again, count also the Bonus.

If the hit is not blocked, compute the damage.

== Compute damage ==
Roll Attacker.STR+Weapon.STR vs Defender.Armor

= What happens with already existing players? =
We can talk about this at http://sourceforge.net/forum/message.php?msg_id=4215323


<br>
<br>
Line 139: 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]]

Latest revision as of 16:00, 24 April 2011



Note: The content on this page is very old and is likely outdated. You may want to check on the irc channel #arianne.

This article describes a future concept. It may still have some open issues and it was not decided, yet, whether to implement it in this way.

Ideas for Stendhal

Mostly implemented


Related pages

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:
Stendhal RP proposal discussion

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 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:

STR

Strengh is used to determine:

  • Attack and damage done.
  • Weight that can be carried.
  • Damage that can be absorbed with the shield.

DEX

Dexterity is used to determine:

  • Attack rate
  • Handling of the weapons

AGI

Agility is used to determine:

  • How fast we can move.
  • How good we are at dodging.

CON

Constitution is used to determine:

  • Amount of HP points.
  • How fast we can restore HP points
  • How fast we can restore MP points.

WIS

Wisdom defines how united you are with your deity.

  • Defines how much faith you have.
  • How strong your prayers are.

INT

Wisdom and Inteligence is used to determine:

  • Amount of Mana points.
  • Strengh of the spell.
  • How fast we can learn.

KAR

Karma determines most of the RP. Good actions give positive karma and bad actions give negative karma. Karma is initially 0 except if modified by race.

  • You gain karma with good actions
  • You lose karma with bad actions
  • It may be used mainly by magic and NPC reactions.

What it is a good or a bad action will be defined by Quests and NPC.

Asserts

  • The more you have, the better you are. Except Karma.
  • To increase an attribute you need to spend character points.
  • To increase from Level N to Level N+1 of the attribute you need to spend N character points.
  • Default amount of character points is 10 except when modified by race.
  • Players get character points for doing quests and leveling up.
  • Players can spend character points at any time.
  • There is no increase in stats until attribute is fully level up.
  • There are racial modifier to attributes, skills, and stats.

Level up

When you level up by gaining XP, you can spend some points in improving the attributes. The higher the attribute the more points it cost to be incremented.

Asserts

  • Players level up by earning XP.
  • When you reach level N you are rewarded N Character points.
  • When you level up, although attributes don't change, you get a bit better.

Minor attributes

There are also other attributes that are important but that don't decide to such extreme our player's *look*.

Race

Player should be able to choose to be:

  • Dwarf
  • Elf
  • Human
  • Orc

This will decide the base outfit and the place where you enter world. Also of course, Dwarves are not hostile against dwarves, and so on.

Gender

There are lots of hermaphrodite beings on Stendhal :)

  • Man
  • Woman

Once it is set you can't change it. So this decision will limit your available outfits. Of course unless you master disguise skill. :)

Age

It may have an effect on skills and attributes, as well as outfit.

  • Child
  • Young
  • Middle
  • Old
  • Ancient

Perhaps we can do this as the younger your character, the less points you have to spend in game but the more your are prone to gain, while if you play an old character, you will get lots of points but you will gain very little.


Stats

Concepts

Race factor

Each attribute will have a Race factor about how this race is better at that that humans. Human race will have 1 at every race factor.

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


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 have better CON and STR.
  • Rangers have better CON and AGI
  • Archers have better AGI and DEX
  • ...
Class Factors
Class_STR Class_DEX Class_AGI Class_CON Class_INT Class_WIS
None 1 1 1 1 1 1
Berseker 2.2 0.7 0.5 1 0.5 1.1
Warrior 1.5 1.2 1.2 1.1 0.4 0.6
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

It is the amount of health points we have.

 HP=m · CON · Race_CON · Class_CON ·(Level/k+1)·CON

Where m=k=10

MP

It is the amount of magic points we have.

 MP=m · (INT · Race_INT · Class_INT + WIS · Race_WIS · Class_WIS)/2 · (Level/k+1)·((INT + WIS)/2)
 

Where m=3, k=10

Max weight carried

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 · 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. A common human lvl 0 with STR=CON=AGI=10 should be able to carry around 50 Kg.

Speed

It is how fast this player moves, in tiles per second.

 speed=m · Race_AGI · Class_AGI · (Level/k+1) · AGI
 

Where k=10 and m is again used to adjust the value. A common human lvl 0 with AGI=10 should walk around 0.5-0.7 tiles per second.

Combat

Previous to describe how combat works, let's see how items works.

Items

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.

  • Slash
  • Bash
  • Stab
  • Magical
    • Each of the magic schools we have. TODO
  • Elemental
    • Fire
    • Cold
    • Acid
    • Disease
    • Poison


Resistence factor to damage
Slash Bash Stab Magic Fire Cold Acid Dis Poison
Human 0 0 0 0 0 0 0 0 0
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. 0.1 stands for 10% is absorbed.

Weapon

It has the next set of attributes:

Weight

Determine mainly relating to STR and DEX how fast the weapon can be used. The more weight, the slower.

Damage done

It is done as an array that determine how much damage is done for each type of damage. 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.

For example:

DamageDone={ "cut"=10, "elemental_poison"=5 }

Damage protects

It is also done as an array and show the types of damage this weapon protect against. It can be possible that weapon protects agains nothing.

For example:

DamageProtect={ "elemental_poison"=10 }

Resistence

It is a value between 100 and 0 to indicate how broken is the weapon. Different types of damage can break more the weapon than others. This is here for completion and it is not prone to feature on the first versions of the new RP.

Skill

It tells which skill the weapon uses. By now just one skill per weapon. Skill will be used to know how good are you at handling the weapon.

Throwable and Range

Determine is weapon is throwable and how much range it has. Real range will be scaled based on attributes.

Dificulty

This is how dificult is to handle the weapon. The more difficult, the more skill you need to properly handle it.

Armor, Shield, Legs and boots

They share mostly the same type of structure.

Weight

The more weight, the slower.

Damage protects

It is also done as an array and show the types of damage this armor protect against. It can be possible that armor protects agains nothing.

For example:

DamageProtect={ cut="30", "club"="10", "elemental_poison"=10 }

Resistence

It is a value between 100 and 0 to indicate how broken is the armor. Different types of damage can break more the armor than others. This is here for completion and it is not prone to feature on the first versions of the new RP.

Skill

It tells which skill the armor uses. By now just one skill per armor. Skill will be used to know how good are you at handling the armor.

Asserts

  • All attributes but karma are involved at combat.
  • The more weight the less attack rate. This show in several things:
    • The more weight the weapon has, the less attack rate player has.
    • The more weight the armor set has, the less ability the player has to dodge.
    • The more weight the shield has, the less often it can be used.

Inners

We can split combat sequence in the next set of states.

Check attack rate to see if we can attack

This will determine how often we can attack.

 Attack rate= k · 1 / ( DEX · STR / Weapon_weight )

The lower the better.

Decide if hit is done

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_weight )
       d ( facing )
       Profile

The bigger the better.

Profile indicate how offensive player is as:

  • 0 means totally defensive
  • 1 means totally agressive

Check dodge rate to see if we can dodge

This determine how often you can dodge. The more armor weight the less you can move.

 Dodge rate= k · 1 / ( AGI · STR/Armor_weight )
 

The lower the better.

Decide if player dodge attack

 Dodge = a ( Defender.AGI ) 
         b ( STR/Armor_weight )
         c ( facing )
         ( 1 - Profile )

The bigger the better. To dodge the hit, you need to roll against hit.

Decide how much damage is casted and which types

Weapons can do several types of damage, some of them are exclusive and some other are additive.

 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. Each of the values are applied independently.

Decide if hit is blocked by shield

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 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.

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
 

Apply damage

Finally

 HP = HP - damage · ( 1 - Race_resistence_to_type_of_damage )
 
 if HP == 0 then defender is dead.
 

Considerations

As you can see it can work directly with magic, magical resistences,poison, illness, ...

Magic

There are some things written in Danter's documents.

Also on IRC we have been talking about Magic system. Nothing clear ( for me ) yet, but I know magic will be as spell and as scrolls.

Classes

We may short it using a Profession tree.

  • Archer
  • Mage
  • Priest
  • Druid
  • Warrior
  • Scout
  • Thief
  • Bard
  • Barbarian

Each of these *classes* will expand on more and more making graph. Also we should have alignments there for:

  • Good ( Positive karma )
  • Neutral ( 0 karma )
  • Evil ( Negative karma )

If you want to develop a skill you need to have the right karma or you won't be able to progress at the skill.

I have though about the next set of skills:

  • spell caster
  • invocation
  • healing
  • items incantatory
  • scrolls writer
  • potions maker
  • infravision
  • transfiguration
  • animal talking
  • trapper
  • trap discovery
  • follow trails
  • walk in shadows
  • silence
  • invisible
  • steal
  • open lock
  • sing
  • aiming
  • faith
  • sword skill
  • axe skill
  • club skill
  • shield skill
  • armor skill





Back to Stendhal refactoring page
Back to Stendhal main wiki page