Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
ProgAvExercices Fadl ZEMZEM
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ZEMZEM Fadl
ProgAvExercices Fadl ZEMZEM
Commits
715efed9
Commit
715efed9
authored
6 months ago
by
ZEMZEM Fadl
Browse files
Options
Downloads
Patches
Plain Diff
fadltp5
parent
1df19198
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/main/java/fr/univamu/progav/td5/Character.java
+13
-1
13 additions, 1 deletion
src/main/java/fr/univamu/progav/td5/Character.java
src/main/java/fr/univamu/progav/td5/Warrior.java
+26
-2
26 additions, 2 deletions
src/main/java/fr/univamu/progav/td5/Warrior.java
with
39 additions
and
3 deletions
src/main/java/fr/univamu/progav/td5/Character.java
+
13
−
1
View file @
715efed9
package
fr.univamu.progav.td5
;
package
fr.univamu.progav.td5
;
public
abstract
class
Character
{
public
abstract
class
Character
{
protected
int
healthPoints
;
public
Character
(
int
initialHealth
)
{
this
.
healthPoints
=
initialHealth
;
}
// TODO add health points
// TODO add health points
public
boolean
isAlive
()
{
public
boolean
isAlive
()
{
// TODO
// TODO
if
(
healthPoints
>
0
)
{
return
true
;
// Le personnage est vivant si les points de vie sont supérieurs à 0
}
return
false
;
return
false
;
}
}
protected
int
getHealth
()
{
protected
int
getHealth
()
{
// TODO
// TODO
return
0
;
return
healthPoints
;
// Retourne les points de vie
}
}
protected
void
reduceHealth
(
int
amount
)
{
protected
void
reduceHealth
(
int
amount
)
{
// TODO
// TODO
healthPoints
-=
amount
;
// Réduit les points de vie
if
(
healthPoints
<
0
)
{
healthPoints
=
0
;
// S'assure que les points de vie ne sont pas négatifs
}
}
}
protected
void
setHealth
(
int
health
)
{
protected
void
setHealth
(
int
health
)
{
// TODO
// TODO
healthPoints
=
health
;
// Définit les points de vie
}
}
public
abstract
Blow
attack
();
public
abstract
Blow
attack
();
...
...
This diff is collapsed.
Click to expand it.
src/main/java/fr/univamu/progav/td5/Warrior.java
+
26
−
2
View file @
715efed9
...
@@ -7,29 +7,53 @@ public class Warrior extends Character {
...
@@ -7,29 +7,53 @@ public class Warrior extends Character {
public
static
final
int
RAGE_DAMAGE_THRESHOLD
=
5
;
public
static
final
int
RAGE_DAMAGE_THRESHOLD
=
5
;
// TODO add rage
// TODO add rage
private
int
rageCounter
;
// Compteur pour la rage
private
boolean
isRaging
;
// Indicateur pour savoir si le guerrier est en rage
public
Warrior
()
{
public
Warrior
()
{
// TODO
// TODO
super
(
BASE_HEALTH
);
// Appelle le constructeur de la super-classe avec les points de vie de base
this
.
rageCounter
=
0
;
// Initialise le compteur de rage
this
.
isRaging
=
false
;
// Initialise l'état de rage
}
}
@Override
@Override
public
Blow
attack
()
{
public
Blow
attack
()
{
// TODO
// TODO
return
null
;
if
(
isRaging
&&
rageCounter
>
0
)
{
rageCounter
--;
// Diminue le compteur de rage
return
new
Blow
(
RAGE_DAMAGE
,
0
);
// Retourne un Blow avec des dommages de rage
}
return
new
Blow
(
BASE_DAMAGE
,
0
);
// Retourne un Blow avec des dommages de base
}
}
@Override
@Override
public
void
defend
(
Blow
blow
)
{
public
void
defend
(
Blow
blow
)
{
// TODO
// TODO
// Réduit les dommages physiques de moitié car le guerrier est costaud
int
reducedPhysicalDamage
=
blow
.
physicalDamage
()
/
2
;
// Applique les dommages
int
totalDamage
=
reducedPhysicalDamage
+
blow
.
magicalDamage
();
reduceHealth
(
totalDamage
);
// Réduit les points de vie en fonction des dommages
// Gestion de la prolongation de la rage
if
(
isRaging
&&
blow
.
physicalDamage
()
>=
RAGE_DAMAGE_THRESHOLD
)
{
rageCounter
++;
// Prolonge la rage d'une attaque supplémentaire
}
}
}
@Override
@Override
public
void
specialAction
()
{
public
void
specialAction
()
{
// TODO
// TODO
if
(!
isRaging
)
{
isRaging
=
true
;
// Met le guerrier en rage
rageCounter
=
3
;
// Donne au guerrier 3 attaques en rage
}
}
}
public
int
getRage
()
{
public
int
getRage
()
{
// TODO
// TODO
return
0
;
return
isRaging
;
// Retourne l'état de la rage
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment