diff --git a/src/LoanShark.cpp b/src/LoanShark.cpp new file mode 100644 index 0000000..eea0b71 --- /dev/null +++ b/src/LoanShark.cpp @@ -0,0 +1,52 @@ +// +// Created by gustavomiranda on 27/09/24. +// +#include +#include "LoanShark.h" + + +LoanShark::LoanShark(int money, double taxvalue) { + setOwnedMoney(money); + setTax(taxvalue); + +} + +void LoanShark::setTax(double taxvalue) { + tax = taxvalue; +} + +void LoanShark::setOwnedMoney(int money) { + ownedMoney = money; + +} + +int LoanShark::getOwnedMoney() { + return ownedMoney; +} + +void LoanShark::payLoan(Player *playerreference, int money) { + if (playerreference->checkEnoughMoney(money)) { + if (money > ownedMoney) { + playerreference->decrementMoney(ownedMoney); + setOwnedMoney(0); + } else { + playerreference->decrementMoney(money); + ownedMoney -= money; + } + + } +} + +void LoanShark::getLoan(Player *playerreference, int money) { + ownedMoney += money; + playerreference->incrementMoney(money); +} + +void LoanShark::updateOwnedMoney() { + ownedMoney = std::round(ownedMoney * (1+tax)); + +} + + + + diff --git a/src/Player.cpp b/src/Player.cpp index 4f3699b..3896717 100644 --- a/src/Player.cpp +++ b/src/Player.cpp @@ -33,4 +33,8 @@ Player::Player(){ Player::~Player() { delete inventory; -} \ No newline at end of file +} + +bool Player::checkEnoughMoney(int value) { + return money >= value; +} diff --git a/src/include/LoanShark.h b/src/include/LoanShark.h new file mode 100644 index 0000000..42426e4 --- /dev/null +++ b/src/include/LoanShark.h @@ -0,0 +1,24 @@ +// +// Created by gustavomiranda on 27/09/24. +// + +#ifndef DRUGWARS_LOANSHARK_H +#define DRUGWARS_LOANSHARK_H + +#include "Player.h" + +class LoanShark{ +private: + int ownedMoney; + double tax; + void setTax(double taxvalue); + void setOwnedMoney(int money); +public: + LoanShark(int money, double taxvalue); + int getOwnedMoney(); + void payLoan(Player *playerreference, int money); + void getLoan(Player *playerreference, int money); + void updateOwnedMoney(); +}; + +#endif //DRUGWARS_LOANSHARK_H