Skip to content

Commit

Permalink
minor changes, fight overviews still have to be refactored
Browse files Browse the repository at this point in the history
  • Loading branch information
Ipagaxi committed Apr 29, 2024
1 parent 2db7bd3 commit f17728a
Show file tree
Hide file tree
Showing 10 changed files with 65 additions and 64 deletions.
34 changes: 17 additions & 17 deletions src/include/UIObjects/UIEnemyOverview.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,25 @@
#include "Game.hpp"

class UIEnemyOverview {
public:
UIEnemyOverview(Enemy enemy);
UIEnemyOverview();

Enemy creature;
UIColorPicker colorPicker = UIColorPicker("colorPIC_default.png", "color_picker_border.png");
sf::Text pickedColorText;
public:
UIEnemyOverview(Enemy enemy);
UIEnemyOverview();

void setEnemy(Enemy enemy);
void changeHealth(int value);
void updatePickedColorText(std::string newText, sf::Color pickedColor);
void draw();
Enemy enemy;
UIColorPicker colorPicker = UIColorPicker("colorPIC_default.png", "color_picker_border.png");
sf::Text pickedColorText;

private:
UIBox backgroundBox = UIBox(sf::Color(51, 25, 0, 150), "borders/metal_border_900x900.png");
sf::Texture creatureBackgroundTX;
sf::Sprite creatureBackgroundSP;
UIStats statsComponent;
UIBorderedImage creatureFrame;
void initEnemy(Enemy enemy);
void changeHealth(int value);
void updatePickedColorText(std::string newText, sf::Color pickedColor);
void draw();

private:
UIBox box = UIBox(sf::Color(51, 25, 0, 150), "borders/metal_border_900x900.png");
sf::Texture enemyIconBackgroundTX;
sf::Sprite enemyIconBackgroundSP;
UIStats enemyStats;
UIBorderedImage enemyBorderedImage;
};

#endif
2 changes: 1 addition & 1 deletion src/main/Activities/FightActivity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

