From c770276bd790a5795f7110317ad8976afe923c32 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Fri, 28 Oct 2022 16:49:14 +0200 Subject: [PATCH] Various changes related to items: - All items now have vanilla hitbox sizes for compatibility. - Removed extended hitboxes (no longer needed). - Blob shadows are now exclusive to players (and eventually monsters). - Glows and sparkles are no longer toggleable. - Glows and sparkles have fixed size/radius. - Item sparkles are now handled by the glows, rather than the player. --- README.md | 2 +- cvarinfo.base | 5 - language.def_menu | 18 +-- language.es_menu | 18 +-- language.version | 4 +- menudef.txt | 8 -- zscript/dlc1/swwm_ammoitems_dlc.zsc | 29 ----- zscript/dlc1/swwm_blastin.zsc | 2 - zscript/dlc1/swwm_blueballs.zsc | 2 - zscript/dlc1/swwm_hammertime.zsc | 2 - zscript/dlc1/swwm_heavymahsheengun.zsc | 2 - zscript/dlc1/swwm_mister.zsc | 2 - zscript/dlc1/swwm_notashotgun.zsc | 2 - zscript/handler/swwm_handler_debugrender.zsc | 2 +- zscript/handler/swwm_handler_process.zsc | 113 ------------------- zscript/handler/swwm_handler_worldthings.zsc | 4 +- zscript/items/swwm_ammoextra.zsc | 17 ++- zscript/items/swwm_ammoitems.zsc | 40 ------- zscript/items/swwm_armor.zsc | 6 - zscript/items/swwm_baseitem.zsc | 35 +----- zscript/items/swwm_collectibles.zsc | 26 ----- zscript/items/swwm_health.zsc | 8 -- zscript/items/swwm_keys.zsc | 30 ----- zscript/items/swwm_powerups.zsc | 28 +---- zscript/swwm_common_fx.zsc | 39 ++++--- zscript/swwm_player.zsc | 48 +------- zscript/weapons/swwm_baseweapon.zsc | 21 +--- zscript/weapons/swwm_blazeit.zsc | 2 - zscript/weapons/swwm_cbt.zsc | 2 - zscript/weapons/swwm_danmaku.zsc | 2 - zscript/weapons/swwm_deathlydeathcannon.zsc | 2 - zscript/weapons/swwm_shot.zsc | 2 - zscript/weapons/swwm_sparkyboi.zsc | 2 - zscript/weapons/swwm_splode.zsc | 4 +- zscript/weapons/swwm_tastytreat.zsc | 2 - zscript/weapons/swwm_thiccboolet.zsc | 2 - 36 files changed, 55 insertions(+), 478 deletions(-) diff --git a/README.md b/README.md index 3ef4aef1e..aee2538c6 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Additional features: - **Targetting Array:** Tracks nearby foes and provides basic information on their health. Compatible with **Omnisight™** mapping modules for tracking key items and nearby exits. Can also highlight nearby pickups by holding a dedicated button. - **Akari Labs CuteEmotion™ Display:** Equipped onto your visor to show a wide range of predefined facial expressions in order to convey simple emotions to others. - **Akari Labs LoudBoi™ Voicebox:** Allows you to **EMIT**. Easily moddable to allow alternate voicepack add-ons *(If someone were to make them)*. Your usual voice is quite robotty, due to a built-in filter. - - **On-demand Item Obtainers:** AKA "hands". You can pick up the mod's items from a distance by pressing Use *(this is mainly a workaround for any quirks that might come from them having modified collision)*. Furthermore, if you hold Use for a while, you will also attract nearby dropped items towards you as well. + - **On-demand Item Obtainers:** AKA "hands". You can pick up the mod's items from a distance by pressing Use *(Note that any trigger lines between you and the item still get activated, so you can't skip traps by doing this)*. Furthermore, if you hold Use for a while, you will also attract nearby dropped items towards you as well. **Note:** Since you're a robutt you pretty much can't drown and are also immune to poison. diff --git a/cvarinfo.base b/cvarinfo.base index 45bf3b2c8..50264ac82 100644 --- a/cvarinfo.base +++ b/cvarinfo.base @@ -41,12 +41,10 @@ nosave bool swwm_intermusic = false; // use original intermission music server int swwm_enemydrops = 0; // allow enemies to drop ammo and weapons (-1 - no ammo or weapons, 0 - ammo only, 1 - both) user bool swwm_collectanim = true; // player special gestures for collectables (first person only) user bool swwm_collectanimkey = true; // same but for key items -server bool swwm_shadows = true; // enables blob shadows under mod entities, like in UT (except it also affects inventory items) nosave int swwm_precisecrosshair = 1; // use mod's own, more precise crosshair (2 - force even when crosshair is not on) nosave bool swwm_ldspoil = false; // [LD] always shows "Legendary" prefix on Legendary monsters, otherwise only when they've transformed server bool swwm_uncapalert = false; // all noise alerts have infinite range server int swwm_strictuntouchable = 0; // untouchable bonus ends... (1 - even if your armor absorbed all the damage, 2 - if you get hit by anything PERIOD) -nosave int swwm_shadowdist = 2000; // max distance beyond which blob shadows are no longer rendered, helps performance server bool swwm_swapweapons = true; // [DLC1] allows carrying only one weapon in each slot (excluding starter melee) nosave int swwm_forcestats = 1; // always shows level stats on the HUD, not just when the automap is open (2 - also show map name, otherwise only stats) user int swwm_funtrails = 0; // recolors trails of eviscerator chunks and sheen bullets @@ -55,8 +53,6 @@ server int swwm_ps_resetammo = 0; // resets all ammo to zero server int swwm_ps_resetitems = 0; // removes all carried items server int swwm_ps_resethealth = 0; // sets health back to 100 server int swwm_drlaskill = 3; // [DRLA Monsters] skill setting for monster spawns -nosave bool swwm_itemsparkles = true; // visual aid for low visibility items -nosave bool swwm_itemglows = true; // distant items glow server bool swwm_singlefirst = false; // single weapons are selected before dual ones, has to be a server cvar due to limitations nosave bool swwm_uniqstats = false; // only list stats from the same map once, rather than for each single visit nosave int swwm_filterachievements = 1; // filter for achievements at 0%: 0 - no filter, 1 - obscure text, 2 - don't show @@ -76,7 +72,6 @@ nosave bool swwm_beepboop = false; // prompts the Demolitionist to go "beep", " nosave string swwm_menuposehistory = ""; // stores currently seen poses for the main menu, for shuffling nosave string swwm_titlesubhistory = ""; // stores currently seen subtitles for the title screen, for shuffling nosave noarchive int swwm_profstart = 0; // starts profiling as soon as handler is registered for specified >0 tics -server bool swwm_extendedpickup = false; // items will have an additional "virtual hitbox" that's the same size as vanilla nosave bool swwm_voicelog = false; // adds player voicelines to the message log nosave bool swwm_skipskill = false; // skips skill confirmations nosave bool swwm_hudallammo = false; // only show ammo for owned weapons diff --git a/language.def_menu b/language.def_menu index 8f8aecd7d..43b94528b 100644 --- a/language.def_menu +++ b/language.def_menu @@ -80,7 +80,6 @@ SWWM_DROPS_NONE = "Disabled"; SWWM_DROPS_AMMO = "Ammo Only"; SWWM_DROPS_WEAPONS = "Ammo And Weapons"; SWWM_COLLECTANIM = "Collectible Animations"; -SWWM_SHADOWS = "Simple Shadows"; SWWM_PRECISECROSSHAIR = "Precise Crosshair"; SWWM_MCTITLE = "Mod Compatibility Options"; SWWM_LDSPOIL = "Always Show Legendaries"; @@ -91,7 +90,6 @@ SWWM_STRICTUNTOUCHABLE = "Untouchable Bonus Strictness"; SWWM_UNTOUCHABLE_HEALTH = "Health Decrease"; SWWM_UNTOUCHABLE_ARMOR = "Armor Decrease"; SWWM_UNTOUCHABLE_ANYHIT = "Any Hit"; -SWWM_SHADOWDIST = "Shadow Distance"; SWWM_SWAPWEAPONS = "Weapon Swapping"; SWWM_FORCESTATS = "Always Show Map Stats"; SWWM_STATS_DISABLED = "Disabled"; @@ -124,7 +122,6 @@ SWWM_DRLASKILL_NIGHTMARE = "Nightmare"; SWWM_DRLASKILL_TECHNOPHOBIA = "Technophobia"; SWWM_DRLASKILL_ARMAGEDDON = "Armageddon"; SWWM_DRLASKILL_ADAPTIVE = "Adaptive"; -SWWM_ITEMSPARKLES = "Item Sparkles"; SWWM_SINGLEFIRST = "Single Weapons Take Priority"; SWWM_UNIQSTATS = "Omit Repeated Map Stats"; SWWM_FILTERACHIEVEMENTS = "Achievement Filtering"; @@ -145,7 +142,6 @@ SWWM_USETOPICKUP = "Exclusive Use To Pickup"; SWWM_BUTTSFX = "Clapping Buttcheeks"; SWWM_BUMP = "FOV Bump Strength"; SWWM_ENGINE = "Engine"; -SWWM_ITEMGLOWS = "Distant Items Glow"; SWWM_NOMAGDROP = "Drop Spent Mags"; SWWM_NOMAPMSG = "Map Special Messages"; SWWM_WEAPONTOOLTIPS = "Weapon Tooltips"; @@ -157,7 +153,6 @@ SWWM_DEMOSLAYER = "Demoslayer Mode"; SWWM_BEEPBOOP = "Switch Emoting"; SWWM_VOICEAMP = "Voice Amplification"; SWWM_CLEARFX = "Clear All Effects"; -SWWM_EXTENDEDPICKUP = "Extend Item Size"; SWWM_VOICELOG = "Log Player Comments"; SWWM_SKIPSKILL = "Skip Skill Confirmation"; SWWM_HUDALLAMMO = "Show All Ammo"; @@ -207,9 +202,6 @@ SWWM_DBGWARN = "WARNING: These options and commands are for experienced users on SWWM_DBG_DEBUGBLAST = "Visualize Explosion Radii"; SWWM_DBG_DEBUGVIEW = "Visualize Actor Info"; SWWM_DBG_FIXITEMCAPS = "Recalculate Item Caps"; -SWWM_DBG_UPDATESHADOWS = "Update Simple Shadows"; -SWWM_DBG_UPDATEGLOWS = "Update Item Glows"; -SWWM_DBG_UPDATEHITBOXES = "Update Extended Hitboxes"; TOOLTIP_SWWM_VOICETYPE = "Sets the voice pack for the player."; TOOLTIP_SWWM_MUTEVOICE = "Control what gets muted, if you'd rather have a more silent protagonist."; TOOLTIP_SWWM_FLASHSTRENGTH = "Screen flashes usually happen when firing some weapons, you can lower this if these effects are harmful for you."; @@ -241,13 +233,11 @@ TOOLTIP_SWWM_MAXCASINGS = "Caps the maximum amount of casings and spent magazine TOOLTIP_SWWM_MAXDEBRIS = "Caps the maximum amount of rubble from explosions and others. Surpassing this limit will cause the excess to fade out."; TOOLTIP_SWWM_ENEMYDROPS = "By default, enemies only drop ammo for a better progression. In maps with excessive amounts of enemies, it's recommended to disable this entirely."; TOOLTIP_SWWM_COLLECTANIM = "Play special first person animations when picking up collectibles."; -TOOLTIP_SWWM_SHADOWS = "Enables round shadows for various entities, combine with sprite shadows for best effect. Requires a map restart."; TOOLTIP_SWWM_PRECISECROSSHAIR = "Projects crosshair onto the spot the weapon will actually hit, rather than staying in the center of the screen. (\"Always\" will draw the crosshair even if it's normally toggled off, useful if you regularly switch to other mods where it's recommended to be disabled)"; TOOLTIP_SWWM_LDSPOIL = "[LegenDoom] Always show the \"Legendary\" prefix on healthbar tags, rather than after the monster has transformed. Disable if you'd rather not spoil the surprise."; TOOLTIP_SWWM_UNCAPALERT = "If enabled, all weapons and projectiles will have infinite noise radius. May fix maps that employ vanilla-style teleport traps."; TOOLTIP_SWWM_COLLECTANIMKEY = "Play special first person animations when picking up keys."; TOOLTIP_SWWM_STRICTUNTOUCHABLE = "By default, the \"Untouchable\" bonus is active until you take direct damage. If you feel this isn't strict enough, you can also make it end if armor absorbs the damage, or, for extra strictness, on ANY hit, even while invulnerable."; -TOOLTIP_SWWM_SHADOWDIST = "Maximum distance at which to show blob shadows. May help performance."; TOOLTIP_SWWM_SWAPWEAPONS = "Allow only one weapon per slot (excluding Deep Impact). Disable if you'd rather throw balance out the window."; TOOLTIP_SWWM_FORCESTATS = "Shows map statistics in the HUD even when the automap isn't open."; TOOLTIP_SWWM_FUNTRAILS = "Recolors the trails left by slot 5 weapon projectiles."; @@ -256,7 +246,6 @@ TOOLTIP_SWWM_PS_RESETAMMO = "Clears all your carried ammo, excluding what is alr TOOLTIP_SWWM_PS_RESETITEMS = "Clears all your carried items that aren't weapons or ammo. Excludes equipped armor."; TOOLTIP_SWWM_PS_RESETHEALTH = "Sets your health back to 100%, and removes all equipped armor."; TOOLTIP_SWWM_DRLASKILL = "[DRLA Monsters] Sets the skill level for enemy spawns."; -TOOLTIP_SWWM_ITEMSPARKLES = "Nearby items will have particles around them, as a visual aid."; TOOLTIP_SWWM_SINGLEFIRST = "For weapons that have dual-wield variants, enabling this will always select the single weapon first."; TOOLTIP_SWWM_UNIQSTATS = "Clears duplicate map entries in the mission stats tab, useful to unclutter the list when moving back and forth in hubs."; TOOLTIP_SWWM_FILTERACHIEVEMENTS = "Filters out achievements at 0% in the Demolitionist Menu, if you'd rather avoid spoiling the fun. The 'Obfuscate' option is recommended, as it will at least leave a hint of things to be discovered."; @@ -265,7 +254,6 @@ TOOLTIP_SWWM_USETOPICKUP = "Prevents picking up mod items through touch, exclusi TOOLTIP_SWWM_BUTTSFX = "The Demolitionist's buttcheeks will VERY AUDIBLY clap upon executing a successful buttslam."; TOOLTIP_SWWM_BUMPSTRENGTH = "Controls how strong the bumping of the FOV is from weapon recoil and other actions."; TOOLTIP_SWWM_ENGINE = "Don't touch this."; -TOOLTIP_SWWM_ITEMGLOWS = "If enabled, items that are far away from the player will display a shimmering glow (requires a map restart to take full effect)."; TOOLTIP_SWWM_NOMAGDROP = "By default, the Demolitionist will be somewhat environmentally conscious and not leave spent magazines lying around. Enable if you prefer the added clutter."; TOOLTIP_SWWM_NOMAPMSG = "Toggles special animated character messages on certain maps (usually vanilla)."; TOOLTIP_SWWM_WEAPONTOOLTIPS = "Shows a summary of controls when a weapon is selected for the first time."; @@ -277,7 +265,6 @@ TOOLTIP_SWWM_DEMOSLAYER = "Killed enemies may drop health, armor and ammo orbs." TOOLTIP_SWWM_BEEPBOOP = "The Demolitionist will make cute noises whenever pressing any usable line. This might get annoying, so it's optional."; TOOLTIP_SWWM_VOICEAMP = "At their default volume, the Demolitionist's voice lines might be drowned out by in-game audio. This sets an additional amplification level so they're louder than other sounds."; TOOLTIP_NETEVENT_SWWMCLEAREFFECTS = "Fades out any active blood, gore, debris and casings."; -TOOLTIP_SWWM_EXTENDEDPICKUP = "Gives all items a vanilla-sized \"virtual hitbox\" that allows picking them up from farther away. Requires a map restart if changed."; TOOLTIP_SWWM_VOICELOG = "Subtitled player comments will be saved to the Messages tab of the Demolitionist Menu."; TOOLTIP_SWWM_SKIPSKILL = "Skips confirmation of skill selection, if you get tired of seeing it every time."; TOOLTIP_SWWM_HUDALLAMMO = "Shows all ammo types in the HUD, rather than only those for currently carried weapons."; @@ -297,9 +284,6 @@ TOOLTIP_SWWMDEBUGMENU = "Don't touch this unless you know what you're doing."; TOOLTIP_SWWM_DEBUGBLAST = "Shows radii of DoExplosion calls. Damaging explosions are green, with yellow for the hotspot. Non-damaging explosions are blue, with magenta for the hotspot."; TOOLTIP_SWWM_DEBUGVIEW = "Shows collision, orientation and velocity of actors, as well as relationship lines to their target/tracer/master pointers (gold/orange/purple respectively)."; TOOLTIP_NETEVENT_SWWMFIXITEMCAPS = "Recomputes carried item capacities. Only needed if loading an old save before the default values were changed."; -TOOLTIP_NETEVENT_SWWMUPDATESHADOWS = "Adds/Removes simple shadows at runtime, without the need to restart the map. Unclear if it causes issues."; -TOOLTIP_NETEVENT_SWWMUPDATEGLOWS = "Adds/Removes item glows at runtime, without the need to restart the map. Unclear if it causes issues."; -TOOLTIP_NETEVENT_SWWMUPDATEHITBOXES = "Removes extended item hitboxes at runtime. Due to implementation quirks, they can't be added without a map restart."; // main menu poses (do not localize) SWWM_NMENUPOSE = "25"; SWWM_MENUPOSE1 = "graphics/M_DEMOCHAN_DEEPIMPACT.png"; @@ -619,6 +603,6 @@ SWWM_HELP_TIPS = "Additional Tips"; SWWM_HELP_TIPSTXT = "Do note that you can also activate doors and switches by punching or dashing into them. The option is there, should you really want to, and are feeling especially intense.\n" "\n" -"Another thing to know is that items from this mod happen to have rather non-standard sized collision boxes, which might cause certain issues where you just can't pick them up by walking into them. In cases like these... just use your hands, obviously. You can press Use to pick up whatever you're looking at, as long as it's an item from this mod. Furthermore, should you find a lot of scattered item drops in the battlefield, you can hold Use to pull them towards you.\n" +"Another thing to know is that items from this mod can not only be picked up by walking over them, but also by using your hands. That is, you can press Use to pick them up, as long as your arms can reach. Furthermore, should you find a lot of scattered item drops in the battlefield, you can hold Use to pull them towards you.\n" "\n" "Last but not least, did you know you can pet certain enemies to turn them into allies? I don't think I need to tell you which ones you can pet. They're red, round and shaped like friends. You can also pet the dog, should a map you're playing employ MBF helper dogs (this tends to be rare, though)."; diff --git a/language.es_menu b/language.es_menu index ee40d4b43..f19ffec51 100644 --- a/language.es_menu +++ b/language.es_menu @@ -79,7 +79,6 @@ SWWM_DROPS_NONE = "Desactivado"; SWWM_DROPS_AMMO = "Solo Munición"; SWWM_DROPS_WEAPONS = "Munición y Armas"; SWWM_COLLECTANIM = "Animaciones de Coleccionables"; -SWWM_SHADOWS = "Sombras Simples"; SWWM_PRECISECROSSHAIR = "Mira Precisa"; SWWM_MCTITLE = "Opciones de Compatibilidad con Mods"; SWWM_LDSPOIL = "Mostrar Siempre Legendarios"; @@ -90,7 +89,6 @@ SWWM_STRICTUNTOUCHABLE = "Rigurosidad de Bonus Intocable"; SWWM_UNTOUCHABLE_HEALTH = "Baja de Salud"; SWWM_UNTOUCHABLE_ARMOR = "Baja de Armadura"; SWWM_UNTOUCHABLE_ANYHIT = "Cualquier Golpe"; -SWWM_SHADOWDIST = "Distancia de Sombras"; SWWM_SWAPWEAPONS = "Alternado de Armas"; SWWM_FORCESTATS = "Mostrar Siempre Estadísticas de Mapa"; SWWM_STATS_DISABLED = "Desactivado"; @@ -122,7 +120,6 @@ SWWM_DRLASKILL_NIGHTMARE = "Pesadilla"; SWWM_DRLASKILL_TECHNOPHOBIA = "Tecnofobia"; SWWM_DRLASKILL_ARMAGEDDON = "Armagedón"; SWWM_DRLASKILL_ADAPTIVE = "Adaptado"; -SWWM_ITEMSPARKLES = "Partículas de Ítem"; SWWM_SINGLEFIRST = "Arma Singular con Prioridad"; SWWM_UNIQSTATS = "Omitir Estadísticas Repetidas de Mapa"; SWWM_FILTERACHIEVEMENTS = "Filtro de Logros"; @@ -143,7 +140,6 @@ SWWM_USETOPICKUP = "Uso Exclusivo para Recoger"; SWWM_BUTTSFX = "Azote de Nalgas"; SWWM_BUMP = "Intensidad de Sacudida de FOV"; SWWM_ENGINE = "Motor"; -SWWM_ITEMGLOWS = "Los Ítems Lejanos Brillan"; SWWM_NOMAGDROP = "Tirar Cargadores Usados"; SWWM_NOMAPMSG = "Mensajes Especiales de Mapa"; SWWM_WEAPONTOOLTIPS = "Ayuda de Armas"; @@ -155,7 +151,6 @@ SWWM_DEMOSLAYER = "Modo Demoslayer"; SWWM_BEEPBOOP = "Ruiditos de Activación"; SWWM_VOICEAMP = "Amplificación de Voz"; SWWM_CLEARFX = "Limpiar todos los Efectos"; -SWWM_EXTENDEDPICKUP = "Extender Tamaño de Ítem"; SWWM_VOICELOG = "Registrar Comentarios de Jugador"; SWWM_SKIPSKILL = "Saltar Confirmación de Dificultad"; SWWM_HUDALLAMMO = "Mostrar Toda la Munición"; @@ -204,9 +199,6 @@ SWWM_DBGWARN = "ADVERTENCIA: Estas opciones y comandos son solo para usuarios ex SWWM_DBG_DEBUGBLAST = "Visualizar Radios de Explosión"; SWWM_DBG_DEBUGVIEW = "Visualizar Información de Actor"; SWWM_DBG_FIXITEMCAPS = "Recalcular Capacidades de Ítem"; -SWWM_DBG_UPDATESHADOWS = "Actualizar Sombras Simples"; -SWWM_DBG_UPDATEGLOWS = "Actualizar Brillos de Ítem"; -SWWM_DBG_UPDATEHITBOXES = "Actualizar Hitboxes Extendidas"; TOOLTIP_SWWM_VOICETYPE = "Selecciona el pack de voz para el jugador."; TOOLTIP_SWWM_MUTEVOICE = "Controla lo que se mutea, si prefieres tener un protagonista más silencioso."; TOOLTIP_SWWM_FLASHSTRENGTH = "Los destellos en pantalla suelen ocurrir al disparar algunas armas, puedes reducirlo si este tipo de efectos te causan malestar."; @@ -239,13 +231,11 @@ TOOLTIP_SWWM_MAXCASINGS = "Limita la cantidad máxima de casquillos y cargadores TOOLTIP_SWWM_MAXDEBRIS = "Limita la cantidad máxima de escombros por explosiones y otros. Sobrepasar este límite causará que el exceso se desvanezca."; TOOLTIP_SWWM_ENEMYDROPS = "Por defecto, los enemigos solo dropean munición para una mejor progresión. En mapas con enemigos excesivos, se recomienda desactivar los drops por completo."; TOOLTIP_SWWM_COLLECTANIM = "Muestra animaciones especiales en primera persona al recoger coleccionables."; -TOOLTIP_SWWM_SHADOWS = "Activa sombras redondas para varias entidades, combina con sombras de sprites para un mejor efecto. Requiere un reinicio de mapa."; TOOLTIP_SWWM_PRECISECROSSHAIR = "Proyecta la mira en el punto que el arma alcanzará, en vez de quedarse en el centro de la pantalla. (\"Siempre\" dibuja la mira aunque esté normalmente desactivada, útil si alternas regularmente con jugar mods en los que se recomienda desactivarla)"; TOOLTIP_SWWM_LDSPOIL = "[LegenDoom] Muestra siempre el sufijo de \"Legendario\" en las etiquetas de barra de vida, en lugar de despues de que el enemigo se haya transformado. Desactiva si prefieres no estropear la sorpresa."; TOOLTIP_SWWM_UNCAPALERT = "Si se activa, todas las armas y proyectiles tendrán un rango de ruido ilimitado. Puede arreglar mapas que usan trampas de teletransporte estilo vanilla."; TOOLTIP_SWWM_COLLECTANIMKEY = "Muestra animaciones especiales en primera persona al recoger llaves."; TOOLTIP_SWWM_STRICTUNTOUCHABLE = "Por defecto, el bonus \"Intocable\" permanece activo hasta que recibas daño directo. Si sientes que esto no es suficientemente estricto, también puedes hacer que termine si la armadura absorbe el daño, o, para mayor severidad, con CUALQUIER golpe, incluso siendo invulnerable."; -TOOLTIP_SWWM_SHADOWDIST = "Distancia máxima a la que mostrar sombras. Puede ayudar al rendimiento."; TOOLTIP_SWWM_SWAPWEAPONS = "Permite solo un arma por puesto (excluyendo Deep Impact). Desactiva si prefieres tirar el balance por la ventana."; TOOLTIP_SWWM_FORCESTATS = "Muestra estadísticas de mapa en el HUD incluso cuando el automapa no está abierto."; TOOLTIP_SWWM_FUNTRAILS = "Recolorea los rastros dejados por proyectiles de armas de ranura 5."; @@ -254,7 +244,6 @@ TOOLTIP_SWWM_PS_RESETAMMO = "Vacía toda la munición que llevas, excluyendo la TOOLTIP_SWWM_PS_RESETITEMS = "Vacía todos los ítems que llevas que no sean armas o munición. Excluye la armadura equipada."; TOOLTIP_SWWM_PS_RESETHEALTH = "Resetea tu salud de vuelta al 100%, y quita toda la armadura equipada."; TOOLTIP_SWWM_DRLASKILL = "[DRLA Monsters] Elige el nivel de dificultad para spawns de enemigos."; -TOOLTIP_SWWM_ITEMSPARKLES = "Los ítems cercanos tendrán partículas alrededor, para mejor visibilidad."; TOOLTIP_SWWM_SINGLEFIRST = "Para armas que tienen variantes duales, activando esto selecionará siempre primero el arma singular."; TOOLTIP_SWWM_UNIQSTATS = "Elimina entradas duplicadas de mapa en la pestaña de estadísticas de misión, útil para despejar la lista al moverse por hubs."; TOOLTIP_SWWM_FILTERACHIEVEMENTS = "Filtra logros al 0% en el Menú de Demolicionista, si prefieres no estropear la sorpresa. La opción de 'Ofuscar' es la recomendada, ya que al menos dejará pistas de cosas que quedan por descubrir."; @@ -263,7 +252,6 @@ TOOLTIP_SWWM_USETOPICKUP = "Evita recoger ítems del mod al tocarlos, en su luga TOOLTIP_SWWM_BUTTSFX = "Las nalgas de la Demolicionista emitiran un azote MUY SONORO al ejecutar exitosamente un golpe de culo."; TOOLTIP_SWWM_BUMPSTRENGTH = "Controla lo intensa que es la sacudida del FOV por el retroceso de armas y otras acciones."; TOOLTIP_SWWM_ENGINE = "No toques esto."; -TOOLTIP_SWWM_ITEMGLOWS = "Al activar, los ítems que se encuentren lejos del jugador mostrarán un ligero destello (requiere un reinicio del mapa para tener efecto completamente)."; TOOLTIP_SWWM_NOMAGDROP = "Por defecto, la Demolicionista será un poco consciente con el medio ambiente y no dejará cargadores usados por ahí. Activa si prefieres la basura adicional."; TOOLTIP_SWWM_NOMAPMSG = "Activa mensajes especiales animados de personajes en ciertos mapas (usualmente vanilla)."; TOOLTIP_SWWM_WEAPONTOOLTIPS = "Muestra un resumen de controles cuando se selecciona un arma por primera vez."; @@ -275,7 +263,6 @@ TOOLTIP_SWWM_DEMOSLAYER = "Los enemigos que mates soltarán orbes de salud, arma TOOLTIP_SWWM_BEEPBOOP = "La Demolicionista hará ruiditos adorables cuando pulse cualquier línea utilizable. Esto puede que resulte cansino, así que es opcional."; TOOLTIP_SWWM_VOICEAMP = "A su volumen normal, las voces de la Demolicionista pueden ser ahogadas por el audio del juego. Con esto se le dá un nivel de amplificación extra para que sean más estridentes que otros sonidos."; TOOLTIP_NETEVENT_SWWMCLEAREFFECTS = "Desvanece cualquier sangre, vísceras, escombros y casquillos activos."; -TOOLTIP_SWWM_EXTENDEDPICKUP = "Da a todos los ítems una \"hitbox virtual\" de tamaño vanilla que permite recogerlos a mayor distancia. Requiere reinicio de mapa si se cambia."; TOOLTIP_SWWM_VOICELOG = "Los comentarios de jugador subtitulados se guardarán en la pestaña de Mensajes del Menú de Demolicionista."; TOOLTIP_SWWM_SKIPSKILL = "Salta la confirmación de selección de dificultad, si te has cansado de verla todo el tiempo."; TOOLTIP_SWWM_HUDALLAMMO = "Muestra todos los tipos de munición en el HUD, en lugar de solo los de las armas obtenidas."; @@ -295,9 +282,6 @@ TOOLTIP_SWWMDEBUGMENU = "No toques esto a menos que sepas lo que estás haciendo TOOLTIP_SWWM_DEBUGBLAST = "Muestra el radio de funciones DoExplosion. Las explosiones con daño son verdes, con amarillo para su punto caliente. Las explosiones sin daño son azules, con magenta para su punto caliente."; TOOLTIP_SWWM_DEBUGVIEW = "Muestra la colisión, orientación y velocidad de actores, junto con lineas de relación hacia sus punteros de objetivo/trazador/maestro (dorado/naranja/púrpura respectivamente)."; TOOLTIP_NETEVENT_SWWMFIXITEMCAPS = "Recomputa las capacidades de los ítems en el inventario. Solo necesario al cargar una partida vieja antes de que se cambiaran los valores por defecto."; -TOOLTIP_NETEVENT_SWWMUPDATESHADOWS = "Añade/Quita sombras simples en tiempo real, sin necesidad de reiniciar el mapa. No está claro si puede causar problemas."; -TOOLTIP_NETEVENT_SWWMUPDATEGLOWS = "Añade/Quite brillos de ítem en tiempo real, sin necesidad de reiniciar el mapa. No está claro si puede causar problemas."; -TOOLTIP_NETEVENT_SWWMUPDATEHITBOXES = "Quita hitboxes extendidas de ítem en tiempo real. Dados los detalles de implementación, no pueden añadirse sin reiniciar el mapa."; // credits SWWM_MCREDS = "Créditos de DEMOLITIONIST"; SWWM_CLEAD = "Desarrollo Principal:"; @@ -591,6 +575,6 @@ SWWM_HELP_TIPS = "Consejos Adicionales"; SWWM_HELP_TIPSTXT = "Ten en cuenta que puedes activar puertas y palancas a base de puñetazos o embistiendo contra ellas. La opción está ahí, si realmente quieres, y sientes una especial intensidad.\n" "\n" -"Otro tema a saber es que los ítems de este mod tienen colisiones un poco no-estándar, lo cual puede causar problemas al no poder recogerlos a pie. En casos como estos... simplemente usa las manos, obviamente. Puedes pulsar Usar para recoger cualquier cosa que tengas delante, siempre y cuando sea un ítem de este mod. Además, si te encuentras con muchos drops dispersos por el campo de batalla, puedes mantener Usar para atraerlos hacia ti.\n" +"Otro tema a saber es que los ítems de este mod no solo se pueden recoger caminando sobre ellos, si no también usando las manos. Es decir, puedes pulsar Usar para recogerlos, siempre y cuando llegues con los brazos. Además, si te encuentras con muchos drops dispersos por el campo de batalla, puedes mantener Usar para atraerlos hacia ti.\n" "\n" "Por último pero no menos importante, ¿sabías que puedes acariciar ciertos enemigos para convertirlos en aliados? No creo que haga falta que te diga cuales. Son rojos, redondos y con forma de amigo. También puedes acariciar perros, si el mapa en el que estas resulta usar perros MBF (aunque esto suele ser poco común)."; diff --git a/language.version b/language.version index f94408528..8ccd8dac8 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r592 \cu(Fri 28 Oct 14:28:29 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r592 \cu(2022-10-28 14:28:29)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r593 \cu(Fri 28 Oct 16:49:14 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r593 \cu(2022-10-28 16:49:14)\c-"; diff --git a/menudef.txt b/menudef.txt index b55141eda..1da056e06 100644 --- a/menudef.txt +++ b/menudef.txt @@ -175,10 +175,6 @@ OptionMenu "SWWMOptionMenu" Option "$SWWM_SHOWMAPTITLE", "swwm_showmaptitle", "YesNo" StaticText " " StaticText "$SWWM_ETITLE", 1 - Option "$SWWM_SHADOWS", "swwm_shadows", "YesNo" - ScaleSliderFix "$SWWM_SHADOWDIST", "swwm_shadowdist", -1, 4000, 100, "$SWWM_NONE", "$SWWM_UNLIMITED" - Option "$SWWM_ITEMSPARKLES", "swwm_itemsparkles", "YesNo" - Option "$SWWM_ITEMGLOWS", "swwm_itemglows", "YesNo" Option "$SWWM_BLOOD", "swwm_blood", "YesNo" Option "$SWWM_NOMAGDROP", "swwm_nomagdrop", "NoYes" ScaleSlider "$SWWM_MAXBLOOD", "swwm_maxblood", -1, 1000, 1, "$SWWM_NONE", "$SWWM_UNLIMITED" @@ -217,7 +213,6 @@ OptionMenu "SWWMOptionMenu" StaticText " " StaticText "$SWWM_ITITLE", 1 Option "$SWWM_USETOPICKUP", "swwm_usetopickup", "YesNo" - Option "$SWWM_EXTENDEDPICKUP", "swwm_extendedpickup", "YesNo" Option "$SWWM_SINGLEFIRST", "swwm_singlefirst", "YesNo" Option "$SWWM_COLLECTANIM", "swwm_collectanim", "YesNo" Option "$SWWM_COLLECTANIMKEY", "swwm_collectanimkey", "YesNo" @@ -243,9 +238,6 @@ OptionMenu "SWWMDebugMenu" Option "$SWWM_DBG_DEBUGVIEW", "swwm_debugview", "YesNo" StaticText " " SafeCommand "$SWWM_DBG_FIXITEMCAPS", "netevent swwmfixitemcaps" - SafeCommand "$SWWM_DBG_UPDATESHADOWS", "netevent swwmupdateshadows" - SafeCommand "$SWWM_DBG_UPDATEGLOWS", "netevent swwmupdateglows" - SafeCommand "$SWWM_DBG_UPDATEHITBOXES", "netevent swwmupdatehitboxes" } AddOptionMenu "OptionsMenu" { diff --git a/zscript/dlc1/swwm_ammoitems_dlc.zsc b/zscript/dlc1/swwm_ammoitems_dlc.zsc index cea25402f..eea1046ab 100644 --- a/zscript/dlc1/swwm_ammoitems_dlc.zsc +++ b/zscript/dlc1/swwm_ammoitems_dlc.zsc @@ -67,8 +67,6 @@ Class SheenAmmo : SWWMAmmo +FLOATBOB; FloatBobStrength 0.25; Accuracy 30; - Radius 2; - Height 22; } States { @@ -82,7 +80,6 @@ Class SheenAmmo2 : SheenAmmo Default { Inventory.Amount 2; - Radius 4; } } Class SheenAmmo3 : SheenAmmo @@ -90,7 +87,6 @@ Class SheenAmmo3 : SheenAmmo Default { Inventory.Amount 3; - Radius 4; } } Class SheenSmallAmmo : SheenAmmo @@ -98,7 +94,6 @@ Class SheenSmallAmmo : SheenAmmo Default { Inventory.Amount 10; - Radius 4; } } Class SheenBigAmmo : SheenAmmo @@ -106,7 +101,6 @@ Class SheenBigAmmo : SheenAmmo Default { Inventory.Amount 50; - Radius 12; } } @@ -125,8 +119,6 @@ Class QuadravolAmmo : SWWMAmmo +FLOATBOB; FloatBobStrength 0.25; Accuracy 45; - Radius 2; - Height 20; } States { @@ -140,8 +132,6 @@ Class QuadravolAmmo2 : QuadravolAmmo Default { Inventory.Amount 2; - Radius 3; - Height 20; } } Class QuadravolAmmo3 : QuadravolAmmo @@ -149,8 +139,6 @@ Class QuadravolAmmo3 : QuadravolAmmo Default { Inventory.Amount 3; - Radius 3; - Height 20; } } @@ -169,8 +157,6 @@ Class SparksterBAmmo : SWWMAmmo +FLOATBOB; FloatBobStrength 0.25; Accuracy 70; - Radius 2; - Height 20; } States { @@ -184,7 +170,6 @@ Class SparksterBAmmo2 : SparksterBAmmo Default { Inventory.Amount 2; - Radius 3; } } Class SparksterBAmmo3 : SparksterBAmmo @@ -192,7 +177,6 @@ Class SparksterBAmmo3 : SparksterBAmmo Default { Inventory.Amount 3; - Radius 3; } } @@ -211,8 +195,6 @@ Class SparksterRAmmo : SWWMAmmo +FLOATBOB; FloatBobStrength 0.25; Accuracy 75; - Radius 2; - Height 20; } States { @@ -226,7 +208,6 @@ Class SparksterRAmmo2 : SparksterRAmmo Default { Inventory.Amount 2; - Radius 3; } } Class SparksterRAmmo3 : SparksterRAmmo @@ -234,7 +215,6 @@ Class SparksterRAmmo3 : SparksterRAmmo Default { Inventory.Amount 3; - Radius 3; } } @@ -312,8 +292,6 @@ Class MisterRound : MagAmmo Inventory.MaxAmount 12; +FLOATBOB; FloatBobStrength 0.25; - Radius .5; - Height 20; } States { @@ -327,7 +305,6 @@ Class MisterRound2 : MisterRound Default { Inventory.Amount 2; - Radius .75; } } Class MisterRound3 : MisterRound @@ -335,7 +312,6 @@ Class MisterRound3 : MisterRound Default { Inventory.Amount 3; - Radius 1; } } Class MisterRound5 : MisterRound @@ -343,7 +319,6 @@ Class MisterRound5 : MisterRound Default { Inventory.Amount 5; - Radius 1.25; } } @@ -363,8 +338,6 @@ Class MisterAmmo : SWWMAmmo +FLOATBOB; FloatBobStrength 0.25; Accuracy 90; - Radius 4; - Height 23; } States { @@ -389,8 +362,6 @@ Class MisterGAmmo : SWWMAmmo +FLOATBOB; FloatBobStrength 0.25; Accuracy 90; - Radius 2; - Height 20; } States { diff --git a/zscript/dlc1/swwm_blastin.zsc b/zscript/dlc1/swwm_blastin.zsc index 8e7ea69ab..81c99d703 100644 --- a/zscript/dlc1/swwm_blastin.zsc +++ b/zscript/dlc1/swwm_blastin.zsc @@ -23,8 +23,6 @@ Class PlasmaBlast : SWWMWeapon PlasmaBlast.ClipCount 8; +WEAPON.EXPLOSIVE; +SWWMWEAPON.HASSCRTEX; - Radius 10; - Height 24; } States { diff --git a/zscript/dlc1/swwm_blueballs.zsc b/zscript/dlc1/swwm_blueballs.zsc index 1587f7c80..bfce2ec58 100644 --- a/zscript/dlc1/swwm_blueballs.zsc +++ b/zscript/dlc1/swwm_blueballs.zsc @@ -28,8 +28,6 @@ Class ModernSparkster : SWWMWeapon Stamina 220000; +SWWMWEAPON.NOFIRSTGIVE; +WEAPON.EXPLOSIVE; - Radius 30; - Height 30; } States { diff --git a/zscript/dlc1/swwm_hammertime.zsc b/zscript/dlc1/swwm_hammertime.zsc index d5f912f3b..5b5c4cf4b 100644 --- a/zscript/dlc1/swwm_hammertime.zsc +++ b/zscript/dlc1/swwm_hammertime.zsc @@ -224,8 +224,6 @@ Class ItamexHammer : SWWMWeapon Weapon.UpSound "itamex/select"; Stamina 9000; +WEAPON.MELEEWEAPON; - Radius 8; - Height 54; } States { diff --git a/zscript/dlc1/swwm_heavymahsheengun.zsc b/zscript/dlc1/swwm_heavymahsheengun.zsc index 3b3497d1d..7a0590ab8 100644 --- a/zscript/dlc1/swwm_heavymahsheengun.zsc +++ b/zscript/dlc1/swwm_heavymahsheengun.zsc @@ -381,8 +381,6 @@ Class HeavyMahSheenGun : SWWMWeapon SWWMWeapon.DropAmmoType "SWWMClipAmmoMed"; +SWWMWEAPON.HASSCRTEX; Stamina 100000; - Radius 30; - Height 28; } States { diff --git a/zscript/dlc1/swwm_mister.zsc b/zscript/dlc1/swwm_mister.zsc index e6ed7f49d..030396f9d 100644 --- a/zscript/dlc1/swwm_mister.zsc +++ b/zscript/dlc1/swwm_mister.zsc @@ -1307,8 +1307,6 @@ Class MisterRifle : SWWMWeapon +SWWMWEAPON.NOFIRSTGIVE; +SWWMWEAPON.HASSCRTEX; +WEAPON.BFG; - Radius 30; - Height 28; } States { diff --git a/zscript/dlc1/swwm_notashotgun.zsc b/zscript/dlc1/swwm_notashotgun.zsc index 01f602c44..5c3d75457 100644 --- a/zscript/dlc1/swwm_notashotgun.zsc +++ b/zscript/dlc1/swwm_notashotgun.zsc @@ -427,8 +427,6 @@ Class Quadravol : SWWMWeapon +SWWMWEAPON.NOFIRSTGIVE; +SWWMWEAPON.HASSCRTEX; +WEAPON.EXPLOSIVE; - Radius 28; - Height 32; } States { diff --git a/zscript/handler/swwm_handler_debugrender.zsc b/zscript/handler/swwm_handler_debugrender.zsc index 27e903675..8269b2908 100644 --- a/zscript/handler/swwm_handler_debugrender.zsc +++ b/zscript/handler/swwm_handler_debugrender.zsc @@ -112,7 +112,7 @@ extend Class SWWMHandler if ( a.bINVISIBLE && !(a is 'DynamicLight') ) continue; if ( (a is 'Inventory') && Inventory(a).Owner ) continue; if ( (a is 'SWWMPickupFlash') && (a.CurState == a.FindState('Pickup')) ) continue; - if ( (a is 'SWWMShadow') || (a is 'SWWMItemOverlay') || (a is 'HeadpatTracker') || (a is 'SWWMExtendedItemHitbox') || (a is 'SWWMTeleportLine') || (a is 'SWWMTeleportDest') ) continue; + if ( (a is 'SWWMShadow') || (a is 'SWWMItemOverlay') || (a is 'HeadpatTracker') || (a is 'SWWMTeleportLine') || (a is 'SWWMTeleportDest') ) continue; if ( a.Distance3DSquared(e.Camera) > 1000000 ) continue; DrawActor(e,a); } diff --git a/zscript/handler/swwm_handler_process.zsc b/zscript/handler/swwm_handler_process.zsc index fc9279838..4935fb119 100644 --- a/zscript/handler/swwm_handler_process.zsc +++ b/zscript/handler/swwm_handler_process.zsc @@ -175,119 +175,6 @@ extend Class SWWMHandler } } } - else if ( e.Name ~== "swwmupdateshadows" ) - { - if ( multiplayer && (e.player != Net_Arbitrator) ) - { - if ( e.player == consoleplayer ) - Console.Printf("Only the net arbitrator can call this event."); - return; - } - if ( !swwm_shadows ) - { - let ti = ThinkerIterator.Create("SWWMShadow"); - SWWMShadow s; - int n = 0; - while ( s = SWWMShadow(ti.Next()) ) - { - n++; - s.Destroy(); - } - Console.Printf("%d shadows removed.",n); - return; - } - // build list of actors that already have shadows - Array shaded; - let ti = ThinkerIterator.Create("Actor"); - Actor a; - while ( a = Actor(ti.Next()) ) - { - if ( !(a is 'SWWMShadow') ) continue; - shaded.Push(a.target); - } - int n = 0; - ti.Reinit(); - while ( a = Actor(ti.Next()) ) - { - if ( (a is 'LampMoth') || !(a.bSHOOTABLE || a.bISMONSTER || (a is 'Inventory') || (a is 'CompanionLamp')) || !((a is 'Demolitionist') || (a.SpawnState.sprite == a.GetSpriteIndex('XZW1'))) ) - continue; - if ( shaded.Find(a) < shaded.Size() ) continue; - if ( !SWWMShadow.Track(a) ) continue; - n++; - } - Console.Printf("%d shadows added.",n); - return; - } - else if ( e.Name ~== "swwmupdateglows" ) - { - if ( multiplayer && (e.player != Net_Arbitrator) ) - { - if ( e.player == consoleplayer ) - Console.Printf("Only the net arbitrator can call this event."); - return; - } - if ( !swwm_itemglows ) - { - let ti = ThinkerIterator.Create("SWWMPickupFlash"); - SWWMPickupFlash f; - int n = 0; - while ( f = SWWMPickupFlash(ti.Next()) ) - { - if ( f.CurState != f.FindState('Pickup') ) continue; - n++; - f.Destroy(); - } - Console.Printf("%d glows removed.",n); - return; - } - // build list of items that already have glows - Array glowed; - let ti = ThinkerIterator.Create("Actor"); - Actor a; - while ( a = Actor(ti.Next()) ) - { - if ( !(a is 'SWWMPickupFlash') || (a.CurState != a.FindState('Pickup')) ) continue; - glowed.Push(a.target); - } - int n = 0; - ti.Reinit(); - while ( a = Actor(ti.Next()) ) - { - if ( !(a is 'Inventory') || Inventory(a).Owner || !(Inventory(a).PickupFlash is 'SWWMPickupFlash') ) - continue; - if ( glowed.Find(a) < glowed.Size() ) continue; - let p = Actor.Spawn(Inventory(a).PickupFlash,a.Vec3Offset(0,0,16)); - p.target = a; - p.SetStateLabel("Pickup"); - n++; - } - Console.Printf("%d glows added.",n); - return; - } - else if ( e.Name ~== "swwmupdatehitboxes" ) - { - if ( multiplayer && (e.player != Net_Arbitrator) ) - { - if ( e.player == consoleplayer ) - Console.Printf("Only the net arbitrator can call this event."); - return; - } - if ( !swwm_extendedpickup ) - { - let ti = ThinkerIterator.Create("SWWMExtendedItemHitbox"); - SWWMExtendedItemHitbox h; - int n = 0; - while ( h = SWWMExtendedItemHitbox(ti.Next()) ) - { - n++; - h.Destroy(); - } - Console.Printf("%d hitboxes removed.",n); - return; - } - Console.Printf("Extended hitboxes can't be re-enabled at runtime. Please restart the map."); - return; - } else if ( e.Name ~== "swwmtrimsuckables" ) { if ( multiplayer && (e.player != Net_Arbitrator) ) diff --git a/zscript/handler/swwm_handler_worldthings.zsc b/zscript/handler/swwm_handler_worldthings.zsc index 3af20b594..b898e1132 100644 --- a/zscript/handler/swwm_handler_worldthings.zsc +++ b/zscript/handler/swwm_handler_worldthings.zsc @@ -269,7 +269,7 @@ extend Class SWWMHandler if ( e.Thing is 'Inventory' ) { CopyFloatBob(e.Thing); - if ( (Inventory(e.Thing).PickupFlash is 'SWWMPickupFlash') && swwm_itemglows ) + if ( Inventory(e.Thing).PickupFlash is 'SWWMPickupFlash' ) { let p = Actor.Spawn(Inventory(e.Thing).PickupFlash,e.Thing.Vec3Offset(0,0,16)); p.target = e.Thing; @@ -399,8 +399,6 @@ extend Class SWWMHandler let hp = Actor.Spawn("HeadpatTracker",e.Thing.pos); hp.target = e.Thing; } - if ( swwm_shadows && !(e.Thing is 'LampMoth') && (e.Thing.bSHOOTABLE || e.Thing.bISMONSTER || (e.Thing is 'Inventory') || (e.Thing is 'CompanionLamp')) && ((e.Thing is 'Demolitionist') || (e.Thing.SpawnState.sprite == e.Thing.GetSpriteIndex('XZW1'))) ) - SWWMShadow.Track(e.Thing); // Ynykron vortex optimization (faster than a thinker iterator) if ( e.Thing.bSHOOTABLE || (e.Thing is 'Inventory') || SWWMUtility.ValidProjectile(e.Thing) ) SuckableActors.Push(e.Thing); diff --git a/zscript/items/swwm_ammoextra.zsc b/zscript/items/swwm_ammoextra.zsc index c810e0056..b7c7f3740 100644 --- a/zscript/items/swwm_ammoextra.zsc +++ b/zscript/items/swwm_ammoextra.zsc @@ -218,8 +218,6 @@ Class AmmoFabricator : Inventory abstract Inventory.PickupFlash "SWWMPickupFlash"; Inventory.MaxAmount 0; FloatBobStrength 0.25; - Radius 10; - Height 24; } States { @@ -244,6 +242,9 @@ Class FabricatorTier1 : AmmoFabricator AmmoFabricator.MaxUnitPrice 2500; AmmoFabricator.ChanceFactor 1; AmmoFabricator.TextColor Font.CR_BLUE; + // Completely stupid hitbox, but necessary to not break compat + Radius 8; + Height 8; } } Class FabricatorTier2 : AmmoFabricator @@ -261,6 +262,9 @@ Class FabricatorTier2 : AmmoFabricator AmmoFabricator.MaxUnitPrice 18000; AmmoFabricator.ChanceFactor 2; AmmoFabricator.TextColor Font.CR_GREEN; + // Completely stupid hitbox, but necessary to not break compat + Radius 8; + Height 8; } } Class FabricatorTier3 : AmmoFabricator @@ -278,6 +282,9 @@ Class FabricatorTier3 : AmmoFabricator AmmoFabricator.MaxUnitPrice 50000; AmmoFabricator.ChanceFactor 4; AmmoFabricator.TextColor Font.CR_RED; + // Completely stupid hitbox, but necessary to not break compat + Radius 8; + Height 8; } } Class FabricatorTier4 : AmmoFabricator @@ -510,6 +517,10 @@ Class HammerspaceEmbiggener : Inventory // merges overlapping embiggeners into a bulk upgrade void A_MergeEmbiggeners() { + // while we're at it, adjust our height, + // since backpacks are taller in Doom + if ( gameinfo.gametype&GAME_DoomChex ) + A_SetSize(-1,26); let bt = BlockThingsIterator.Create(self,16); int tamount = Amount; while ( bt.Next() ) @@ -548,8 +559,6 @@ Class HammerspaceEmbiggener : Inventory +DONTGIB; +FLOATBOB; FloatBobStrength 0.25; - Radius 8; - Height 24; } States { diff --git a/zscript/items/swwm_ammoitems.zsc b/zscript/items/swwm_ammoitems.zsc index 393a6e572..7d7097de0 100644 --- a/zscript/items/swwm_ammoitems.zsc +++ b/zscript/items/swwm_ammoitems.zsc @@ -16,8 +16,6 @@ Class RedShell : SWWMAmmo Ammo.DropAmount 2; +FLOATBOB; FloatBobStrength 0.25; - Radius 4; - Height 20; Accuracy 50; } States @@ -32,7 +30,6 @@ Class RedShell2 : RedShell Default { Inventory.Amount 2; - Radius 6; } } Class RedShell4 : RedShell @@ -40,7 +37,6 @@ Class RedShell4 : RedShell Default { Inventory.Amount 4; - Radius 6; } } Class RedShell8 : RedShell @@ -48,7 +44,6 @@ Class RedShell8 : RedShell Default { Inventory.Amount 8; - Radius 8; } } Class RedShell12 : RedShell @@ -56,7 +51,6 @@ Class RedShell12 : RedShell Default { Inventory.Amount 12; - Radius 8; } } Class RedShell16 : RedShell @@ -64,7 +58,6 @@ Class RedShell16 : RedShell Default { Inventory.Amount 16; - Radius 8; } } @@ -118,8 +111,6 @@ Class GoldShell : SWWMAmmo +FLOATBOB; +DONTGIB; // don't crush these, they're valuable FloatBobStrength 0.25; - Radius 4; - Height 20; } States { @@ -133,7 +124,6 @@ Class GoldShell2 : GoldShell Default { Inventory.Amount 2; - Radius 6; } } Class GoldShell4 : GoldShell @@ -141,7 +131,6 @@ Class GoldShell4 : GoldShell Default { Inventory.Amount 4; - Radius 6; } } @@ -165,8 +154,6 @@ Class EvisceratorShell : SWWMAmmo +FLOATBOB; +SWWMAMMO.USEPICKUPMSG; FloatBobStrength 0.25; - Radius 8; - Height 22; Accuracy 60; } override void ModifyDropAmount( int dropamount ) @@ -187,7 +174,6 @@ Class EvisceratorShell2 : EvisceratorShell { Inventory.PickupMessage "$I_EVISHELLCLIP2"; Inventory.Amount 2; - Radius 16; } } Class EvisceratorShell3 : EvisceratorShell @@ -196,7 +182,6 @@ Class EvisceratorShell3 : EvisceratorShell { Inventory.PickupMessage "$I_EVISHELLCLIP3"; Inventory.Amount 3; - Radius 16; } } @@ -206,8 +191,6 @@ Class EvisceratorSixPack : EvisceratorShell { Inventory.PickupMessage "$I_EVISHELLPAK"; Inventory.Amount 6; - Radius 20; - Height 24; } } @@ -229,8 +212,6 @@ Class HellblazerMissiles : SWWMAmmo Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; - Radius 6; - Height 22; Accuracy 70; } override void ModifyDropAmount( int dropamount ) @@ -266,8 +247,6 @@ Class HellblazerMissileMag : HellblazerMissiles Inventory.PickupMessage "$T_HELLMISSILEMAG"; Inventory.Amount 6; +SWWMAMMO.USEPICKUPMSG; - Radius 12; - Height 26; } } @@ -289,8 +268,6 @@ Class SparkUnit : SWWMAmmo Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; - Radius 6; - Height 22; Accuracy 70; } States @@ -305,7 +282,6 @@ Class SparkUnit2 : SparkUnit Default { Inventory.Amount 2; - Radius 8; } } @@ -328,8 +304,6 @@ Class SilverBulletAmmo : SWWMAmmo SWWMAmmo.MagAmmoType "SilverBullets"; +FLOATBOB; FloatBobStrength 0.25; - Radius 10; - Height 26; Accuracy 75; } States @@ -353,8 +327,6 @@ Class SilverBullets : MagAmmo Inventory.MaxAmount 5; +FLOATBOB; FloatBobStrength 0.25; - Radius 4; - Height 22; } States { @@ -368,8 +340,6 @@ Class SilverBullets2 : SilverBullets Default { Inventory.Amount 2; - Radius 6; - Height 24; } } Class SilverBullets3 : SilverBullets @@ -377,8 +347,6 @@ Class SilverBullets3 : SilverBullets Default { Inventory.Amount 3; - Radius 6; - Height 24; } } @@ -401,8 +369,6 @@ Class CandyGunAmmo : SWWMAmmo SWWMAmmo.MagAmmoType "CandyGunBullets"; +FLOATBOB; FloatBobStrength 0.25; - Radius 6; - Height 24; Accuracy 90; } States @@ -426,8 +392,6 @@ Class CandyGunBullets : MagAmmo Inventory.MaxAmount 7; +FLOATBOB; FloatBobStrength 0.25; - Radius 2; - Height 20; } States { @@ -441,7 +405,6 @@ Class CandyGunBullets2 : CandyGunBullets Default { Inventory.Amount 2; - Radius 2.5; } } Class CandyGunBullets3 : CandyGunBullets @@ -449,7 +412,6 @@ Class CandyGunBullets3 : CandyGunBullets Default { Inventory.Amount 3; - Radius 3; } } @@ -525,8 +487,6 @@ Class YnykronAmmo : SWWMAmmo Ammo.DropAmount 1; +FLOATBOB; FloatBobStrength 0.25; - Radius 8; - Height 24; } States { diff --git a/zscript/items/swwm_armor.zsc b/zscript/items/swwm_armor.zsc index 333636e24..b428b09c2 100644 --- a/zscript/items/swwm_armor.zsc +++ b/zscript/items/swwm_armor.zsc @@ -55,8 +55,6 @@ Class ArmorNuggetItem : SWWMSpareArmor Inventory.UseSound "misc/armor_pkup"; SWWMSpareArmor.GiveArmor "ArmorNugget"; +INVENTORY.ALWAYSPICKUP; - Radius 4; - Height 22; } States { @@ -110,8 +108,6 @@ Class BlastSuitItem : SWWMSpareArmor Inventory.UseSound "armor/blastsuit"; Inventory.RestrictedTo "Demolitionist"; SWWMSpareArmor.GiveArmor "BlastSuit"; - Radius 12; - Height 30; } States { @@ -162,8 +158,6 @@ Class WarArmorItem : SWWMSpareArmor Inventory.UseSound "armor/wararmor"; Inventory.RestrictedTo "Demolitionist"; SWWMSpareArmor.GiveArmor "WarArmor"; - Radius 16; - Height 32; } States { diff --git a/zscript/items/swwm_baseitem.zsc b/zscript/items/swwm_baseitem.zsc index aadd95401..086ab0ea3 100644 --- a/zscript/items/swwm_baseitem.zsc +++ b/zscript/items/swwm_baseitem.zsc @@ -55,43 +55,10 @@ Class CrossLineFinder : LineTracer } } -// hitbox with default collision size for items -Class SWWMExtendedItemHitbox : Actor -{ - override void Tick() - { - if ( !master ) - { - Destroy(); - return; - } - if ( pos != master.pos ) SetOrigin(master.pos,false); - } - override void Touch( Actor toucher ) - { - if ( !master || !master.bSPECIAL || Inventory(master).Owner || !swwm_extendedpickup ) - return; - master.Touch(toucher); - } - default - { - +NOGRAVITY; - +SPECIAL; - } -} - Mixin Class SWWMUseToPickup { bool bUsePickup; - override void BeginPlay() - { - Super.BeginPlay(); - if ( !swwm_extendedpickup ) return; - let box = Spawn("SWWMExtendedItemHitbox",pos); - box.master = self; - } - // allow pickup by use override bool Used( Actor user ) { @@ -197,7 +164,7 @@ Mixin Class SWWMPickupGlow { let ret = Super.CreateTossable(amt); // reattach our glow if we became a pickup - if ( (ret == self) && (PickupFlash is 'SWWMPickupFlash') && swwm_itemglows ) + if ( (ret == self) && (PickupFlash is 'SWWMPickupFlash') ) { let p = Spawn(PickupFlash,Vec3Offset(0,0,16)); p.target = self; diff --git a/zscript/items/swwm_collectibles.zsc b/zscript/items/swwm_collectibles.zsc index 463eb6f02..1e6bab4e0 100644 --- a/zscript/items/swwm_collectibles.zsc +++ b/zscript/items/swwm_collectibles.zsc @@ -37,8 +37,6 @@ Class SWWMCollectible : Inventory abstract +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 8; - Height 24; } bool ValidGame() const { @@ -138,8 +136,6 @@ Class AkariProject : SWWMCollectible SWWMCollectible.GestureWeapon "AkariProjectGesture"; SWWMCollectible.GetLine "akariget"; Stamina 2000; - Radius 4; - Height 22; } } Class LoveSignalsCD : SWWMCollectible @@ -151,8 +147,6 @@ Class LoveSignalsCD : SWWMCollectible SWWMCollectible.GestureWeapon "LoveSignalsCDGesture"; SWWMCollectible.GetLine "signalsget"; Stamina 3000; - Radius 4; - Height 21; } } Class NutatcoBar : SWWMCollectible @@ -164,8 +158,6 @@ Class NutatcoBar : SWWMCollectible SWWMCollectible.GestureWeapon "NutatcoBarGesture"; SWWMCollectible.GetLine "nutatcoget"; Stamina 200; - Radius 3; - Height 22; } } Class FrispyCorn : SWWMCollectible @@ -177,8 +169,6 @@ Class FrispyCorn : SWWMCollectible SWWMCollectible.GestureWeapon "FrispyCornGesture"; SWWMCollectible.GetLine "frispyget"; Stamina 400; - Radius 5; - Height 23; } } Class SayaBean : SWWMCollectible @@ -192,8 +182,6 @@ Class SayaBean : SWWMCollectible SWWMCollectible.GestureWeapon "SayaBeanGesture"; SWWMCollectible.GetLine "sayaget"; Stamina 5000; - Radius 6; - Height 23; } } Class MothPlushy : SWWMCollectible @@ -222,8 +210,6 @@ Class MothPlushy : SWWMCollectible SWWMCollectible.GestureWeapon "MothPlushyGesture"; SWWMCollectible.GetLine "mothget"; Stamina 7000; - Radius 12; - Height 32; } } Class SayasMug : SWWMCollectible @@ -235,8 +221,6 @@ Class SayasMug : SWWMCollectible SWWMCollectible.GestureWeapon "SayasMugGesture"; SWWMCollectible.GetLine "mugget"; Stamina 1000; - Radius 4; - Height 20; } } // Heretic @@ -250,8 +234,6 @@ Class DemoPlush : SWWMCollectible SWWMCollectible.GestureWeapon "DemoPlushGesture"; SWWMCollectible.GetLine "demoget"; Stamina 6000; - Radius 12; - Height 36; } } // Hexen @@ -265,8 +247,6 @@ Class KirinCummies : SWWMCollectible SWWMCollectible.GestureWeapon "KirinCummiesGesture"; SWWMCollectible.GetLine "peachget"; Stamina 300; - Radius 3; - Height 21; } } Class MilkBreads : SWWMCollectible @@ -279,8 +259,6 @@ Class MilkBreads : SWWMCollectible SWWMCollectible.GestureWeapon "MilkBreadsGesture"; SWWMCollectible.GetLine "breadget"; Stamina 900; - Radius 4; - Height 21; } } Class KirinManga : SWWMCollectible @@ -293,8 +271,6 @@ Class KirinManga : SWWMCollectible SWWMCollectible.GestureWeapon "KirinMangaGesture"; SWWMCollectible.GetLine "mangaget"; Stamina 1600; - Radius 4; - Height 22; } } Class KirinPlush : SWWMCollectible @@ -307,7 +283,5 @@ Class KirinPlush : SWWMCollectible SWWMCollectible.GestureWeapon "KirinPlushGesture"; SWWMCollectible.GetLine "kiringet"; Stamina 8000; - Radius 14; - Height 37; } } diff --git a/zscript/items/swwm_health.zsc b/zscript/items/swwm_health.zsc index 2c0d199b1..a3181a558 100644 --- a/zscript/items/swwm_health.zsc +++ b/zscript/items/swwm_health.zsc @@ -98,8 +98,6 @@ Class HealthNuggetItem : SWWMHealth SWWMHealth.GiveHealth "HealthNugget"; +INVENTORY.ALWAYSPICKUP; -INVENTORY.INVBAR; - Radius 4; - Height 22; } States { @@ -132,8 +130,6 @@ Class TetraHealthItem : SWWMHealth Inventory.MaxAmount 15; Inventory.InterHubAmount 15; SWWMHealth.GiveHealth "TetraHealth"; - Radius 8; - Height 24; } States { @@ -159,8 +155,6 @@ Class CubeHealthItem : SWWMHealth Inventory.MaxAmount 10; Inventory.InterHubAmount 10; SWWMHealth.GiveHealth "CubeHealth"; - Radius 8; - Height 24; } States { @@ -207,8 +201,6 @@ Class RefresherItem : SWWMHealth +COUNTITEM; +INVENTORY.BIGPOWERUP; +INVENTORY.ALWAYSPICKUP; - Radius 6; - Height 24; } States { diff --git a/zscript/items/swwm_keys.zsc b/zscript/items/swwm_keys.zsc index 69bb086d3..2070305de 100644 --- a/zscript/items/swwm_keys.zsc +++ b/zscript/items/swwm_keys.zsc @@ -47,8 +47,6 @@ Class SWWMRedCard : SWWMKey Inventory.PickupMessage "$T_REDCARD"; Inventory.PickupFlash "SWWMRedPickupFlash"; SWWMKey.GestureWeapon "SWWMRedCardGesture"; - Radius 10; - Height 25; } States { @@ -66,8 +64,6 @@ Class SWWMYellowCard : SWWMKey Inventory.PickupMessage "$T_YELLOWCARD"; Inventory.PickupFlash "SWWMPickupFlash"; SWWMKey.GestureWeapon "SWWMYellowCardGesture"; - Radius 10; - Height 25; } States { @@ -85,8 +81,6 @@ Class SWWMBlueCard : SWWMKey Inventory.PickupMessage "$T_BLUECARD"; Inventory.PickupFlash "SWWMBluePickupFlash"; SWWMKey.GestureWeapon "SWWMBlueCardGesture"; - Radius 10; - Height 25; } States { @@ -104,8 +98,6 @@ Class SWWMSilverCardKDiZD : SWWMKey Inventory.PickupMessage "$T_SILVERCARD"; Inventory.PickupFlash "SWWMWhitePickupFlash"; SWWMKey.GestureWeapon "SWWMSilverCardGesture"; - Radius 10; - Height 25; } States { @@ -123,8 +115,6 @@ Class SWWMGreenCardKDiZD : SWWMKey Inventory.PickupMessage "$T_GREENCARD"; Inventory.PickupFlash "SWWMGreenPickupFlash"; SWWMKey.GestureWeapon "SWWMGreenCardGesture"; - Radius 10; - Height 25; } States { @@ -142,8 +132,6 @@ Class SWWMOrangeCardKDiZD : SWWMKey Inventory.PickupMessage "$T_ORANGECARD"; Inventory.PickupFlash "SWWMPickupFlash"; SWWMKey.GestureWeapon "SWWMOrangeCardGesture"; - Radius 10; - Height 25; } States { @@ -161,8 +149,6 @@ Class SWWMGreenCard : SWWMKey Inventory.PickupMessage "$T_GREENCARD"; Inventory.PickupFlash "SWWMGreenPickupFlash"; SWWMKey.GestureWeapon "SWWMGreenCardGesture"; - Radius 10; - Height 25; } States { @@ -182,8 +168,6 @@ Class SWWMRedSkull : SWWMKey Inventory.PickupMessage "$T_REDSKULL"; Inventory.PickupFlash "SWWMRedPickupFlash"; SWWMKey.GestureWeapon "SWWMRedSkullGesture"; - Radius 10; - Height 25; } States { @@ -201,8 +185,6 @@ Class SWWMBlueSkull : SWWMKey Inventory.PickupMessage "$T_BLUESKULL"; Inventory.PickupFlash "SWWMBluePickupFlash"; SWWMKey.GestureWeapon "SWWMBlueSkullGesture"; - Radius 10; - Height 25; } States { @@ -220,8 +202,6 @@ Class SWWMYellowSkull : SWWMKey Inventory.PickupMessage "$T_YELLOWSKULL"; Inventory.PickupFlash "SWWMPickupFlash"; SWWMKey.GestureWeapon "SWWMYellowSkullGesture"; - Radius 10; - Height 25; } States { @@ -239,8 +219,6 @@ Class SWWMPurpleSkull : SWWMKey Inventory.PickupMessage "$T_PURPLESKULL"; Inventory.PickupFlash "SWWMPurplePickupFlash"; SWWMKey.GestureWeapon "SWWMPurpleSkullGesture"; - Radius 10; - Height 25; } States { @@ -325,8 +303,6 @@ Class SWWMKeyGreen : SWWMKey Inventory.PickupMessage "$T_KEYGREEN"; Inventory.PickupFlash "SWWMGreenPickupFlash"; SWWMKey.GestureWeapon "SWWMGreenKeyGesture"; - Radius 10; - Height 25; } States { @@ -344,8 +320,6 @@ Class SWWMKeyBlue : SWWMKey Inventory.PickupMessage "$T_KEYBLUE"; Inventory.PickupFlash "SWWMBluePickupFlash"; SWWMKey.GestureWeapon "SWWMBlueKeyGesture"; - Radius 10; - Height 25; } States { @@ -363,8 +337,6 @@ Class SWWMKeyYellow : SWWMKey Inventory.PickupMessage "$T_KEYYELLOW"; Inventory.PickupFlash "SWWMPickupFlash"; SWWMKey.GestureWeapon "SWWMYellowKeyGesture"; - Radius 10; - Height 25; } States { @@ -382,8 +354,6 @@ Class SWWMKeyRed : SWWMKey Inventory.PickupMessage "$T_KEYRED"; Inventory.PickupFlash "SWWMRedPickupFlash"; SWWMKey.GestureWeapon "SWWMRedKeyGesture"; - Radius 10; - Height 25; } States { diff --git a/zscript/items/swwm_powerups.zsc b/zscript/items/swwm_powerups.zsc index eec72feb1..e5f71c098 100644 --- a/zscript/items/swwm_powerups.zsc +++ b/zscript/items/swwm_powerups.zsc @@ -215,8 +215,6 @@ Class GrilledCheeseSandwich : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 12; - Height 24; } States @@ -428,8 +426,6 @@ Class GhostArtifact : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 12; - Height 24; } override bool Use( bool pickup ) @@ -636,8 +632,6 @@ Class GravitySuppressor : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 12; - Height 28; } States { @@ -879,8 +873,6 @@ Class FuckingInvinciball : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 10; - Height 26; } States { @@ -1159,8 +1151,6 @@ Class Ragekit : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 12; - Height 24; } States { @@ -1227,8 +1217,6 @@ Class Omnisight : Inventory +NOTDMATCH; +DONTGIB; FloatBobStrength 0.25; - Radius 6; - Height 26; } States { @@ -1910,8 +1898,6 @@ Class SWWMLamp : Inventory FloatBobStrength 0.25; SWWMLamp.Charge 100; Stamina 70000; - Radius 8; - Height 28; } States { @@ -2195,8 +2181,8 @@ Class EBarrier : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 6; - Height 28; + // must copy height of vanilla radsuit + Height 46; } States { @@ -2864,8 +2850,6 @@ Class Mykradvo : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 10; - Height 24; } States { @@ -2979,7 +2963,7 @@ Class SafetyTether : Inventory if ( bPrimed ) return null; // can't drop while primed let ret = Super.CreateTossable(amt); // reattach our glow if we became a pickup - if ( (ret == self) && (PickupFlash is 'SWWMPickupFlash') && swwm_itemglows ) + if ( (ret == self) && (PickupFlash is 'SWWMPickupFlash') ) { let p = Spawn(PickupFlash,Vec3Offset(0,0,16)); p.target = self; @@ -3077,8 +3061,6 @@ Class SafetyTether : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 5; - Height 23; } States { @@ -3294,8 +3276,6 @@ Class AngerySigil : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 8; - Height 28; } States { @@ -3560,8 +3540,6 @@ Class DivineSprite : Inventory +FLOATBOB; +DONTGIB; FloatBobStrength 0.25; - Radius 8; - Height 24; } States { diff --git a/zscript/swwm_common_fx.zsc b/zscript/swwm_common_fx.zsc index 5df030fe8..aca764da9 100644 --- a/zscript/swwm_common_fx.zsc +++ b/zscript/swwm_common_fx.zsc @@ -934,6 +934,8 @@ Class SWWMPickupFlash : SWWMNonInteractiveActor { Super.PostBeginPlay(); frame = Args[0]; + if ( CurState == ResolveState("Pickup") ) + WorldOffset = (0,0,16); } action void A_Sparkle() { @@ -972,7 +974,7 @@ Class SWWMPickupFlash : SWWMNonInteractiveActor if ( target.pos != invoker.lastitempos ) { prev = pos; - SetOrigin(target.Vec3Offset(0,0,16),true); + SetOrigin(target.pos,true); } invoker.lastitempos = target.pos; if ( target.bFLOATBOB && !bFLOATBOB ) @@ -982,8 +984,23 @@ Class SWWMPickupFlash : SWWMNonInteractiveActor FloatBobPhase = target.FloatBobPhase; } else if ( !target.bFLOATBOB && bFLOATBOB ) bFLOATBOB = false; - A_SetScale(FRandom[ClientSparkles](.9,1.1)*(max(target.radius,target.height)/16.)); + A_SetScale(FRandom[ClientSparkles](1.1,1.3)); alpha = FRandom[ClientSparkles](.9,1.)*clamp((max(0,Distance3DSquared(players[consoleplayer].Camera)-40000.)/160000000.)**.25,0.,1.); + // nearby sparkles + if ( !SWWMUtility.SphereIntersect(self,players[consoleplayer].Camera.pos,500) ) + return; + Color pcol = Color(Args[1]*85,Args[2]*85,Args[3]*85); + double alph = clamp((250000.-Distance3DSquared(players[consoleplayer].Camera))/250000.,0.,1.); + int numpt = Random[ClientSparkles](1,3); + for ( int i=0; i= hnd.SuckableActors.Size()) ) hnd.SuckableActors.Push(self); - // re-attach shadow - if ( !swwm_shadows ) return; - let ti = ThinkerIterator.Create("SWWMShadow"); - Actor a; - while ( a = Actor(ti.Next()) ) - { - if ( a.target == self ) - return; // shadow already attached - } - SWWMShadow.Track(self); - ti.Destroy(); } override bool PreTeleport( Vector3 destpos, double destangle, int flags ) { diff --git a/zscript/weapons/swwm_baseweapon.zsc b/zscript/weapons/swwm_baseweapon.zsc index 21c08a1d6..f856d270a 100644 --- a/zscript/weapons/swwm_baseweapon.zsc +++ b/zscript/weapons/swwm_baseweapon.zsc @@ -51,14 +51,6 @@ Class SWWMWeapon : Weapon abstract return null; } - override void BeginPlay() - { - Super.BeginPlay(); - if ( !swwm_extendedpickup ) return; - let box = Spawn("SWWMExtendedItemHitbox",pos); - box.master = self; - } - override void Touch( Actor toucher ) { // show message about unimplemented weapons @@ -617,7 +609,7 @@ Class SWWMWeapon : Weapon abstract return null; let ret = Super.CreateTossable(amt); // reattach our glow if we became a pickup - if ( (ret == self) && (PickupFlash is 'SWWMPickupFlash') && swwm_itemglows ) + if ( (ret == self) && (PickupFlash is 'SWWMPickupFlash') ) { let p = Spawn(PickupFlash,Vec3Offset(0,0,16)); p.target = self; @@ -666,14 +658,6 @@ Class SWWMDualWeaponGiver : Inventory FloatBobStrength 0.25; } - override void BeginPlay() - { - Super.BeginPlay(); - if ( !swwm_extendedpickup ) return; - let box = Spawn("SWWMExtendedItemHitbox",pos); - box.master = self; - } - SWWMWeapon HasSwapWeapon( Actor other ) const { if ( giveme[0].bNoSwapWeapon ) return null; @@ -810,7 +794,7 @@ Class SWWMDualWeaponGiver : Inventory giveme[0].ClearCounters(); giveme[0].FloatBobPhase = FloatBobPhase; // don't forget to reattach its glow - if ( (giveme[0].PickupFlash is 'SWWMPickupFlash') && swwm_itemglows ) + if ( giveme[0].PickupFlash is 'SWWMPickupFlash' ) { let p = Spawn(giveme[0].PickupFlash,giveme[0].Vec3Offset(0,0,16)); p.target = giveme[0]; @@ -839,7 +823,6 @@ Class SWWMDualWeaponGiver : Inventory SetTag("$T_EXPLODIUM2"); SetState(SpawnState); } - A_SetSize(giveme[0].default.radius,giveme[0].default.height); } States diff --git a/zscript/weapons/swwm_blazeit.zsc b/zscript/weapons/swwm_blazeit.zsc index e34ea7802..14b6ff93f 100644 --- a/zscript/weapons/swwm_blazeit.zsc +++ b/zscript/weapons/swwm_blazeit.zsc @@ -349,8 +349,6 @@ Class Hellblazer : SWWMWeapon SWWMWeapon.DropAmmoType "SWWMRocketAmmoSmall"; +SWWMWEAPON.NOFIRSTGIVE; +WEAPON.EXPLOSIVE; - Radius 24; - Height 32; } States { diff --git a/zscript/weapons/swwm_cbt.zsc b/zscript/weapons/swwm_cbt.zsc index b343908d1..7fc7d9df7 100644 --- a/zscript/weapons/swwm_cbt.zsc +++ b/zscript/weapons/swwm_cbt.zsc @@ -491,8 +491,6 @@ Class Wallbuster : SWWMWeapon SWWMWeapon.DropAmmoType "SWWMShellAmmoBig"; Stamina 35000; +SWWMWEAPON.NOFIRSTGIVE; - Radius 30; - Height 36; } States { diff --git a/zscript/weapons/swwm_danmaku.zsc b/zscript/weapons/swwm_danmaku.zsc index 48a1c72f0..407788483 100644 --- a/zscript/weapons/swwm_danmaku.zsc +++ b/zscript/weapons/swwm_danmaku.zsc @@ -278,8 +278,6 @@ Class Eviscerator : SWWMWeapon Weapon.AmmoGive1 4; SWWMWeapon.DropAmmoType "SWWMClipAmmoMed"; +WEAPON.EXPLOSIVE; - Radius 20; - Height 32; } States { diff --git a/zscript/weapons/swwm_deathlydeathcannon.zsc b/zscript/weapons/swwm_deathlydeathcannon.zsc index e46263f97..5d805eb30 100644 --- a/zscript/weapons/swwm_deathlydeathcannon.zsc +++ b/zscript/weapons/swwm_deathlydeathcannon.zsc @@ -229,8 +229,6 @@ Class Ynykron : SWWMWeapon Ynykron.ClipCount 1; +WEAPON.BFG; +WEAPON.EXPLOSIVE; - Radius 32; - Height 36; } States { diff --git a/zscript/weapons/swwm_shot.zsc b/zscript/weapons/swwm_shot.zsc index 80baaf5ae..2db532798 100644 --- a/zscript/weapons/swwm_shot.zsc +++ b/zscript/weapons/swwm_shot.zsc @@ -488,8 +488,6 @@ Class Spreadgun : SWWMWeapon SWWMWeapon.DropAmmoType "SWWMShellAmmoSmall"; Stamina 15000; +SWWMWEAPON.NOFIRSTGIVE; - Radius 10; - Height 24; } States diff --git a/zscript/weapons/swwm_sparkyboi.zsc b/zscript/weapons/swwm_sparkyboi.zsc index c28939254..8823fe2d7 100644 --- a/zscript/weapons/swwm_sparkyboi.zsc +++ b/zscript/weapons/swwm_sparkyboi.zsc @@ -220,8 +220,6 @@ Class Sparkster : SWWMWeapon Sparkster.ClipCount 4; +SWWMWEAPON.NOFIRSTGIVE; +WEAPON.EXPLOSIVE; - Radius 22; - Height 24; } States { diff --git a/zscript/weapons/swwm_splode.zsc b/zscript/weapons/swwm_splode.zsc index ea3eabb8d..999042e47 100644 --- a/zscript/weapons/swwm_splode.zsc +++ b/zscript/weapons/swwm_splode.zsc @@ -250,7 +250,7 @@ Class ExplodiumGun : SWWMWeapon SisterWeapon.Destroy(); } // reattach our glow if we became a pickup - if ( (PickupFlash is 'SWWMPickupFlash') && swwm_itemglows ) + if ( PickupFlash is 'SWWMPickupFlash' ) { let p = Spawn(PickupFlash,Vec3Offset(0,0,16)); p.target = self; @@ -331,8 +331,6 @@ Class ExplodiumGun : SWWMWeapon Stamina 8000; ExplodiumGun.ClipCount 7; +WEAPON.EXPLOSIVE; - Radius 12; - Height 24; } States { diff --git a/zscript/weapons/swwm_tastytreat.zsc b/zscript/weapons/swwm_tastytreat.zsc index 1929de58f..beebe0cb9 100644 --- a/zscript/weapons/swwm_tastytreat.zsc +++ b/zscript/weapons/swwm_tastytreat.zsc @@ -393,8 +393,6 @@ Class CandyGun : SWWMWeapon +SWWMWEAPON.NOFIRSTGIVE; +WEAPON.EXPLOSIVE; +WEAPON.BFG; - Radius 12; - Height 24; } States { diff --git a/zscript/weapons/swwm_thiccboolet.zsc b/zscript/weapons/swwm_thiccboolet.zsc index 7e306f850..b45e4192f 100644 --- a/zscript/weapons/swwm_thiccboolet.zsc +++ b/zscript/weapons/swwm_thiccboolet.zsc @@ -769,8 +769,6 @@ Class SilverBullet : SWWMWeapon +SWWMWEAPON.NOFIRSTGIVE; +WEAPON.ALT_AMMO_OPTIONAL; +WEAPON.EXPLOSIVE; - Radius 36; - Height 36; } States {