X-BOT/X215.cpp
2025-02-04 20:53:52 -05:00

79 lines
1.7 KiB
C++

//
// Created by Louis Gallet on 15/01/2025.
//
#include "X215.h"
#include <iostream>
void X215::initialiser(std::string nom, int const direction, int const force, int const vitesse, int const vision) {
setNom(nom);
setDirection(direction);
setForce(force);
setVitesse(vitesse);
setVision(vision);
this->rageCombat = false;
}
int X215::bloquer() const {
if (this->rageCombat) {
return force*3;
} else {
return (vitesse/3) + force;
}
}
void X215::mouvement(int &x, int &y) const {
int const deplacement = vitesse + 1;
switch (this->direction) {
case 0: x -= deplacement; break;
case 1: y += deplacement; break;
case 2: x += deplacement; break;
case 3: y -= deplacement; break;
}
x = std::max(std::min(x, 9), 0);
y = std::max(std::min(y, 9), 0);
}
void X215::superCourse(int &x, int &y) const {
int deplacement;
if (this->rageCombat) {
deplacement = vitesse + 1;
}
else {
deplacement = (this->vitesse + (this->vitesse * this->force/10));
}
switch (this->direction) {
case 0: x -= deplacement; break;
case 1: y += deplacement; break;
case 2: x += deplacement; break;
case 3: y -= deplacement; break;
}
x = std::max(std::min(x, 9), 0);
y = std::max(std::min(y, 9), 0);
}
void X215::esquive(int &x, int &y, int xDanger, int yDanger) {
}
void X215::tournerLesTalons() {
switch (this->direction) {
case 0: setDirection(2); break;
case 1: setDirection(3); break;
case 2: setDirection(0); break;
case 3: setDirection(1); break;
}
}
void X215::exploserRage() {
this->rageCombat = true;
}
void X215::controlerRage() {
this->rageCombat = false;
}