FightActivity::FightActivity() : Activity(), fightEnv(), currentFightState(std::make_unique<TurnChangeState>(fightEnv)) {
Game& game = Game::getInstance();
this->fightEnv.enemyOverview.setEnemy(initEnemy());
this->fightEnv.enemyOverview = UIEnemyOverview(initEnemy());
this->fightEnv.backgroundTX.loadFromFile(RESOURCE_PATH "backgrounds/background_fight.png");
this->fightEnv.backgroundSP.setTexture(this->fightEnv.backgroundTX);

Expand Down
2 changes: 1 addition & 1 deletion src/main/FightEnv.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "FightEnv.hpp"

FightEnv::FightEnv(): playerStatsBox(Game::getInstance().player), enemyOverview(), playerOverview() {
FightEnv::FightEnv(): playerStatsBox(Game::getInstance().player) {
}
4 changes: 2 additions & 2 deletions src/main/FightStates/EnemiesTurn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ FightStateEnum EnemiesTurn::run(FightEnv &fightEnv) {
if (!fightEnv.enemyDamageCalculated) {
std::random_device randSeed;
std::mt19937 gen(randSeed());
int minDamage = int(0.75 * fightEnv.enemyOverview.creature.attackStrength);
int maxDamage = int(1.25 * fightEnv.enemyOverview.creature.attackStrength);
int minDamage = int(0.75 * fightEnv.enemyOverview.enemy.attackStrength);
int maxDamage = int(1.25 * fightEnv.enemyOverview.enemy.attackStrength);
std::uniform_int_distribution<int> dist(minDamage, maxDamage);
int enemyDamage = dist(gen);
int millSecToLive = 600;
Expand Down
24 changes: 12 additions & 12 deletions src/main/FightStates/PlayersTurn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,15 @@ float PlayersTurn::sameColorMetric(Color color, FightEnv &fightEnv) {
switch (color) {
case RED:
pickedColorValue = fightEnv.pickedColor.r;
defenseColorValue = fightEnv.enemyOverview.creature.defense.red;
defenseColorValue = fightEnv.enemyOverview.enemy.defense.red;
break;
case GREEN:
pickedColorValue = fightEnv.pickedColor.g;
defenseColorValue = fightEnv.enemyOverview.creature.defense.green;
defenseColorValue = fightEnv.enemyOverview.enemy.defense.green;
break;
case BLUE:
pickedColorValue = fightEnv.pickedColor.b;
defenseColorValue = fightEnv.enemyOverview.creature.defense.blue;
defenseColorValue = fightEnv.enemyOverview.enemy.defense.blue;
break;
default:
break;
Expand All @@ -110,15 +110,15 @@ float PlayersTurn::counterColorMetric(Color color, FightEnv &fightEnv) {
switch (color) {
case RED:
pickedColorValue = fightEnv.pickedColor.r;
weakDefenseColorValue = fightEnv.enemyOverview.creature.defense.green;
weakDefenseColorValue = fightEnv.enemyOverview.enemy.defense.green;
break;
case GREEN:
pickedColorValue = fightEnv.pickedColor.g;
weakDefenseColorValue = fightEnv.enemyOverview.creature.defense.blue;
weakDefenseColorValue = fightEnv.enemyOverview.enemy.defense.blue;
break;
case BLUE:
pickedColorValue = fightEnv.pickedColor.b;
weakDefenseColorValue = fightEnv.enemyOverview.creature.defense.red;
weakDefenseColorValue = fightEnv.enemyOverview.enemy.defense.red;
break;
default:
break;
Expand All @@ -136,18 +136,18 @@ float PlayersTurn::tugOfWarMetric(Color color, FightEnv &fightEnv) {
switch (color) {
case RED:
pickedColorValue = fightEnv.pickedColor.r;
weakDefenseColorValue = fightEnv.enemyOverview.creature.defense.green;
counterDefenseColorValue = fightEnv.enemyOverview.creature.defense.blue;
weakDefenseColorValue = fightEnv.enemyOverview.enemy.defense.green;
counterDefenseColorValue = fightEnv.enemyOverview.enemy.defense.blue;
break;
case GREEN:
pickedColorValue = fightEnv.pickedColor.g;
weakDefenseColorValue = fightEnv.enemyOverview.creature.defense.blue;
counterDefenseColorValue = fightEnv.enemyOverview.creature.defense.red;
weakDefenseColorValue = fightEnv.enemyOverview.enemy.defense.blue;
counterDefenseColorValue = fightEnv.enemyOverview.enemy.defense.red;
break;
case BLUE:
pickedColorValue = fightEnv.pickedColor.b;
weakDefenseColorValue = fightEnv.enemyOverview.creature.defense.red;
counterDefenseColorValue = fightEnv.enemyOverview.creature.defense.green;
weakDefenseColorValue = fightEnv.enemyOverview.enemy.defense.red;
counterDefenseColorValue = fightEnv.enemyOverview.enemy.defense.green;
break;
default:
break;
Expand Down
5 changes: 4 additions & 1 deletion src/main/UIElements/UIStats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,15 +86,18 @@ void UIStats::setPosition(float x, float y) {
float statsOffsetY = actorStatsBoxSize.height * 0.3;
float statsSeparationPaddingY = actorStatsBoxSize.height * 0.05;

std::string currentActor = this->actorName.getString();
std::cout << currentActor << std::endl;
sf::FloatRect actorNameRec = this->actorName.getGlobalBounds();
this->actorName.setPosition(x + (actorStatsBoxSize.width - actorNameRec.width)/2, y + actorStatsBoxSize.height * 0.15);
this->actorName.setPosition(x + ((actorStatsBoxSize.width - actorNameRec.width)/2), y + actorStatsBoxSize.height * 0.15);
this->actorHealthLabel.setPosition(statsLabelPosX, y + statsOffsetY);
this->actorHealthValue.setPosition(statsValuePosX, y + statsOffsetY);
this->actorAttackStrengthLabel.setPosition(statsLabelPosX, y + statsOffsetY + statsTextHeight + statsSeparationPaddingY);
this->actorAttackStrengthValue.setPosition(statsValuePosX, y + statsOffsetY + statsTextHeight + statsSeparationPaddingY);
this->actorRGBDefenseLabel.setPosition(statsLabelPosX, y + statsOffsetY + (statsTextHeight + statsSeparationPaddingY)*2);
this->actorRGBDefenseValues.setPosition(statsValuePosX, y + statsOffsetY + (statsTextHeight + statsSeparationPaddingY)*2);
}

sf::FloatRect UIStats::getSize() {
return this->actorStatsBox.getSize();
}
Expand Down
56 changes: 28 additions & 28 deletions src/main/UIObjects/UIEnemyOverview.cpp
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
#include "UIObjects/UIEnemyOverview.hpp"

UIEnemyOverview::UIEnemyOverview(): UIEnemyOverview(Enemy()) {
UIEnemyOverview::UIEnemyOverview() {
}

UIEnemyOverview::UIEnemyOverview(Enemy enemy): statsComponent(enemy), creature(enemy), creatureFrame("monster_landscape_cut/" + enemy.picPath, "actor_borders/fight_border.png") {
UIEnemyOverview::UIEnemyOverview(Enemy enemy): enemyStats(enemy), enemy(enemy), enemyBorderedImage("monster_landscape_cut/" + enemy.picPath, "actor_borders/fight_border.png") {
Game& game = Game::getInstance();
sf::Vector2u windowSize = game.gameWindow.getSize();
sf::FloatRect boxRect = this->backgroundBox.getSize();
sf::FloatRect boxRect = this->box.getSize();
sf::Vector2f overviewPos = sf::Vector2f(windowSize.x * 0.51, windowSize.y * 0.1);
this->backgroundBox.setPosition(overviewPos.x, overviewPos.y);
this->box.setPosition(overviewPos.x, overviewPos.y);

float relativeOuterPaddingStatBoxes = 0.05;
sf::FloatRect statsBoxSize = this->statsComponent.getSize();
this->statsComponent.setPosition(windowSize.x * (1.0 - relativeOuterPaddingStatBoxes) - statsBoxSize.width, windowSize.y * 0.35);
sf::FloatRect statsBoxSize = this->enemyStats.getSize();
this->enemyStats.setPosition(windowSize.x * (1.0 - relativeOuterPaddingStatBoxes) - statsBoxSize.width, windowSize.y * 0.35);

sf::FloatRect creatureFrameRect = this->creatureFrame.getSize();
sf::FloatRect creatureFrameRect = this->enemyBorderedImage.getSize();
float creatureBoxScale = (windowSize.x*0.22)/creatureFrameRect.width;
this->creatureFrame.scale(creatureBoxScale, creatureBoxScale);
creatureFrameRect = this->creatureFrame.getSize();
this->enemyBorderedImage.scale(creatureBoxScale, creatureBoxScale);
creatureFrameRect = this->enemyBorderedImage.getSize();
float creatureFrameMargin = boxRect.width * 0.05;
sf::Vector2f creatureFramePos = sf::Vector2f(overviewPos.x + creatureFrameMargin, overviewPos.y + creatureFrameMargin);
this->creatureFrame.setPosition(creatureFramePos.x, creatureFramePos.y);
this->enemyBorderedImage.setPosition(creatureFramePos.x, creatureFramePos.y);

this->creatureBackgroundTX.loadFromFile(RESOURCE_PATH "actor_landscape_backgrounds/forest.png");
this->creatureBackgroundSP.setTexture(this->creatureBackgroundTX);
sf::FloatRect creatureBackgroundRect = this->creatureBackgroundSP.getGlobalBounds();
this->creatureBackgroundSP.setOrigin(creatureBackgroundRect.width/2.f, creatureBackgroundRect.height/2.f);
this->creatureBackgroundSP.setPosition(creatureFramePos.x + creatureFrameRect.width/2.f, creatureFramePos.y + creatureFrameRect.height/2.f);
this->creatureBackgroundSP.scale(creatureBoxScale, creatureBoxScale);
this->enemyIconBackgroundTX.loadFromFile(RESOURCE_PATH "actor_landscape_backgrounds/forest.png");
this->enemyIconBackgroundSP.setTexture(this->enemyIconBackgroundTX);
sf::FloatRect creatureBackgroundRect = this->enemyIconBackgroundSP.getGlobalBounds();
this->enemyIconBackgroundSP.setOrigin(creatureBackgroundRect.width / 2.f, creatureBackgroundRect.height / 2.f);
this->enemyIconBackgroundSP.setPosition(creatureFramePos.x + creatureFrameRect.width / 2.f, creatureFramePos.y + creatureFrameRect.height / 2.f);
this->enemyIconBackgroundSP.scale(creatureBoxScale, creatureBoxScale);

float colorPickerScale = creatureFrameRect.width / colorPicker.getSize().width;
this->colorPicker.scale(colorPickerScale, colorPickerScale);
this->colorPicker.setColorBox(this->creature.colorPicPath, this->creature.colorPicBorderPath);
this->colorPicker.setColorBox(this->enemy.colorPicPath, this->enemy.colorPicBorderPath);
sf::Vector2f colorPickerPos = sf::Vector2f(creatureFramePos.x, creatureFramePos.y + creatureFrameRect.height + boxRect.height * 0);
this->colorPicker.setPosition(colorPickerPos.x, colorPickerPos.y);
sf::FloatRect colorPickerSize = this->colorPicker.getSize();
Expand All @@ -45,27 +45,27 @@ UIEnemyOverview::UIEnemyOverview(Enemy enemy): statsComponent(enemy), creature(e
this->pickedColorText.setPosition(colorPickerPos.x + colorPickerSize.width*0.5, colorPickerPos.y + colorPickerSize.height + windowSize.y*0.02);
}

void UIEnemyOverview::setEnemy(Enemy enemy) {
this->creature = enemy;
this->statsComponent.setActor(enemy);
this->creatureFrame.setImage("monster_landscape_cut/" + enemy.picPath);
void UIEnemyOverview::initEnemy(Enemy enemy) {
this->enemy = enemy;
this->enemyStats.setActor(enemy);
this->enemyBorderedImage.setImage("monster_landscape_cut/" + enemy.picPath);
this->colorPicker.setColorImage(enemy.colorPicPath);
}

void UIEnemyOverview::draw() {
Game& game = Game::getInstance();
this->backgroundBox.draw();
this->statsComponent.draw();
this->box.draw();
this->enemyStats.draw();
this->colorPicker.draw();
game.gameWindow.draw(this->pickedColorText);
game.gameWindow.draw(this->creatureBackgroundSP);
this->creatureFrame.draw();
game.gameWindow.draw(this->enemyIconBackgroundSP);
this->enemyBorderedImage.draw();
}

void UIEnemyOverview::changeHealth(int value) {
int newHealth = std::max(this->creature.health - value, 0);
this->creature.health = newHealth;
this->statsComponent.updateHealth(newHealth);
int newHealth = std::max(this->enemy.health - value, 0);
this->enemy.health = newHealth;
this->enemyStats.updateHealth(newHealth);
}

void UIEnemyOverview::updatePickedColorText(std::string newText, sf::Color pickedColor) {
Expand Down
2 changes: 0 additions & 2 deletions src/main/UIObjects/UIPlayerOverview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ UIPlayerOverview::UIPlayerOverview(): statsComponent(Game::getInstance().player)
sf::FloatRect boxRect = this->backgroundBox.getSize();
this->backgroundBox.setPosition((windowSize.x * 0.49) - boxRect.width, windowSize.y * 0.1);

float relativeOuterPaddingStatBoxes = 0.05;
sf::FloatRect statsBoxSize = this->statsComponent.getSize();
this->statsComponent.setPosition(windowSize.x * 0.08, windowSize.y * 0.35);

sf::Vector2f statsPos = this->statsComponent.getPosition();
Expand Down
Binary file modified src/resources/actor_borders/fight_border.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/resources/actor_borders/fight_border_old.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f17728a

Please sign in to comment.