diff --git a/graphics/Achievements/AchievementAnomaly.png b/graphics/Achievements/AchievementAnomaly.png new file mode 100644 index 000000000..59cdb0938 Binary files /dev/null and b/graphics/Achievements/AchievementAnomaly.png differ diff --git a/graphics/Achievements/AchievementBarrier.png b/graphics/Achievements/AchievementBarrier.png new file mode 100644 index 000000000..c46f35ad7 Binary files /dev/null and b/graphics/Achievements/AchievementBarrier.png differ diff --git a/graphics/Achievements/AchievementBustin.png b/graphics/Achievements/AchievementBustin.png new file mode 100644 index 000000000..dc655da6e Binary files /dev/null and b/graphics/Achievements/AchievementBustin.png differ diff --git a/graphics/Achievements/AchievementGhost.png b/graphics/Achievements/AchievementGhost.png new file mode 100644 index 000000000..45eabd4c4 Binary files /dev/null and b/graphics/Achievements/AchievementGhost.png differ diff --git a/graphics/Achievements/AchievementGravity.png b/graphics/Achievements/AchievementGravity.png new file mode 100644 index 000000000..f98de339b Binary files /dev/null and b/graphics/Achievements/AchievementGravity.png differ diff --git a/graphics/Achievements/AchievementInvinciball.png b/graphics/Achievements/AchievementInvinciball.png new file mode 100644 index 000000000..7068ef77b Binary files /dev/null and b/graphics/Achievements/AchievementInvinciball.png differ diff --git a/graphics/Achievements/AchievementMxWorldwide.png b/graphics/Achievements/AchievementMxWorldwide.png new file mode 100644 index 000000000..66bbea8ee Binary files /dev/null and b/graphics/Achievements/AchievementMxWorldwide.png differ diff --git a/graphics/Achievements/AchievementRagekit.png b/graphics/Achievements/AchievementRagekit.png new file mode 100644 index 000000000..0b7fbdc1b Binary files /dev/null and b/graphics/Achievements/AchievementRagekit.png differ diff --git a/graphics/Achievements/AchievementRefresh.png b/graphics/Achievements/AchievementRefresh.png new file mode 100644 index 000000000..65baf7a4a Binary files /dev/null and b/graphics/Achievements/AchievementRefresh.png differ diff --git a/graphics/Achievements/AchievementSandwich.png b/graphics/Achievements/AchievementSandwich.png new file mode 100644 index 000000000..4172259c6 Binary files /dev/null and b/graphics/Achievements/AchievementSandwich.png differ diff --git a/language.def_base b/language.def_base index 6c3d14422..ad4014b25 100644 --- a/language.def_base +++ b/language.def_base @@ -830,12 +830,14 @@ SWWM_FANART9 = "Marisa3.jpg"; // achievements SWWM_ACHIEVEMENT_GCSANDWICH_TAG = "A Little Sandwich, as a Treat"; SWWM_ACHIEVEMENT_GCSANDWICH_TXT = "Use %d Grilled Cheese Sandwiches"; +SWWM_ACHIEVEMENT_GCSANDWICH_PIC = "graphics/Achievements/AchievementSandwich.png"; SWWM_ACHIEVEMENT_ONESTANDING_TAG = "A Warning to the Others"; SWWM_ACHIEVEMENT_ONESTANDING_TXT = "Finish a map with just one enemy left alive"; SWWM_ACHIEVEMENT_OOPSIE_TAG = "Big Oopsie"; SWWM_ACHIEVEMENT_OOPSIE_TXT = "Erase yourself with the Ynykron Artifact"; SWWM_ACHIEVEMENT_GHOST_TAG = "Cloak Engaged"; SWWM_ACHIEVEMENT_GHOST_TXT = "Use %d Ghost Artifacts"; +SWWM_ACHIEVEMENT_GHOST_PIC = "graphics/Achievements/AchievementGhost.png"; SWWM_ACHIEVEMENT_CLONK_TAG = "CLONK"; SWWM_ACHIEVEMENT_CLONK_TXT = "Kill a boss with a Lead Ball crit"; SWWM_ACHIEVEMENT_ALLITEMS_TAG = "Collector"; @@ -844,6 +846,7 @@ SWWM_ACHIEVEMENT_CONGA_TAG = "Conga Line of Death"; SWWM_ACHIEVEMENT_CONGA_TXT = "Kill %d enemies with a single XSB round"; SWWM_ACHIEVEMENT_GRAVITY_TAG = "Decent Ascent"; SWWM_ACHIEVEMENT_GRAVITY_TXT = "Use %d Gravity Suppressors"; +SWWM_ACHIEVEMENT_GRAVITY_PIC = "graphics/Achievements/AchievementGravity.png"; SWWM_ACHIEVEMENT_FLIGHT_TAG = "Demolitionist Space Program"; SWWM_ACHIEVEMENT_FLIGHT_TXT = "Send a single enemy flying over %d map units"; SWWM_ACHIEVEMENT_CLIFFYB_TAG = "Errand Boy Bullshit"; @@ -858,6 +861,7 @@ SWWM_ACHIEVEMENT_GIB_TAG = "Gibbitude"; SWWM_ACHIEVEMENT_GIB_TXT = "Overkill %d enemies"; SWWM_ACHIEVEMENT_BARRIER_TAG = "Green Filter"; SWWM_ACHIEVEMENT_BARRIER_TXT = "Use %d Elemental Barriers"; +SWWM_ACHIEVEMENT_BARRIER_PIC = "graphics/Achievements/AchievementBarrier.png"; SWWM_ACHIEVEMENT_BOSSDASH_TAG = "Headstrong"; SWWM_ACHIEVEMENT_BOSSDASH_TXT = "Kill %d bosses by dashing into them"; SWWM_ACHIEVEMENT_SNEEZE_TAG = "Humiliator"; @@ -886,14 +890,17 @@ SWWM_ACHIEVEMENT_PLUSH_TAG = "Lovestruck"; SWWM_ACHIEVEMENT_PLUSH_TXT = "Play with the Saya or Kirin plushies %d times in the same session"; SWWM_ACHIEVEMENT_BUSTIN_TAG = "Makes me Feel Good"; SWWM_ACHIEVEMENT_BUSTIN_TXT = "Bust %d walls"; +SWWM_ACHIEVEMENT_BUSTIN_PIC = "graphics/Achievements/AchievementBustin.png"; SWWM_ACHIEVEMENT_MOTH_TAG = "Mother"; SWWM_ACHIEVEMENT_MOTH_TXT = "Gather %d moths"; SWWM_ACHIEVEMENT_IWAD_TAG = "Mx. Worldwide"; SWWM_ACHIEVEMENT_IWAD_TXT = "Play on all supported games"; +SWWM_ACHIEVEMENT_IWAD_PIC = "graphics/Achievements/AchievementMxWorldwide.png"; SWWM_ACHIEVEMENT_BRAKE_TAG = "No Brakes"; SWWM_ACHIEVEMENT_BRAKE_TXT = "Consume your full fuel supply in a single dash %d times"; SWWM_ACHIEVEMENT_RAGE_TAG = "No Talk me Angy"; SWWM_ACHIEVEMENT_RAGE_TXT = "Use %d Ragekits"; +SWWM_ACHIEVEMENT_RAGE_PIC = "graphics/Achievements/AchievementRagekit.png"; SWWM_ACHIEVEMENT_ABORT_TAG = "Oops I Broke It"; SWWM_ACHIEVEMENT_ABORT_TXT = "Cause a VM abort"; SWWM_ACHIEVEMENT_PARRY_TAG = "Parry King"; @@ -916,10 +923,12 @@ SWWM_ACHIEVEMENT_BALLS_TAG = "Slam your Balls"; SWWM_ACHIEVEMENT_BALLS_TXT = "Land %d Lead Ball crits"; SWWM_ACHIEVEMENT_REFRESH_TAG = "Stay Fresh"; SWWM_ACHIEVEMENT_REFRESH_TXT = "Use %d Refreshers"; +SWWM_ACHIEVEMENT_REFRESH_PIC = "graphics/Achievements/AchievementRefresh.png"; SWWM_ACHIEVEMENT_STEP_TAG = "Steppy"; SWWM_ACHIEVEMENT_STEP_TXT = "Stand on a single enemy's head for %d seconds"; SWWM_ACHIEVEMENT_SUNNY_TAG = "Sunny D"; SWWM_ACHIEVEMENT_SUNNY_TXT = "Use %d Invinciballs"; +SWWM_ACHIEVEMENT_SUNNY_PIC = "graphics/Achievements/AchievementInvinciball.png"; SWWM_ACHIEVEMENT_THICC_TAG = "The Ass was Fat"; SWWM_ACHIEVEMENT_THICC_TXT = "Kill %d enemies by ground pounding"; SWWM_ACHIEVEMENT_EVERYTHING_TAG = "The Demolitionist"; @@ -940,8 +949,8 @@ SWWM_ACHIEVEMENT_YEET_TAG = "YEET"; SWWM_ACHIEVEMENT_YEET_TXT = "Throw a Candygun right into the Icon of Sin's brains"; SWWM_ACHIEVEMENT_MBF_TAG = "You can Pet the Dog"; SWWM_ACHIEVEMENT_MBF_TXT = "Pet a dog"; -SWWM_ACHIEVEMENT_LIGHTNING_TAG = "And the Dragons were No More"; -SWWM_ACHIEVEMENT_LIGHTNING_TXT = "Kill the Death Wyvern using the Rail Carbine"; +SWWM_ACHIEVEMENT_LIGHTNING_TAG = "John Romero's Curse"; +SWWM_ACHIEVEMENT_LIGHTNING_TXT = "Fry yourself by discharging an electric weapon in water"; SWWM_ACHIEVEMENT_DAKKA_TAG = "Dakka"; SWWM_ACHIEVEMENT_DAKKA_TXT = "Fire the Sheen HMG for one minute straight"; SWWM_ACHIEVEMENT_ROAST_TAG = "Gravely Roast"; @@ -972,6 +981,7 @@ SWWM_ACHIEVEMENT_BONK_TAG = "Shock Resistant"; SWWM_ACHIEVEMENT_BONK_TXT = "Bump into stuff %d times"; SWWM_ACHIEVEMENT_ANOM_TAG = "Anomalous"; SWWM_ACHIEVEMENT_ANOM_TXT = "Use %d Mykradvo Artifacts"; +SWWM_ACHIEVEMENT_ANOM_PIC = "graphics/Achievements/AchievementAnomaly.png"; SWWM_ACHIEVEMENT_ANONE_TAG = "Completely Necessary Use of Force"; SWWM_ACHIEVEMENT_ANONE_TXT = "Use the Mykradvo Artifact against a single non-boss enemy"; SWWM_ACHIEVEMENT_WANTDIE_TAG = "E N D M I I"; diff --git a/language.es_base b/language.es_base index 6ce6de7e1..c0792aee9 100644 --- a/language.es_base +++ b/language.es_base @@ -838,8 +838,8 @@ SWWM_ACHIEVEMENT_LIGMA_TXT = "Mata a un jefe final con el Artefacto Ynykron"; SWWM_ACHIEVEMENT_YEET_TXT = "Lanza una Pistola Caramelo justo dentro del cerebro del Icono del Pecado"; SWWM_ACHIEVEMENT_MBF_TAG = "Puedes Acariciar el Perro"; SWWM_ACHIEVEMENT_MBF_TXT = "Acaricia un perro"; -SWWM_ACHIEVEMENT_LIGHTNING_TAG = "Y los Dragones Desaparecieron"; -SWWM_ACHIEVEMENT_LIGHTNING_TXT = "Mata al Wyvern Mortal usando la Carabina de Raíl"; +SWWM_ACHIEVEMENT_LIGHTNING_TAG = "Maldición de John Romero"; +SWWM_ACHIEVEMENT_LIGHTNING_TXT = "Achichárrate descargando un arma eléctrica en el agua"; SWWM_ACHIEVEMENT_DAKKA_TXT = "Dispara la Ametralladora Sheen durante un minuto entero"; SWWM_ACHIEVEMENT_ROAST_TAG = "Ensarta en los Fuegos del Hades"; SWWM_ACHIEVEMENT_ROAST_TXT = "Realiza %d combos de bayoneta con la Quadravol"; diff --git a/language.version b/language.version index f970249aa..7de51f8ed 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r397 \cu(Wed 24 Mar 03:05:04 CET 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r397 \cu(2021-03-24 03:05:04)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r398 \cu(Wed 24 Mar 15:32:50 CET 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r398 \cu(2021-03-24 15:32:50)\c-"; diff --git a/zscript/kbase/swwm_kbase.zsc b/zscript/kbase/swwm_kbase.zsc index c82446c84..e12c639e4 100644 --- a/zscript/kbase/swwm_kbase.zsc +++ b/zscript/kbase/swwm_kbase.zsc @@ -747,11 +747,9 @@ Class DemolitionistMenu : GenericMenu { if ( ignoreme[i] ) continue; let ac = new("MenuAchievement"); - ac.tag = names[i].."_TAG"; - ac.txt = names[i].."_TXT"; - ac.icon = TexMan.CheckForTexture(StringTable.Localize(names[i].."_PIC"),TexMan.Type_Any); - if ( !ac.icon.IsValid() ) ac.icon = TexMan.CheckForTexture("graphics/Achievements/AchievementNone.png",TexMan.Type_Any); ac.state = CVar.FindCVar(vars[i]); + if ( (names[i] == "$SWWM_ACHIEVEMENT_EVERYTHING") && !ac.state.GetInt() ) + continue; // this one must remain hidden until obtained ac.progress = (pvar[i]!='None')?CVar.FindCVar(pvar[i]):null; ac.maxval = ac.num = number[i]; // special cases @@ -773,6 +771,13 @@ Class DemolitionistMenu : GenericMenu else if ( vars[i] == 'swwm_achievement_dosh' ) ac.maxval = 1000000000; else if ( vars[i] == 'swwm_achievement_mega' ) ac.maxval = 1000000; else if ( vars[i] == 'swwm_achievement_iwad' ) ac.maxval = 7; + ac.tag = names[i].."_TAG"; + ac.txt = names[i].."_TXT"; + ac.icon = TexMan.CheckForTexture(StringTable.Localize(names[i].."_PIC"),TexMan.Type_Any); + TextureID invalid; + invalid.SetInvalid(); + if ( ac.icon == invalid ) + ac.icon = TexMan.CheckForTexture("graphics/Achievements/AchievementNone.png",TexMan.Type_Any); achievements.Push(ac); } AchievementUnknown = TexMan.CheckForTexture("graphics/Achievements/AchievementUnknown.png",TexMan.Type_Any);