From 47a8f30a4598ea447095a082e01f40290f43f1bc Mon Sep 17 00:00:00 2001 From: Shadow15510 Date: Fri, 4 Jun 2021 23:25:14 +0200 Subject: [PATCH] Better mecanics and end game gestion --- Plague.g1a | Bin 69568 -> 69612 bytes src/core.c | 12 +++++++++--- src/core.h | 2 +- src/data.c | 22 +++++++++++----------- src/epidemic_engine.c | 3 ++- src/main.c | 16 +++++++++------- src/mutation_engine.c | 2 +- src/mutation_engine.h | 2 +- src/save.c | 6 ++++++ src/save.h | 3 +++ 10 files changed, 43 insertions(+), 25 deletions(-) diff --git a/Plague.g1a b/Plague.g1a index c155969723fd8da8ec5218aa982773ce141de80e..779e45870a8bd84aad27c0eed6ba304ed683c4d3 100644 GIT binary patch delta 6304 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 delta 6248 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 diff --git a/src/core.c b/src/core.c index e5c1133..3202c87 100644 --- a/src/core.c +++ b/src/core.c @@ -9,7 +9,7 @@ #include "display_engine.h" -void next_frame(struct game *current_game) +int next_frame(struct game *current_game) { for (int i = 0; current_game->planes[i]; i++) { @@ -60,7 +60,7 @@ void next_frame(struct game *current_game) current_game->time = 0; // Update the game - current_game->dna = current_game->dna + 1 + floor(current_game->severity / 25); + current_game->dna = current_game->dna + 1 + floor(current_game->severity / 10); if (current_game->dna > 30) current_game->dna = 30; current_game->research += current_game->priority; if (current_game->research > current_game->limit) current_game->research = current_game->limit; @@ -72,8 +72,10 @@ void next_frame(struct game *current_game) { if (current_game->humans[0]) message("VOUS AVEZ PERDU."); else message("VOUS AVEZ GAGNE !"); + return 0; } } + return 1; } @@ -87,7 +89,11 @@ int get_inputs(const int background, int *mutation_menu) *mutation_menu = 4; return 3; } - if (key == KEY_SQUARE) return 6; + if (key == KEY_SQUARE) + { + if (background == 1 || background == 2) return 6; + else if (background == 6) return 1; + } if (key == KEY_ALPHA) { diff --git a/src/core.h b/src/core.h index f756376..cb46e65 100644 --- a/src/core.h +++ b/src/core.h @@ -90,7 +90,7 @@ struct cursor int get_inputs(const int background, int *mutation_menu); // next_frame : compute the plane's positions -void next_frame(struct game *current_game); +int next_frame(struct game *current_game); // rtc_key : get the key with RTC system int rtc_key(void); diff --git a/src/data.c b/src/data.c index 1c92e66..ce19a94 100644 --- a/src/data.c +++ b/src/data.c @@ -5,7 +5,7 @@ const struct mutation symptoms_data[14] = { {10, 10, 0, 2, 0, "NAUSEE", "DONNE DES NAUSEES"}, - {15, 10, 0, 10, 0, "VOMISSEMENT", "PROVOQUE DES REJETS GESTRIQUES"}, + {15, 10, 0, 10, 0, "VOMISSEMENT", "PROVOQUE DES REJETS GASTRIQUES"}, {10, 5, 0, 3, 0, "TOUX", "LA PROJECTION DE PARTICULE AUGMENTE LA CONTAGION"}, {15, 20, 5, 10, 0, "PNEUMONIE", "AFFECTION PULMONAIRE PEU MORTELLE"}, { 0, 30, 20, 15, 10, "TUMEUR", "PEU CONTAGIEUX, MAIS MORTEL"}, @@ -25,8 +25,8 @@ const struct mutation abilities_data[6] = { {15, 0, 0, 10, 0, "FROID", "RESISTANCE AU FROID"}, {15, 0, 0, 15, 0, "CHAUD", "RESISTANCE AU CHAUD"}, - { 0, 10, 4, 25, 10, "GENETIQUE", "LE GENOME MUTE, RALENTISSANT LE SEQUENCAGE ADN"}, - {10, 40, 20, 30, 20, "MUTATION+", "LE VIRUS MUTE, BLOQUANT LES CHERCHEURS"}, + { 0, 10, 0, 25, 10, "GENETIQUE", "LE GENOME MUTE, RALENTISSANT LE SEQUENCAGE ADN"}, + {10, 10, 20, 30, 30, "MUTATION+", "LE VIRUS MUTE, BLOQUANT LES CHERCHEURS"}, {30, 10, 0, 30, 0, "ENVIRON", "LE VIRUS RESISTE AUX ENVIRONNEMENTS LES PLUS HOSTILES"}, { 0, 15, 30, 15, 20, "MEDICAMENT", "RESISTANCES AU MEDICAMENTS"}, }; @@ -38,15 +38,15 @@ const struct mutation transmissions_data[13] = {10, 10, 0, 15, 0, "AIR 2", "TRANSMISSION PAR L'AIR"}, {20, 10, 0, 20, 0, "AIR 3", "TRANSMISSION PAR L'AIR"}, {40, 15, 0, 30, 0, "AEROSOL", "TRANSMISSION PAR L'AIR ET PAR L'EAU"}, - {10, 0, 0, 9, 0, "EAU 1", "TRANSMISSION PAR L'EAU"}, - {20, 10, 0, 12, 0, "EAU 2", "TRANSMISSION PAR L'EAU"}, - {20, 0, 0, 10, 0, "ANIMAL 1", "LE VIRUS PEUT PASSER DE L'ANIMAL À L'HOMME"}, - {40, 10, 0, 16, 0, "ANIMAL 2", "CAPACITE DE TRANSMISSION HOMME-ANIMAL"}, - {20, 0, 0, 12, 0, "OISEAU 1", "CAPACITE DE TRANSMISSION ENTRE LES OISEAU"}, - {40, 10, 0, 16, 0, "OISEAU 2", "LES OISEAUX DEVIENNENT DES VECTEURS VIRALS"}, + {10, 0, 0, 15, 0, "EAU 1", "TRANSMISSION PAR L'EAU"}, + {20, 10, 0, 20, 0, "EAU 2", "TRANSMISSION PAR L'EAU"}, + {20, 0, 5, 12, 0, "ANIMAL 1", "LE VIRUS PEUT PASSER DE L'ANIMAL À L'HOMME"}, + {40, 10, 0, 25, 0, "ANIMAL 2", "CAPACITE DE TRANSMISSION HOMME-ANIMAL"}, + {20, 0, 0, 15, 0, "OISEAU 1", "LES OISEAUX TRANSMETTENT LE VIRUS"}, + {40, 10, 0, 25, 0, "OISEAU 2", "LES OISEAUX TRANSMETTENT LE VIRUS"}, {10, 0, 0, 8, 0, "SANG 1", "LE VIRUS SE TRANSMET PAR LE SANG"}, - {20, 10, 0, 14, 0, "SANG 2", "LE VIRUS SE TRANSMET PAR LE SANG"}, - {40, 15, 0, 20, 0, "SANG 3", "LE VIRUS SE TRANSMET PAR LE SANG"}, + {20, 10, 0, 15, 0, "SANG 2", "LE VIRUS SE TRANSMET PAR LE SANG"}, + {40, 15, 0, 25, 0, "SANG 3", "LE VIRUS SE TRANSMET PAR LE SANG"}, }; diff --git a/src/epidemic_engine.c b/src/epidemic_engine.c index f10108a..aa45cc8 100644 --- a/src/epidemic_engine.c +++ b/src/epidemic_engine.c @@ -41,7 +41,8 @@ void epidemic_simulation(struct game *current_game) uint8_t *current_grid = calloc(current_game->grid.width * current_game->grid.height, sizeof(uint8_t)); init_tab(current_game->grid.width * current_game->grid.height, current_grid, current_game->grid.data); - int healed_rate = ceil((100 * current_game->research / current_game->limit)); + int healed_rate = floor((100 * current_game->research / current_game->limit)); + if (!bernoulli(healed_rate)) healed_rate = 0; // Make the epidemic grid evolove for (int i = 0; i < current_game->grid.width; i ++) diff --git a/src/main.c b/src/main.c index e23b835..383ac60 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,6 @@ /* Project name ......: Plague - Version ...........: 1.3 + Version ...........: 1.3.1 Last modification .: 4 June 2021 code and assets provided with licence : @@ -24,7 +24,7 @@ static void title_screen(void); // main_loop : display background, foreground and manage inputs -void main_loop(struct game *current_game); +int main_loop(struct game *current_game); int main(void) @@ -74,9 +74,10 @@ int main(void) read_save(¤t_game); - main_loop(¤t_game); + int to_save = main_loop(¤t_game); - write_save(¤t_game); + if (to_save) write_save(¤t_game); + else delete_save(); // Free memory free(current_game.grid.data); @@ -128,10 +129,10 @@ static void title_screen(void) } -void main_loop(struct game *current_game) +int main_loop(struct game *current_game) { int background = 1, mutation_menu = 4; - int end = 0; + int end = 0, to_save = 1; static volatile int tick = 1; int t = timer_configure(TIMER_ANY, ENGINE_TICK*1000, GINT_CALL(callback_tick, &tick)); @@ -150,7 +151,7 @@ void main_loop(struct game *current_game) dupdate(); // Compute the motion of planes, DNA points and infectious model - next_frame(current_game); + to_save = next_frame(current_game); // Get inputs from the keyboard and manage it background = get_inputs(background, &mutation_menu); @@ -165,5 +166,6 @@ void main_loop(struct game *current_game) } if (t >= 0) timer_stop(t); + return to_save; } diff --git a/src/mutation_engine.c b/src/mutation_engine.c index 65a0f93..b4fac43 100644 --- a/src/mutation_engine.c +++ b/src/mutation_engine.c @@ -133,7 +133,7 @@ int mutation_buy(struct game *current_game, const struct cursor c, const int mut // Update update_disease(current_game); - current_game->priority += ceil((mutation_data->severity + mutation_data->lethality)/8); + current_game->priority += ceil((mutation_data->severity + mutation_data->lethality) / 10); message("MUTATION ACHETEE"); } else message("ACHAT IMPOSSIBLE"); diff --git a/src/mutation_engine.h b/src/mutation_engine.h index 0a31ef0..8b2ec28 100644 --- a/src/mutation_engine.h +++ b/src/mutation_engine.h @@ -5,7 +5,7 @@ #include "display_engine.h" // Basic limit research -#define RESEARCH_LIMIT 200 +#define RESEARCH_LIMIT 300 // mutation_table : contain the map of the mutation available struct mutation_table diff --git a/src/save.c b/src/save.c index addae58..34b314c 100644 --- a/src/save.c +++ b/src/save.c @@ -90,4 +90,10 @@ void write_save(const struct game *current_game) // Close file BFile_Close(fd); +} + + +void delete_save(void) +{ + BFile_Remove(filename); } \ No newline at end of file diff --git a/src/save.h b/src/save.h index f4dd4bc..3a95910 100644 --- a/src/save.h +++ b/src/save.h @@ -9,4 +9,7 @@ void read_save(struct game *current_game); // write_save : write the savefile void write_save(const struct game *current_game); +// delete_save : delete the savefile +void delete_save(void); + #endif /* _SAVE_H */ \ No newline at end of file