generated from sigonasr2/CPlusPlusProjectTemplate
Include new enemies, attacks, powers
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
aed5838d91
commit
9dd28d3593
@ -17,7 +17,7 @@ using namespace olc;
|
||||
#define SKIP_CHAPTER2 false
|
||||
#define SKIP_CHAPTER3 false
|
||||
|
||||
#define STARTING_MAP "assets/maps/map1"
|
||||
#define STARTING_MAP MAP_1
|
||||
#define STARTING_STATE CUTSCENE_3
|
||||
#define MOVE_SPD 0.075
|
||||
#define PLAYER_X 14
|
||||
@ -251,6 +251,14 @@ class Object{
|
||||
}
|
||||
};
|
||||
|
||||
class Map{
|
||||
public:
|
||||
std::string filename;
|
||||
Map(std::string filepath) {
|
||||
this->filename=filepath;
|
||||
}
|
||||
};
|
||||
|
||||
class ParticleEffect{
|
||||
public:
|
||||
vf2d effectPos;
|
||||
@ -351,6 +359,7 @@ class Encounter{
|
||||
float playerX,playerY;
|
||||
std::vector<Entity*> entities;
|
||||
std::vector<int> turnOrder;
|
||||
Map*map;
|
||||
};
|
||||
|
||||
class Zone{
|
||||
@ -461,6 +470,8 @@ public:
|
||||
Animation*PETAL_STORM_ANIMATION=new Animation();
|
||||
Animation*SLEEP_ANIMATION=new Animation();
|
||||
Animation*EMPTY_BED_ANIMATION=new Animation();
|
||||
Animation*POWER_FLASHFLOOD_ANIMATION=new Animation();
|
||||
Animation*POWER_SUNNYDAY_ANIMATION=new Animation();
|
||||
ParticleEffect*HAILSTORM_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{4,4},{-2,0.5},{-0.5,2},Pixel(143, 242, 255,255),Pixel(255,255,255,255),300,Pixel(220, 226, 227,0));
|
||||
ParticleEffect*HURRICANE_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{2,2},{-4,1},{-1,4},Pixel(225, 248, 252,64),Pixel(255,255,255,128),300,Pixel(220, 226, 227,0));
|
||||
ParticleEffect*METEOR_RAIN_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{3,3},{6,6},{-1,0.2},{-0.2,1},Pixel(46, 31, 31,255),Pixel(43, 31, 46,255),50,Pixel(30, 10, 36,0));
|
||||
@ -477,11 +488,18 @@ public:
|
||||
ParticleEffect*SUMMON_MINION_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{4,4},{12,12},{0,-6},{0,-20},Pixel(223, 242, 0,130),Pixel(223, 255, 114,210),50,Pixel(70, 158, 62,0));
|
||||
ParticleEffect*SEED_OF_LIFE_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{2,2},{2,2},{-1,-2},{1,-0.2},Pixel(65, 98, 66,210),Pixel(65, 117, 60,255),140,Pixel(70, 158, 62,0));
|
||||
ParticleEffect*FIRESTORM_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{4,4},{12,12},{-12,-8},{12,-4},Pixel(209, 90, 69,130),Pixel(209, 141, 69,255),140,Pixel(255, 0, 0,32));
|
||||
WEATHER_POWER*HAILSTORM = new WEATHER_POWER("Hailstorm","Causes a flurry of hard cold rocks to be unleashed in target area. 60+30d",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+10d",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+50d",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);
|
||||
ParticleEffect*ACID_RAIN_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{2,2},{-4,1},{-1,4},Pixel(117, 125, 57,128),Pixel(224, 245, 66,210),300,Pixel(220, 226, 227,0));
|
||||
ParticleEffect*DROUGHT_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{2,2},{-1,-4},{1,-0.5},Pixel(217, 79, 33,128),Pixel(217, 162, 33,210),70,Pixel(217, 204, 173,64));
|
||||
ParticleEffect*HEAT_WAVE_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{4,4},{12,12},{-8,4},{-4,8},Pixel(209, 90, 69,130),Pixel(209, 141, 69,255),80,Pixel(255, 0, 0,0));
|
||||
ParticleEffect*TORNADO_EFF = new ParticleEffect({0,0},{64,64},{0,0},{64,64},{1,2},{3,20},{-14,2},{14,12},Pixel(168, 155, 146,196),Pixel(196, 194, 192,220),45,Pixel(255, 0, 0,0));
|
||||
ParticleEffect*GUST_EFF = new ParticleEffect({0,0},{64,64},{0,0},{64,64},{1,2},{3,20},{-6,1},{6,6},Pixel(168, 155, 146,196),Pixel(196, 194, 192,220),20,Pixel(255, 0, 0,0));
|
||||
ParticleEffect*FLASH_FLOOD_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{2,2},{-4,1},{-1,4},Pixel(8, 54, 204,64),Pixel(255,255,255,128),500,Pixel(220, 226, 227,0));
|
||||
ParticleEffect*SUNNYDAY_EFF = new ParticleEffect({0,0},{WIDTH,HEIGHT},{0,0},{WIDTH,HEIGHT},{1,1},{4,4},{0,-2},{0,-6},Pixel(209, 207, 113,130),Pixel(255, 255, 255,210),50,Pixel(70, 158, 62,0));
|
||||
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*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_STORM = new WEATHER_POWER("Meteor Storm","Larger burning space rocks. 120+60d",POWER_METEOR_STORM_ANIMATION,POWER_METEOR_STORM_ANIMATION,120,60,140,Pixel(89, 4, 33,255),Pixel(130, 56, 1,255),120,METEOR_RAIN_EFF);
|
||||
WEATHER_POWER*SNOWSTORM = new WEATHER_POWER("Snowstorm","Slows down targets and causes rapid temperature drops. 15+10d",POWER_SNOWSTORM_ANIMATION,POWER_SNOWSTORM_ANIMATION,15,10,140,Pixel(183, 196, 194,255),Pixel(222, 255, 254,255),120,SNOWSTORM_EFF);
|
||||
WEATHER_POWER*SNOWSTORM = new WEATHER_POWER("Snowstorm","Slows down targets and causes rapid temperature drops. 15+1d10",POWER_SNOWSTORM_ANIMATION,POWER_SNOWSTORM_ANIMATION,15,10,140,Pixel(183, 196, 194,255),Pixel(222, 255, 254,255),120,SNOWSTORM_EFF);
|
||||
WEATHER_POWER*SANDSTORM = new WEATHER_POWER("Sandstorm","",POWER_HAILSTORM_ANIMATION,POWER_HAILSTORM_ANIMATION,5,10,64,Pixel(93, 161, 163,255),Pixel(72, 160, 212,255),120,SANDSTORM_EFF);
|
||||
WEATHER_POWER*SEED_STORM = new WEATHER_POWER("Seed Storm","",POWER_HAILSTORM_ANIMATION,POWER_HAILSTORM_ANIMATION,-10,15,30,Pixel(93, 161, 163,255),Pixel(72, 160, 212,255),120,SEED_STORM_EFF);
|
||||
WEATHER_POWER*AVALANCHE = new WEATHER_POWER("Avalanche","",POWER_HAILSTORM_ANIMATION,POWER_HAILSTORM_ANIMATION,15,10,200,Pixel(93, 161, 163,255),Pixel(72, 160, 212,255),120,AVALANCHE_EFF);
|
||||
@ -492,7 +510,14 @@ public:
|
||||
WEATHER_POWER*SUMMON_MINIONS = new WEATHER_POWER("Summon Minions","",POWER_HAILSTORM_ANIMATION,POWER_HAILSTORM_ANIMATION,-75,15,255,Pixel(57, 92, 63,255),Pixel(95, 232, 119,255),120,SUMMON_MINION_EFF);
|
||||
WEATHER_POWER*CONSUME_SNACK = new WEATHER_POWER("Snack","Restores 33% health for 5 turns. If battle ends before effect ends, food is not consumed.",CONSUME_SNACK_ANIMATION,CONSUME_SNACK_ANIMATION,-1001,1,200,Pixel(147, 173, 66,255),Pixel(255, 188, 3,255),120,CONSUME_SNACK_EFF);
|
||||
WEATHER_POWER*CONSUME_MEAL = new WEATHER_POWER("Meal","Restores all health. Increases Maximum Health by 5.",CONSUME_MEAL_ANIMATION,CONSUME_MEAL_ANIMATION,-1002,1,200,Pixel(147, 173, 66,255),Pixel(255, 188, 3,255),120,CONSUME_SNACK_EFF);
|
||||
WEATHER_POWER*PETAL_STORM = new WEATHER_POWER("Petal Storm","Places seeds, causes minor healing. 20+20d",PETAL_STORM_ANIMATION,PETAL_STORM_ANIMATION,20,20,110,Pixel(189, 132, 189,255),Pixel(235, 75, 235,255),120,PETAL_STORM_EFF);
|
||||
WEATHER_POWER*PETAL_STORM = new WEATHER_POWER("Petal Storm","Places seeds, causes minor healing. 20+1d20",PETAL_STORM_ANIMATION,PETAL_STORM_ANIMATION,20,20,110,Pixel(189, 132, 189,255),Pixel(235, 75, 235,255),120,PETAL_STORM_EFF);
|
||||
WEATHER_POWER*ACID_RAIN = new WEATHER_POWER("Acid Rain","",POWER_HURRICANE_ANIMATION,POWER_HURRICANE_ANIMATION,20,10,150,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,ACID_RAIN_EFF);
|
||||
WEATHER_POWER*DROUGHT = new WEATHER_POWER("Drought","Halves healing effects for the next turn.",POWER_HURRICANE_ANIMATION,POWER_HURRICANE_ANIMATION,8,3,150,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,DROUGHT_EFF);
|
||||
WEATHER_POWER*HEAT_WAVE = new WEATHER_POWER("Heat Wave","",POWER_HURRICANE_ANIMATION,POWER_HURRICANE_ANIMATION,25,10,150,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,HEAT_WAVE_EFF);
|
||||
WEATHER_POWER*TORNADO = new WEATHER_POWER("Tornado","",POWER_HURRICANE_ANIMATION,POWER_HURRICANE_ANIMATION,30,10,150,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,TORNADO_EFF);
|
||||
WEATHER_POWER*GUST = new WEATHER_POWER("Gust","",POWER_HURRICANE_ANIMATION,POWER_HURRICANE_ANIMATION,15,10,150,Pixel(99, 148, 132,255),Pixel(121, 132, 140,255),120,GUST_EFF);
|
||||
WEATHER_POWER*FLASH_FLOOD = new WEATHER_POWER("Flash Flood","Causes massive seed growth and heavy damage. 30+1d20",POWER_FLASHFLOOD_ANIMATION,POWER_FLASHFLOOD_ANIMATION,30,20,200,Pixel(27, 41, 87,255),Pixel(138, 161, 237,255),120,FLASH_FLOOD_EFF);
|
||||
WEATHER_POWER*SUNNY_DAY = new WEATHER_POWER("Sunny Day","Fertilize soil, multiplying seed growth and causing trees to drop seeds. 10+1d10",POWER_SUNNYDAY_ANIMATION,POWER_SUNNYDAY_ANIMATION,10,10,200,Pixel(27, 41, 87,255),Pixel(138, 161, 237,255),120,SUNNYDAY_EFF);
|
||||
bool IN_BATTLE_ENCOUNTER = false;
|
||||
int BATTLE_ENTRY_TIMER = 0;
|
||||
int EFFECT_TIMER = 0;
|
||||
@ -540,19 +565,26 @@ public:
|
||||
std::string MENU_OPTIONS[4]={"NEW GAME","CONTINUE","MUTE SOUND","EXIT"};
|
||||
int BATTLE_REASON_CODE=-1;
|
||||
|
||||
Map*MAP_1=new Map("map1");
|
||||
Map*MAP_2=new Map("map2");
|
||||
|
||||
Decal*DOME_DECAL,*FOOD_METER_DECAL,*OXYGEN_METER_DECAL,*PLANT_DECAL,
|
||||
*PLAYER_DECAL,
|
||||
*WEATHERNODE_EFFECT_DECAL,*POWER_HAILSTORM_DECAL,*POWER_HURRICANE_DECAL,*POWER_METEOR_SHOWER_DECAL,*POWER_METEOR_STORM_DECAL,*POWER_SNOWSTORM_DECAL,
|
||||
*SPIDEY_DECAL,*TARGETING_CIRCLE,*TARGETING_RANGE_CIRCLE,*HEALTHBAR_DECAL,
|
||||
*CONSUME_SNACK_DECAL,*CONSUME_MEAL_DECAL,*COMPUTER_DECAL,*BROKEN_ROVER_DECAL,
|
||||
*NADO_DECAL,*SILICON_ROCK_DECAL,*PETAL_STORM_DECAL,*ROVER_DECAL,*X_X_DECAL,
|
||||
*LATER_THAT_NIGHT_DECAL,*SLEEP_DECAL,*SEED_DECAL,*TREE_DECAL,*X_X_UNCHARGED_DECAL;
|
||||
*LATER_THAT_NIGHT_DECAL,*SLEEP_DECAL,*SEED_DECAL,*TREE_DECAL,*X_X_UNCHARGED_DECAL,
|
||||
*SANDWORM_DECAL,*SNAKE_DECAL,*MOTH_DECAL,*FLASH_FLOOD_DECAL;
|
||||
std::map<std::string,ObjectLoadInfo*> BASE_OBJECTS;
|
||||
std::vector<Encounter> ENCOUNTERS;
|
||||
Encounter ENCOUNTER_SPIDEY_1;
|
||||
Encounter ENCOUNTER_X_X;
|
||||
Encounter CURRENT_ENCOUNTER;
|
||||
std::vector<WEATHER_POWER*>MOVESET_SPIDEY;
|
||||
std::vector<WEATHER_POWER*>MOVESET_SANDWORM;
|
||||
std::vector<WEATHER_POWER*>MOVESET_SNAKE;
|
||||
std::vector<WEATHER_POWER*>MOVESET_MOTH;
|
||||
std::vector<WEATHER_POWER*>MOVESET_X_X;
|
||||
std::vector<WEATHER_POWER*>MOVESET_XMINION;
|
||||
std::vector<Seed*>SEEDS;
|
||||
@ -564,6 +596,8 @@ public:
|
||||
int SEED_COUNT=0;
|
||||
vf2d BATTLE_PLAYER_COORDS;
|
||||
|
||||
Map*CURRENT_MAP=MAP_1;
|
||||
|
||||
|
||||
sound::Wave SONG_MAIN;
|
||||
|
||||
@ -637,6 +671,11 @@ public:
|
||||
SLEEP_DECAL=new Decal(new Sprite("assets/sleep.png"));
|
||||
SEED_DECAL=new Decal(new Sprite("assets/seed.png"));
|
||||
TREE_DECAL=new Decal(new Sprite("assets/tree.png"));
|
||||
SANDWORM_DECAL=new Decal(new Sprite("assets/sandworm.png"));
|
||||
MOTH_DECAL=new Decal(new Sprite("assets/moth.png"));
|
||||
SNAKE_DECAL=new Decal(new Sprite("assets/snake.png"));
|
||||
FLASH_FLOOD_DECAL=new Decal(new Sprite("assets/flashflood_icon.png"));
|
||||
SUNNY_DAY_DECAL=new Decal(new Sprite("assets/sunny_day.png"));
|
||||
|
||||
current_playerAnim->spr=PLAYER_DECAL;
|
||||
playerAnim->spr=PLAYER_DECAL;
|
||||
@ -733,6 +772,16 @@ public:
|
||||
EMPTY_BED_ANIMATION->frames.push_back({0,0});
|
||||
EMPTY_BED_ANIMATION->skip_frames=1;
|
||||
EMPTY_BED_ANIMATION->height=64;
|
||||
POWER_FLASHFLOOD_ANIMATION->spr=FLASH_FLOOD_DECAL;
|
||||
for (int i=0;i<3;i++) {
|
||||
POWER_FLASHFLOOD_ANIMATION->frames.push_back({i*32,0});
|
||||
}
|
||||
POWER_FLASHFLOOD_ANIMATION->skip_frames=nodeAnimationSkipFrames;
|
||||
POWER_SUNNYDAY_ANIMATION->spr=SUNNY_DAY_DECAL;
|
||||
for (int i=0;i<3;i++) {
|
||||
POWER_SUNNYDAY_ANIMATION->frames.push_back({i*32,0});
|
||||
}
|
||||
POWER_SUNNYDAY_ANIMATION->skip_frames=nodeAnimationSkipFrames;
|
||||
|
||||
HAILSTORM->playerOwnCount=3;
|
||||
HURRICANE->playerOwnCount=1;
|
||||
@ -749,6 +798,17 @@ public:
|
||||
MOVESET_SPIDEY.push_back(SEED_STORM);
|
||||
MOVESET_SPIDEY.push_back(AVALANCHE);
|
||||
|
||||
MOVESET_MOTH.push_back(GUST);
|
||||
MOVESET_MOTH.push_back(GUST);
|
||||
MOVESET_MOTH.push_back(TORNADO);
|
||||
|
||||
MOVESET_SANDWORM.push_back(SANDSTORM);
|
||||
MOVESET_SANDWORM.push_back(HEAT_WAVE);
|
||||
MOVESET_SANDWORM.push_back(DROUGHT);
|
||||
|
||||
MOVESET_SNAKE.push_back(ACID_RAIN);
|
||||
MOVESET_SNAKE.push_back(SANDSTORM);
|
||||
|
||||
MOVESET_X_X.push_back(LIGHT_STORM);
|
||||
MOVESET_X_X.push_back(SEED_BULLET);
|
||||
MOVESET_X_X.push_back(SEED_OF_LIFE);
|
||||
@ -775,6 +835,7 @@ public:
|
||||
ENCOUNTER_SPIDEY_1.y=47;
|
||||
ENCOUNTER_SPIDEY_1.playerX=4;
|
||||
ENCOUNTER_SPIDEY_1.playerY=3;
|
||||
ENCOUNTER_SPIDEY_1.map=MAP_1;
|
||||
ENCOUNTERS.push_back(ENCOUNTER_SPIDEY_1);
|
||||
ENCOUNTER_X_X.entities.push_back(new Entity(X_X_DECAL,"X_X",3,2.5,590,590,MOVESET_X_X,{2,2},true));
|
||||
ENCOUNTER_X_X.entities.push_back(new Entity(X_X_DECAL,"X Minion",1,4,0,80,MOVESET_XMINION,{0.7,0.7}));
|
||||
@ -784,6 +845,7 @@ public:
|
||||
ENCOUNTER_X_X.y=35;
|
||||
ENCOUNTER_X_X.playerX=3;
|
||||
ENCOUNTER_X_X.playerY=2;
|
||||
ENCOUNTER_X_X.map=MAP_1;
|
||||
//ENCOUNTERS.push_back(ENCOUNTER_X_X); //Activate at beginning of Chapter 2.
|
||||
|
||||
BASE_OBJECTS["DOME"]=new ObjectLoadInfo(DOME_DECAL);
|
||||
@ -1098,7 +1160,7 @@ public:
|
||||
}
|
||||
switch (CURRENT_CUTSCENE) {
|
||||
case cutscene::TRANSITION_CUTSCENE:{
|
||||
LoadMap("assets/maps/map1");
|
||||
LoadMap(MAP_1);
|
||||
PLAYER_COORDS[0]=40.5;
|
||||
PLAYER_COORDS[1]=37.5;
|
||||
fadeIn();
|
||||
@ -1119,7 +1181,7 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
LoadMap("assets/maps/map2");
|
||||
LoadMap(MAP_2);
|
||||
TeleportToMapFileCoords(8,17);
|
||||
fadeIn();
|
||||
EndCutscene();
|
||||
@ -1186,7 +1248,7 @@ public:
|
||||
ResetTerminal(STORY_TEXT2);
|
||||
}break;
|
||||
case cutscene::CUTSCENE_4:{
|
||||
LoadMap("assets/maps/map2");
|
||||
LoadMap(MAP_2);
|
||||
PLAYER_COORDS[0]=16;
|
||||
PLAYER_COORDS[1]=6;
|
||||
}break;
|
||||
@ -1415,10 +1477,10 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
if (!IN_BATTLE_ENCOUNTER&&MAP_NAME.compare("assets/maps/map1")==0) {
|
||||
if (!IN_BATTLE_ENCOUNTER) {
|
||||
for (int i=0;i<ENCOUNTERS.size();i++) {
|
||||
Encounter enc = ENCOUNTERS[i];
|
||||
if (collidesWithPlayer(enc)) {
|
||||
if (enc.map==CURRENT_MAP&&collidesWithPlayer(enc)) {
|
||||
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;
|
||||
@ -2325,6 +2387,7 @@ public:
|
||||
}
|
||||
}
|
||||
for (auto&enc:ENCOUNTERS) {
|
||||
if (enc.map==CURRENT_MAP) {
|
||||
int targetX=-1,targetY=-1;
|
||||
for (auto&ent:enc.entities) {
|
||||
if (BATTLE_STATE==battle::PLAYER_TARGET_SELECTION&&PLAYER_SELECTED_TARGET>=0&&CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->hp>0&&CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->x==ent->x&&CURRENT_ENCOUNTER.entities[PLAYER_SELECTED_TARGET]->y==ent->y) {
|
||||
@ -2345,6 +2408,7 @@ public:
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DrawHealthbar(vf2d pos,float width,float pct,Pixel col) {
|
||||
GradientFillRectDecal(pos,{width*pct,8},RED,RED,Pixel((1/pct)*255,255*pct,0,255),Pixel((1/pct)*255,255*pct,0,255));
|
||||
@ -2444,10 +2508,10 @@ public:
|
||||
messageBoxRefText=split3;
|
||||
}
|
||||
|
||||
void LoadMap(char*mapName) {
|
||||
std::ifstream f(mapName);
|
||||
void LoadMap(Map*map) {
|
||||
std::ifstream f("assets/maps/"+map->filename);
|
||||
std::string data;
|
||||
MAP_NAME=mapName;
|
||||
CURRENT_MAP=map;
|
||||
MAP_WIDTH=MAP_HEIGHT=-1;
|
||||
if (MAP!=NULL) {
|
||||
for (int y=0;y<MAP_HEIGHT;y++) {
|
||||
@ -2671,7 +2735,7 @@ public:
|
||||
for (int i=0;i<CURRENT_ENCOUNTER.entities.size();i++) {
|
||||
finalDamage=power->damage+rand()%power->damageRoll*sign(power->damage);
|
||||
Entity*ent=CURRENT_ENCOUNTER.entities[i];
|
||||
if (distancetoCoords({(float)((ent->x+CURRENT_ENCOUNTER.x)*32),(float)((ent->y+CURRENT_ENCOUNTER.y)*32)},coords*32)<=power->range) {
|
||||
if (distancetoCoords({(float)((ent->x+CURRENT_ENCOUNTER.x)*32)+ent->spr->sprite->width/2,(float)((ent->y+CURRENT_ENCOUNTER.y)*32)+ent->spr->sprite->height/2},coords*32)<=power->range) {
|
||||
ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp);
|
||||
CreateDisplayNumber(finalDamage,ent->x+CURRENT_ENCOUNTER.x+ent->spr->sprite->width*ent->sprScale.x/2/32,ent->y+CURRENT_ENCOUNTER.y+ent->spr->sprite->height*ent->sprScale.y/2/32,frameCount);
|
||||
ent->damageFrame=frameCount;
|
||||
@ -2685,7 +2749,7 @@ public:
|
||||
finalDamage=power->damage+rand()%power->damageRoll*sign(power->damage);
|
||||
Entity*ent=CURRENT_ENCOUNTER.entities[i];
|
||||
std::cout<<"Distance was "<<distancetoCoords({(float)((ent->x+CURRENT_ENCOUNTER.x)*32),(float)((ent->y+CURRENT_ENCOUNTER.y)*32)},coords*32)<<"\n";
|
||||
if (ent->hp>0&&distancetoCoords({(float)((ent->x+CURRENT_ENCOUNTER.x)*32),(float)((ent->y+CURRENT_ENCOUNTER.y)*32)},coords*32)<=power->range) {
|
||||
if (ent->hp>0&&distancetoCoords({(float)((ent->x+CURRENT_ENCOUNTER.x)*32)+ent->spr->sprite->width/2,(float)((ent->y+CURRENT_ENCOUNTER.y)*32)+ent->spr->sprite->height/2},coords*32)<=power->range) {
|
||||
ent->hp=std::clamp(ent->hp-finalDamage,0,ent->maxhp);
|
||||
CreateDisplayNumber(finalDamage,ent->x+CURRENT_ENCOUNTER.x+ent->spr->sprite->width*ent->sprScale.x/2/32,ent->y+CURRENT_ENCOUNTER.y+ent->spr->sprite->height*ent->sprScale.y/2/32,frameCount);
|
||||
ent->damageFrame=frameCount;
|
||||
|
Binary file not shown.
BIN
assets/flashflood_icon.png
Normal file
BIN
assets/flashflood_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
assets/moth.png
Normal file
BIN
assets/moth.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/sandworm.png
Normal file
BIN
assets/sandworm.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 878 B |
BIN
assets/snake.png
Normal file
BIN
assets/snake.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
BIN
assets/sunny_day.png
Normal file
BIN
assets/sunny_day.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Loading…
x
Reference in New Issue
Block a user