Implémentez les spécifications suivantes en TDD
Dans notre RPG, un joueur peut en attaquer un autre. On parlera alors de joueur attaquant et de joueur défenseur.
L’attaque prend en compte certaines statistiques du joueur attaquant et de son arme pour calculer un nombre de dégâts infligés au joueur défenseur.
Si le joueur défenseur dispose d’une armure, elle pourra absorber tout ou partie des dégâts infligés.
Les dégâts non absorbés seront le nombre de points de vie (PV) perdus par le joueur défenseur. Les dégâts infligés et absorbés seront toujours arrondis à l’entier inférieur.
L’attaquant inflige 10 dégâts
L’armure du défenseur absorbe 8 dégâts.
⇒ Le défenseur perd 2 PV.
Chaque arme dispose d’une puissance de base.
Pour calculer les dégâts infligés par l’arme, on utilisera cette puissance de base qu’on multipliera par un facteur critique.
Le facteur critique est un pourcentage entre 80% et 120%, aléatoirement choisi à chaque attaque.
Exemple : Avec une épée courte (puissance : 10)
et un facteur critique de 80% :⇒ 10 * 80% = 8 dégâts
Chaque armure dispose d’une résistance de base.
Pour calculer les dégâts absorbés par l’armure, on utilisera cette résistance de base qu’on appliquera comme un pourcentage de réduction sur les dégâts.
Exemple avec 10 dégâts infligés à une cotte de maille (résistance : 20) :
⇒ 10 * 20% = 2 dégâts absorbés par l’armure
Certaines armes sont perforantes.
Lorsqu’un joueur attaque avec l’une de ces armes, 25% des dégâts ignorent l’armure du joueur défenseur.
La règle de calcul de l’armure se base alors sur les 75% restants.
Exemple avec une arbalète (puissance : 100, perforante),
un facteur critique de 100%
et une armure de chevalier (résistance: 90) :Dégâts infligés : 100 * 100% = 100
Dégâts non absorbables (perforation) : 100 * 25% = 25
Dégâts absorbables : 100 - 25 = 75
Dégâts absorbés par l’armure : 75 * 90% = 67.5 ⇒ 67 dégâts
Dégâts non absorbés : 75 - 67 = 8 dégâts
Total final : 25 perforants + 8 non absorbés = 33 PV perdus
Avec la règle normale, le défenseur aurait absorbé
100 * 90% = 90 dégâts
et n’aurait perdu que : 100 - 90 = 10 PV
Lorsqu’un joueur possédant une armure renforcée est attaqué par une arme perforante, la règle spéciale des armes perforantes ne s’applique pas.
Lorsqu’il est attaqué avec une arme normale, l’armure absorbe 25% des dégâts non absorbés par la règle normale.
Exemple avec une hallebarde (puissance : 60),
un facteur critique de 100%
et une armure de plaque (résistance: 70) :Dégâts infligés : 60 * 100% = 60
Dégâts absorbés (régle normale) : 60 * 70% = 42
Dégâts restants : 60 - 42 = 18
Avec la règle normale, le défenseur aurait donc perdu 18 PV.
Dégâts supplémentaires absorbés : 18 * 25% = 4.5 ⇒ 4
Dégâts restants : 18 - 4 = 14
Dans certains cas, un joueur peut bénéficier d’un bouclier, qui lui permet d’absorber un nombre de dégâts fixe sur chaque attaque.
Lorsqu’un défenseur possédant un bouclier est attaqué, la règle d’armure est appliqué normalement, puis le bouclier absorbe tout ou partie des dégâts restants.
Exemple avec une attaque infligeant 50 dégâts,
une cotte de maille (résistance : 20)
et un bouclier mineur (protection : 10) :Dégâts absorbés par l’armure : 50 * 20% = 10
Dégâts restants : 50 - 10 = 40
Le bouclier absorbe 10 points de dégâts
Le défenseur perd 30 PV
Dans certains cas, un joueur défenseur peut être temporairement invulnérable.
Dans ce cas, peu importe l’attaque, il ne recevra aucun dégâts.
Outre les armes, il est également possible d’attaquer un joueur à l’aide de magie.
Les attaques magiques ignorent les armures traditionnelles.
Les armures peuvent être améliorées à l’aide de runes. Ces runes ajoutent une résistance magique aux armures, leur permettant d’absorber des dégâts magiques.
La règle de calcul est la même que pour les dégâts physiques.
Exemple avec une boule de feu (puissance magique 100)
et une armure de chevalier avec une rune basique (résistance magique : 20)Dégâts magiques absorbés : 100 * 20% = 20
Dégâts magiques restants : 100 - 20 = 80 PV
Le défenseur perd 80 PV
Certaines armes exceptionnelles permettent d’infliger à la fois des dégâts normaux et des dégâts magiques.
On appliquera alors les deux règles séparémentDe la même façon que pour les armes, certaines armures exceptionnelles peuvent absorber à la fois les dégâts normaux et magiques.
On appliquera alors les deux règles séparément.
Exemple avec Excalibur (puissance : 200, puissance magique : 200) :
Dégâts normaux (facteur critique : 110) : 200 * 110% = 220 dégâts
Dégâts magiques (facteur critique : 95) : 200 * 95% = 190 dégâts
Le joueur défenseur recevra 220 dégâts normaux
ainsi que 190 dégâts magiques
De la même façon que pour les armes, certaines armures exceptionnelles peuvent absorber à la fois les dégâts normaux et magiques.
On appliquera alors les deux règles séparément.
Suite de l’exemple avec Armure du Crépuscule Infernal (resistance 90, resistance magique 95)
Dégâts absorbés : 220 * 90% = 198
Dégâts non absorbés : 220 - 198 = 22 PV
Dégâts magiques absorbés : 190 * 95% = 180
Dégâts magiques non absorbés : 190 - 180 = 10 PV
Le joueur défenseur perd 22 + 10 = 32 PV