diff --git a/SeasonsOfLoneliness.cpp b/SeasonsOfLoneliness.cpp index ea566c5..8fb0dcf 100644 --- a/SeasonsOfLoneliness.cpp +++ b/SeasonsOfLoneliness.cpp @@ -439,7 +439,6 @@ public: }break; } } - drawGame(); // called once per frame return true; @@ -498,7 +497,7 @@ public: void updateGame(){ frameCount++; - if (CURRENT_CUTSCENE!=NONE) { + if (CURRENT_CUTSCENE!=cutscene::NONE) { CUTSCENE_TIMER++; } if (fade&&transparency<255) { @@ -803,7 +802,7 @@ public: case GAMEWORLD:{ DrawGameWorld(); int meterYOffset=2; - if (CURRENT_CUTSCENE==NONE) { + if (CURRENT_CUTSCENE==cutscene::NONE) { if (foodMeterVisible) { DrawStringDecal({WIDTH-36*0.4-GetTextSize(std::to_string(foodCount)).x*1-8,meterYOffset+2},std::to_string(foodCount),BLUE,{1,1}); DrawStringDecal({WIDTH-36*0.4-GetTextSize(std::to_string(foodCount)).x*1-7,meterYOffset+2},std::to_string(foodCount),BLACK,{1,1}); @@ -837,29 +836,10 @@ public: } switch (BATTLE_STATE) { case battle::PLAYER_SELECTION:{ - GradientFillRectDecal({WIDTH/6,HEIGHT/6},{WIDTH/3,HEIGHT/6*2},BATTLE_CARD_SELECTION->bgcol,BATTLE_CARD_SELECTION->bgcol,Pixel(72, 160, 212,0),BATTLE_CARD_SELECTION->bgcol); - GradientFillRectDecal({WIDTH/6*3+1,HEIGHT/6},{WIDTH/3,HEIGHT/6*2},BATTLE_CARD_SELECTION->bgcol,Pixel(72, 160, 212,0),BATTLE_CARD_SELECTION->bgcol,BATTLE_CARD_SELECTION->bgcol); - GradientFillRectDecal({WIDTH/6,HEIGHT/6*3},{WIDTH/3,HEIGHT/6*2},BATTLE_CARD_SELECTION->bgcol,BATTLE_CARD_SELECTION->bgcol,BATTLE_CARD_SELECTION->bgcol,Pixel(72, 160, 212,0)); - GradientFillRectDecal({WIDTH/6*3+1,HEIGHT/6*3},{WIDTH/3,HEIGHT/6*2},Pixel(72, 160, 212,0),BATTLE_CARD_SELECTION->bgcol,BATTLE_CARD_SELECTION->bgcol,BATTLE_CARD_SELECTION->bgcol); - DrawPartialDecal({WIDTH/2-BATTLE_CARD_SELECTION->anim->width/2*3,HEIGHT/6+16-BATTLE_CARD_SELECTION->anim->height/2},BATTLE_CARD_SELECTION->anim->spr,BATTLE_CARD_SELECTION->anim->getCurrentFrame(),{BATTLE_CARD_SELECTION->anim->width,BATTLE_CARD_SELECTION->anim->height},{3,3}); - for (int x=-1;x<=1;x++) { - for (int y=-1;y<=1;y++) { - if (x!=0&&y!=0) { - DrawStringPropDecal({WIDTH/6+4+x,HEIGHT/2+8+y},BATTLE_CARD_SELECTION->name,BLACK,{2,2}); - } - } - } - DrawStringPropDecal({WIDTH/6+4,HEIGHT/2+8},BATTLE_CARD_SELECTION->name,BATTLE_CARD_SELECTION->textcol,{2,2}); - DrawWrappedPropText({WIDTH/6+4+1,HEIGHT/2+24+1},BATTLE_CARD_SELECTION->description,WIDTH/3*2-8,BLACK,{1,1}); - DrawWrappedPropText({WIDTH/6+4,HEIGHT/2+24},BATTLE_CARD_SELECTION->description,WIDTH/3*2-8,Pixel(227, 245, 255,255),{1,1}); - for (int x=-1;x<=1;x++) { - for (int y=-1;y<=1;y++) { - if (x!=0&&y!=0) { - DrawStringPropDecal({WIDTH/6+4+WIDTH/3*2-8-GetTextSizeProp(std::to_string(BATTLE_CARD_SELECTION->playerOwnCount)+" uses remaining.").x*1.5+x,HEIGHT/6*3+HEIGHT/6*2-GetTextSizeProp(std::to_string(BATTLE_CARD_SELECTION->playerOwnCount)+" uses remaining.").y*1.5-4+y},std::to_string(BATTLE_CARD_SELECTION->playerOwnCount)+" uses remaining.",olc::BLACK,{1.5,1.5}); - } - } - } - DrawStringPropDecal({WIDTH/6+4+WIDTH/3*2-8-GetTextSizeProp(std::to_string(BATTLE_CARD_SELECTION->playerOwnCount)+" uses remaining.").x*1.5,HEIGHT/6*3+HEIGHT/6*2-GetTextSizeProp(std::to_string(BATTLE_CARD_SELECTION->playerOwnCount)+" uses remaining.").y*1.5-4},std::to_string(BATTLE_CARD_SELECTION->playerOwnCount)+" uses remaining.",olc::WHITE,{1.5,1.5}); + SetDrawTarget(nullptr); + DrawCard(availablePowers[(BATTLE_CARD_SELECTION_IND+1)%availablePowers.size()],{WIDTH-96,32},{0.7,0.7},0.4); + DrawCard(availablePowers[(BATTLE_CARD_SELECTION_IND-1<0)?availablePowers.size()-1:BATTLE_CARD_SELECTION_IND-1],{-96,32},{0.7,0.7},0.4); + DrawCard(BATTLE_CARD_SELECTION); }break; } if (messageBoxVisible) { @@ -1065,7 +1045,7 @@ public: int marker=0; while (markertargetWidth*scale.x) { + if (GetTextSizeProp(wrappedText).x*scale.x>targetWidth) { int tempMarker=marker; while (wrappedText[tempMarker]!=' ') { wrappedText.erase(tempMarker--); @@ -1082,7 +1062,35 @@ public: } bool playerCanMove() { - return CURRENT_CUTSCENE==NONE&&!messageBoxVisible&&!IN_BATTLE_ENCOUNTER; + return CURRENT_CUTSCENE==cutscene::NONE&&!messageBoxVisible&&!IN_BATTLE_ENCOUNTER; + } + + void DrawCard(WEATHER_POWER*data,vf2d offset={0,0},vf2d scale={1,1},float darknessFactor=1.0) { + GradientFillRectDecal({(WIDTH/6)*scale.x+offset.x,(HEIGHT/6)*scale.y+offset.y},{WIDTH/3*scale.x,HEIGHT/6*2*scale.y},data->bgcol*darknessFactor,data->bgcol*darknessFactor,Pixel(72, 160, 212,0),data->bgcol*darknessFactor); + GradientFillRectDecal({(WIDTH/6*3+1)*scale.x+offset.x,(HEIGHT/6)*scale.y+offset.y},{WIDTH/3*scale.x,HEIGHT/6*2*scale.y},data->bgcol*darknessFactor,Pixel(72, 160, 212,0),data->bgcol*darknessFactor,data->bgcol*darknessFactor); + GradientFillRectDecal({(WIDTH/6)*scale.x+offset.x,(HEIGHT/6*3)*scale.y+offset.y},{WIDTH/3*scale.x,HEIGHT/6*2*scale.y},data->bgcol*darknessFactor,data->bgcol*darknessFactor,data->bgcol*darknessFactor,Pixel(72, 160, 212,0)); + GradientFillRectDecal({(WIDTH/6*3+1)*scale.x+offset.x,(HEIGHT/6*3)*scale.y+offset.y},{WIDTH/3*scale.x,HEIGHT/6*2*scale.y},Pixel(72, 160, 212,0),data->bgcol*darknessFactor,data->bgcol*darknessFactor,data->bgcol*darknessFactor); + + DrawPartialDecal({(WIDTH/2-data->anim->width/2*3)*scale.x+offset.x,(HEIGHT/6+16-data->anim->height/2)*scale.y+offset.y},data->anim->spr,data->anim->getCurrentFrame(),{data->anim->width,data->anim->height},{3*scale.x,3*scale.y},WHITE*darknessFactor); + for (int x=-1;x<=1;x++) { + for (int y=-1;y<=1;y++) { + if (x!=0&&y!=0) { + DrawStringPropDecal({(WIDTH/6+4+x)*scale.x+offset.x,(HEIGHT/2+8+y)*scale.y+offset.y},data->name,BLACK,{2*scale.x,2*scale.y}); + } + } + } + DrawStringPropDecal({(WIDTH/6+4)*scale.x+offset.x,(HEIGHT/2+8)*scale.y+offset.y},data->name,data->textcol*darknessFactor,{2*scale.x,2*scale.y}); + DrawWrappedPropText({(WIDTH/6+4+1)*scale.x+offset.x,(HEIGHT/2+24+1)*scale.y+offset.y},data->description,(WIDTH/3*2-8)*scale.x,BLACK,{scale.x,scale.y}); + DrawWrappedPropText({(WIDTH/6+4)*scale.x+offset.x,(HEIGHT/2+24)*scale.y+offset.y},data->description,(WIDTH/3*2-8)*scale.x,Pixel(227, 245, 255,255)*darknessFactor,{scale.x,scale.y}); + for (int x=-1;x<=1;x++) { + for (int y=-1;y<=1;y++) { + if (x!=0&&y!=0) { + DrawStringPropDecal({(WIDTH/6+4+WIDTH/3*2-8-GetTextSizeProp(std::to_string(data->playerOwnCount)+" uses remaining.").x*1.5+x)*scale.x+offset.x,(HEIGHT/6*3+HEIGHT/6*2-GetTextSizeProp(std::to_string(data->playerOwnCount)+" uses remaining.").y*1.5-4+y)*scale.y+offset.y},std::to_string(data->playerOwnCount)+" uses remaining.",olc::BLACK,{1.5*scale.x,1.5*scale.y}); + } + } + } + DrawStringPropDecal({(WIDTH/6+4+WIDTH/3*2-8-GetTextSizeProp(std::to_string(data->playerOwnCount)+" uses remaining.").x*1.5)*scale.x+offset.x,(HEIGHT/6*3+HEIGHT/6*2-GetTextSizeProp(std::to_string(data->playerOwnCount)+" uses remaining.").y*1.5-4)*scale.y+offset.y},std::to_string(data->playerOwnCount)+" uses remaining.",olc::WHITE*darknessFactor,{1.5*scale.x,1.5*scale.y}); + } }; diff --git a/Seasons_of_Loneliness b/Seasons_of_Loneliness index b550c31..9e7d497 100755 Binary files a/Seasons_of_Loneliness and b/Seasons_of_Loneliness differ diff --git a/assets/cardbox.png b/assets/cardbox.png new file mode 100644 index 0000000..7650210 Binary files /dev/null and b/assets/cardbox.png differ