diff --git a/cvarinfo.base b/cvarinfo.base index 3f8ab072b..8dda5a1ca 100644 --- a/cvarinfo.base +++ b/cvarinfo.base @@ -118,6 +118,7 @@ nosave string swwm_tooltipshown = ""; // which weapons have already had their t nosave noarchive bool swwm_tooltipnote = false; // set if the note on how to disable tooltips was already displayed nosave bool swwm_nointertips = false; // hides intermission tips, in case you don't want to see them server bool swwm_demoslayer = false; // if you're below 100hp, enemies drop healing orbs when you kill them +nosave bool swwm_beepboop = false; // prompts the Demolitionist to go "beep", "boop" and "bop" when pressing any switch (may get annoying) // minimap settings nosave bool swwm_mm_enable = true; // show a minimap below the score counter diff --git a/language.def_menu b/language.def_menu index ccba2df07..93c259ab7 100644 --- a/language.def_menu +++ b/language.def_menu @@ -207,6 +207,7 @@ SWWM_CRESET = "Reset to Defaults"; SWWM_ARESET = "Wipe Achievements"; SWWM_NOINTERTIPS = "Hide Intermission Tips"; SWWM_DEMOSLAYER = "Demoslayer Mode"; +SWWM_BEEPBOOP = "Switch Emoting"; SWWM_MMTITLE = "Minimap Settings"; SWWM_MM_ENABLE = "Show Minimap"; SWWM_MM_ROTATE = "Rotate Minimap"; @@ -364,6 +365,7 @@ TOOLTIP_EVENT_SWWMRESETCVARS = "Resets all the mod's settings to their original TOOLTIP_EVENT_SWWMRESETACHIEVEMENTS = "Erases all your archievement progress."; TOOLTIP_SWWM_NOINTERTIPS = "Hides intermission tips, in case you don't want to see them."; TOOLTIP_SWWM_DEMOSLAYER = "If you're below 100 health, killed enemies will drop health orbs."; +TOOLTIP_SWWM_BEEPBOOP = "The Demolitionist will make cute noises whenever pressing any usable line. This might get annoying, so it's optional."; TOOLTIP_SWWMMINIMAPMENU = "Configure the minimap."; TOOLTIP_SWWMACHIEVEMENTMENU = "View your achievements."; TOOLTIP_SWWM_MM_ENABLE = "Displays a minimap under the score counter."; diff --git a/language.def_voice b/language.def_voice index 863fb03ee..9d3f51812 100644 --- a/language.def_voice +++ b/language.def_voice @@ -73,7 +73,7 @@ SWWM_SUBS_DEFAULT_FIGHTSTART19 = "It's showtime!"; SWWM_SUBS_DEFAULT_FIGHTSTART20 = "Oh, you're dead."; SWWM_SUBS_DEFAULT_FIGHTSTART21 = "Good. Was wondering when you'd show up."; // played at map start -SWWM_SUBS_DEFAULT_NMAPSTART = "13"; +SWWM_SUBS_DEFAULT_NMAPSTART = "14"; SWWM_SUBS_DEFAULT_MAPSTART1 = "Ugh, fuck... This place reeks. I'd vomit if I could."; SWWM_SUBS_DEFAULT_MAPSTART2 = "Alright, let's get to work."; SWWM_SUBS_DEFAULT_MAPSTART3 = "Mission... start?"; @@ -87,6 +87,7 @@ SWWM_SUBS_DEFAULT_MAPSTART10 = "Time to blaze on through."; SWWM_SUBS_DEFAULT_MAPSTART11 = "Well, let's not keep everyone waiting."; SWWM_SUBS_DEFAULT_MAPSTART12 = "I'll do my best."; SWWM_SUBS_DEFAULT_MAPSTART13 = "Let me say this: Anything I find, I keep."; +SWWM_SUBS_DEFAULT_MAPSTART14 = "I'm here to chew bubblegum and kick ass... And I don't have a mouth."; // every time a secret is found SWWM_SUBS_DEFAULT_NFINDSECRET = "13"; SWWM_SUBS_DEFAULT_FINDSECRET1 = "Oh, that was a secret?"; @@ -399,3 +400,10 @@ SWWM_SUBS_DEFAULT_PETMASHIRO4 = "Thanks for your help, miss."; SWWM_SUBS_DEFAULT_PETMASHIRO5 = "There... good girl..."; SWWM_SUBS_DEFAULT_PETMASHIRO6 = "Hehe... cute moth girl~"; SWWM_SUBS_DEFAULT_PETMASHIRO7 = "Good friend~"; +// Button pushing +SWWM_SUBS_DEFAULT_NBUTTONPUSH = "3"; +SWWM_SUBS_DEFAULT_BUTTONPUSH1 = "Beep."; +SWWM_SUBS_DEFAULT_BUTTONPUSH2 = "Boop."; +SWWM_SUBS_DEFAULT_BUTTONPUSH3 = "Bop."; +// Fall "scream" +SWWM_SUBS_DEFAULT_FALLING = "Wheeeeeeeeeee~!"; diff --git a/language.es_menu b/language.es_menu index cbcc84b92..1fe4fa1aa 100644 --- a/language.es_menu +++ b/language.es_menu @@ -206,6 +206,7 @@ SWWM_CRESET = "Restaurar Predeterminado"; SWWM_ARESET = "Borrar Logros"; SWWM_NOINTERTIPS = "Ocultar Consejos de Intermisión"; SWWM_DEMOSLAYER = "Modo Demoslayer"; +SWWM_BEEPBOOP = "Ruiditos de Activación"; SWWM_MMTITLE = "Opciones de Minimapa"; SWWM_MM_ENABLE = "Mostrar Minimapa"; SWWM_MM_ROTATE = "Rotar Minimapa"; @@ -363,6 +364,7 @@ TOOLTIP_EVENT_SWWMRESETCVARS = "Resetea todas las opciones del mod a sus valores TOOLTIP_EVENT_SWWMRESETACHIEVEMENTS = "Borra todo tu progreso de logros."; TOOLTIP_SWWM_NOINTERTIPS = "Oculta los consejos de intermisión, por si no quieres verlos."; TOOLTIP_SWWM_DEMOSLAYER = "Si tienes menos de 100 puntos de vida, los enemigos que mates soltarán orbes de salud."; +TOOLTIP_SWWM_BEEPBOOP = "La Demolicionista hará ruiditos adorables cuando pulse cualquier línea utilizable. Esto puede que resulte cansino, así que es opcional."; TOOLTIP_SWWMMINIMAPMENU = "Configura el minimapa."; TOOLTIP_SWWMACHIEVEMENTMENU = "Revisa tus logros."; TOOLTIP_SWWM_MM_ENABLE = "Muestra un minimapa bajo el contador de puntuación."; diff --git a/language.es_voice b/language.es_voice index 501481582..c62e4c8a0 100644 --- a/language.es_voice +++ b/language.es_voice @@ -77,6 +77,7 @@ SWWM_SUBS_DEFAULT_MAPSTART10 = "Hora de pisar a fondo."; SWWM_SUBS_DEFAULT_MAPSTART11 = "Bueno, mas vale no dejar a todos esperando."; SWWM_SUBS_DEFAULT_MAPSTART12 = "Me esforzaré al máximo."; SWWM_SUBS_DEFAULT_MAPSTART13 = "Deja que diga una cosa: Todo lo que encuentre, me lo quedo."; +SWWM_SUBS_DEFAULT_MAPSTART14 = "Vengo a mascar chicle y patear traseros... Y no tengo boca."; // every time a secret is found SWWM_SUBS_DEFAULT_FINDSECRET1 = "Oh, ¿eso era un secreto?"; SWWM_SUBS_DEFAULT_FINDSECRET2 = "Sí, molo bastante."; @@ -361,3 +362,8 @@ SWWM_SUBS_DEFAULT_PETMASHIRO4 = "Gracias por tu ayuda, señorita."; SWWM_SUBS_DEFAULT_PETMASHIRO5 = "Ya está... buena chica..."; SWWM_SUBS_DEFAULT_PETMASHIRO6 = "Jeje... bonita chica polilla~"; SWWM_SUBS_DEFAULT_PETMASHIRO7 = "Buena amiga~"; +// Button pushing +SWWM_SUBS_DEFAULT_BUTTONPUSH1 = "Bip."; +SWWM_SUBS_DEFAULT_BUTTONPUSH2 = "Bup."; +// Fall "scream" +SWWM_SUBS_DEFAULT_FALLING = "¡Wiiiiiiiiiiii~!"; diff --git a/language.version b/language.version index 9928c2038..398d57154 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r44 \cu(Mon 25 Oct 16:30:43 CEST 2021)\c-"; -SWWM_SHORTVER="\cw1.2pre r44 \cu(2021-10-25 16:30:43)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw1.2pre r45 \cu(Fri 29 Oct 20:09:35 CEST 2021)\c-"; +SWWM_SHORTVER="\cw1.2pre r45 \cu(2021-10-29 20:09:35)\c-"; diff --git a/menudef.txt b/menudef.txt index 2e605a4f8..826170f2d 100644 --- a/menudef.txt +++ b/menudef.txt @@ -87,6 +87,7 @@ OptionMenu "SWWMOptionMenu" SWWMPlayTime "$SWWM_PLAYTIME", "swwm_playtime" SWWMVoiceOption "$SWWM_VOICETYPE", "swwm_voicetype" Option "$SWWM_MUTELEVEL", "swwm_mutevoice", "SWWMVoice" + Option "$SWWM_BEEPBOOP", "swwm_beepboop", "YesNo" Option "$SWWM_6DOF", "swwm_fly6dof", "YesNo" Option "$SWWM_REVIVE", "swwm_revive", "YesNo" ScaleSliderFix "$SWWM_REVIVECOOLDOWN", "swwm_revivecooldown", -1, 300, 30, "$SWWM_UNLIMITED", "$SWWM_ONERETRY" diff --git a/sndinfo.txt b/sndinfo.txt index 201abb176..aa8759dfe 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -155,6 +155,7 @@ voice/default/mapstart10 sounds/voice/default/va/demomapstart10.ogg voice/default/mapstart11 sounds/voice/default/va/demomapstart11.ogg voice/default/mapstart12 sounds/voice/default/va/demomapstart12.ogg voice/default/mapstart13 sounds/voice/default/va/demomapstart13.ogg +voice/default/mapstart14 sounds/voice/default/va/demomapstart14.ogg voice/default/puzzfail1 sounds/voice/default/va/demopuzzfail1.ogg voice/default/puzzfail2 sounds/voice/default/va/demopuzzfail2.ogg voice/default/puzzfail3 sounds/voice/default/va/demopuzzfail3.ogg @@ -423,6 +424,10 @@ voice/default/petmashiro4 sounds/voice/default/va/demopetmashiro4.ogg voice/default/petmashiro5 sounds/voice/default/va/demopetmashiro5.ogg voice/default/petmashiro6 sounds/voice/default/va/demopetmashiro6.ogg voice/default/petmashiro7 sounds/voice/default/va/demopetmashiro7.ogg +voice/default/buttonpush1 sounds/voice/default/va/demobuttonpush1.ogg +voice/default/buttonpush2 sounds/voice/default/va/demobuttonpush2.ogg +voice/default/buttonpush3 sounds/voice/default/va/demobuttonpush3.ogg +voice/default/falling sounds/voice/default/va/demofalling.ogg demolitionist/walk1 sounds/demolitionist/demowalk1.ogg demolitionist/walk2 sounds/demolitionist/demowalk2.ogg diff --git a/sounds/voice/default/va/demobuttonpush1.ogg b/sounds/voice/default/va/demobuttonpush1.ogg new file mode 100644 index 000000000..186eda9e1 Binary files /dev/null and b/sounds/voice/default/va/demobuttonpush1.ogg differ diff --git a/sounds/voice/default/va/demobuttonpush2.ogg b/sounds/voice/default/va/demobuttonpush2.ogg new file mode 100644 index 000000000..51477c43f Binary files /dev/null and b/sounds/voice/default/va/demobuttonpush2.ogg differ diff --git a/sounds/voice/default/va/demobuttonpush3.ogg b/sounds/voice/default/va/demobuttonpush3.ogg new file mode 100644 index 000000000..ad2ec984a Binary files /dev/null and b/sounds/voice/default/va/demobuttonpush3.ogg differ diff --git a/sounds/voice/default/va/demofalling.ogg b/sounds/voice/default/va/demofalling.ogg new file mode 100644 index 000000000..c32e538e9 Binary files /dev/null and b/sounds/voice/default/va/demofalling.ogg differ diff --git a/sounds/voice/default/va/demomapstart14.ogg b/sounds/voice/default/va/demomapstart14.ogg new file mode 100644 index 000000000..d91518e5a Binary files /dev/null and b/sounds/voice/default/va/demomapstart14.ogg differ diff --git a/zscript/handler/swwm_handler_oneliners.zsc b/zscript/handler/swwm_handler_oneliners.zsc index 839c6c023..0f867111d 100644 --- a/zscript/handler/swwm_handler_oneliners.zsc +++ b/zscript/handler/swwm_handler_oneliners.zsc @@ -8,7 +8,7 @@ Class LastLine extend Class SWWMHandler { - transient String oneliner, onelinersnd; + transient String oneliner, onelinersnd, onelinertype; transient int onelinertic, onelinerspan, onelinerlevel; transient Array lastlines; @@ -34,6 +34,7 @@ extend Class SWWMHandler hnd.oneliner = String.Format("$SWWM_SUBS_%s_%s",voicetype.MakeUpper(),type.MakeUpper()); hnd.onelinersnd = String.Format("voice/%s/%s",voicetype,type); hnd.onelinertic = gametic+delay; + hnd.onelinertype = type; hnd.onelinerspan = int(S_GetLength(hnd.onelinersnd)*GameTicRate); if ( hnd.onelinerspan == 0 ) { @@ -74,6 +75,7 @@ extend Class SWWMHandler hnd.onelinersnd = String.Format("voice/%s/%s%d",voicetype,type,whichline); hnd.onelinertic = gametic+delay; hnd.onelinerspan = int(S_GetLength(hnd.onelinersnd)*GameTicRate); + hnd.onelinertype = type; if ( hnd.onelinerspan == 0 ) { if ( developer >= 2 ) Console.Printf("No sound for voice line '%s%d'",type,whichline); @@ -83,6 +85,15 @@ extend Class SWWMHandler return hnd.onelinertic+hnd.onelinerspan; } + static void CancelOneliner( String type ) + { + let hnd = SWWMHandler(EventHandler.Find("SWWMHandler")); + if ( !hnd ) return; + if ( (hnd.onelinertype != type) || (hnd.onelinertic < gametic) ) return; + hnd.onelinertic = 0; + hnd.onelinerspan = 0; + } + private void OnelinerTick() { if ( !onelinertic || (onelinertic >= gametic) ) return; diff --git a/zscript/kbase/swwm_kbase_list.zsc b/zscript/kbase/swwm_kbase_list.zsc index 7662faefb..636aa0fd3 100644 --- a/zscript/kbase/swwm_kbase_list.zsc +++ b/zscript/kbase/swwm_kbase_list.zsc @@ -6,7 +6,7 @@ Class DemolitionistMenuList ui Array items; int selected; - // functions to save time + // get the highest width among all items int GetWidth() { int mw = 0; @@ -17,6 +17,7 @@ Class DemolitionistMenuList ui } return mw; } + // get the total height of all items combined int GetHeight() { int th = 0; @@ -24,6 +25,19 @@ Class DemolitionistMenuList ui th += items[i].GetHeight(); return th; } + // tick all items + void Ticker() + { + for ( int i=0; i mystats.airtime ) mystats.airtime = cairtime; mystats.airdist += traveldist; + if ( (vel.z < -fallingscreamminspeed) && (vel.z > -fallingscreammaxspeed) && (player == players[consoleplayer]) ) + SWWMHandler.AddOneliner("falling",2,30); } else { + SWWMHandler.CancelOneliner("falling"); + airscreamtime = 0; cairtime = 0; mystats.grounddist += traveldist; SWWMUtility.AchievementProgressIncDouble("travel",traveldist/32000.,player);