generated from sigonasr2/CPlusPlusProjectTemplate
Add sounds and start implementing the triggers for them
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
4e5a0eef43
commit
559d2b1752
@ -12,15 +12,15 @@ using namespace olc;
|
||||
//#define TEST_MAP1 //Toggle to just play around on map 1.
|
||||
//#define TEST_MAP2 //Toggle on to just play around on map 2.
|
||||
|
||||
#define SKIP_INTRO true
|
||||
#define SKIP_CHAPTER1 true
|
||||
#define SKIP_BOSS true
|
||||
#define SKIP_SILICON2 true
|
||||
#define SKIP_CHAPTER2 true
|
||||
#define SKIP_STORYBOOK true
|
||||
#define SKIP_CHAPTER3 true
|
||||
#define SKIP_LAUNCHPAD true
|
||||
#define SKIP_A_A true
|
||||
#define SKIP_INTRO false
|
||||
#define SKIP_CHAPTER1 false
|
||||
#define SKIP_BOSS false
|
||||
#define SKIP_SILICON2 false
|
||||
#define SKIP_CHAPTER2 false
|
||||
#define SKIP_STORYBOOK false
|
||||
#define SKIP_CHAPTER3 false
|
||||
#define SKIP_LAUNCHPAD false
|
||||
#define SKIP_A_A false
|
||||
|
||||
#define STARTING_MAP MAP_1
|
||||
#define STARTING_STATE CUTSCENE_3
|
||||
@ -387,6 +387,7 @@ class Entity{
|
||||
bool ally=false;
|
||||
int hp;
|
||||
int startingHP;
|
||||
Decal*startingspr;
|
||||
int maxhp;
|
||||
Decal*spr;
|
||||
float x;
|
||||
@ -405,7 +406,7 @@ class Entity{
|
||||
bool hidden=false; //If hidden, this enemy will take 0 damage.
|
||||
int shield=0; //If shield is greater than 0, the shield must be depleted first before health can be dealt.
|
||||
Entity(Decal*spr,std::string name,float x,float y,int hp,int maxhp,std::vector<WEATHER_POWER*>moveset,vf2d sprScale={1,1},bool fixedMoveset=false) {
|
||||
this->spr=spr;
|
||||
this->spr=this->startingspr=spr;
|
||||
this->name=name;
|
||||
this->x=x;
|
||||
this->y=y;
|
||||
@ -672,6 +673,7 @@ public:
|
||||
Pixel SHIP_COLOR=WHITE;
|
||||
vf2d BOSS_SIZE={1,1};
|
||||
vf2d CREDITS_SCROLLING_OFFSET={0,12};
|
||||
bool HIDE_CARDS=false;
|
||||
|
||||
Map*MAP_1=new Map("map1");
|
||||
Map*MAP_2=new Map("map2");
|
||||
@ -722,11 +724,13 @@ public:
|
||||
PlayerState*PREV_PLAYERSTATE=new PlayerState();
|
||||
int WALK_STEPS=0;
|
||||
int PETRIFY_TURNS=0;
|
||||
int LAST_FRAME_SOUND_PLAYED=0;
|
||||
|
||||
Map*CURRENT_MAP=MAP_1;
|
||||
|
||||
|
||||
sound::Wave SONG_MAIN;
|
||||
sound::Wave SONG_MAIN,SONG_BATTLE,SONG_FINALBATTLE,SONG_EXPLORE,SONG_DOME;
|
||||
sound::Wave SOUND_MSG,SOUND_CHANGE_OPTION,SOUND_ROBOTICNOISE,SOUND_SELECT,SOUND_SAW,SOUND_SONAR,SOUND_WARNING,SOUND_EXPLODE,SOUND_LASERSHOOT,SOUND_WEATHERHEAVY,SOUND_WEATHERLIGHT;
|
||||
|
||||
std::queue<int> turnOrder;
|
||||
|
||||
@ -734,6 +738,8 @@ public:
|
||||
effect::Pixel*pixels[MAX_PIXELS];
|
||||
effect::Pixel*starpixels[150];
|
||||
|
||||
sound::PlayingWave CURRENT_BGM;
|
||||
|
||||
bool OnUserCreate() override
|
||||
{
|
||||
SetPixelMode(Pixel::ALPHA);
|
||||
@ -798,6 +804,21 @@ public:
|
||||
}
|
||||
|
||||
SONG_MAIN = sound::Wave("./assets/SeasonsOfLoneliness.wav");
|
||||
SONG_BATTLE = sound::Wave("./assets/battle.wav");
|
||||
SONG_FINALBATTLE = sound::Wave("./assets/finalBattle.wav");
|
||||
SONG_EXPLORE = sound::Wave("./assets/explore.wav");
|
||||
SONG_DOME = sound::Wave("./assets/dome.wav");
|
||||
SOUND_MSG = sound::Wave("./assets/msg.wav");
|
||||
SOUND_CHANGE_OPTION = sound::Wave("./assets/card_flip.wav");
|
||||
SOUND_ROBOTICNOISE = sound::Wave("./assets/roboticNoise.wav");
|
||||
SOUND_SELECT = sound::Wave("./assets/select.wav");
|
||||
SOUND_SAW = sound::Wave("./assets/saw.wav");
|
||||
SOUND_SONAR = sound::Wave("./assets/sonar.wav");
|
||||
SOUND_WARNING = sound::Wave("./assets/warning.wav");
|
||||
SOUND_EXPLODE = sound::Wave("./assets/explode.wav");
|
||||
SOUND_LASERSHOOT = sound::Wave("./assets/laserShoot.wav");
|
||||
SOUND_WEATHERHEAVY = sound::Wave("./assets/weatherHeavy.wav");
|
||||
SOUND_WEATHERLIGHT = sound::Wave("./assets/weatherLight.wav");
|
||||
|
||||
//ConsoleShow(F1,false);
|
||||
// Called once at the start, so create things here
|
||||
@ -1201,6 +1222,9 @@ public:
|
||||
ZONES.push_back(SILICON_DEPOSIT_ZONE);
|
||||
|
||||
|
||||
ResetTerminal(STORY_TEXT2);
|
||||
|
||||
|
||||
for (int i=0;i<MAX_PIXELS;i++) {
|
||||
pixels[i]=new effect::Pixel();
|
||||
}
|
||||
@ -1274,6 +1298,7 @@ public:
|
||||
if (getPlantStatus((int)PLAYER_COORDS[0],(int)PLAYER_COORDS[1])==2) {
|
||||
setPlantStatus((int)PLAYER_COORDS[0],(int)PLAYER_COORDS[1],0);
|
||||
foodCount++;
|
||||
PlaySound(&SOUND_SELECT,false,0.6);
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@ -1283,6 +1308,7 @@ public:
|
||||
switch (MAIN_MENU_SELECTION) {
|
||||
case 0:
|
||||
case 1:{
|
||||
PlaySound(&SOUND_SELECT);
|
||||
fadeOut();
|
||||
audioFadeOut();
|
||||
}break;
|
||||
@ -1335,13 +1361,16 @@ public:
|
||||
if (TERMINAL_INPUT.length()==MAX_TERMINAL_NAME_LENGTH) {
|
||||
TERMINAL_SELECTED_CHAR=27;
|
||||
}
|
||||
PlaySound(&SOUND_CHANGE_OPTION);
|
||||
} else
|
||||
if (TERMINAL_SELECTED_CHAR==26&&TERMINAL_INPUT.length()>0) {
|
||||
TERMINAL_INPUT.erase(TERMINAL_INPUT.length()-1);
|
||||
PlaySound(&SOUND_SELECT,false,0.3);
|
||||
} else
|
||||
if (TERMINAL_SELECTED_CHAR==27&&TERMINAL_INPUT.length()>0) {
|
||||
PLAYER_NAME=TERMINAL_INPUT;
|
||||
PlayCutscene(cutscene::GO_OUTSIDE);
|
||||
PlaySound(&SOUND_SELECT);
|
||||
}
|
||||
}break;
|
||||
case cutscene::READY_TO_BOARD:{
|
||||
@ -1445,9 +1474,11 @@ public:
|
||||
if (MAIN_MENU_SELECTION<0) {
|
||||
MAIN_MENU_SELECTION=3;
|
||||
}
|
||||
PlaySound(&SOUND_CHANGE_OPTION);
|
||||
}
|
||||
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed||GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed) {
|
||||
MAIN_MENU_SELECTION=(MAIN_MENU_SELECTION+1)%4;
|
||||
PlaySound(&SOUND_CHANGE_OPTION);
|
||||
}
|
||||
}
|
||||
switch (CURRENT_CUTSCENE) {
|
||||
@ -1457,6 +1488,7 @@ public:
|
||||
if (TERMINAL_SELECTED_CHAR<0) {
|
||||
TERMINAL_SELECTED_CHAR+=28;
|
||||
}
|
||||
PlaySound(&SOUND_MSG);
|
||||
}
|
||||
if (GetKey(D).bPressed||GetKey(RIGHT).bPressed||GetKey(NP6).bPressed) {
|
||||
if ((TERMINAL_SELECTED_CHAR+1)%7==0) {
|
||||
@ -1464,6 +1496,7 @@ public:
|
||||
} else {
|
||||
TERMINAL_SELECTED_CHAR++;
|
||||
}
|
||||
PlaySound(&SOUND_MSG);
|
||||
}
|
||||
if (GetKey(A).bPressed||GetKey(LEFT).bPressed||GetKey(NP4).bPressed) {
|
||||
if ((TERMINAL_SELECTED_CHAR-1)%7==6||TERMINAL_SELECTED_CHAR-1<0) {
|
||||
@ -1471,6 +1504,7 @@ public:
|
||||
} else {
|
||||
TERMINAL_SELECTED_CHAR--;
|
||||
}
|
||||
PlaySound(&SOUND_MSG);
|
||||
}
|
||||
if (GetKey(S).bPressed||GetKey(DOWN).bPressed||GetKey(NP5).bPressed||GetKey(NP2).bPressed) {
|
||||
if (TERMINAL_SELECTED_CHAR+7>=28) {
|
||||
@ -1478,6 +1512,7 @@ public:
|
||||
} else {
|
||||
TERMINAL_SELECTED_CHAR+=7;
|
||||
}
|
||||
PlaySound(&SOUND_MSG);
|
||||
}
|
||||
}break;
|
||||
case cutscene::READY_TO_BOARD:{
|
||||
@ -1512,6 +1547,7 @@ public:
|
||||
case CUTSCENE_3:{
|
||||
GAME_STATE=CUTSCENE_1;
|
||||
fadeIn();
|
||||
stopMusic();
|
||||
ResetTerminal(STORY_TEXT1);
|
||||
}break;
|
||||
case CUTSCENE_4:{
|
||||
@ -1605,6 +1641,7 @@ public:
|
||||
GAME_FLAGS[gameflag::VISIT_BROKEN_ROVER]=true;
|
||||
PlayCutscene(cutscene::WALK_TO_ROVER);
|
||||
}
|
||||
playMusic(&SONG_EXPLORE);
|
||||
}break;
|
||||
case cutscene::TRANSITION_CUTSCENE_2:{
|
||||
if (GAME_FLAGS[gameflag::ROCKET_LAUNCH_READY]&&!GAME_FLAGS[gameflag::COLLECTED_ITEMS_IN_DOME]) {
|
||||
@ -1650,6 +1687,7 @@ public:
|
||||
GAME_FLAGS[gameflag::CHECK_ROVER]=true;
|
||||
DisplayMessageBox(26);
|
||||
}
|
||||
playMusic(&SONG_DOME);
|
||||
}break;
|
||||
case cutscene::DISPLAY_VOLCANIC_AREA:{
|
||||
TeleportToMapFileCoords(13,122);
|
||||
@ -1703,6 +1741,7 @@ public:
|
||||
}break;
|
||||
case cutscene::READY_TO_BOARD:{
|
||||
GAME_STATE=IN_SPACE;
|
||||
TIMER=0;
|
||||
fadeIn();
|
||||
EndCutscene();
|
||||
}break;
|
||||
@ -1774,6 +1813,7 @@ public:
|
||||
}break;
|
||||
case cutscene::CUTSCENE_4:{
|
||||
LoadMap(MAP_2);
|
||||
playMusic(&SONG_DOME);
|
||||
PLAYER_COORDS[0]=16;
|
||||
PLAYER_COORDS[1]=6;
|
||||
updatePlayerState();
|
||||
@ -1818,7 +1858,7 @@ public:
|
||||
audioLevel-=0.01;
|
||||
engine.SetOutputVolume(audioLevel);
|
||||
} else
|
||||
if (!audioFade&&audioLevel<0.6) {
|
||||
if (!audioFade&&audioLevel<0.6&&!SOUND_IS_MUTED) {
|
||||
audioLevel+=0.01;
|
||||
engine.SetOutputVolume(audioLevel);
|
||||
}
|
||||
@ -1873,7 +1913,7 @@ public:
|
||||
bool animationchanged=false;
|
||||
bool positionModified=false;
|
||||
if (GetKey(D).bHeld||GetKey(RIGHT).bHeld||GetKey(NP6).bHeld) {
|
||||
if (MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) {
|
||||
if (GAME_STATE!=IN_SPACE&&MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) {
|
||||
PLAYER_COORDS[0]=std::clamp(PLAYER_COORDS[0]+MOVE_SPD,0.1,(double)MAP_WIDTH);
|
||||
positionModified=true;
|
||||
}
|
||||
@ -1885,7 +1925,7 @@ public:
|
||||
}
|
||||
}
|
||||
if (GetKey(A).bHeld||GetKey(LEFT).bHeld||GetKey(NP4).bHeld) {
|
||||
if (MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) {
|
||||
if (GAME_STATE!=IN_SPACE&&MAP[(int)PLAYER_COORDS[1]][(int)std::clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH)]!=4) {
|
||||
PLAYER_COORDS[0]=std::clamp(PLAYER_COORDS[0]-MOVE_SPD,0.1,(double)MAP_WIDTH);
|
||||
positionModified=true;
|
||||
}
|
||||
@ -1897,7 +1937,7 @@ public:
|
||||
}
|
||||
}
|
||||
if (GetKey(W).bHeld||GetKey(UP).bHeld||GetKey(NP8).bHeld) {
|
||||
if (MAP[(int)std::clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) {
|
||||
if (GAME_STATE!=IN_SPACE&&MAP[(int)std::clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) {
|
||||
PLAYER_COORDS[1]=std::clamp(PLAYER_COORDS[1]-MOVE_SPD,0.1,(double)MAP_HEIGHT);
|
||||
positionModified=true;
|
||||
}
|
||||
@ -1907,9 +1947,14 @@ public:
|
||||
changeAnimation(playerAnimWalkUp);
|
||||
animationchanged=true;
|
||||
}
|
||||
if (!messageBoxVisible&&BATTLE_STATE==battle::PLAYER_SELECTION) {
|
||||
HIDE_CARDS=true;
|
||||
}
|
||||
} else {
|
||||
HIDE_CARDS=false;
|
||||
}
|
||||
if (GetKey(S).bHeld||GetKey(DOWN).bHeld||GetKey(NP5).bHeld||GetKey(NP2).bHeld) {
|
||||
if (MAP[(int)std::clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) {
|
||||
if (GAME_STATE!=IN_SPACE&&MAP[(int)std::clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT)][(int)PLAYER_COORDS[0]]!=4) {
|
||||
PLAYER_COORDS[1]=std::clamp(PLAYER_COORDS[1]+MOVE_SPD,0.1,(double)MAP_HEIGHT);
|
||||
positionModified=true;
|
||||
}
|
||||
@ -2302,21 +2347,6 @@ public:
|
||||
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden=true;
|
||||
}
|
||||
}
|
||||
if (ref->appliesPetrification) {
|
||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||
//Not implemented for the player.
|
||||
} else {
|
||||
PETRIFY_TURNS=3;
|
||||
}
|
||||
}
|
||||
if (ref->appliesRadioactive) {
|
||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||
//Not implemented for the player.
|
||||
} else {
|
||||
SEEDS.clear();
|
||||
TREES.clear();
|
||||
}
|
||||
}
|
||||
if (EFFECT_TIMER>ref->effectTime) {
|
||||
EFFECT_TIMER=0;
|
||||
clearPixelEffect();
|
||||
@ -2332,6 +2362,14 @@ public:
|
||||
BATTLE_REASON_CODE=reasoncode::DROUGHT;
|
||||
BATTLE_STATE=battle::WAIT_TURN_ANIMATION2;
|
||||
BATTLE_DROUGHT_ACTIVE=true;
|
||||
} else
|
||||
if (ref->appliesRadioactive&&(SEEDS.size()>0||TREES.size()>0)) {
|
||||
BATTLE_REASON_CODE=reasoncode::RADIOACTIVE;
|
||||
BATTLE_STATE=battle::WAIT_TURN_ANIMATION2;
|
||||
} else
|
||||
if (ref->appliesPetrification) {
|
||||
BATTLE_REASON_CODE=reasoncode::PETRIFIED;
|
||||
BATTLE_STATE=battle::WAIT_TURN_ANIMATION2;
|
||||
} else {
|
||||
BATTLE_REASON_CODE=-1;
|
||||
BATTLE_STATE=battle::DAMAGE_RESOLUTION;
|
||||
@ -2375,6 +2413,21 @@ public:
|
||||
}
|
||||
clearTrees();
|
||||
}break;
|
||||
case reasoncode::RADIOACTIVE:{
|
||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||
//Not implemented for the player.
|
||||
} else {
|
||||
SEEDS.clear();
|
||||
TREES.clear();
|
||||
}
|
||||
}break;
|
||||
case reasoncode::PETRIFIED:{
|
||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||
//Not implemented for the player.
|
||||
} else {
|
||||
PETRIFY_TURNS=3;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
}
|
||||
if (EFFECT_TIMER==WAIT_THRESHOLD*2) {
|
||||
@ -2390,6 +2443,11 @@ public:
|
||||
if (BATTLE_CURRENT_TURN_ENTITY==-1) {
|
||||
BATTLE_DROUGHT_ACTIVE=false;
|
||||
std::cout<<"Drought turned off.\n";
|
||||
for (int i=0;i<WEATHER_POWER_COUNT;i++) {
|
||||
if (WEATHER_POWERS[i]->name.compare("Snack")==0||WEATHER_POWERS[i]->name.compare("Meal")==0) {
|
||||
WEATHER_POWERS[i]->playerOwnCount=foodCount;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastSlowVal==CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->speed&&
|
||||
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->speed!=0&&rand()%3==0) {
|
||||
@ -2507,11 +2565,6 @@ public:
|
||||
BATTLE_STATE=battle::WAIT_TURN_ANIMATION;
|
||||
PIXEL_EFFECT_TRANSPARENCY=0;
|
||||
EFFECT_TIMER=0;
|
||||
for (int i=0;i<WEATHER_POWER_COUNT;i++) {
|
||||
if (WEATHER_POWERS[i]->name.compare("Snack")==0||WEATHER_POWERS[i]->name.compare("Meal")==0) {
|
||||
WEATHER_POWERS[i]->playerOwnCount=foodCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}break;
|
||||
@ -2546,6 +2599,7 @@ public:
|
||||
}
|
||||
if (MoveCameraTowardsPoint(GetMapFileCoords(7,11))) {
|
||||
PlayCutscene(cutscene::RAINING_IN_DOME);
|
||||
PlaySound(&SOUND_WEATHERLIGHT);
|
||||
}
|
||||
}break;
|
||||
case cutscene::RAINING_IN_DOME:{
|
||||
@ -2875,7 +2929,7 @@ public:
|
||||
DisplayMessageBox(45);
|
||||
} else {
|
||||
PLAYER_COORDS[0]=CUTSCENE_OBJS[0]->x;
|
||||
PLAYER_COORDS[1]=CUTSCENE_OBJS[1]->y;
|
||||
PLAYER_COORDS[1]=CUTSCENE_OBJS[0]->y;
|
||||
current_playerAnim=playerAnimLeft;
|
||||
EndCutscene();
|
||||
}
|
||||
@ -3077,8 +3131,7 @@ public:
|
||||
}
|
||||
|
||||
if (GAME_STATE==CUTSCENE_3&&!SOUND_IS_PLAYING) {
|
||||
engine.SetOutputVolume(0.6);
|
||||
engine.PlayWaveform(&SONG_MAIN,true);
|
||||
playMusic(&SONG_MAIN);
|
||||
SOUND_IS_PLAYING=true;
|
||||
}
|
||||
|
||||
@ -3089,6 +3142,22 @@ public:
|
||||
case CUTSCENE_5:
|
||||
case CUTSCENE_6:
|
||||
case GAME_OVER_TERMINAL:{
|
||||
int soundFrequency=-1;
|
||||
if (GAME_STATE==CUTSCENE_1) {
|
||||
soundFrequency=160;
|
||||
} else
|
||||
if (GAME_STATE==CUTSCENE_4) {
|
||||
soundFrequency=120;
|
||||
} else
|
||||
if (GAME_STATE==CUTSCENE_5) {
|
||||
soundFrequency=80;
|
||||
} else
|
||||
if (GAME_STATE==CUTSCENE_6) {
|
||||
soundFrequency=70;
|
||||
}
|
||||
if (soundFrequency!=-1&&frameCount%soundFrequency==0) {
|
||||
PlaySound(&SOUND_SONAR);
|
||||
}
|
||||
if (GAME_STATE==CUTSCENE_3&&frameCount%4!=0) {break;}
|
||||
if (textInd<CONSOLE_REF_TEXT.length()) {
|
||||
char c = CONSOLE_REF_TEXT[textInd++];
|
||||
@ -3239,6 +3308,9 @@ public:
|
||||
}
|
||||
|
||||
void advanceMessageBox() {
|
||||
if (frameCount%4==0) {
|
||||
PlaySound(&SOUND_MSG);
|
||||
}
|
||||
char c = messageBoxRefText[messageBoxCursor++];
|
||||
printf("%c",c);
|
||||
if (c=='\n') {
|
||||
@ -3400,7 +3472,6 @@ public:
|
||||
DrawDecal({(float)(WIDTH/2-BOOK2_DECAL->sprite->width*2/2),(float)(HEIGHT/2-BOOK2_DECAL->sprite->height*2/2)},BOOK2_DECAL,{2,2});
|
||||
}break;
|
||||
case IN_SPACE:{
|
||||
SetDrawTarget(2);
|
||||
Clear(BLACK);
|
||||
DrawStars();
|
||||
if (!IN_BATTLE_ENCOUNTER) {
|
||||
@ -3437,10 +3508,12 @@ public:
|
||||
}
|
||||
switch (BATTLE_STATE) {
|
||||
case battle::PLAYER_SELECTION:{
|
||||
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);
|
||||
if (!HIDE_CARDS) {
|
||||
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;
|
||||
case battle::PLAYER_TARGET_SELECTION:{
|
||||
if (PLAYER_SELECTED_TARGET>=0) {
|
||||
@ -3714,6 +3787,27 @@ public:
|
||||
void audioFadeIn() {
|
||||
audioFade=false;
|
||||
}
|
||||
sound::PlayingWave playMusic(sound::Wave*sound,bool loop=true,float spd=1) {
|
||||
audioFadeIn();
|
||||
if (SOUND_IS_PLAYING) {
|
||||
stopMusic();
|
||||
}
|
||||
SOUND_IS_PLAYING=true;
|
||||
CURRENT_BGM=engine.PlayWaveform(sound,loop,spd);
|
||||
return CURRENT_BGM;
|
||||
}
|
||||
void PlaySound(sound::Wave* sound,bool loop=false,float spd=1) {
|
||||
audioFadeIn();
|
||||
if (LAST_FRAME_SOUND_PLAYED!=frameCount) {
|
||||
engine.PlayWaveform(sound,loop,spd);
|
||||
LAST_FRAME_SOUND_PLAYED=frameCount;
|
||||
}
|
||||
}
|
||||
|
||||
void stopMusic() {
|
||||
engine.StopWaveform(CURRENT_BGM);
|
||||
SOUND_IS_PLAYING=false;
|
||||
}
|
||||
|
||||
void StopCutscene() {
|
||||
EndCutscene();
|
||||
@ -4401,6 +4495,11 @@ public:
|
||||
ResetTerminal(STORY_TEXT4+PLAYER_NAME+STORY_TEXT5);
|
||||
for (int i=0;i<CURRENT_ENCOUNTER.entities.size();i++) {
|
||||
CURRENT_ENCOUNTER.entities[i]->hp=CURRENT_ENCOUNTER.entities[i]->startingHP;
|
||||
CURRENT_ENCOUNTER.entities[i]->spr=CURRENT_ENCOUNTER.entities[i]->startingspr;
|
||||
CURRENT_ENCOUNTER.entities[i]->fixedTurnOrderInd=0;
|
||||
CURRENT_ENCOUNTER.entities[i]->hidden=false;
|
||||
CURRENT_ENCOUNTER.entities[i]->turnComplete=false;
|
||||
CURRENT_ENCOUNTER.entities[i]->speed=0;
|
||||
}
|
||||
resetBattleState();
|
||||
fadeOut();
|
||||
|
Binary file not shown.
Binary file not shown.
BIN
assets/IntroFinal.wav
Normal file
BIN
assets/IntroFinal.wav
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/battle.wav
Normal file
BIN
assets/battle.wav
Normal file
Binary file not shown.
BIN
assets/card_flip.wav
Normal file
BIN
assets/card_flip.wav
Normal file
Binary file not shown.
BIN
assets/dome.wav
Normal file
BIN
assets/dome.wav
Normal file
Binary file not shown.
BIN
assets/explode.wav
Normal file
BIN
assets/explode.wav
Normal file
Binary file not shown.
BIN
assets/explore.wav
Normal file
BIN
assets/explore.wav
Normal file
Binary file not shown.
BIN
assets/finalBattle.wav
Normal file
BIN
assets/finalBattle.wav
Normal file
Binary file not shown.
BIN
assets/laserShoot.wav
Normal file
BIN
assets/laserShoot.wav
Normal file
Binary file not shown.
BIN
assets/msg.wav
Normal file
BIN
assets/msg.wav
Normal file
Binary file not shown.
BIN
assets/roboticNoise.wav
Normal file
BIN
assets/roboticNoise.wav
Normal file
Binary file not shown.
BIN
assets/saw.wav
Normal file
BIN
assets/saw.wav
Normal file
Binary file not shown.
BIN
assets/select.wav
Normal file
BIN
assets/select.wav
Normal file
Binary file not shown.
BIN
assets/sonar.wav
Normal file
BIN
assets/sonar.wav
Normal file
Binary file not shown.
BIN
assets/warning.wav
Normal file
BIN
assets/warning.wav
Normal file
Binary file not shown.
BIN
assets/weatherHeavy.wav
Normal file
BIN
assets/weatherHeavy.wav
Normal file
Binary file not shown.
BIN
assets/weatherLight.wav
Normal file
BIN
assets/weatherLight.wav
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user