From 5e5e17c540409255d66d6775531d4bc668109412 Mon Sep 17 00:00:00 2001 From: Shadow15510 Date: Fri, 4 Jun 2021 18:21:01 +0200 Subject: [PATCH] Add descriptions for mutations --- Plague.g1a | Bin 67188 -> 69588 bytes assets-fx/bground.png | Bin 19289 -> 5922 bytes src/core.c | 2 +- src/data.c | 68 +++++++++++++++++++++--------------------- src/display_engine.c | 22 ++++++++++++++ src/display_engine.h | 3 ++ src/mutation_engine.c | 5 ++++ src/mutation_engine.h | 2 +- 8 files changed, 66 insertions(+), 36 deletions(-) diff --git a/Plague.g1a b/Plague.g1a index 4b30fe9932317767e712e337ba1c260ad0244513..c386ff4e96990c25b4b95e6603c32dc802f80fc6 100644 GIT binary patch delta 7337 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 GAJIMt;g-S9e3ndIs;{Y_l1ad zb|2?^_q*T!`+fI*?}n)#DQ8Y8R}H@Vs|(%!A9h79`~iQZ-zA z(g8tKwMa8Up3qi%U9Hs&5lRRVlr0MZjC9jIwKiM}LOaP&wh*#RtJaF3Z@CCAXkjxL zm9h+d_8Orljo>Q@Rg7~0o=d35_qiTY{DJ)E#J7YCOE`(4VN)>hP?^xbZjr_mq97_; z*tl}Cz;7m0oeW>GgszgFCh35*agpR@mm*F~v=ZGTEO{o18p*MA8*^l*v{&9>5o#zSNoD4q!LVJAx$n;(W z@cBJLc`O#JZ4Kg3f);-r^E9SY7YT&bs&fQ^^{QQQT~nK)FZ>4yuj@IqU|IG3f4!l+ z@WG~NHmAOwxw1cKMP8Ba;fh2XtXppl4i5etE1-m~#5}kPDOS@XWE!sQ{QZd}Lcb5X z!AR&j521iIyF3;LmTv`POJmn$k4M;eur7~^0kP%0VKtC=%;>+(fQT*^_+`l8bdxYC#TeCpahp*JLVg*7kS(21)j z6NUJUG?(?GwL#ivIx%N5UJ?If+AiB<+{PnaVJ|P-)G>98tL;6k@Dk#<1nck3tgoJk z>WcIf`NggXzoKh}UpO6h7$zsf!&Y;XB*GJOLw9%~Z1tq-!dF84BCfpfKSDh8AG2lZ zoHm=@sM}+D=VqAcmzK?@4__!UeX_s8bo;;_hv5sM?JAwCZVPj&SYJk@r^2j`O6)tA z^zw9dQqSJwNk8^V!Z-CFC1shSC#+RpCB0{fNctqOz1MG!_?*;5dSd*CyA%~O8T53R z|Ikt4rjW7;v_oAj8Dpn^H(i}F(B<;H{rvG8QOyhD>blRC#~)gFI-y+sbYIP<*RxXw z{yqD&v;MO{cAGiEd)&n;6q!$+F3!wdv+kzwM2c0N+vhs&WxCtVf^OYpdSOJ8(mCT2 zc8VEkd8?`BpO<+RflXNnH|EU|#Ree=5QKW|G$&k@O-s>*`~w zX3P=0?gRf0m-<-my}xEzi@q#^gztzTZQ-7`+p-)R4n8>Wpy|Q>2m2np@PI@#KJecE zc=d(-m<5=%~uJ{FkV)%v6Ja1o^{z4#~Jt3>+=CnZ-j1JGTg3(H=aQysgBj`Qck(2)?*yBK4x#ch77CXiSy?<6Dmcby9Ph^8j8B2cNG+kMv4p0;cnShbfy0y` zHn8@!xRj0{`yp$Jvm|Rmy{MpbMs_i=P_rHhNr0+xjLju(dvscsv`=FkYbSW9v6hV` zHHho4uw;FmHl-u6s?jp;fkFG`=n-UtvSW z6cKXM#sa8qU07IvS}jXn|17LoCI9;O1<^PrSvPJ|r0@0xzaG1XCc+#B3u-;7tTP;1 zFhox%EUAtSB%IJC88({YQk}H&4~nEq9TBs$k&ui}k)VqhXFxXttb}G36T0g%|IlDw z91wd2bL!`W{3kb;MwmMNebH}bSJFqs&8@7%^bQ6ojUE-m&Esq!<0v1DnQw_F+u3-g zU0i!dihXiYP*D`rIu=xu(!G7GFi!Tvc3*Ro;`Jt@>S~Bn7 zJvq-sd;1_Y%cX;ordsC9dBw06kwa)jA)@C7O6H(&FCa{b=2RZB$%tz|8lX$ zTtj?LRzO)_G^KPH%t#s1gg2MWaI^m00!_}S>7^TyriN+4F6PGeJe4Tsj7s{aY80xc zuobo>u=e~oaZ4{dm!FM63gp)a8V5MeYBb_*mQ}D%Ww}GBdz|$bl*(vE%voqK zH1`pK5QiZU);4E)zMn$|IH}^qA36bW%UjwXnCAm<9D889 z=RBb`D)7rB=eBr3wcAVR4{9af_GnQh`@YEhHbWe*+geyyPH17mZ(uG+y&S z5QRZDTKhwdfL6dWf)nC-wm|dDETLzRBuodM{i7-u@#NJ?=bytJ68A#7C9s%R0g`*^4ju=<)(K&U0&bA`-zwB_H2%N9x`=Qw#!>An zo=6mr`4~O1AwI>s)a_GR9>JZG@5FaSlymyzZ^Y%sS8{IU`^n)xLQkWHuRSAtiz2m|tfSkd;`fv8Ytr@ZPEo}D%gbJgwxNB6Yx`|P%Ud!+q-V~o zT1$^5Be!??#+4uXYB$z|nh4!8y9R;O+*@Q4;2yF8Gdk~-*||-G=AK$&=Q@d6);_&Ybl!UA%=(S=uli&bokxSK z9D67hLTKf6&}Z4N--}^IXGhm#*PKlV){)l|K+kd->b^L~$c%5;^UgMc-0~nZrDDVWDs^hRZk|j>V{11WsDPUxW@P^jwN79X0|_ z1_Y^uByuLWX?Sz3&=azj1wzOo=W(xGKA-uxxnfMXxsa-sbHR4v&DBCrNUaux|4Y7+ zO>=WCU_a_DO4g^tt&3`*sDq~Ia0loi8W#_o{9z}>A9O*Fs#Bw}TCA1$rboe^n zTt2vpkRBbr1sazRh7+<$hxw6MK~k5D@wIS6vv_lbM*;K^!p;xJm5!*v;!6(2wh}mJ zbH5=Pk1ZG<9nk~lrb4mtk;_x29f>oK0wsixnVe;}m0QYWQV8c{;;>bOL_@etudvv+b7^@5MIN6dWSh%jD~4W? z)l$jF?IrdSw{2%7_g`M=wzzE$I}+GNO6*lOm%~oVONwnpmhuw2n-IIDvZ4f%RgQ97 zMMa5BbUP}mp-Y_hlFD+2-Np^ME6YnNU7(d&Y$X+hl$BJ#Yz48FlsjB5%XThgvu`UY z;@%(+yv$NwE<5M8Y~`EEEA2Knw?&*5m&NX|SvbDUQ6@XExLhS}z1!iolu1AT$A1u1 zBkjmzht%|I4X%G5N=H7ZOOXES=Iq90bRNxc-goJaMmQ>@cbvy%Y!vW2LQkM#olxuS z0ZsuBJON%Ox>4sKAaJQW5=tukyDvlVy{U~7UTR}b`G&`1;SW9PC-ey4){j4&Mqk!H wPQ;A1^y1s=e@Le>jqC_XkMoIKu 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 diff --git a/src/core.c b/src/core.c index 8c0a73e..4beb809 100644 --- a/src/core.c +++ b/src/core.c @@ -92,7 +92,7 @@ int get_inputs(const int background, int *mutation_menu) if (key == KEY_OPTN && (background == 1 || background == 2)) return (background % 2) + 1; if (key == KEY_VARS) { - *mutation_menu = 1; + *mutation_menu = 4; return 3; } if (key == KEY_SQUARE) return 6; diff --git a/src/data.c b/src/data.c index 4854748..23932a4 100644 --- a/src/data.c +++ b/src/data.c @@ -4,53 +4,53 @@ // (contation, severity, lethality, DNA cost, change to cure requirement) const struct mutation symptoms_data[14] = { - {10, 10, 0, 2, 0, "NAUSEE"}, - {15, 10, 0, 10, 0, "VOMISSEMENT"}, - {10, 5, 0, 3, 0, "TOUX"}, - {15, 20, 0, 10, 0, "PNEUMONIE"}, - {10, 30, 20, 15, 10, "TUMEUR"}, - {15, 10, 5, 4, 0, "PLAIES"}, - {10, 10, 10, 10, 0, "LESIONS"}, - {30, 20, 20, 20, 5, "HEMORRAGIE"}, - {25, 15, 10, 17, 0, "INFECTION"}, - {15, 10, 5, 5, 0, "INFLAMMATION"}, - {10, 15, 20, 15, 0, "IMMUNITE"}, - { 0, 20, 0, 15, 10, "PARANOIA"}, - { 0, 15, 15, 20, 10, "FOLIE"}, - { 0, 30, 30, 30, 20, "ARRET TOTAL"}, + {10, 10, 0, 2, 0, "NAUSEE", "DONNE DES NAUSEES"}, + {15, 10, 0, 10, 0, "VOMISSEMENT", "PROVOQUE DES REJETS GESTRIQUES"}, + {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"}, + {15, 10, 5, 4, 0, "PLAIES", "LA PEAU S'ASSECHE ET DEVIENT CASSANTE"}, + {10, 10, 10, 10, 0, "LESIONS", "BLOQUE LA CICATRISATION"}, + {30, 20, 20, 20, 5, "HEMORRAGIE", "BLOQUE L'ACTION DES PLAQUETTES"}, + {25, 15, 10, 17, 0, "INFECTION", "CREER DES FOYERS D'INFECTION DANS LE CORPS"}, + {15, 10, 5, 5, 0, "INFLAMMATION", "PROVOQUE DES ROUGEURS ET DEMANGEAISONS"}, + {10, 15, 20, 15, 0, "IMMUNITE", "BLOQUE L'ACTION DU SYSTEME IMMUNITAIRE"}, + { 0, 20, 0, 15, 10, "PARANOIA", "LES CHERCHEURS N'ARRIVENT PLUS A COOPERER ENTRE EUX"}, + { 0, 15, 15, 20, 10, "FOLIE", "PROVOQUE DES CRISES D'HYSTERIES"}, + { 0, 30, 30, 30, 20, "ARRET TOTAL", "EMPECHE LES ORGANES DE FONCTIONNER "}, }; const struct mutation abilities_data[6] = { - {15, 0, 0, 10, 0, "FROID"}, - {15, 0, 0, 15, 0, "CHAUD"}, - { 0, 10, 4, 25, 10, "GENETIQUE"}, - {10, 40, 20, 30, 20, "MUTATION+"}, - {30, 10, 0, 30, 0, "ENVIRON"}, - { 0, 15, 30, 15, 20, "MEDICAMENT"}, + {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"}, + {30, 10, 0, 30, 0, "ENVIRON", "LE VIRUS RESISTE AUX ENVIRONNEMENTS LES PLUS HOSTILES"}, + { 0, 15, 30, 15, 20, "MEDICAMENT", "RESISTANCES AU MEDICAMENTS"}, }; const struct mutation transmissions_data[13] = { - { 5, 0, 0, 9, 0, "AIR 1"}, - {10, 10, 0, 15, 0, "AIR 2"}, - {20, 10, 0, 20, 0, "AIR 3"}, - {40, 15, 0, 30, 0, "AEROSOL"}, - {10, 0, 0, 9, 0, "EAU 1"}, - {20, 10, 0, 12, 0, "EAU 2"}, - {20, 0, 0, 10, 0, "ANIMAL 1"}, - {40, 10, 0, 16, 0, "ANIMAL 2"}, - {20, 0, 0, 12, 0, "OISEAU 1"}, - {40, 10, 0, 16, 0, "OISEAU 2"}, - {10, 0, 0, 8, 0, "SANG 1"}, - {20, 10, 0, 14, 0, "SANG 2"}, - {40, 15, 0, 20, 0, "SANG 3"}, + { 5, 0, 0, 9, 0, "AIR 1", "TRANSMISSION PAR L'AIR"}, + {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, 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"}, }; -const struct mutation default_value = {0, 0, 0, 0, 0, "NONE"}; +const struct mutation default_value = {0, 0, 0, 0, 0, "NONE", "NONE"}; /* Encoded data for the world diff --git a/src/display_engine.c b/src/display_engine.c index 6cc5fd6..afe73d7 100644 --- a/src/display_engine.c +++ b/src/display_engine.c @@ -146,6 +146,28 @@ void display_mutation_buy(const struct cursor c, const int mutation_menu, const } +void display_mutation_description(const char *name, const char *description, const int mutation_menu, const int id) +{ + extern const bopti_image_t img_mutations; + + int decalage = 0; + + dclear(C_WHITE); + + display_background(8); + dsubimage(3, 21, &img_mutations, 16 * (mutation_menu - 1), 16 * (id - 1), 15, 15, DIMAGE_NONE); + dprint(47, 25, C_BLACK, name); + + for (int i = 0; i < 4; i ++) + { + dtext_opt(25, 33 + i * 7, C_BLACK, C_WHITE, 0 ,0, description + decalage, 16 ); + if (description[decalage+1] == '\0') break; + else decalage += 16; + } + dupdate(); +} + + void display_message(const char *msg[5]) { dclear(C_WHITE); diff --git a/src/display_engine.h b/src/display_engine.h index 20290cc..ee5ff99 100644 --- a/src/display_engine.h +++ b/src/display_engine.h @@ -15,6 +15,9 @@ void display_mutation(const int table[4][8], const struct cursor c, const int mu // mutation_selected : display the mutation's informations screen void display_mutation_buy(const struct cursor c, const int mutation_menu, const int table[4][8], const int button_selected, const struct game *current_game); +// display_mutation_description : display the description of the selected mutation +void display_mutation_description(const char *name, const char *description, const int mutation_menu, const int id); + // output_error : display text and message background void display_message(const char *msg[5]); diff --git a/src/mutation_engine.c b/src/mutation_engine.c index d8eecf7..c31166d 100644 --- a/src/mutation_engine.c +++ b/src/mutation_engine.c @@ -109,6 +109,11 @@ int mutation_buy(struct game *current_game, const struct cursor c, const int mut if (key == KEY_DOWN || key == KEY_UP) button_selected = (button_selected + 1) % 2; if (key == KEY_ALPHA) return 1; + if (key == KEY_OPTN) + { + display_mutation_description(mutation_data->name, mutation_data->description, mutation_menu, id); + getkey(); + } if (key == KEY_SHIFT) { if (!button_selected) return 0; diff --git a/src/mutation_engine.h b/src/mutation_engine.h index f41a68b..0a31ef0 100644 --- a/src/mutation_engine.h +++ b/src/mutation_engine.h @@ -21,7 +21,7 @@ struct mutation int contagion, severity, lethality, dna, changement; // Name of the mutation - char *name; + char *name, *description; }; // get_mutation : return the mutation table to display