From 90ca4e4838fd0e39dd0b97dfa138f6bcf7f6c138 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Fri, 4 Dec 2020 13:08:28 +0100 Subject: [PATCH] Golden shells won't spawn if players have a full supply. Tweak ammo max amounts. Embiggener max amount halved back to 8. Embiggeners now increase ammo capacity by a factor relative to BackpackMaxAmount, rather than a fixed increase. Credits now show the mod's alt title (UnSX Gaiden: Demolitionist). Added compatibility tweaks to Okuplok and Holy Hell Revealed. --- README.md | 2 +- acs/swwmcomp.o | Bin 204 -> 292 bytes language.def_lore | 2 +- language.def_menu | 3 +- language.es_lore | 2 +- language.version | 2 +- lore/default/hammerspaceembiggener.txt | 2 +- lore/es/hammerspaceembiggener.txt | 2 +- swwmcomp.acs | 7 +++ zscript/dlc/swwm_dlcammo.zsc | 9 ++- zscript/dlc/swwm_notashotgun.zsc | 2 +- zscript/swwm_ammo.zsc | 74 +++++++++++++++++-------- zscript/swwm_compat.zsc | 12 ++++ zscript/swwm_credits.zsc | 16 ++++-- zscript/swwm_handler.zsc | 25 ++++++++- 15 files changed, 124 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 8cbf6ed80..a3e969b95 100644 --- a/README.md +++ b/README.md @@ -360,7 +360,7 @@ You're fucking invincible for a total of 20 seconds. ### Hammerspace Embiggener ~ Replaces Backpack, Bag of Holding, Dragonskin Bracers ![](docimg/embiggener.png) -Each of these you pick up increase ammo capacity by half of its base value, stacking up to 16 times for a maximum of 900% capacity. They also give you some extra ammo, like a vanilla backpack would (though not for all weapons). +Each of these you pick up increases your ammo capacity (not necessarily doubling it), stacking up to 8 times. They also give you some extra ammo, like a vanilla backpack would (though not for all weapons). ### Universal Ammo Fabricator ~ Replaces Mana / Krater of Might in Hexen ![](docimg/fabricator.png) diff --git a/acs/swwmcomp.o b/acs/swwmcomp.o index 0045cd0738a18fa4c3dfa0f2ba99f23d34a81f9b..fc843c29d64ed961195bb4e7e0cf904aef99081f 100644 GIT binary patch delta 186 zcmX@ZxP*z#(K(nwhH)aBRqS$xhs?8>7#Nl_d@wX)wq|Bv*rdR~#K3VPn2{kkAS6hE zfq~)we+C8)1_p+I{}~uG7#JA-{%2q?U|?YQ^Phpifq{V`*w4{7hJk^Bg@J)Vgn@xU zoq>VDih+T_Z(^yfmxo7Cyi<^)r(d|Ej}Jp|NRW>V0|YQaC diff --git a/language.def_lore b/language.def_lore index e1d3985fb..fa12b5c10 100644 --- a/language.def_lore +++ b/language.def_lore @@ -191,7 +191,7 @@ SWWM_LORETXT_MUNCH = "\cxName:\c-\n\cf Munch Innovations\c-\n\cxClassification:\ SWWM_LORETAG_HAMMERSPACEEMBIGGENER = "Hs. Embiggener"; SWWM_LORETAB_HAMMERSPACEEMBIGGENER = "Item"; SWWM_LOREREL_HAMMERSPACEEMBIGGENER = "Cyrus;Hammerspace;Saya"; -SWWM_LORETXT_HAMMERSPACEEMBIGGENER = "\cxDesignation:\c-\n\cf Hammerspace™ Embiggener\c-\n\cxManufacturer:\c-\n\cf Cyrus Enterprises\c-\n\cxClassification:\c-\n\cf Storage Expansion Contract\c-\n\nWhen \cfHammerspace™\c- containers first started being commercialized, \cfCyrus Enterprises\c- hadn't yet decided on how to handle the needs of those who might not be quite satisfied with the standard storage capacity provided to each customer. Then, one day, a \"revolutionary\" idea came forth, that of an extra \"expansion\" service, where existing customers could pay extra to gain access to additional containers, increasing their total storage. Each of these \cfHammerspace™ Embiggener\c- cards is completely unique, and only available for purchase from Cyrus Enterprises themselves. Customers can expand their storage limit up to sixteen times with these, which should be enough even for the needs of large armies seeking to store their weapons and ammo efficiently.\n\n\cxSaya's Notes:\c-\n\cfThe hell, is that a reference to what I think it is? This guy is an even bigger nerd than I thought... also that's not a real word, is it? ... Wait, it is? huh, so it really got accepted... ok then.\c-\n\n\cfOh yeah by the way, nerdboi says only your ammo container can be expanded with this, he was going on about something of \"backpacks\" and shit, I walked away before he began ranting for real. When he does that it's like someone scraping a chalkboard right in front of you, ugh...\c-"; +SWWM_LORETXT_HAMMERSPACEEMBIGGENER = "\cxDesignation:\c-\n\cf Hammerspace™ Embiggener\c-\n\cxManufacturer:\c-\n\cf Cyrus Enterprises\c-\n\cxClassification:\c-\n\cf Storage Expansion Contract\c-\n\nWhen \cfHammerspace™\c- containers first started being commercialized, \cfCyrus Enterprises\c- hadn't yet decided on how to handle the needs of those who might not be quite satisfied with the standard storage capacity provided to each customer. Then, one day, a \"revolutionary\" idea came forth, that of an extra \"expansion\" service, where existing customers could pay extra to gain access to additional containers, increasing their total storage. Each of these \cfHammerspace™ Embiggener\c- cards is completely unique, and only available for purchase from Cyrus Enterprises themselves. Customers can expand their storage limit up to eight times with these, which should be enough even for the needs of large armies seeking to store their weapons and ammo efficiently.\n\n\cxSaya's Notes:\c-\n\cfThe hell, is that a reference to what I think it is? This guy is an even bigger nerd than I thought... also that's not a real word, is it? ... Wait, it is? huh, so it really got accepted... ok then.\c-\n\n\cfOh yeah by the way, nerdboi says only your ammo container can be expanded with this, he was going on about something of \"backpacks\" and shit, I walked away before he began ranting for real. When he does that it's like someone scraping a chalkboard right in front of you, ugh...\c-"; SWWM_LORETAG_BLASTSUIT = "Blast Suit"; SWWM_LORETAB_BLASTSUIT = "Item"; SWWM_LOREREL_BLASTSUIT = "Symnatek;Cyrus"; diff --git a/language.def_menu b/language.def_menu index 0e6817621..c379e2736 100644 --- a/language.def_menu +++ b/language.def_menu @@ -50,7 +50,8 @@ SWWM_SVARMORUSE = "Enforce Armor Auto-Use"; SWWM_SVHEALTHUSE = "Enforce Health Auto-Use"; SWWM_SVAMMOUSE = "Enforce Fabricator Auto-Use"; SWWM_MCREDS = "SWWM GZ Credits"; -SWWM_CSTITLE = "Cute Robutt Whomst Love To Explode Demons"; +SWWM_CSTITLE = "UnSX Side Story: Demolitionist"; +SWWM_CSTITLE2 = "Cute Robutt Whomst Love To Explode Demons"; SWWM_CLEAD = "Development Lead:"; SWWM_CDEV2 = "Self-proclaimed ZScript Magician"; SWWM_CASSETS = "Additional Assets:"; diff --git a/language.es_lore b/language.es_lore index a06c29b63..1dbe9ea3c 100644 --- a/language.es_lore +++ b/language.es_lore @@ -178,7 +178,7 @@ SWWM_LORETXT_GRAVITYSUPPRESSOR = "\cxDesignación:\c-\n\cf Supresor de Gravedad\ SWWM_LORETXT_WALLBUSTER = "\cxDesignación:\c-\n\cf Escopeta de Brecha de Armaduras Pesadas \"Wallbuster\"\c-\n\cxFabricante:\c-\n\cf Blackmann Arms S.L.\c-\n\cf Diseño de Don BIG SHOT\c-\n\cxClasificación:\c-\n\cf Escopeta Revólver\c-\n\nLa \cfWallbuster\c- es una escopeta bestial, teniendo un total de 25 cañones divididos en grupos rotatorios individuales de 5. Usa el calibre 10, haciéndola aun más ridícula en cuanto a su poder y tamaño. Algo que no sorprende teniendo en cuenta que fue encargada por el mismo \cfDon BIG SHOT\c-. De todas las armas que \cfBlackman Arms\c- ha hecho para él, ésta es la única que fue hecha pública, y se dice que las demás puede que sean incluso más absurdas.\n\nLos mecanismos internos que empujan el funcionamiento de este arma tienen tal grado de complejidad que han sido descritos por algunos como \cfIngeniería Loca Alemana\c-. Solamente el propio \cfHermann E. Ischer\c- conoce todos los detalles de su operación. Con cada accionamiento del gatillo principal, el cañón superior es disparado, y luego su grupo gira a contrarreloj, con el siguiente cartucho listo para dispararse. Cada cinco disparos, o cuando se usa el gatillo secundario, el cuerpo principal gira después, alternando a otro grupo de cinco cañones.\n\nLa Wallbuster es compatible con la mayor parte de municiones estándar, aunque hay restricciones de seguridad para algunas, como las de tipo incendiario, o los cartuchos dorados. Esto limita el rango de munición utilizable a sólo estos cuatro tipos: Perdigones, Slugs, Sal de Kinylum, Bolas de Plomo.\n\n\cfFuego Primario:\c- Dispara el cañón superior.\n\n\cfFuego Secundario:\c- Dispara el grupo de cinco cañones superior.\n\n\cfFuego Terciario:\c- Dispara todos los cañones, si realmente quieres.\n\n\cfRecarga:\c- Una vez se tira de la palanca lateral, los grupos de cañones pueden ser retirados y recargados individualmente. Para recargar por el camino, se recomienda tener un \cfCinturón Magnético Útil\c- o similar, ya que facilitará esta operación. Hay recargadores rápidos disponibles para comprar desde la página web de Blackmann Arms, o de distribuidores autorizados.\n\n\cfTécnicas:\c- Tal y como su nombre indica, puedes destruir toda clase de obstáculos por el camino, siempre y cuando causes suficiente daño relativo a su tamaño. Esto incluye hasta puertas bloqueadas, por lo que nunca más necesitarás buscar llaves.\n\n\cxNotas de Saya:\c-\n\cfOK a ver, la puta masa de metal rompecojones esta. Sí, esto sí que es la puta repera...\c-\n\n\cfNo te preocupes por tardar un huevo en recargarla, por cierto. DemolitionOS viene con una rutina de recarga rápida que te lo pondrá más fácil. La munición se pone ahí en cola desde el Hammerspace, y luego todo lo que tienes que hacer es poner la mano encima de los cañones, y ya se mete todo ahí. Mola, ¿verdad? Taro hizo la mayor parte del chollo, así que eso, le puedes dar las gracias.\c-\n\n\cfOh ya... sabes... la cosa esta, con el nombre y todo, casi que me recuerda a la abuela un poco. A ver, si cambias la primera letra... Oh, ¿puedes oír la batería y la guitarra? Porque yo sí...\c-\n\n\cfOld Days~ ♪\c-"; SWWM_LORETXT_TARO = "\cxNombre Completo:\c-\n\cf Taro Miyamoto\c-\n\cxNacionalidad:\c-\n\cf Japonés\c-\n\cxFecha de Nacimiento:\c-\n\cf 1985-10-06\c-\n\cxTwitter:\c-\n\cf @AkariTaro\c-\n\nNacido en 1985, hijo de \cfNana\c- y \cfRyuji Miyamoto\c-, \cfTaro\c- es el mayor de tres hermanos, a pesar de lo que muestre su apariencia. De niño, fue algo conflictivo, pero notablemente estudioso también. Habiendo terminado el instituto con notas excelentes, estudió en muchas universidades prestigiosas de todo el mundo, impulsado por el deseo de expandir sus conocimientos, especialmente aquellos de la tecnología informática, con la cual estaba obsesionado. Junto con \cfSaya\c-, su hermana menor, fundaron \cfAkari Labs\c-, una compañía que se especializa en Robótica e Inteligencia Artificial, entre otros. Ahí, las especialidades de Taro son la Ingeniería y el Diseño de Software, y también está a cargo de las relaciones públicas, ya que Saya no \"tiene mucho don de gentes\" a diferencia de él.\n\nTaro es un programador nato, competente en múltiples lenguajes, y tiene una gran cantidad de proyectos a su nombre, junto con muchas contribuciones a proyectos notables de código abierto, incluyendo el \cfKernel de Linux\c-. También es un auto-proclamado \"archivista cultural\", declarando que es básicamente una biblioteca andante en lo que respecta a aspectos de la cultura popular que para muchos se han perdido en el tiempo, gracias a la inmortalidad heredada de su madre, y su gran memoria. También es bastante popular en la red por sus reviews cómicas de anime, bajo la personalidad de \cf\"El Mago de Waifus\"\c-.\n\nEn 2091, Taro fue elegido para recuperar personalmente al \cfOni Rojo\c-, \cfIbuki Miyamoto\c-, tras los eventos de la \cfCicatriz Blanca\c-. Siguiendo la señal de rastreo de su collar, la encontró fácilmente, y cuando estaba a punto de traerla de vuelta a Japón una chica se le acercó. Era \cfElena Yanikov XXI\c-, quien había entablado amistad con Ibuki mientras vagaba por el yermo ardiente. Pidió a Taro que la llevara con él, prometiendo ser \"una chica buena\". Estas palabras inmediatamente hicieron que aceptara su proposición.\n\nNo mucho después de eso, ambos comenzaron a salir, casándose finalmente en 2097.\n\n\cxNotas de Saya:\c-\n\cf¿COMO PUTO COJONES pudo el absoluto perdedor de mi hermano echarse novia? Es que no lo entiendo. Dios, viendo el artículo después de que lo editara, hay tanta mierda ahí que se nota que es él fardando, patético...\c-\n\n\cfSí, es esa clase de tío. Se hace el chulo pero en cuanto miras más allá de sus \"impresionantes habilidades y logros\", no es más que un capullo en internet. A ver, admito que yo también lo soy, un poco, pero él es peor. La culpa es de que pase tanto tiempo en foros de mierda.\c-\n\n\cfAunque a ver, a veces se pone serio cuando quiere. Y en momentos así es que es básicamente el Tsukkomi de mi Boke. Si no sabes lo que significa todo eso puedes buscarlo, Demo-chan.\c-"; SWWM_LORETAG_HAMMERSPACEEMBIGGENER = "Ensanchecedor"; -SWWM_LORETXT_HAMMERSPACEEMBIGGENER = "\cxDesignación:\c-\n\cf Ensanchecedor de Hammerspace™\c-\n\cxFabricante:\c-\n\cf Cyrus Enterprises\c-\n\cxClasificación:\c-\n\cf Contrato de Expansión de Almacenamiento\c-\n\nCuando los contenedores de \cfHammerspace™\c- fueron inicialmente comercializados, \cfCyrus Enterprises\c- aun no había decidido como manejar las necesidades de aquellos que no estuvieran satisfechos con la capacidad de almacenamiento estándar para cada cliente. Entonces, un día, una idea \"revolucionaria\" vino, la de un servicio extra de \"expansión\", por el cual clientes existentes pueden pagar un precio extra para obtener acceso a contenedores adicionales, incrementando su capacidad de almacenamiento total. Cada una de estas tarjetas de \cfEnsanchecedor de Hammerspace™\c- es completamente única, y sólo disponible para su compra desde Cyrus Enterprises. Los clientes pueden expandir su límite de almacenamiento hasta dieciséis veces con éstas, lo cual será suficiente incluso para los requisitos de grandes ejércitos que buscan almacenar eficientemente sus armas y munición.\n\n\cxNotas de Saya:\c-\n\cfQué hostias, ¿eso es una referencia a lo que creo que es? Este tío es más friki de lo que pensaba... aparte de que eso no es una palabra de verdad, ¿o no? ... Espera, ¿lo es? Vaya, así que sí la aceptaron... pues vale.\c-\n\n\cfAh ya, por cierto, el frikazo dice que solo tu contenedor de munición se puede expandir con esto, iba soltando mierdas de \"mochilas\" y tal, me largué antes de que empezara a desvariar de verdad. Cuando hace eso es como si alguien estuviera arañando una pizarra justo delante de ti, ugh...\c-"; +SWWM_LORETXT_HAMMERSPACEEMBIGGENER = "\cxDesignación:\c-\n\cf Ensanchecedor de Hammerspace™\c-\n\cxFabricante:\c-\n\cf Cyrus Enterprises\c-\n\cxClasificación:\c-\n\cf Contrato de Expansión de Almacenamiento\c-\n\nCuando los contenedores de \cfHammerspace™\c- fueron inicialmente comercializados, \cfCyrus Enterprises\c- aun no había decidido como manejar las necesidades de aquellos que no estuvieran satisfechos con la capacidad de almacenamiento estándar para cada cliente. Entonces, un día, una idea \"revolucionaria\" vino, la de un servicio extra de \"expansión\", por el cual clientes existentes pueden pagar un precio extra para obtener acceso a contenedores adicionales, incrementando su capacidad de almacenamiento total. Cada una de estas tarjetas de \cfEnsanchecedor de Hammerspace™\c- es completamente única, y sólo disponible para su compra desde Cyrus Enterprises. Los clientes pueden expandir su límite de almacenamiento hasta ocho veces con éstas, lo cual será suficiente incluso para los requisitos de grandes ejércitos que buscan almacenar eficientemente sus armas y munición.\n\n\cxNotas de Saya:\c-\n\cfQué hostias, ¿eso es una referencia a lo que creo que es? Este tío es más friki de lo que pensaba... aparte de que eso no es una palabra de verdad, ¿o no? ... Espera, ¿lo es? Vaya, así que sí la aceptaron... pues vale.\c-\n\n\cfAh ya, por cierto, el frikazo dice que solo tu contenedor de munición se puede expandir con esto, iba soltando mierdas de \"mochilas\" y tal, me largué antes de que empezara a desvariar de verdad. Cuando hace eso es como si alguien estuviera arañando una pizarra justo delante de ti, ugh...\c-"; SWWM_LORETXT_PUNTZERBETA = "\cxDesignación:\c-\n\cf Revólver Puntzer \"Beta\"\c-\n\cxFabricante:\c-\n\cf Blackmann Arms S.L.\c-\n\cxClasificación:\c-\n\cf Revólver de Acción Simple\c-\n\nLa serie \cfPuntzer\c- de armas de \cfBlackmann Arms\c- son el principal ejemplo del potencial de su patentada munición perforadora \cfSpin Motion Wedge (SMW)\c-.\n\nEl \cfPuntzer Beta\c- es un revólver de acción simple con cañón basculante de seis disparos, equipado con partes muy robustas, ideales para fanáticos del disparo en abanico.\n\n\cfFuego Primario:\c- Disparos lentos y precisos.\n\n\cfFuego Secundario:\c- Mantén para entrar en modo abanico, suelta para salir. En este modo, puedes pulsar/mantener el fuego primario para disparar mucho más rápido, pero con menor precisión.\n\n\cfFuego Terciario:\c- Gira el arma desenfrenadamente, por diversión.\n\n\cfRecarga:\c- Recarga el arma. Gracias al sistema de recarga rápida provisto por tu \cfContenedor de Hammerspace™\c-, simplemente tienes que mantener la palma abierta sobre el tambor, las balas serán cargadas automáticamente.\n\n\cxNotas de Saya:\c-\n\cfAh, el revólver, un arma muy clásica, famoso por todas esas películas americanas del \"salvaje oeste\". Pero este es especial, oh sí. Esas putas balas espirales son un puto desmadre, girando a lo bestia y taladrando a través de todo. Hermann-senpai nos manda las de tipo \".05\" específicamente, que son las más potentes de todas, y supuestamente pueden taladrar a través de las paredes y todo. Eso va a ser divertido.\c-"; SWWM_LORETXT_NEKURATEK = "\cxNombre:\c-\n\cf Nekuraku Tekkanosei\c-\n\cxClasificación:\c-\n\cf Megacorporación Tecnológica\c-\n\cxLocalización:\c-\n\cf Akane, Nahkami\c-\n\cxPágina Web:\c-\n\cf ubn://nkr/nekuraku.ts\c-\n\n\cfNekuratek\c- fue fundada por \cfZanata Nekuraku I\c- en 1744, inicialmente bajo el nombre de \cfNekuraku Rafana Sakosai (Fábrica de Armas Nekuraku)\c-. Rápidamente se convirtió en el proveedor principal de armamento para el \cfImperio Yathai\c-, lo cual aseguró su la posición de la familia Nekuraku entre la \"clase alta\" de ciudadanos del Imperio. Con esta nueva posición, Zanata incluso consiguió asegurar su puesto como líder provincial de Akai, uno de de los territorios mayores y más ricos de \cfNahkami\c-. Con el dominio absoluto de esa región, Nekuratek se extendería prácticamente sin límites, convirtiéndose entonces en la mayor corporación del planeta.\n\nZanata permaneció a la cabeza de la compañía hasta 1870, después de que un fallo en el prototipo del primer \cfReactor de Fusión de Nokorokinylum\c- de Nekuratek resultara en una explosión que acabó con su vida y la de varios empleados. Tras el suicidio del marido de Zanata, y con sus dos hijos, \cfDokuro\c- y \cfNokoi\c- habiendo muerto en la Sexta Guerra Mundial, el único sucesor que quedaba era su nieta, \cfZanata II\c-.\n\nUna vez a cargo de Nekuratek, Zanata II comenzó a diversificar en otros campos, tales como la robótica y la informática, y gradualmente fue recortando en fabricación de armas. No estaba claro al principio, la razón por este cambio repentino en su dirección, pero tras la caida del Imperio Yathai, reveló finalmente el inmenso desdén por el régimen tiránico que había sentido desde hace mucho tiempo, y su deseo de distanciarse a ella y a su familia de \"ser arquitectos de la muerte\".\n\nDurante el periodo inicial de \"des-escalada\", su hijo \cfZanaveth I\c- estaba a carbo de la división de fábrica de armas, y fue responsable de la creación de \cfLa Ira del Emperador\c-, un arma orbital que se usaría en los eventos del incidente de la \cfCicatriz Blanca\c-. Tras ser testigo de lo que su creación había hecho, renunció a su posición y pasó varios años en solitario. Nunca volvió a involucrarse en la compañía desde entonces.\n\nDurante la reforma masiva de los sistemas políticos y económicos de la nación en el periodo de transición de 2104-2108, Nekuratek fue uno de los primeros en reformarse en una organización pública, con la familia Nekuraku sirviendo simplemente como \"líderes simbólicos\". En 2128, Zanata II se jubiló y dejó a \cfZanaveth II\c- a cargo de la compañía.\n\n\cxNotas de Saya:\c-\n\cfMuy buena gente con la que trabajar (incluso antes, durante su fase de \"capitalismo desenfrenado\"), sinceramente. La verdad es que no tuve mucho contacto con la vieja \"jefaza\", pero Zana-sama estuvo siempre ahí, y me encantaba hablar con ella, incluso de rollos de negocios y tal.\c-\n\n\cfMe mola muchísimo como esta gente abrazó tan fácilmente la forma correcta de hacer las cosas™. Aunque... es algo que no sorprende mucho teniendo en cuenta toda la mierda que pasaba entonces. No sé como Zanata-sama consiguió hacer todo eso delante de las narices de esos capullos. Era taaaaaaaan obvio que era anti-imperio que tenías que estar ciega para no darte cuenta. Y tenía MUY BUENAS razones para serlo, también, perdiendo familia en la guerra y tal.\c-\n\n\cfEn fin, por culpa de la estúpida \"Cicatriz Blanca\" todo se ha ido a tomar por culo, y tenemos muy poco contacto, así que espero que estén bien. Dios, echo de menos a Zana-sama... Absoluta monada...\c-"; SWWM_LORETXT_SILVERBULLET = "\cxDesignación:\c-\n\cf Silver Bullet JET\c-\n\cxFabricante:\c-\n\cf Blackmann Arms S.L.\c-\n\cf Aeronáutica Forx\c-\n\cxClasificación:\c-\n\cf Rifle de Francotirador de Calibre Ultra-Alto\c-\n\nEl \cfSilver Bullet JET\c- es el miembro de calibre 1.150 de la serie \cfSilver Bullet\c- de rifles de calibre ultra-alto fabricados por \cfBlackmann Arms\c-. Fue creado como una alternativa ligera y más \"razonable\" del modelo \cfBehemoth\c- de calibre 1.350. Pesando 43 kilos y con una longitud total de 2.4 metros, es suficientemente compacto para el uso por humanos no mejorados.\n\nLa munición diseñada principalmente para este modelo son las balas \cfXSB (eXplosive Super Burst)\c- del calibre 1.150. Estas bestiales balas están basadas parcialmente en los cartuchos estándar de 30x113mm de la OTAN, y emplean una carga de baja densidad de \cfExplódium\c- como propulsor, permitiendo una alta velocidad siendo a la vez seguro de usar. Las balas en sí están compuestas de un núcleo de carburo de tungsteno, con una envoltura de aluminio, y decorado con una capa fina de plata para una apariencia más estética (estas Balas de Plata, ciertamente, NO están hechas de plata). Las balas XSB pueden penetrar varios objetivos antes de detenerse, dependiendo de su tamaño, pueden incluso hacer lo mismo con paredes ligeras.\n\nLa munición secundaria son las balas \cfFCB (Fat Chode Bomb)\c- también de calibre 1.150. Llamadas así por el propio CEO de Blackmann Arms, las FCB son bastante similares a la munición XSB estándar, con la diferencia de que estas balas están llenas de Explódium, el cual, al impactar, es liberado violentamente, propagando su estallido mortífero a través de superficies sólidas. Dada la volatilidad de estas balas, el propulsor empleado es ligeramente menos potente, lo cual resulta en un disminuído potencial de penetración de objetivos, pero la explosión definitivamente lo compensa. La carga explosiva es tan potente que puede derribar completamente algunas paredes.\n\nPara poder compensar su masivo retroceso, el arma redirige una parte de los gases de ignición hasta un grupo de jets compensadores diseñados por \cfAeronáutica Forx\c-. Aunque son parcialmente refrigerados en el proceso, son aun lo suficientemente cálidos para causar ligero daño a usuarios que no lleven la protección adecuada.\n\n\cfFuego Primario:\c- Dispara la bala. Cualquier objetivo alcanzado por ella queda hecho papilla. Un segundo pulsado tras disparar cargará otra bala.\n\n\cfFuego Secundario:\c- Pulsa para alternar entre balas XSB y FCB para la siguiente recarga, si están disponibles. Mantén y luego pulsa fuego primario para accionar el perno manualmente, permitiéndote recuperar balas sin usar.\n\n\cfRecarga:\c- Recarga el arma. Cada cargador tiene 5 balas. Se puede mantener también una bala extra en la recámara.\n\n\cfZoom:\c- Mira telescópica hecha a medida, hasta 16 aumentos. Equipada con una cubierta de espuma suave para proteger la cara del usuario durante el disparo con mira.\n\n\cfTécnicas:\c- Al agacharse para usar el bípode, los compensadores de retroceso se desactivarán automáticamente, resultando en un incremento de la potencia de fuego a costa de una movilidad reducida.\n\n\cxNotas de Saya:\c-\n\cfComo era la frase esa, ¿\"no hay kill como un overkill\"? Ya, pues queda perfecta para la cosa esta.\c-\n\n\cf¿Y que coño se supone que cazas con esto, tanques salvajes? Supongo... demonios tó ciclaos también valdrían, pero al final solo van a acabar hechos mierda.\c-"; diff --git a/language.version b/language.version index 8f7612845..434290625 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r658 \cu(Wed 2 Dec 23:29:56 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r660 \cu(Fri 4 Dec 13:19:43 CET 2020)"; diff --git a/lore/default/hammerspaceembiggener.txt b/lore/default/hammerspaceembiggener.txt index 7ce9fa7df..c7d443cc2 100644 --- a/lore/default/hammerspaceembiggener.txt +++ b/lore/default/hammerspaceembiggener.txt @@ -12,7 +12,7 @@ TXT \cxClassification:\c- \cf Storage Expansion Contract\c- -When **Hammerspace™** containers first started being commercialized, **Cyrus Enterprises** hadn't yet decided on how to handle the needs of those who might not be quite satisfied with the standard storage capacity provided to each customer. Then, one day, a "revolutionary" idea came forth, that of an extra "expansion" service, where existing customers could pay extra to gain access to additional containers, increasing their total storage. Each of these **Hammerspace™ Embiggener** cards is completely unique, and only available for purchase from Cyrus Enterprises themselves. Customers can expand their storage limit up to sixteen times with these, which should be enough even for the needs of large armies seeking to store their weapons and ammo efficiently. +When **Hammerspace™** containers first started being commercialized, **Cyrus Enterprises** hadn't yet decided on how to handle the needs of those who might not be quite satisfied with the standard storage capacity provided to each customer. Then, one day, a "revolutionary" idea came forth, that of an extra "expansion" service, where existing customers could pay extra to gain access to additional containers, increasing their total storage. Each of these **Hammerspace™ Embiggener** cards is completely unique, and only available for purchase from Cyrus Enterprises themselves. Customers can expand their storage limit up to eight times with these, which should be enough even for the needs of large armies seeking to store their weapons and ammo efficiently. \cxSaya's Notes:\c- \cfThe hell, is that a reference to what I think it is? This guy is an even bigger nerd than I thought... also that's not a real word, is it? ... Wait, it is? huh, so it really got accepted... ok then.\c- diff --git a/lore/es/hammerspaceembiggener.txt b/lore/es/hammerspaceembiggener.txt index a7a431669..b1e646609 100644 --- a/lore/es/hammerspaceembiggener.txt +++ b/lore/es/hammerspaceembiggener.txt @@ -8,7 +8,7 @@ TXT \cxClasificación:\c- \cf Contrato de Expansión de Almacenamiento\c- -Cuando los contenedores de **Hammerspace™** fueron inicialmente comercializados, **Cyrus Enterprises** aun no había decidido como manejar las necesidades de aquellos que no estuvieran satisfechos con la capacidad de almacenamiento estándar para cada cliente. Entonces, un día, una idea "revolucionaria" vino, la de un servicio extra de "expansión", por el cual clientes existentes pueden pagar un precio extra para obtener acceso a contenedores adicionales, incrementando su capacidad de almacenamiento total. Cada una de estas tarjetas de **Ensanchecedor de Hammerspace™** es completamente única, y sólo disponible para su compra desde Cyrus Enterprises. Los clientes pueden expandir su límite de almacenamiento hasta dieciséis veces con éstas, lo cual será suficiente incluso para los requisitos de grandes ejércitos que buscan almacenar eficientemente sus armas y munición. +Cuando los contenedores de **Hammerspace™** fueron inicialmente comercializados, **Cyrus Enterprises** aun no había decidido como manejar las necesidades de aquellos que no estuvieran satisfechos con la capacidad de almacenamiento estándar para cada cliente. Entonces, un día, una idea "revolucionaria" vino, la de un servicio extra de "expansión", por el cual clientes existentes pueden pagar un precio extra para obtener acceso a contenedores adicionales, incrementando su capacidad de almacenamiento total. Cada una de estas tarjetas de **Ensanchecedor de Hammerspace™** es completamente única, y sólo disponible para su compra desde Cyrus Enterprises. Los clientes pueden expandir su límite de almacenamiento hasta ocho veces con éstas, lo cual será suficiente incluso para los requisitos de grandes ejércitos que buscan almacenar eficientemente sus armas y munición. \cxNotas de Saya:\c- \cfQué hostias, ¿eso es una referencia a lo que creo que es? Este tío es más friki de lo que pensaba... aparte de que eso no es una palabra de verdad, ¿o no? ... Espera, ¿lo es? Vaya, así que sí la aceptaron... pues vale.\c- diff --git a/swwmcomp.acs b/swwmcomp.acs index 0f0e45544..d6f2f553f 100644 --- a/swwmcomp.acs +++ b/swwmcomp.acs @@ -26,3 +26,10 @@ SCRIPT "ZPACK_E3M8_SCRIPT15" ( void ) TagWait(49); Floor_LowerByValue(37,10,120); } + +SCRIPT "HHR_BRAINWALL" ( void ) +{ + SpawnSpotFacing("BossBrain",666); + Generic_Floor(827,32,0,2,0); + ClearLineSpecial(); +} diff --git a/zscript/dlc/swwm_dlcammo.zsc b/zscript/dlc/swwm_dlcammo.zsc index 7f9e2d3e7..630437c8b 100644 --- a/zscript/dlc/swwm_dlcammo.zsc +++ b/zscript/dlc/swwm_dlcammo.zsc @@ -15,6 +15,7 @@ Class SMW05Ammo : Ammo Inventory.Amount 1; Inventory.MaxAmount 90; Ammo.BackpackAmount 6; + Ammo.BackpackMaxAmount 250; Ammo.DropAmount 6; +FLOATBOB; FloatBobStrength 0.25; @@ -69,6 +70,7 @@ Class SheenAmmo : Ammo Inventory.Amount 1; Inventory.MaxAmount 300; Ammo.BackpackAmount 50; + Ammo.BackpackMaxAmount 1500; Ammo.DropAmount 50; +FLOATBOB; FloatBobStrength 0.25; @@ -110,8 +112,9 @@ Class QuadravolAmmo : Ammo Stamina 10000; Inventory.Icon "graphics/HUD/Icons/A_QuadAmmo.png"; Inventory.Amount 1; - Inventory.MaxAmount 9; + Inventory.MaxAmount 8; Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 24; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -162,6 +165,7 @@ Class DarkCanister : Ammo Inventory.Amount 1; Inventory.MaxAmount 5; Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 13; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -189,6 +193,7 @@ Class EMPCore : Ammo Inventory.Amount 1; Inventory.MaxAmount 6; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 14; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -261,6 +266,7 @@ Class RayAmmo : Ammo Inventory.Amount 1; Inventory.MaxAmount 4; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 8; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -289,6 +295,7 @@ Class RayBattery : Ammo Inventory.MaxAmount 2; Inventory.PickupFlash "SWWMPickupFlash"; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 4; Ammo.DropAmount 1; +INVENTORY.IGNORESKILL; +FLOATBOB; diff --git a/zscript/dlc/swwm_notashotgun.zsc b/zscript/dlc/swwm_notashotgun.zsc index c0bdb4384..1d8992a02 100644 --- a/zscript/dlc/swwm_notashotgun.zsc +++ b/zscript/dlc/swwm_notashotgun.zsc @@ -20,7 +20,7 @@ Class Quadravol : SWWMWeapon Weapon.AmmoType1 "QuadAmmo"; Weapon.AmmoGive1 1; SWWMWeapon.DropAmmoType "QuadAmmo"; - Quadravol.ClipCount 10; + Quadravol.ClipCount 4; Stamina 80000; +SWWMWEAPON.NOFIRSTGIVE; +WEAPON.EXPLOSIVE; diff --git a/zscript/swwm_ammo.zsc b/zscript/swwm_ammo.zsc index 1040174d6..ff20fa1d0 100644 --- a/zscript/swwm_ammo.zsc +++ b/zscript/swwm_ammo.zsc @@ -344,8 +344,9 @@ Class RedShell : Ammo Stamina 500; Inventory.Icon "graphics/HUD/Icons/A_ShellsNormal.png"; Inventory.Amount 1; - Inventory.MaxAmount 50; + Inventory.MaxAmount 40; Ammo.BackpackAmount 3; + Ammo.BackpackMaxAmount 200; Ammo.DropAmount 3; +FLOATBOB; FloatBobStrength 0.25; @@ -418,8 +419,9 @@ Class GreenShell : Ammo Stamina 800; Inventory.Icon "graphics/HUD/Icons/A_ShellsSlug.png"; Inventory.Amount 1; - Inventory.MaxAmount 48; + Inventory.MaxAmount 30; Ammo.BackpackAmount 2; + Ammo.BackpackMaxAmount 150; Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; @@ -483,8 +485,9 @@ Class WhiteShell : Ammo Stamina 1000; Inventory.Icon "graphics/HUD/Icons/A_ShellsDragon.png"; Inventory.Amount 1; - Inventory.MaxAmount 32; + Inventory.MaxAmount 24; Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 80; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -539,8 +542,9 @@ Class BlueShell : Ammo Stamina 2500; Inventory.Icon "graphics/HUD/Icons/A_ShellsKinylum.png"; Inventory.Amount 1; - Inventory.MaxAmount 40; + Inventory.MaxAmount 28; Ammo.BackpackAmount 2; + Ammo.BackpackMaxAmount 100; Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; @@ -595,8 +599,9 @@ Class BlackShell : Ammo Stamina 4000; Inventory.Icon "graphics/HUD/Icons/A_ShellsFuck.png"; Inventory.Amount 1; - Inventory.MaxAmount 20; + Inventory.MaxAmount 8; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 32; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -644,6 +649,7 @@ Class PurpleShell : Ammo Inventory.Amount 1; Inventory.MaxAmount 32; Ammo.BackpackAmount 2; + Ammo.BackpackMaxAmount 120; Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; @@ -730,8 +736,9 @@ Class GoldShell : Ammo Stamina 0; Inventory.Icon "graphics/HUD/Icons/A_ShellsGold.png"; Inventory.Amount 1; - Inventory.MaxAmount 5; + Inventory.MaxAmount 3; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 7; Ammo.DropAmount 1; +FLOATBOB; +DONTGIB; // don't crush these, they're valuable @@ -764,8 +771,9 @@ Class EvisceratorShell : Ammo Stamina 3000; Inventory.Icon "graphics/HUD/Icons/A_Eviscerator.png"; Inventory.Amount 1; - Inventory.MaxAmount 48; + Inventory.MaxAmount 36; Ammo.BackpackAmount 2; + Ammo.BackpackMaxAmount 148; Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; @@ -835,8 +843,9 @@ Class HellblazerMissiles : Ammo Stamina 8000; Inventory.Icon "graphics/HUD/Icons/A_HellblazerMissile.png"; Inventory.Amount 1; - Inventory.MaxAmount 48; + Inventory.MaxAmount 30; Ammo.BackpackAmount 2; + Ammo.BackpackMaxAmount 94; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -900,8 +909,9 @@ Class HellblazerCrackshots : Ammo Stamina 15000; Inventory.Icon "graphics/HUD/Icons/A_HellblazerCrackshot.png"; Inventory.Amount 1; - Inventory.MaxAmount 30; + Inventory.MaxAmount 15; Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 71; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -944,8 +954,9 @@ Class HellblazerRavagers : Ammo Stamina 25000; Inventory.Icon "graphics/HUD/Icons/A_HellblazerRavager.png"; Inventory.Amount 1; - Inventory.MaxAmount 18; + Inventory.MaxAmount 12; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 60; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -988,8 +999,9 @@ Class HellblazerWarheads : Ammo Stamina 40000; Inventory.Icon "graphics/HUD/Icons/A_HellblazerWarhead.png"; Inventory.Amount 1; - Inventory.MaxAmount 6; + Inventory.MaxAmount 4; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 12; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1036,8 +1048,9 @@ Class SparkUnit : Ammo Stamina 50000; Inventory.Icon "graphics/HUD/Icons/A_Sparkster.png"; Inventory.Amount 1; - Inventory.MaxAmount 8; + Inventory.MaxAmount 6; Ammo.BackpackAmount 1; + Ammo.BackpackMaxAmount 30; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1071,6 +1084,7 @@ Class SilverBulletAmmo : Ammo Inventory.Amount 1; Inventory.MaxAmount 3; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 11; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1100,6 +1114,7 @@ Class SilverBulletAmmo2 : Ammo Inventory.Amount 1; Inventory.MaxAmount 2; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 10; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1225,6 +1240,7 @@ Class CandyGunAmmo : Ammo Inventory.Amount 1; Inventory.MaxAmount 3; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 7; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1318,6 +1334,7 @@ Class YnykronAmmo : Ammo Inventory.Amount 1; Inventory.MaxAmount 1; Ammo.BackpackAmount 0; + Ammo.BackpackMaxAmount 5; Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; @@ -1607,9 +1624,12 @@ Class HammerspaceEmbiggener : Inventory // The player did not have the ammoitem. Add it. ammoitem = Ammo(Spawn(type)); ammoitem.Amount = amount; - ammoitem.MaxAmount = int(ammoitem.default.MaxAmount*(1+self.Amount/2.)); if ( ammoitem.BackpackMaxAmount > 0 ) - ammoitem.MaxAmount = min(ammoitem.MaxAmount,ammoitem.BackpackMaxAmount); + { + double factor = (ammoitem.BackpackMaxAmount-ammoitem.default.MaxAmount)/double(MaxAmount); + ammoitem.MaxAmount = int(ammoitem.default.MaxAmount+self.Amount*factor); + } + else ammoitem.MaxAmount = int(ammoitem.default.MaxAmount*(1+self.Amount)); if ( (ammoitem.Amount > ammoitem.MaxAmount) && !sv_unlimited_pickup ) ammoitem.Amount = ammoitem.MaxAmount; ammoitem.AttachToOwner(other); @@ -1617,9 +1637,12 @@ Class HammerspaceEmbiggener : Inventory else { // The player had the ammoitem. Give some more. - ammoitem.MaxAmount = int(ammoitem.default.MaxAmount*(1+self.Amount/2.)); if ( ammoitem.BackpackMaxAmount > 0 ) - ammoitem.MaxAmount = min(ammoitem.MaxAmount,ammoitem.BackpackMaxAmount); + { + double factor = (ammoitem.BackpackMaxAmount-ammoitem.default.MaxAmount)/double(MaxAmount); + ammoitem.MaxAmount = int(ammoitem.default.MaxAmount+self.Amount*factor); + } + else ammoitem.MaxAmount = int(ammoitem.default.MaxAmount*(1+self.Amount)); if ( ammoitem.Amount < ammoitem.MaxAmount ) { ammoitem.Amount += amount; @@ -1638,13 +1661,15 @@ Class HammerspaceEmbiggener : Inventory { if ( !HammerspaceEmbiggener(item).cheatedin ) Owner.A_StartSound("powerup/embiggener",CHAN_ITEMEXTRA); // readjust ammo values to new capacity - // also do the same for spare bullets for ( Inventory i=Owner.Inv; i; i=i.Inv ) { if ( !(i is 'Ammo') ) continue; - i.MaxAmount = int(i.default.MaxAmount*(1+Amount/2.)); if ( Ammo(i).BackpackMaxAmount > 0 ) - i.MaxAmount = min(i.MaxAmount,Ammo(i).BackpackMaxAmount); + { + double factor = (Ammo(i).BackpackMaxAmount-i.default.MaxAmount)/double(MaxAmount); + i.MaxAmount = int(i.default.MaxAmount+Amount*factor); + } + else i.MaxAmount = int(i.default.MaxAmount*(1+Amount)); int amount = Ammo(i).BackpackAmount; if ( !bIgnoreSkill ) amount = int(amount*G_SkillPropertyFloat(SKILLP_AmmoFactor)); i.Amount += amount; @@ -1655,7 +1680,12 @@ Class HammerspaceEmbiggener : Inventory // new ammo suddenly added? upgrade it (this shouldn't happen unless fucky scripting has been involved) if ( (item is 'Ammo') && !Owner.FindInventory(Ammo(item).GetParentAmmo()) ) { - item.MaxAmount = int(item.default.MaxAmount*(1+Amount/2.)); + if ( Ammo(item).BackpackMaxAmount > 0 ) + { + double factor = (Ammo(item).BackpackMaxAmount-item.default.MaxAmount)/double(MaxAmount); + item.MaxAmount = int(item.default.MaxAmount+Amount*factor); + } + else item.MaxAmount = int(item.default.MaxAmount*1+Amount); if ( Ammo(item).BackpackMaxAmount > 0 ) item.MaxAmount = min(item.MaxAmount,Ammo(item).BackpackMaxAmount); } @@ -1679,8 +1709,8 @@ Class HammerspaceEmbiggener : Inventory { Tag "$T_EMBIGGENER"; Inventory.PickupMessage "$T_EMBIGGENER"; - Inventory.MaxAmount 16; - Inventory.InterHubAmount 16; + Inventory.MaxAmount 8; + Inventory.InterHubAmount 8; Inventory.PickupFlash "SWWMPickupFlash"; +INVENTORY.UNDROPPABLE; +INVENTORY.UNTOSSABLE; diff --git a/zscript/swwm_compat.zsc b/zscript/swwm_compat.zsc index 0ed0da953..10a13d02d 100644 --- a/zscript/swwm_compat.zsc +++ b/zscript/swwm_compat.zsc @@ -27,6 +27,18 @@ Class SWWMLevelCompatibility : LevelPostProcessor // script uses checkinventory for yellow skull SetLineSpecial(22610,ACS_LockedExecute,-Int('ZPACK_E3M8_SCRIPT15'),0,0,0,6); break; + // okuplok + case 'F7F353146676920238935A8D0D1B6E8E': + // add 7 more backpacks on top of existing one, for a full embiggening + // (players will need it) + for ( int i=0; i<7; i++ ) AddThing(8,(11808,-2016,384)); + break; + // holy hell revealed + case '83569A062B5261C6BB4A034BA8245D24': + // remove boss brain and re-spawn it when end is reached, prevents cheesing the map with the ynykron + SetThingEdNum(50183,9001); + SetThingID(50183,666); + SetLineSpecial(21964,ACS_Execute,-Int('HHR_BRAINWALL')); } } } diff --git a/zscript/swwm_credits.zsc b/zscript/swwm_credits.zsc index c4d4d593d..28980fab6 100644 --- a/zscript/swwm_credits.zsc +++ b/zscript/swwm_credits.zsc @@ -105,7 +105,7 @@ Class SWWMCreditsMenu : GenericMenu { TextureID bgtex; TextureID logo; - String stitle; + String stitle, stitle2; String sdev, sassets, smusic, sfanart, slocal, spatrons, sthanks; Array cdev, cassets, cmusic, cfanart, clocal, cpatrons, cthanks; transient CVar fuzz, lang; @@ -149,6 +149,7 @@ Class SWWMCreditsMenu : GenericMenu logo = TexMan.CheckForTexture("graphics/M_SWWM.png",TexMan.Type_Any); [logow, logoh] = TexMan.GetSize(logo); stitle = StringTable.Localize("$SWWM_CSTITLE"); + stitle2 = StringTable.Localize("$SWWM_CSTITLE2"); sdev = StringTable.Localize("$SWWM_CLEAD"); sassets = StringTable.Localize("$SWWM_CASSETS"); smusic = StringTable.Localize("$SWWM_CMUSIC"); @@ -176,7 +177,6 @@ Class SWWMCreditsMenu : GenericMenu clocal.Push(new("SWWMCreditsEntry").Init(sfnt,"Marisa Kirisame","$SWWM_LOCES")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Snacks")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"john")); - cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Alexa Jones-Gonzales")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Jonas Höglund")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Lilian Lamp")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Valerie Thiessen")); @@ -184,6 +184,7 @@ Class SWWMCreditsMenu : GenericMenu cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Dac")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Pietro Gagliardi")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Xada Xephron")); + cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Alexa Jones-Gonzales")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"NekoMithos")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Ashley Lambert")); cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"LordMisfit")); @@ -202,7 +203,7 @@ Class SWWMCreditsMenu : GenericMenu cthanks.Push(new("SWWMCreditsEntry").Init(sfnt,"$SWWM_CDEVS1","$SWWM_CDEVS2")); cthanks.Push(new("SWWMCreditsEntry").Init(sfnt,"$SWWM_CYOU1","$SWWM_CYOU2")); speed = 16.; - spos = (ss.y-logoh)/2; + spos = ss.y-logoh; // calc total height theight = logoh; theight += 7*(SECTION_PAD+bfnt.GetHeight()); @@ -252,7 +253,14 @@ Class SWWMCreditsMenu : GenericMenu // don't draw if we're offscreen, saves time if ( (y+logoh < 0) || (y > ss.y) ) return logoh; Screen.DrawTexture(logo,true,x-logow/2,y,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); - Screen.DrawText(sfnt,Font.CR_SAPPHIRE,x-sfnt.StringWidth(stitle)/2,y+(logoh-24),stitle,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + Screen.DrawText(sfnt,Font.CR_SAPPHIRE,x-sfnt.StringWidth(stitle)/2,y+(logoh-28),stitle,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true); + // underline + int w = max(sfnt.StringWidth(stitle),sfnt.StringWidth(stitle2)); + int cw = int(ceil((w+8)/6.))*6; + double xx = x-cw/2; + for ( int i=0; i 0); + } + override void WorldThingDied( WorldEvent e ) { if ( e.Thing.default.bISMONSTER && ((e.Thing.default.bBOSS) || (e.Thing.GetSpawnHealth() >= 1000)) && (alreadygold.Find(e.Thing) == alreadygold.Size()) ) @@ -1194,7 +1216,8 @@ Class SWWMHandler : EventHandler while ( ti.Next() ) dropweight++; int minchance = max(1,6-(e.Thing.GetSpawnHealth()/1000)); dropweight = max(minchance,dropweight/4); - if ( !Random[GoldDrop](0,dropweight) ) + // make sure the gold shell is "worth spawning", too + if ( !Random[GoldDrop](0,dropweight) && ShouldSpawnGold() ) { let g = Actor.Spawn("GoldShell",e.Thing.Vec3Offset(0,0,e.Thing.Height/2)); double ang = FRandom[SpareShells](0,360);