diff --git a/SeasonsOfLoneliness.cpp b/SeasonsOfLoneliness.cpp index 0c08d10..3077443 100644 --- a/SeasonsOfLoneliness.cpp +++ b/SeasonsOfLoneliness.cpp @@ -908,6 +908,10 @@ public: MOVESET_MEGAMOTH.push_back(HIDE); MOVESET_MEGAMOTH.push_back(HYPERZAP); MOVESET_MEGAMOTH.push_back(POLLINATION); + MOVESET_MEGAMOTH.push_back(GUST); + MOVESET_MEGAMOTH.push_back(GUST); + MOVESET_MEGAMOTH.push_back(GUST); + MOVESET_MEGAMOTH.push_back(GUST); MOVESET_SANDWORM.push_back(SANDSTORM); MOVESET_SANDWORM.push_back(HEAT_WAVE); @@ -961,10 +965,10 @@ public: ENCOUNTER_SANDWORM_1.playerY=3.5; ENCOUNTER_SANDWORM_1.map=MAP_3; //ENCOUNTERS.push_back(ENCOUNTER_X_X); //Activate at beginning of Chapter 2. - ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Megamoth",3.5,1.75,745,745,MOVESET_MEGAMOTH,{2,2})); - ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Moth",2,1,120,120,MOVESET_MOTH)); - ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Moth",6,1,120,120,MOVESET_MOTH)); - ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Moth",4,4,120,120,MOVESET_MOTH)); + ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Megamoth",3.5,1.75,745,745,MOVESET_MEGAMOTH,{2,2},true)); + ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Moth",2,1,0,120,MOVESET_MOTH)); + ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Moth",6,1,0,120,MOVESET_MOTH)); + ENCOUNTER_MEGAMOTH.entities.push_back(new Entity(MOTH_DECAL,"Moth",4,4,0,120,MOVESET_MOTH)); ENCOUNTER_MEGAMOTH.x=195-4; ENCOUNTER_MEGAMOTH.y=56-3.5; ENCOUNTER_MEGAMOTH.playerX=4; @@ -2015,6 +2019,21 @@ public: case battle::DAMAGE_RESOLUTION:{ EFFECT_TIMER++; if (EFFECT_TIMER>60) { + if (BATTLE_CURRENT_TURN_ENTITY==-1) { + BATTLE_DROUGHT_ACTIVE=false; + std::cout<<"Drought turned off.\n"; + } 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) { + CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->speed=0; + } + if (CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastHiddenVal==CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden&& + CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden&&rand()%3==0) { + CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden=0; + } + CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastSlowVal=CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->speed; + CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastHiddenVal=CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden; + } if (turnOrder.empty()) { bool allDead=true; for (auto&ent:CURRENT_ENCOUNTER.entities) { @@ -2049,21 +2068,6 @@ public: PLAYER_SELECTED_TARGET=-1; } } else { - if (BATTLE_CURRENT_TURN_ENTITY==-1) { - BATTLE_DROUGHT_ACTIVE=false; - std::cout<<"Drought turned off.\n"; - } 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) { - CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->speed=0; - } - if (CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastHiddenVal==CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden&& - CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden&&rand()%3==0) { - CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden=0; - } - CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastSlowVal=CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->speed; - CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastHiddenVal=CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden; - } BATTLE_CURRENT_TURN_ENTITY=turnOrder.front(); turnOrder.pop(); if (BATTLE_CURRENT_TURN_ENTITY==-1) { @@ -2905,6 +2909,9 @@ public: delete OBJECTS[i]; } OBJECTS.clear(); + for (int i=0;i<8;i++) { + CUTSCENE_OBJS[i]=nullptr; + } int y=0; if (f.is_open()) { @@ -3111,7 +3118,7 @@ public: foodCount--; } PLAYER_HP=std::clamp(PLAYER_HP-finalDamage,0,PLAYER_MAXHP); - CreateDisplayNumber(finalDamage,PLAYER_COORDS[0],PLAYER_COORDS[1],frameCount); + CreateDisplayNumber(finalDamage,CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY,frameCount); } else { for (int i=0;idamage+rand()%power->damageRoll*sign(power->damage); @@ -3139,7 +3146,7 @@ public: } } else { PLAYER_HP=std::clamp(PLAYER_HP-finalDamage,0,PLAYER_MAXHP); - CreateDisplayNumber(finalDamage,PLAYER_COORDS[0],PLAYER_COORDS[1],frameCount); + CreateDisplayNumber(finalDamage,CURRENT_ENCOUNTER.x+CURRENT_ENCOUNTER.playerX,CURRENT_ENCOUNTER.y+CURRENT_ENCOUNTER.playerY,frameCount); } } } @@ -3348,12 +3355,12 @@ public: for (int i=0;i<8;i++) { for (int j=0;jtempObj) { + if (CUTSCENE_OBJS[i]!=nullptr&&CUTSCENE_OBJS[i]->tempObj) { OBJECTS.erase(OBJECTS.begin()+j--); + delete CUTSCENE_OBJS[i]; std::cout<<"Erased at position "<