Added background story commercial assets. Scrolling Background. Release Build 7577.

pull/35/head
sigonasr2 11 months ago
parent e317b7b23b
commit 141e1622d6
  1. 8
      Adventures in Lestoria/Key.cpp
  2. 18
      Adventures in Lestoria/TODO.txt
  3. 2
      Adventures in Lestoria/Version.h
  4. 9
      Adventures in Lestoria/VisualNovel.cpp
  5. 3
      Adventures in Lestoria/VisualNovel.h
  6. BIN
      Adventures in Lestoria/assets/backgrounds/cave.png
  7. BIN
      Adventures in Lestoria/assets/backgrounds/cave_dark.png
  8. BIN
      Adventures in Lestoria/assets/backgrounds/rest.png
  9. BIN
      Adventures in Lestoria/assets/backgrounds/sea.png
  10. 5
      Adventures in Lestoria/assets/config/story/Chapter 1.txt
  11. BIN
      x64/Release/Adventures in Lestoria.exe

@ -317,12 +317,12 @@ void InputGroup::DrawInput(const std::variant<AiL*const,TileTransformedView*cons
for(const Input&input:keyOrder){
if(input.GetType()==MOUSE){
if(input.HasExtendedIcons()){
buttonImgSize.x+=input.GetIcon(GameSettings::GetIconType()).Sprite()->width+"Interface.InputHelperSpacing"_F;
buttonImgSize.x+=input.GetIcon(GameSettings::GetIconType()).Sprite()->width*textScale.x+"Interface.InputHelperSpacing"_F;
buttonImgSize.y=std::max(buttonImgSize.y,float(input.GetIcon(GameSettings::GetIconType()).Sprite()->height));
buttonImgs.push_back(input.GetIcon(GameSettings::GetIconType()).Decal());
}else
if(input.HasIcon()){
buttonImgSize.x+=input.GetIcon().Sprite()->width+"Interface.InputHelperSpacing"_F;
buttonImgSize.x+=input.GetIcon().Sprite()->width*textScale.x+"Interface.InputHelperSpacing"_F;
buttonImgSize.y=std::max(buttonImgSize.y,float(input.GetIcon().Sprite()->height));
buttonImgs.push_back(input.GetIcon().Decal());
}else{
@ -336,12 +336,12 @@ void InputGroup::DrawInput(const std::variant<AiL*const,TileTransformedView*cons
if(primaryKey.has_value()){
if(primaryKey.value().HasExtendedIcons()){
buttonImgSize.x+=primaryKey.value().GetIcon(GameSettings::GetIconType()).Sprite()->width+"Interface.InputHelperSpacing"_F;
buttonImgSize.x+=primaryKey.value().GetIcon(GameSettings::GetIconType()).Sprite()->width*textScale.x+"Interface.InputHelperSpacing"_F;
buttonImgSize.y=std::max(buttonImgSize.y,float(primaryKey.value().GetIcon(GameSettings::GetIconType()).Sprite()->height));
buttonImgs.push_back(primaryKey.value().GetIcon(GameSettings::GetIconType()).Decal());
}else
if(primaryKey.value().HasIcon()){
buttonImgSize.x+=primaryKey.value().GetIcon().Sprite()->width+"Interface.InputHelperSpacing"_F;
buttonImgSize.x+=primaryKey.value().GetIcon().Sprite()->width*textScale.x+"Interface.InputHelperSpacing"_F;
buttonImgSize.y=std::max(buttonImgSize.y,float(primaryKey.value().GetIcon().Sprite()->height));
buttonImgs.push_back(primaryKey.value().GetIcon().Decal());
}else{

@ -1,16 +1,18 @@
January 1st
===========
February 28th -> Begin Internal Game Playtesting
March 6th -> Discord/Friend Playtesting
March 30th -> Public Demo Release
- Foreground tile depth correction for tiles w/hitboxes
- Add Death screen (Zoom in on fatal blow, slow time down... Display some game over text... Allow retry or return to world map.)
- Track items used during a stage, on death, restore the loadout item quantities used.
- Mosaic transition on level load
Add Bonus XP when completing a stage
January 31st
============
- Title Screen setpieces
- Hide mouse cursor during controller play. Reveal it again during mouse play.
@ -19,4 +21,10 @@ January 31st
- Condense stage track (loading times)
- Credits/Licensing
- Credits/Licensing
- Implement some obtained commercial art.
- Basic tutorial on the first stage, Only allow the player to select "Change Loadout", explain how to setup items, can only start once a loadout item is set.
- show inputs that can be used by the player to navigate, ability usage, and defensive. When player takes enough damage show how to use recovery items.

@ -39,7 +39,7 @@ All rights reserved.
#define VERSION_MAJOR 0
#define VERSION_MINOR 3
#define VERSION_PATCH 0
#define VERSION_BUILD 7574
#define VERSION_BUILD 7577
#define stringify(a) stringify_(a)
#define stringify_(a) #a

@ -193,6 +193,9 @@ void VisualNovel::Update(){
locationDisplayTime=std::max(0.f,locationDisplayTime-game->GetElapsedTime());
transitionTime=std::max(0.f,transitionTime-game->GetElapsedTime());
textScrollTime=std::max(0.f,textScrollTime-game->GetElapsedTime());
if(backgroundScrollAmt<90.f){
backgroundScrollAmt=std::min(90.f,backgroundScrollAmt+backgroundScrollSpd*game->GetElapsedTime());
}
}
void VisualNovel::ExecuteNextCommand(){
if(commandIndex<commands.size()){
@ -211,9 +214,9 @@ void VisualNovel::Draw(){
alpha=util::lerp(0,1,1-(transitionTime/maxTransitionTime));
}
if(prevBackgroundFilename!=""){
game->DrawDecal({0,0},GFX["story_background_image_location"_S+prevBackgroundFilename].Decal());
game->DrawDecal({0,-prevBackgroundScrollAmt},GFX["story_background_image_location"_S+prevBackgroundFilename].Decal());
}
game->DrawDecal({0,0},GFX["story_background_image_location"_S+backgroundFilename].Decal(),{1,1},{255,255,255,uint8_t(255*alpha)});
game->DrawDecal({0,-backgroundScrollAmt},GFX["story_background_image_location"_S+backgroundFilename].Decal(),{1,1},{255,255,255,uint8_t(255*alpha)});
}else{
game->FillRectDecal({0,0},game->GetScreenSize());
}
@ -289,6 +292,8 @@ void BackgroundCommand::Execute(VisualNovel&vn){
vn.prevBackgroundFilename=vn.backgroundFilename;
vn.backgroundFilename=backgroundFilename;
vn.transitionTime=2.0f;
vn.prevBackgroundScrollAmt=vn.backgroundScrollAmt;
vn.backgroundScrollAmt=0.f;
vn.ExecuteNextCommand();
}
BackgroundCommand::BackgroundCommand(std::string backgroundFilename)

@ -143,12 +143,15 @@ class VisualNovel{
std::string prevBackgroundFilename;
float transitionTime=0;
static constexpr float maxTransitionTime=2.0f;
const float backgroundScrollSpd=2.0f;
std::vector<Command*>commands;
int commandIndex=0;
std::string locationDisplayText="";
float locationDisplayTime=0;
std::string prevTheme="";
float textScrollTime=0;
float backgroundScrollAmt=0;
float prevBackgroundScrollAmt=0;
static constexpr float maxTextScrollTime=1.0f;
public:
static Font font,narratorFont,locationFont;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

@ -14,6 +14,7 @@ Merchant crossing is a Crossway that connects Bleakport, the Lestorian Forest, E
The crossing is famous for merchants to rest on their travels and trade goods with each other.
{BACKGROUND commercial_assets/Burning Trading Post.png}
While you are getting closer you realise something isnt right. The Smoke in the sky is way thicker then what you would expect from just a few campfires...
You reach the crossing where a #FF0000horrible scenery#FFFFFF awaits you.
@ -110,7 +111,7 @@ Oh what shall I do? I can't return to the Kingdom without it!
[You]
First you need more rest. Once you are able to walk on your own again, we can think about a solution for your lost object.
{BACKGROUND rest.png}
{BACKGROUND commercial_assets/Forest Clearing Campsite.png}
[]
You set up a tent and a campfire a little outside of the main camp where the tragedy happened and helped Sherman over.
@ -121,9 +122,9 @@ Without the corpses surrounding you, you relax a little bit.
You keep an eye on Sherman as he recovers.
{BACKGROUND sea.png}
The next day you wake to find Sherman no longer lying down but is instead sitting on the grass.
{BACKGROUND commercial_assets/Forest Clearing Campsite_Day.png}
[Sherman]
Good Morning! You told me you are an Adventurer right?

Loading…
Cancel
Save