From b7ffa0ab772a7546141c4526adf0fc9cdef5e613 Mon Sep 17 00:00:00 2001 From: Shadow15510 Date: Mon, 31 May 2021 09:52:58 +0200 Subject: [PATCH] Change title screen for an animated one --- CMakeLists.txt | 1 + Plague.g1a | Bin 50600 -> 54748 bytes README.md | 69 ++++++----------------- assets-fx/explosion.png | Bin 0 -> 1725 bytes assets-fx/title.png | Bin 3894 -> 2982 bytes src/core.c | 3 +- src/data.c | 121 ++++++++++++++++++++++++++++++++++++++++ src/display_engine.c | 2 +- src/epidemic_engine.c | 8 +-- src/epidemic_engine.h | 4 +- src/main.c | 53 +++++++++++++++++- src/mutation_data.c | 52 ----------------- src/mutation_engine.c | 9 +-- 13 files changed, 199 insertions(+), 123 deletions(-) create mode 100644 assets-fx/explosion.png create mode 100644 src/data.c delete mode 100644 src/mutation_data.c diff --git a/CMakeLists.txt b/CMakeLists.txt index a37a897..62da10f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,7 @@ set(ASSETS_fx assets-fx/cursor.png assets-fx/title.png assets-fx/dna.png + assets-fx/explosion.png assets-fx/mutations_table/abilities_1.txt assets-fx/mutations_table/abilities_2.txt assets-fx/mutations_table/abilities_3.txt diff --git a/Plague.g1a b/Plague.g1a index 5e3df4abf519c68203cfe81760680fa0662aaaf8..1e81fb2623466fa8ab0ff3aab5219a89839e6e0c 100644 GIT binary patch delta 7933 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 F{6C0mmXH7d diff --git a/README.md b/README.md index c10a668..713f60c 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,22 @@ ## Présentation -De l'Anglais 'Plague' virus, ou peste et 'inc' diminutif de 'incorporated' peut être traduit par coopérative ou entreprise. Vous voila donc plongé dans 'L'Entreprise du Virus' un nom digne de 1984 : 'Le Ministère des Virus et de la Régulation Démographique' Ça nous fait un superbe acronyme : MVRD. J'aurais pu rajouter 'Et de la Santé Publique' on tape dans du très haut niveau là : MVRDESP aussi… Les Humains sont tellement fragiles, protégeons-les ! La plus grande menace pour l'Homme étant l'Homme, faites une bonne action : jouez à ce jeu ! +### Description du jeu -Plague inc est donc un jeu de stratégie où le but est de réduire l'humanité à néant… Simple ? Non ! Il vous faudra manipuler avec dextérité et prudence un virus pour anéantir des humains qui ne sont pas super collaboratifs… Pire, ces petits rigolos veulent sauver leurs peaux et recherchent activement un remède à ce mystérieux virus inconnu… +Plague inc est un jeu de stratégie où le but est de réduire l'humanité à néant… Simple ? Non ! Il vous faudra manipuler avec dextérité et prudence un virus pour anéantir des humains qui ne sont pas super collaboratifs… Pire, ces petits rigolos veulent sauver leurs peaux et recherchent activement un remède à ce mystérieux virus inconnu ! + +### Licence + +La totalité du projet est soumise à la licence GNU General Public Licence v3.0. ## Contrôles -Lancez le jeu, et pressez n'importe quelle touche pour passer l'écran principal. Une fois sur l'écran représentant la Terre, plusieurs choix s'offrent à vous : +Lancez le jeu, et pressez n'importe quelle touche pour passer l'écran principal. Une fois sur l'écran représentant la Terre, plusieurs choix s'offrent à vous : - [OPTN] permet d'afficher / cacher la barre en dessous du monde qui vous affiche vos points ADN et la barre de recherche des humains. - [VARS] permet de passer au gros du jeu : les mutations. Ce menu vous affiche vos points ADN, mais aussi les mutations sélectionnées ainsi que vos point de contagion, de sévérité, et de létalité. Dans ce menu, vous pouvez modifier tout cela. - - [x^2] permet d'accéder au menu statistique qui vous affiche les stats sur les humains. La barre symbolise la popuation totale : donc la somme de toute les barre doit donné une seule barre entière. + - [x^2] permet d'accéder au menu statistique qui vous affiche les stats sur les humains. La barre symbolise le pourcentage de la popuation totale : donc la somme de toute les barre doit donné une seule barre entière. -De manière générale, si vous êtes perdu, [EXIT] vous ramènera toujours sur la mappemonde. +De manière générale, si vous êtes perdu, [EXIT] vous ramènera toujours sur la mappemonde, ou au menu précédent. Dans le menu des mutations, vous pouvez modifier vos caractéristiques via les touches F1 à F6 comme suit : - [F1] sert à changer les symptômes de votre maladie @@ -23,65 +27,24 @@ Dans le menu des mutations, vous pouvez modifier vos caractéristiques via les t ## Mutations -Dans ce jeu, vous aurez le choix entre plusieurs mutations pour faire le plus de dégât possible parmis les humains ! Comme dans le jeu d'origine, celles-ci sont divisées en 3 catégories : Symptômes, Capacités, et Transmissions. +Dans ce jeu, vous aurez le choix entre plusieurs mutations pour faire le plus de dégât possible parmis les humains ! Comme dans le jeu d'origine, celles-ci sont divisées en 3 catégories : Symptômes, Capacités, et Transmissions. Toutes les mutations ont plusieurs spécificités : - Contagion qui détermine la proportion de personnes infectées - Sévérité touche la recherche, on peut la comprendre de la manière suivante : si la sévérité est élevée, la maladie est grave, elle entraine par conséquent une recherche active de la part des Humains. Néanmoins, votre compteur de points ADN, augmente plus vite… - Létalité détermine le taux de mortalité parmi les infectés… Une létalité élevée fera de votre maladie une veritable machine à tuer, mais cela vous dévoile au grand jour et accèlere la recherche ! - - ADN, du nom de la molècule qui compose le code génétique. Ici, rien à voir, les points ADN vous permettent d'acheter des mutations. - - Changement : certaines mutations par leur nature ralentissent la recherche, c'est ce ralentissement qui est symbolysé par changement. Concrétement, plus une maladie a de *changement* plus elle ralentit la recherche… + - le coût en points ADN. -### Symptômes +Dans le menu de mutation vous avez les statistiques de la mutation sélectionnée. Et entre parenthèses vous avez les modifications effectives. Le nombre entre parenthèses vous indique donc le nombre de points de contagion, sévérité, létalité, vous allez gagner (ou perdre si le nombre est négatif) si vous faites muter votre maladie. -Comme son nom l'indique, votre maladie aussi puissante soit-elle n'est pas invisible : elle présente certains symptômes qui ont leurs spécificités. Bien entendu, les symptômes présentés dans ce jeu font partie du jeu d'origines et leurs spécificités sont proches. +### Symptômes de la maladie -|Nom|Coût ADN|Pt de contagion|Pt de sévérité|Pt de létalité|Changement| -|:---:|:---:|:---:|:---:|:---:|:---:| -|nausée|2|1|1|0|0,5 -|vomissement|4|3|2|0|0,5 -|tumeurs|15|4|2|5|1 -|pneumonie|4|2|2|0|0,5 -|toux|3|2|1|0|0,5 -|arrêt total des organes|30|0|20|25|2 -|folie|20|6|15|0|2 -|paranoïa|5|0|4|0|1 -|lésions|10|5|4|0|0,5 -|hémorragie|20|5|15|15|0,5 -|plaies|3|2|1|0|0,5 -|infections|17|6|7|6|0,5 -|immunodéficience|12|2|6|4|1 -|inflammation|5|2|2|2|0,5 +Comme son nom l'indique, votre maladie aussi puissante soit-elle n'est pas invisible : elle présente certains symptômes qui ont leurs spécificités. Bien entendu, les symptômes présentés dans ce jeu font partie du jeu d'origine et leurs spécificités en sont proches. -### Capacités +### Capacités spéciales En mutant, votre maladie peut acquérir des capacités. Ces capacités lui permettent de mieux apréhender un milieu ou une situation, ainsi la capacité *Résistance au froid* donne un suplément de vigueur à votre virus dans les pays froid. Cela se traduit par une augmentation plus ou moins forte de la contagion dans ces régions du monde… -|Nom|Pt de contagion|Pt de sévérité|Pt de létalité|Coût ADN| -|:---:|:---:|:---:|:---:|:---:| -|résistance au froid|+4|||10 -|résistance au chand|+7|||15 -|résistance à l'environnement|+10|||30 -|résistance aux médicaments||+2|+2|15 -|résistance génétique||+5|+4|25 -|mutation accélérée||+8|+2|30 - ### Moyens de transmissions -Votre maladie aura tout le loisir de changer ses moyens de transmission ! Plus ou moins efficaces ceux-ci permettent à votre maladie d'accéder à des caractérestiques intéressantes qui lui permettront de coloniser le monde entier ! ;) - -|Nom|Pt de contagion|Coût ADN| -|:---:|:---:|:---:| -|air Nv 1|+2|9 -|air Nv 2|+5|15 -|air Nv 3|+8|20 -|air et eau|+10|30 -|eau Nv 1|+2|9 -|eau Nv 2|+4|12 -|oiseau Nv 1|+3|12 -|oiseau Nv 2|+5|18 -|animaux Nv 1|+2|10 -|animaux Nv 2|+6|16 -|sang Nv 1|+1|8 -|sang Nv 2|+4|14 -|sang Nv 3|+9|20 +Votre maladie aura tout le loisir de changer ses moyens de transmission ! Plus ou moins efficaces ceux-ci permettent à votre maladie d'accéder à des caractérestiques intéressantes qui lui permettront de coloniser le monde entier ! \ No newline at end of file diff --git a/assets-fx/explosion.png b/assets-fx/explosion.png new file mode 100644 index 0000000000000000000000000000000000000000..cd70249b5eec799d442e26eb7061e2de55518e71 GIT binary patch literal 1725 zcmV;u215CXP)EX>4Tx04R}tkv&MmP!xqvQ%glE4t6Lin4vmZ5EXIMDionYs1;guFnQ@8G-*gu zTpR`0f`dPcRR6lU)^quLxk6DuO|oS;m|sCE>Zg?&0J6U5saW-}`g*syT}RK9P8q8KzCVK|H-_ z8=Uuv!>lN)#OK6gCN)U>$aTf#H_nA73p_Jyrc?98VPdh+!Ab|SqNx#25l2-`r+gvf zvdVdjvsSLMR-gQZp`5<5%yp_EB(R7jND!f*iW17O5u;rv#X^eC;~xHjre7kLLaq`R zITlcX2D#}6|AXJNweph_Zc-=?1YR8HV+0890*#vEd>=bb;{@jJ_!g^xpzKYwp}y=Qw=;(lo2&4RCM> zj20++-Q(Teopby5PHTQYQn+%O%WDoo00009a7bBm001r{001r{0eGc9b^rhX2XskI zMF-^t9|a^TW?urc0000PbVXQnLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0}P*;Ht7XSbR zr%6OXRCwC$T*~qL~LOJ zB%0GKn|RQeHQ8n|7q5hSD~zr4>gwp>e1AVR^JI^gTK5UkB+6ScZT0&_Z+ODG{2fX| z4W0Q15LTSU3b#d?JY)ckf$Lt*_cKtl`OWg?@((_=Z1C6LmfwZ2X6f(hTC;Z)(0h{` z-jBn>0>lCl4V`@ap#k)W;*|^3N!^7O>4XeJoMvy5B9feAh)PF^>dm0vn>mt!XIY=V z>&!0%sZLfP>|~LCtDVzm+)8-Y!-0900`Da=c>}M+Bh$pcXmJdC}9MAe`!n* z9?~`bMVqppih#+TLRQ<8HG%bS6MIG;tyB+(JzG}tg*xh`v}8GFiP8aR4L;XP1~MC|V1(>CE^lf)V5Iu_i_ zESiY2j;h2PraHB0FKvB>CaWJW1L#LmXiwB?!{tg*8GmsE9$w*}1s$2kF!i7fRjE5I zFz*l`znEhNivAmPCm4S%Cl@if+Iu~rTglY8KKiC zmHw<|ok$=PY=PkgcEp&@52mN7;4Vb0Ht+nkqQwv% z9Tr&(GaBY1h`{XHIwv5`6o~a4Yq_Y2nd3EHK9WJeut>Flvd;+IqR9+dr#?<3Yl;Bi z<}}&u`-V40Y=Fj`T59*$%Af<+kbGNx8(`~Ngw;E0h{*F&_SlSxZ$n~C5@%*Rc~1JB z8PN;U5QgcCkBd1AP&`rYKW44I?r5CJkeO3x;eMwXi9v*2!2LJ`0V1+~kU7ZFqK7e) z_4L?B>`M(ye!H=v_PR+@;2i8CMWun;yu5w+3|KmU0o7d5qPCi#kZ=*hYe%zyZ+L~W)L?Gczyw&m^2B-c;JS=4l_HbZP2P#AQb z2qQoIN_s)*EkWhfaSQqVih>D{|Ef&|%OR09uE!5Vm}l4wqyKmn#v-VJQ=@CXV&Y?YXIa2(EeQkh{a;5t z%UL_aj_@Q-NX^m)*+bDhlzrm29wG3;KsP{qgY3n`c~>@W7UCOZyHRZFInwwC)Mj>b TPzLyn00000NkvXXu0mjfZ&xPL literal 0 HcmV?d00001 diff --git a/assets-fx/title.png b/assets-fx/title.png index f0beb69a4245ae4f7e449a89036e2db7eb414947..e929a45d59b0707fa340718176942bc3fd597027 100644 GIT binary patch literal 2982 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 Ef@o*aaR2}S diff --git a/src/core.c b/src/core.c index c526a40..9c397d6 100644 --- a/src/core.c +++ b/src/core.c @@ -147,5 +147,4 @@ void message(const char *msg[5]) } if (t >= 0) timer_stop(t); -} - +} \ No newline at end of file diff --git a/src/data.c b/src/data.c new file mode 100644 index 0000000..bcdd428 --- /dev/null +++ b/src/data.c @@ -0,0 +1,121 @@ +#include "mutation_engine.h" + + +const struct mutation symptoms_data[14] = +{ + {1, 1, 0, 2, 0, "NAUSEE"}, + {3, 2, 0, 4, 0, "VOMISSEMENT"}, + {2, 1, 0, 3, 0, "TOUX"}, + {2, 2, 0, 4, 0, "PNEUMONIE"}, + {4, 2, 5, 15, 25, "TUMEUR"}, + {2, 1, 0, 3, 0, "PLAIES"}, + {5, 4, 0, 10, 0, "LESIONS"}, + {5, 15, 15, 20, 30, "HEMORRAGIE"}, + {6, 7, 6, 17, 0, "INFECTION"}, + {2, 2, 2, 5, 0, "INFLAMMATION"}, + {2, 6, 4, 12, 0, "IMMUNITE"}, + {0, 4, 0, 5, 120, "PARANOIA"}, + {6, 15, 0, 20, 100, "FOLIE"}, + {0, 20, 25, 30, 250, "ARRET TOTAL"}, +}; + + +const struct mutation abilities_data[6] = +{ + {4, 0, 0, 10, 0, "FROID"}, + {7, 0, 0, 15, 0, "CHAUD"}, + {0, 5, 4, 25, 20, "GENETIQUE"}, + {0, 8, 8, 30, 50, "MUTATION+"}, + {10, 0, 0, 30, 0, "ENVIRON"}, + {0, 2, 2, 15, 50, "MEDICAMENT"}, +}; + + +const struct mutation transmissions_data[13] = +{ + { 2, 0, 0, 9, 0, "AIR 1"}, + { 5, 0, 0, 15, 0, "AIR 2"}, + { 8, 0, 0, 20, 0, "AIR 3"}, + {10, 0, 0, 30, 0, "AEROSOL"}, + { 2, 0, 0, 9, 0, "EAU 1"}, + { 4, 0, 0, 12, 0, "EAU 2"}, + { 2, 0, 0, 10, 0, "ANIMAL 1"}, + { 6, 0, 0, 16, 0, "ANIMAL 2"}, + { 3, 0, 0, 12, 0, "OISEAU 1"}, + { 6, 0, 0, 16, 0, "OISEAU 2"}, + { 1, 0, 0, 8, 0, "SANG 1"}, + { 4, 0, 0, 14, 0, "SANG 2"}, + { 9, 1, 1, 20, 0, "SANG 3"}, +}; + + +const struct mutation default_value = {0, 0, 0, 0, 0, "NONE"}; + + +const int world[][] = +{ + {00000000000000000000000000000000011100000001111111100000000000000000000000000000000000000000000000000000000000000000000000000000}, + {00000000000000000000000000001111111111111111111111110010000000000000000000000000000000000000000000000000000000000000000000000000}, + {00000000000000000000000000101111111111111111111111111110000000000000000000001101111000000000011000000000000000000000000000000000}, + {00000000000000000000000010111111111011111111111111111100000000001111110000000000000000000000111100000000000000000000000000000000}, + {00000000000000000001101101011111101111111111111111111000000000001111000000000000000000000000000111000000000000000000000000000000}, + {00000000000000000111001000101111000111111111111111111100000000000100000000000000000000000000000011000000000000000000000000000000}, + {00000000000000001111110110010000000110111111111111111000000000000000000000000000011100000000111111111000000001110000000000000000}, + {00000000000000000001100000111110000000001111111111111000000000000000000000000000100000000001111111110000000000000000000000000000}, + {00000000000000011110011010101111100000001111111111110000000000000000000000000001000001001111111111111111110000110000000000000000}, + {00000000000000011111111011101111110000001111111111110000000000000000000000000011000011111111111111111111110111111100000000001000}, + {00111110000000000011111101101111111100001111111111110000000000000001111000000000000011111111111111111111111111111111100011100000}, + {11111111111111111111110001111110011100000111111111000000000000000111111111000011111111111111111111111111111111111111111111111000}, + {01111111111111111111111111111110001111000111111100000000000000001111111111111111111111111111111111111111111111111111111111111111}, + {11111111111111111111111111111100111100000111110000011110000000001111011110111111111111111111111111111111111111111111111111111110}, + {00111111111111111111111111110110001110000011110000000100000000011110111111111111111111111111111111111111111111111111111111110000}, + {01111111111111111111111111100001110010000011100000000000000000111101111111111111111111111111111111111111111111111111111111000000}, + {11111110111111111111111111000000111000000000100000000000000000111110101111111111111111111111111111111111111111111110011010000000}, + {00111000000111111111111111100000111111000000000000000000011000101111111111111111111111111111111111111111111111000000110000000000}, + {00010000000111111111111111111000111111000000000000000000001000011101111111111111111111111111111111111111111110000001110000000000}, + {01000000000001111111111111111111111111110000000000000000111100011111111111111111111111111111111111111111111111000000100000000000}, + {00000000000000111111111111111110111111110000000000000000111111111111111111111111111111111111111111111111111111100000000000000000}, + {00000000000000111111111111111111111111110000000000000000001011111111111111111111111111111111111111111111111111010000000000000000}, + {00000000000000011111111111111111111110011000000000000000001111111111111111111111111111111111111111111111111111000000000000000000}, + {00000000000000001111111111111111111111100000000000000000000011111111111111111011111111111111111111111111111110000000000000000000}, + {00000000000000011111111111111111111010000000000000000000011111101111110000111011111111111111111111111111111100110000000000000000}, + {00000000000000001111111111111111111000000000000000000000011110011101111111111001111111111111111111111111110000100000000000000000}, + {00000000000000001111111111111111110000000000000000000000011100000101111111111001111111111111111111111100110000100000000000000000}, + {00000000000000001111111111111111100000000000000000000000001011110000001101111111111111111111111111111110010011000000000000000000}, + {00000000000000000111111111111111100000000000000000000000011111110000000011111111111111111111111111111110001110000000000000000000}, + {00000000000000000011111111111110000000000000000000000000011111111101100011111111111111111111111111111111001000000000000000000000}, + {00000000000000000001111111010010000000000000000000000000111111111111111111111011111111111111111111111110000000000000000000000000}, + {00000000000000000001111110000010100000000000000000000001111111111111111101111100111111111111111111111110000000000000000000000000}, + {00000000000000000000111110000000000000000000000000000011111111111111111111111111100011111111111111111101000000000000000000000000}, + {00000000000000000000001110001001100000000000000000000011111111111111111110111111100011111110011111110000000000000000000000000000}, + {00000000000000000000000111011000101110000000000000000011111111111111111111111111000000111100011111000000000000000000000000000000}, + {00000000000000000000000011111100000000000000000000000011111111111111111111011110000000111000000111100001000000000000000000000000}, + {00000000000000000000000000011100000000000000000000000011111111111111111111111000000000111000000111100001000000000000000000000000}, + {00000000000000000000000000000100011101000000000000000011111111111111111111111100000000010000000001000011100000000000000000000000}, + {00000000000000000000000000000011111111100000000000000001111111111111111111111100000000001000000100000100100000000000000000000000}, + {00000000000000000000000000000000111111111100000000000000011100111111111111111000000000000000001010000110000000000000000000000000}, + {00000000000000000000000000000000111111111100000000000000000000011111111111111000000000000000000110001100010000000000000000000000}, + {00000000000000000000000000000001111111111111000000000000000000011111111111100000000000000000000010011111000100000000000000000000}, + {00000000000000000000000000000001111111111111110000000000000000001111111111000000000000000000000011000011001111110010000000000000}, + {00000000000000000000000000000001111111111111111100000000000000001111111111000000000000000000000000110000000001111101000000000000}, + {00000000000000000000000000000000111111111111111100000000000000001111111111000000000000000000000000000111100000101000010000000000}, + {00000000000000000000000000000000111111111111111000000000000000000111111111000000000000000000000000000000001110000000000000000000}, + {00000000000000000000000000000000011111111111110000000000000000001111111111000100000000000000000000000000111100010000000000000000}, + {00000000000000000000000000000000001111111111110000000000000000001111111111011100000000000000000000000000111111110000000000010000}, + {00000000000000000000000000000000000111111111110000000000000000001111111110001000000000000000000000000001111111111000000000000000}, + {00000000000000000000000000000000000111111111100000000000000000000111111110011000000000000000000000001111111111111100000000000000}, + {00000000000000000000000000000000000111111110000000000000000000000111111100011000000000000000000000001111111111111110000000000000}, + {00000000000000000000000000000000000111111110000000000000000000000111111100000000000000000000000000000111111111111110000000000000}, + {00000000000000000000000000000000001111111110000000000000000000000011111000000000000000000000000000000111111111111110000000000000}, + {00000000000000000000000000000000001111111100000000000000000000000011110000000000000000000000000000000111100011111110000000000000}, + {00000000000000000000000000000000001111111000000000000000000000000001000000000000000000000000000000000100000001111100000001000000}, + {00000000000000000000000000000000001111110000000000000000000000000000000000000000000000000000000000000000000000111100000000110000}, + {00000000000000000000000000000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000}, + {00000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000001000000001000000}, + {00000000000000000000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000}, + {00000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000}, + {00000000000000000000000000000000011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}, + {00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}, + {00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}, + {00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}, +}; \ No newline at end of file diff --git a/src/display_engine.c b/src/display_engine.c index e9ee567..560d009 100644 --- a/src/display_engine.c +++ b/src/display_engine.c @@ -89,7 +89,7 @@ void display_mutation_buy(const struct cursor c, const int mutation_menu, const const int id = table[c.y][c.x]; struct mutation *mutation_data = get_mutation_data(mutation_menu, id); - struct mutation *mutation_sel = get_mutation_data(mutation_menu, current_game->mutations_selected[mutation_menu]); + struct mutation *mutation_sel = get_mutation_data(mutation_menu, current_game->mutations_selected[mutation_menu - 1]); dclear(C_WHITE); diff --git a/src/epidemic_engine.c b/src/epidemic_engine.c index 4caaf25..ee21ece 100644 --- a/src/epidemic_engine.c +++ b/src/epidemic_engine.c @@ -1,10 +1,10 @@ #include "epidemic_engine.h" -int * count(const int epidemic_grid[10][20], int counter[4]) +int * count(const int epidemic_grid[64][128], int counter[4]) { - for (int i = 0; i < 10; i ++) + for (int i = 0; i < 64; i ++) { - for (int j = 0; j < 20; j ++) + for (int j = 0; j < 128; j ++) { counter[epidemic_grid[i][j]] ++; } @@ -12,7 +12,7 @@ int * count(const int epidemic_grid[10][20], int counter[4]) return counter; } -int can_become_infected(const int epidemic_grid[10][20], const int i, const int j) +int can_become_infected(const int epidemic_grid[64][128], const int i, const int j) { return 0; diff --git a/src/epidemic_engine.h b/src/epidemic_engine.h index 132d939..2df329b 100644 --- a/src/epidemic_engine.h +++ b/src/epidemic_engine.h @@ -2,9 +2,9 @@ #define _EPIDEMIC_ENGINE_H // count : return an int *counter[4] of the form {healthy, infected, healed, dead} -int * count(const int epidemic_grid[10][20], int counter[4]); +int * count(const int epidemic_grid[64][128], int counter[4]); // can_become_infected : return 0 if the case (i, j) isn't infectable, 1 else -int can_become_infected(const int epidemic_grid[10][20], const int i, const int j); +int can_become_infected(const int epidemic_grid[64][128], const int i, const int j); #endif /* _EPIDEMIC_ENGINE_H */ \ No newline at end of file diff --git a/src/main.c b/src/main.c index 6e58790..3285080 100644 --- a/src/main.c +++ b/src/main.c @@ -69,12 +69,59 @@ int main(void) static void title_screen(void) { extern bopti_image_t img_title; + extern bopti_image_t img_explosion; - dclear(C_WHITE); - dimage(0, 0, &img_title); - + static volatile int tick_250 = 1; + static volatile int tick_100 = 1; + int t_250 = timer_configure(TIMER_ANY, 250000, GINT_CALL(callback_tick, &tick_250)); + int t_100 = timer_configure(TIMER_ANY, 100000, GINT_CALL(callback_tick, &tick_100)); + + if (t_250 >= 0) timer_start(t_250); + if (t_100 >= 0) timer_start(t_100); + + dclear(C_BLACK); dupdate(); + while (!tick_250) sleep(); + tick_250 = 0; + + dsubimage(0, 0, &img_title, 0, 0, 128, 64, DIMAGE_NONE); + dupdate(); + while (!tick_250) sleep(); + tick_250 = 0; + + for (int frame = 0; frame < 5; frame ++) + { + dclear(C_BLACK); + dsubimage(0, 0, &img_title, 0, 0, 128, 64, DIMAGE_NONE); + dsubimage(72, 5, &img_explosion, 41 * frame, 0, 40, 40, DIMAGE_NONE); + dupdate(); + while (!tick_100) sleep(); + tick_100 = 0; + } + + dclear(C_BLACK); + dsubimage(0, 0, &img_title, 0, 65, 128, 64, DIMAGE_NONE); + dupdate(); + while (!tick_250) sleep(); + tick_250 = 0; + + for (int i = 0; i < 5; i ++) + { + dclear(C_BLACK); + dsubimage(0, 0, &img_title, 0, ((i % 2) + 1) * 65, 128, 64, DIMAGE_NONE); + dupdate(); + while (!tick_250) sleep(); + tick_250 = 0; + } + + dclear(C_BLACK); + dsubimage(0, 0, &img_title, 0, 130, 128, 64, DIMAGE_NONE); + dupdate(); + getkey(); + + if (t_250 >= 0) timer_stop(t_250); + if (t_100 >= 0) timer_stop(t_100); } diff --git a/src/mutation_data.c b/src/mutation_data.c deleted file mode 100644 index 28410b1..0000000 --- a/src/mutation_data.c +++ /dev/null @@ -1,52 +0,0 @@ -#include "mutation_engine.h" - - -const struct mutation symptoms_data[14] = -{ - {1, 1, 0, 2, 0, "NAUSEE"}, - {3, 2, 0, 4, 0, "VOMISSEMENT"}, - {2, 1, 0, 3, 0, "TOUX"}, - {2, 2, 0, 4, 0, "PNEUMONIE"}, - {4, 2, 5, 15, 1, "TUMEUR"}, - {2, 1, 0, 3, 0, "PLAIES"}, - {5, 4, 0, 10, 0, "LESIONS"}, - {5, 15, 15, 20, 0, "HEMORRAGIE"}, - {6, 7, 6, 17, 0, "INFECTION"}, - {2, 2, 2, 5, 0, "INFLAMMATION"}, - {2, 6, 4, 12, 1, "IMMUNITE"}, - {0, 4, 0, 5, 1, "PARANOIA"}, - {6, 15, 0, 20, 2, "FOLIE"}, - {0, 20, 25, 30, 2, "ARRET TOTAL"}, -}; - - -const struct mutation abilities_data[6] = -{ - {4, 0, 0, 10, 0, "FROID"}, - {7, 0, 0, 15, 0, "CHAUD"}, - {0, 5, 4, 25, 0, "GENETIQUE"}, - {0, 8, 8, 30, 2, "MUTATION+"}, - {10, 0, 0, 30, 0, "ENVIRON"}, - {0, 2, 2, 15, 1, "MEDICAMENT"}, -}; - - -const struct mutation transmissions_data[13] = -{ - { 2, 0, 0, 9, 0, "AIR 1"}, - { 5, 0, 0, 15, 0, "AIR 2"}, - { 8, 0, 0, 20, 0, "AIR 3"}, - {10, 0, 0, 30, 0, "AEROSOL"}, - { 2, 0, 0, 9, 0, "EAU 1"}, - { 4, 0, 0, 12, 0, "EAU 2"}, - { 2, 0, 0, 10, 0, "ANIMAL 1"}, - { 6, 0, 0, 16, 0, "ANIMAL 2"}, - { 3, 0, 0, 12, 0, "OISEAU 1"}, - { 6, 0, 0, 16, 0, "OISEAU 2"}, - { 1, 0, 0, 8, 0, "SANG 1"}, - { 4, 0, 0, 14, 0, "SANG 2"}, - { 9, 1, 1, 20, 0, "SANG 3"}, -}; - - -const struct mutation default_value = {0, 0, 0, 1, 0, "VIDE"}; \ No newline at end of file diff --git a/src/mutation_engine.c b/src/mutation_engine.c index 8b0931a..78e6783 100644 --- a/src/mutation_engine.c +++ b/src/mutation_engine.c @@ -1,8 +1,7 @@ #include #include #include - -#include +#include #include "mutation_engine.h" @@ -156,7 +155,7 @@ void update_disease(struct game *current_game) // research parameters current_game->limit = RESEARCH_LIMIT + symptom->changement + ability->changement + transmission->changement; - current_game->priority = floor((symptom->severity + ability->severity + transmission->severity) / 10); + current_game->priority = floor((current_game->severity + current_game->lethality) / 2); } @@ -198,6 +197,4 @@ void init_mat(int x, int y, int dest[][x], int src[][x]) dest[j][i] = src[j][i]; } } -} - - +} \ No newline at end of file