Setup A.A AI

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent 14df119887
commit ff19731b5b
  1. 67
      SeasonsOfLoneliness.cpp
  2. 2
      data.h

@ -171,7 +171,8 @@ namespace reasoncode{
SEED_GROWTH, SEED_GROWTH,
TREE_BURN, TREE_BURN,
DROUGHT, DROUGHT,
PETRIFIED PETRIFIED,
RADIOACTIVE
}; };
} }
@ -358,6 +359,7 @@ class WEATHER_POWER{
bool appliesSpeed=false; //If true, will apply speed on use. bool appliesSpeed=false; //If true, will apply speed on use.
bool appliesHide=false; //If true, will apply hiding on use. bool appliesHide=false; //If true, will apply hiding on use.
bool appliesPetrification=false; //Applies three turns of petrification on use. bool appliesPetrification=false; //Applies three turns of petrification on use.
bool appliesRadioactive=false; //Radioactive removes all trees and seeds.
float pctDmg=0; // float pctDmg=0; //
bool dealsPctDmg=false; //If set to true, uses pctDmg and deals a % health value instead. bool dealsPctDmg=false; //If set to true, uses pctDmg and deals a % health value instead.
WEATHER_POWER(std::string name,std::string desc,Animation*icon,Animation*effect,int dmg,int dmgRoll,int range,Pixel bgcol,Pixel textcol,int effectTime,ParticleEffect*parteff) { WEATHER_POWER(std::string name,std::string desc,Animation*icon,Animation*effect,int dmg,int dmgRoll,int range,Pixel bgcol,Pixel textcol,int effectTime,ParticleEffect*parteff) {
@ -571,6 +573,8 @@ public:
ParticleEffect*GLARE_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{4,4},{12,12},{-20,-6},{0,-20},Pixel(130, 245, 2,130),Pixel(250, 246, 2,210),0,Pixel(255, 255, 255,64)); ParticleEffect*GLARE_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{4,4},{12,12},{-20,-6},{0,-20},Pixel(130, 245, 2,130),Pixel(250, 246, 2,210),0,Pixel(255, 255, 255,64));
ParticleEffect*PETRIFY_EFF = new ParticleEffect({0,0},{64,64},{0,0},{64,64},{2,2},{4,4},{-1,-3},{1,-8},Pixel(166, 147, 143,200),Pixel(199, 194, 193,210),30,Pixel(199, 199, 52,0)); ParticleEffect*PETRIFY_EFF = new ParticleEffect({0,0},{64,64},{0,0},{64,64},{2,2},{4,4},{-1,-3},{1,-8},Pixel(166, 147, 143,200),Pixel(199, 194, 193,210),30,Pixel(199, 199, 52,0));
ParticleEffect*MEGAFANG_EFF = new ParticleEffect({0,0},{64,64},{0,0},{64,64},{1,1},{3,3},{-5,-5},{5,5},Pixel(255,255,255,200),Pixel(255,255,255,210),40,Pixel(70, 158, 62,0)); ParticleEffect*MEGAFANG_EFF = new ParticleEffect({0,0},{64,64},{0,0},{64,64},{1,1},{3,3},{-5,-5},{5,5},Pixel(255,255,255,200),Pixel(255,255,255,210),40,Pixel(70, 158, 62,0));
ParticleEffect*END_OF_THE_CENTURY_BEAM_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{WIDTH,HEIGHT},{64,64},{8,8},{20,20},{-4,10},{4,35},Pixel(0,0,0,75),Pixel(255,255,255,210),120,Pixel(255, 255, 255,96));
ParticleEffect*RADIOACTIVE_TRANSMISSION_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{WIDTH,HEIGHT},{64,64},{5,5},{10,10},{0,0},{0,0},Pixel(70, 189, 23,196),Pixel(189, 189, 23,210),250,Pixel(0,255,0,128));
WEATHER_POWER*HAILSTORM = new WEATHER_POWER("Hailstorm","Causes a flurry of hard cold rocks to be unleashed in target area. 60+1d30",POWER_HAILSTORM_ANIMATION,POWER_HAILSTORM_ANIMATION,60,30,160,Pixel(72, 160, 212,255),Pixel(93, 161, 163,255),120,HAILSTORM_EFF); WEATHER_POWER*HAILSTORM = new WEATHER_POWER("Hailstorm","Causes a flurry of hard cold rocks to be unleashed in target area. 60+1d30",POWER_HAILSTORM_ANIMATION,POWER_HAILSTORM_ANIMATION,60,30,160,Pixel(72, 160, 212,255),Pixel(93, 161, 163,255),120,HAILSTORM_EFF);
WEATHER_POWER*HURRICANE = new WEATHER_POWER("Hurricane","Causes heavy winds, scattering seeds, heavy rain. 20+1d10",POWER_HURRICANE_ANIMATION,POWER_HURRICANE_ANIMATION,20,10,200,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,HURRICANE_EFF); WEATHER_POWER*HURRICANE = new WEATHER_POWER("Hurricane","Causes heavy winds, scattering seeds, heavy rain. 20+1d10",POWER_HURRICANE_ANIMATION,POWER_HURRICANE_ANIMATION,20,10,200,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,HURRICANE_EFF);
WEATHER_POWER*METEOR_RAIN = new WEATHER_POWER("Meteor Rain","Causes fiery space rocks to fall on target area. 50+1d50",POWER_METEOR_SHOWER_ANIMATION,POWER_METEOR_SHOWER_ANIMATION,50,50,96,Pixel(96, 86, 153,255),Pixel(170, 103, 201,255),120,METEOR_STORM_EFF); WEATHER_POWER*METEOR_RAIN = new WEATHER_POWER("Meteor Rain","Causes fiery space rocks to fall on target area. 50+1d50",POWER_METEOR_SHOWER_ANIMATION,POWER_METEOR_SHOWER_ANIMATION,50,50,96,Pixel(96, 86, 153,255),Pixel(170, 103, 201,255),120,METEOR_STORM_EFF);
@ -602,6 +606,8 @@ public:
WEATHER_POWER*GLARE = new WEATHER_POWER("Glare","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),120,GLARE_EFF); WEATHER_POWER*GLARE = new WEATHER_POWER("Glare","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),120,GLARE_EFF);
WEATHER_POWER*PETRIFY = new WEATHER_POWER("Petrify","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),120,PETRIFY_EFF); WEATHER_POWER*PETRIFY = new WEATHER_POWER("Petrify","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),120,PETRIFY_EFF);
WEATHER_POWER*MEGA_FANG = new WEATHER_POWER("Mega Fang","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),120,MEGAFANG_EFF); WEATHER_POWER*MEGA_FANG = new WEATHER_POWER("Mega Fang","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),120,MEGAFANG_EFF);
WEATHER_POWER*END_OF_THE_CENTURY_BEAM = new WEATHER_POWER("End of the Century Beam","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),160,END_OF_THE_CENTURY_BEAM_EFF);
WEATHER_POWER*RADIOACTIVE_TRANSMISSION = new WEATHER_POWER("Radioactive Transmission","",POWER_SOLARFLARE_ANIMATION,POWER_SOLARFLARE_ANIMATION,1,10,255,Pixel(176, 53, 37,255),Pixel(217, 98, 0,255),160,RADIOACTIVE_TRANSMISSION_EFF);
bool IN_BATTLE_ENCOUNTER = false; bool IN_BATTLE_ENCOUNTER = false;
int BATTLE_ENTRY_TIMER = 0; int BATTLE_ENTRY_TIMER = 0;
@ -998,6 +1004,8 @@ public:
PETRIFY->appliesPetrification=true; PETRIFY->appliesPetrification=true;
MEGA_FANG->dealsPctDmg=true; MEGA_FANG->dealsPctDmg=true;
MEGA_FANG->pctDmg=0.49; MEGA_FANG->pctDmg=0.49;
END_OF_THE_CENTURY_BEAM->dealsPctDmg=true;
END_OF_THE_CENTURY_BEAM->pctDmg=0.96;
LIGHT_STORM->lowPriority=true; LIGHT_STORM->lowPriority=true;
@ -1061,6 +1069,20 @@ public:
MOVESET_Y_Y.push_back(DROUGHT); MOVESET_Y_Y.push_back(DROUGHT);
MOVESET_Y_Y.push_back(HAILSTORM); MOVESET_Y_Y.push_back(HAILSTORM);
MOVESET_A_A.push_back(END_OF_THE_CENTURY_BEAM);
MOVESET_A_A.push_back(LIGHT_STORM);
MOVESET_A_A.push_back(RADIOACTIVE_TRANSMISSION);
MOVESET_A_A.push_back(LIGHT_STORM);
MOVESET_A_A.push_back(METEOR_RAIN);
MOVESET_A_A.push_back(LIGHT_STORM);
MOVESET_A_A.push_back(LIGHT_STORM);
MOVESET_A_A.push_back(AVALANCHE);
MOVESET_A_A.push_back(FIRESTORM);
MOVESET_A_A.push_back(AVALANCHE);
MOVESET_A_A.push_back(GUST);
MOVESET_A_A.push_back(GUST);
MOVESET_A_A.push_back(GUST);
COLLECTED_ITEMS.push_back({20,5}); COLLECTED_ITEMS.push_back({20,5});
COLLECTED_ITEMS.push_back({20,6}); COLLECTED_ITEMS.push_back({20,6});
COLLECTED_ITEMS.push_back({19,5}); COLLECTED_ITEMS.push_back({19,5});
@ -2257,6 +2279,14 @@ public:
PETRIFY_TURNS=3; 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) { if (EFFECT_TIMER>ref->effectTime) {
EFFECT_TIMER=0; EFFECT_TIMER=0;
clearPixelEffect(); clearPixelEffect();
@ -2341,6 +2371,13 @@ public:
} }
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastSlowVal=CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->speed; 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; CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->lastHiddenVal=CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->hidden;
if (CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->name.compare("A.A")==0) {
if (CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->fixedTurnOrderInd==CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->moveSet.size()) {
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr=A_A_DECAL;
} else {
CURRENT_ENCOUNTER.entities[BATTLE_CURRENT_TURN_ENTITY]->spr=A_A_RECHARGE_DECAL;
}
}
} }
if (turnOrder.empty()) { if (turnOrder.empty()) {
bool allDead=true; bool allDead=true;
@ -2931,12 +2968,27 @@ public:
CUTSCENE_FLAGS[0]=true; CUTSCENE_FLAGS[0]=true;
TIMER=0; TIMER=0;
} else } else
if (!CUTSCENE_FLAGS[1]&&TIMER<240) { if (TIMER<240) {
BOSS_SIZE={ BOSS_SIZE={
std::clamp(TIMER/240.0+1,1.0,2.0), std::clamp(TIMER/240.0+1,1.0,2.0),
std::clamp(TIMER/240.0+1,1.0,2.0) std::clamp(TIMER/240.0+1,1.0,2.0)
}; };
SHIP_COLOR=Pixel(255,255,255,(1-(TIMER/240.0))*255); SHIP_COLOR=Pixel(255,255,255,(1-(TIMER/240.0))*255);
} else {
if (!messageBoxVisible) {
if (!CUTSCENE_FLAGS[1]) {
CUTSCENE_FLAGS[1]=true;
DisplayMessageBox(62);
} else {
printf("In here.(1)");
updatePlayerState();
printf("In here.(2)");
EndCutscene();
printf("In here.(3)");
ENCOUNTERS.push_back(ENCOUNTER_A_A);
printf("In here.(4)");
}
}
} }
}break; }break;
} }
@ -3309,6 +3361,14 @@ public:
DrawWrappedText({5,5},"A drought is active, causing healing to be reduced!",WIDTH-8,DARK_MAGENTA,{2,2}); DrawWrappedText({5,5},"A drought is active, causing healing to be reduced!",WIDTH-8,DARK_MAGENTA,{2,2});
DrawWrappedText({4,4},"A drought is active, causing healing to be reduced!",WIDTH-8,WHITE,{2,2}); DrawWrappedText({4,4},"A drought is active, causing healing to be reduced!",WIDTH-8,WHITE,{2,2});
}break; }break;
case reasoncode::PETRIFIED:{
DrawWrappedText({5,5},PLAYER_NAME+" became Petrified!",WIDTH-8,DARK_RED,{2,2});
DrawWrappedText({4,4},PLAYER_NAME+" became Petrified!",WIDTH-8,WHITE,{2,2});
}break;
case reasoncode::RADIOACTIVE:{
DrawWrappedText({5,5},"The radioactive environment made all flora die.",WIDTH-8,DARK_MAGENTA,{2,2});
DrawWrappedText({4,4},"The radioactive environment made all flora die.",WIDTH-8,WHITE,{2,2});
}break;
} }
}break; }break;
} }
@ -4139,7 +4199,8 @@ public:
power->name.compare("Hide")==0|| power->name.compare("Hide")==0||
power->name.compare("Hyper Zap")==0|| power->name.compare("Hyper Zap")==0||
power->name.compare("Glare")==0|| power->name.compare("Glare")==0||
power->name.compare("Petrify")==0; power->name.compare("Petrify")==0||
power->name.compare("Radioactive Transmission")==0;
} }
bool isFoodMove(WEATHER_POWER*power) { bool isFoodMove(WEATHER_POWER*power) {

@ -250,7 +250,7 @@ A.A
-- BEGIN TRANSFORMATION SEQUENCE --)",//61 -- BEGIN TRANSFORMATION SEQUENCE --)",//61
R"( R"(
A.A A.A
HUMAN! IF YOU TRULY DESERVE TO LEAVE THIS WASTELAND, THEN PROVE IT TO US. SHOW US YOU ARE WORTHY.)",//62 HUMAN! IF YOU TRULY DESERVE TO LEAVE THIS PLANET, THEN PROVE IT TO US. SHOW US YOU ARE WORTHY.)",//62
}; };

Loading…
Cancel
Save