From 38f23b33744feb7be35843a332cb273526663e24 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 28 Aug 2023 17:50:35 -0500 Subject: [PATCH] Re-did healthbar displays. --- olcCodeJam2023Entry/Constant.cpp | 2 +- olcCodeJam2023Entry/Image.h | 8 +++++++- olcCodeJam2023Entry/Unit.cpp | 23 +++++++++++++++++++++- olcCodeJam2023Entry/VirusAttack.cpp | 19 ++++++++++++++---- olcCodeJam2023Entry/assets/atk.png | Bin 0 -> 677 bytes olcCodeJam2023Entry/assets/down_arrow.png | Bin 0 -> 641 bytes olcCodeJam2023Entry/assets/prc.png | Bin 0 -> 5339 bytes olcCodeJam2023Entry/assets/red_x.png | Bin 0 -> 612 bytes olcCodeJam2023Entry/assets/rld.png | Bin 0 -> 5074 bytes olcCodeJam2023Entry/assets/rng.png | Bin 0 -> 5264 bytes olcCodeJam2023Entry/assets/spd.png | Bin 0 -> 692 bytes 11 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 olcCodeJam2023Entry/assets/atk.png create mode 100644 olcCodeJam2023Entry/assets/down_arrow.png create mode 100644 olcCodeJam2023Entry/assets/prc.png create mode 100644 olcCodeJam2023Entry/assets/red_x.png create mode 100644 olcCodeJam2023Entry/assets/rld.png create mode 100644 olcCodeJam2023Entry/assets/rng.png create mode 100644 olcCodeJam2023Entry/assets/spd.png diff --git a/olcCodeJam2023Entry/Constant.cpp b/olcCodeJam2023Entry/Constant.cpp index 32dbbc5..a2d578f 100644 --- a/olcCodeJam2023Entry/Constant.cpp +++ b/olcCodeJam2023Entry/Constant.cpp @@ -1,6 +1,6 @@ #include "Constant.h" -vf2d CONSTANT::BAR_SQUARE_SIZE={4,4}; +vf2d CONSTANT::BAR_SQUARE_SIZE={1,4}; Pixel CONSTANT::HEALTH_COLOR={235, 210, 52}; Pixel CONSTANT::RANGE_COLOR={52, 235, 89}; Pixel CONSTANT::ATKSPD_COLOR={140, 21, 13}; diff --git a/olcCodeJam2023Entry/Image.h b/olcCodeJam2023Entry/Image.h index 5fbecc7..0a8a71c 100644 --- a/olcCodeJam2023Entry/Image.h +++ b/olcCodeJam2023Entry/Image.h @@ -17,6 +17,12 @@ enum Image{ CORRUPTER, UNIT_ALLOCATOR, RAM_BANK, - RANGE_INDICATOR + RANGE_INDICATOR, + DOWN_ARROW, + RED_X, + RLD, + PRC, + RNG, + SPD, }; diff --git a/olcCodeJam2023Entry/Unit.cpp b/olcCodeJam2023Entry/Unit.cpp index 9e2a53e..656fc7b 100644 --- a/olcCodeJam2023Entry/Unit.cpp +++ b/olcCodeJam2023Entry/Unit.cpp @@ -135,7 +135,7 @@ MemoryAllocator::MemoryAllocator(vf2d pos,std::map>&otherUnits){ @@ -282,6 +282,27 @@ void Unit::DrawHud(TileTransformedView&game,std::map0){ + game.FillRectDecal(vf2d{float(initialBarX)+health.index*CONSTANT::BAR_SQUARE_SIZE.x, + float(initialBarY)}-vf2d{0,1},CONSTANT::BAR_SQUARE_SIZE+vf2d{CONSTANT::BAR_SQUARE_SIZE.x*health.size-1,2},CONSTANT::HEALTH_COLOR); + } + if(GetAtkSpd()>0){ + game.FillRectDecal(vf2d{float(initialBarX)+atkSpd.index*CONSTANT::BAR_SQUARE_SIZE.x, + float(initialBarY)}-vf2d{0,1},CONSTANT::BAR_SQUARE_SIZE+vf2d{CONSTANT::BAR_SQUARE_SIZE.x*atkSpd.size-1,2},CONSTANT::ATKSPD_COLOR); + } + if(GetMoveSpd()>0){ + game.FillRectDecal(vf2d{float(initialBarX)+moveSpd.index*CONSTANT::BAR_SQUARE_SIZE.x, + float(initialBarY)}-vf2d{0,1},CONSTANT::BAR_SQUARE_SIZE+vf2d{CONSTANT::BAR_SQUARE_SIZE.x*moveSpd.size-1,2},CONSTANT::MOVESPD_COLOR); + } + if(GetProcedure()>0){ + game.FillRectDecal(vf2d{float(initialBarX)+procedure.index*CONSTANT::BAR_SQUARE_SIZE.x, + float(initialBarY)}-vf2d{0,1},CONSTANT::BAR_SQUARE_SIZE+vf2d{CONSTANT::BAR_SQUARE_SIZE.x*procedure.size-1,2},CONSTANT::PROCEDURE_COLOR); + } + if(GetRange()>0){ + game.FillRectDecal(vf2d{float(initialBarX)+range.index*CONSTANT::BAR_SQUARE_SIZE.x, + float(initialBarY)}-vf2d{0,1},CONSTANT::BAR_SQUARE_SIZE+vf2d{CONSTANT::BAR_SQUARE_SIZE.x*range.size-1,2},CONSTANT::RANGE_COLOR); + } + for(int i=0;i selectionRegion(startingDragPos,endDragPos-startingDragPos); + if(selectionRegion.size.x<12){ + selectionRegion.pos.x-=12-selectionRegion.size.x/2; + selectionRegion.size.x+=12-selectionRegion.size.x/2; + } + if(selectionRegion.size.y<12){ + selectionRegion.pos.y-=12-selectionRegion.size.y/2; + selectionRegion.size.y+=12-selectionRegion.size.y/2; + } for(auto&u:units){ if(u->IsFriendly()){ - if(geom2d::overlaps(selectionRegion,u->GetPos())){ + if(geom2d::overlaps(selectionRegion,geom2d::circle(u->GetPos(),u->GetUnitSize().x/2))){ u->Select(); } } @@ -328,9 +342,6 @@ bool VirusAttack::OnUserUpdate(float fElapsedTime){ HandleMinimapClick(); AL.vecPos=game.GetWorldOffset()+GetScreenSize()/2; AL.OnUserUpdate(fElapsedTime); - if (GetKey(olc::Key::P).bPressed){ - AS_Test.Play({0,0},1,1); - } for(auto&tile:TileManager::visibleTiles){ tile.second-=fElapsedTime; diff --git a/olcCodeJam2023Entry/assets/atk.png b/olcCodeJam2023Entry/assets/atk.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c294feb3a50130eddace7b01e8570a526fd1a8 GIT binary patch literal 677 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 literal 0 HcmV?d00001 diff --git a/olcCodeJam2023Entry/assets/red_x.png b/olcCodeJam2023Entry/assets/red_x.png new file mode 100644 index 0000000000000000000000000000000000000000..3b760305dbedabfc5e1d438d329fd57a33cb2d3a GIT binary patch literal 612 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