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.
This commit is contained in:
Mari the Deer 2022-10-28 16:49:14 +02:00
commit c770276bd7
36 changed files with 56 additions and 479 deletions

View file

@ -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 ****. 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.

View file

@ -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

View file

@ -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).";

View file

@ -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).";

View file

@ -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-";

View file

@ -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"
{

View file

@ -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
{

View file

@ -23,8 +23,6 @@ Class PlasmaBlast : SWWMWeapon
PlasmaBlast.ClipCount 8;
+WEAPON.EXPLOSIVE;
+SWWMWEAPON.HASSCRTEX;
Radius 10;
Height 24;
}
States
{

View file

@ -28,8 +28,6 @@ Class ModernSparkster : SWWMWeapon
Stamina 220000;
+SWWMWEAPON.NOFIRSTGIVE;
+WEAPON.EXPLOSIVE;
Radius 30;
Height 30;
}
States
{

View file

@ -224,8 +224,6 @@ Class ItamexHammer : SWWMWeapon
Weapon.UpSound "itamex/select";
Stamina 9000;
+WEAPON.MELEEWEAPON;
Radius 8;
Height 54;
}
States
{

View file

@ -381,8 +381,6 @@ Class HeavyMahSheenGun : SWWMWeapon
SWWMWeapon.DropAmmoType "SWWMClipAmmoMed";
+SWWMWEAPON.HASSCRTEX;
Stamina 100000;
Radius 30;
Height 28;
}
States
{

View file

@ -1307,8 +1307,6 @@ Class MisterRifle : SWWMWeapon
+SWWMWEAPON.NOFIRSTGIVE;
+SWWMWEAPON.HASSCRTEX;
+WEAPON.BFG;
Radius 30;
Height 28;
}
States
{

View file

@ -427,8 +427,6 @@ Class Quadravol : SWWMWeapon
+SWWMWEAPON.NOFIRSTGIVE;
+SWWMWEAPON.HASSCRTEX;
+WEAPON.EXPLOSIVE;
Radius 28;
Height 32;
}
States
{

View file

@ -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);
}

View file

@ -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<Actor> 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<Actor> 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) )

View file

@ -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);

View file

@ -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
{

View file

@ -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
{

View file

@ -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
{

View file

@ -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;

View file

@ -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;
}
}

View file

@ -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
{

View file

@ -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
{

View file

@ -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
{

View file

@ -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<numpt; i++ )
{
double ang = FRandom[ClientSparkles](0,360);
double pt = FRandom[ClientSparkles](0,360);
double dst = FRandom[ClientSparkles](4,16);
Vector3 dir = SWWMUtility.Vec3FromAngles(ang,pt);
Vector3 ppos = (0,0,16+GetBobOffset())+dir*dst;
A_SpawnParticle(pcol,SPF_FULLBRIGHT,30,2.,0,ppos.x,ppos.y,ppos.z,dir.x*.2,dir.y*.2,dir.z*.2,0,0,.05,alph,-1,-2./30.);
}
}
States
{
@ -1204,28 +1221,22 @@ Class SWWMItemTracer : LineTracer
}
}
// Blob shadows
// Blob shadows for player and (eventually) monsters
Class SWWMShadow : SWWMNonInteractiveActor
{
Sector oldfloor;
static bool Track( Actor other )
static SWWMShadow Track( Actor other )
{
// prevent infinite recursion
if ( other is 'SWWMShadow' ) return false;
// no shadows for overlay actors
if ( other is 'SWWMItemOverlay' ) return false;
// no shadows for things with zero radius
if ( other.radius <= 0. ) return false;
let s = SWWMShadow(Spawn("SWWMShadow",other.pos));
s.target = other;
s.Update(true);
return true;
return s;
}
private void Update( bool nointerpolate = false )
{
// update scale / alpha
if ( ((target is 'Inventory') && Inventory(target).Owner) || target.bKILLED || target.bINVISIBLE || (target.sprite == 0) || (target.CurSector.GetTexture(0) == skyflatnum) )
if ( target.bINVISIBLE || (target.sprite == 0) || (target.CurSector.GetTexture(0) == skyflatnum) )
alpha = 0.;
else
{
@ -1234,8 +1245,7 @@ Class SWWMShadow : SWWMNonInteractiveActor
double relz = target.pos.z-pos.z;
if ( target.bFLOATBOB ) relz += target.GetBobOffset();
double bscale = (target.radius/16.)*(1.-min(1.,.003*relz));
// hax
if ( target is 'CompanionLamp' ) bscale *= 2.;
if ( target is 'CompanionLamp' ) bscale *= 2.; // hax
A_SetScale(bscale);
}
// update position
@ -1264,7 +1274,6 @@ Class SWWMShadow : SWWMNonInteractiveActor
{
RenderStyle "Shaded";
StencilColor "000000";
DistanceCheck 'swwm_shadowdist';
}
States
{

View file

@ -121,6 +121,8 @@ Class Demolitionist : PlayerPawn
SWWMMagItem magitem;
int magitem_cnt;
SWWMShadow myshadow;
Default
{
Tag "$T_DEMOLITIONIST";
@ -1158,38 +1160,6 @@ Class Demolitionist : PlayerPawn
SWWMGesture.SetGesture(self,GS_EmptyMelee);
}
}
void NearbyItemSparkles()
{
if ( (player != players[consoleplayer]) || !swwm_itemsparkles ) return;
let bt = BlockThingsIterator.Create(self,500);
while ( bt.Next() )
{
let t = bt.Thing;
if ( !t || !(t is 'Inventory') || !t.bSPECIAL || t.bINVISIBLE || Inventory(t).Owner || !SWWMUtility.SphereIntersect(t,pos,500) )
continue;
Color pcol = "Gold";
if ( Inventory(t).PickupFlash is 'SWWMPickupFlash' )
{
let def = GetDefaultByType(Inventory(t).PickupFlash);
pcol = Color(def.Args[1]*85,def.Args[2]*85,def.Args[3]*85);
}
else continue;
Vector3 bpos = (0,0,16);
if ( t.bFLOATBOB ) bpos.z += t.GetBobOffset();
double alph = clamp((250000.-Distance3DSquared(t))/250000.,0.,1.);
int numpt = clamp(int(max(t.radius,t.height-16)/4),1,8);
for ( int i=0; i<numpt; i++ )
{
double ang = FRandom[ClientSparkles](0,360);
double pt = FRandom[ClientSparkles](0,360);
double dst = FRandom[ClientSparkles](.5,1.25)*max(t.radius,t.height-16);
Vector3 dir = SWWMUtility.Vec3FromAngles(ang,pt);
Vector3 ppos = bpos+dir*dst;
t.A_SpawnParticle(pcol,SPF_FULLBRIGHT,30,2.,0,ppos.x,ppos.y,ppos.z,dir.x*.2,dir.y*.2,dir.z*.2,0,0,.05,alph,-1,-2./30.);
}
}
bt.Destroy();
}
override void CheckPoison()
{
// HAHA no
@ -1219,7 +1189,7 @@ Class Demolitionist : PlayerPawn
selflight.target = self;
selflight.Tick();
}
NearbyItemSparkles();
if ( !myshadow ) myshadow = SWWMShadow.Track(self);
// double-check that we have these
if ( !FindInventory("AlmasteelPlating") )
{
@ -3316,6 +3286,7 @@ Class Demolitionist : PlayerPawn
{
// clean up attached actors
if ( selflight ) selflight.Destroy();
if ( myshadow ) myshadow.Destroy();
// clean up our objects
SWWMItemSense si = itemsense;
while ( si )
@ -3425,17 +3396,6 @@ Class Demolitionist : PlayerPawn
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
if ( hnd && (hnd.SuckableActors.Find(self) >= 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 )
{

View file

@ -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

View file

@ -349,8 +349,6 @@ Class Hellblazer : SWWMWeapon
SWWMWeapon.DropAmmoType "SWWMRocketAmmoSmall";
+SWWMWEAPON.NOFIRSTGIVE;
+WEAPON.EXPLOSIVE;
Radius 24;
Height 32;
}
States
{

View file

@ -491,8 +491,6 @@ Class Wallbuster : SWWMWeapon
SWWMWeapon.DropAmmoType "SWWMShellAmmoBig";
Stamina 35000;
+SWWMWEAPON.NOFIRSTGIVE;
Radius 30;
Height 36;
}
States
{

View file

@ -278,8 +278,6 @@ Class Eviscerator : SWWMWeapon
Weapon.AmmoGive1 4;
SWWMWeapon.DropAmmoType "SWWMClipAmmoMed";
+WEAPON.EXPLOSIVE;
Radius 20;
Height 32;
}
States
{

View file

@ -229,8 +229,6 @@ Class Ynykron : SWWMWeapon
Ynykron.ClipCount 1;
+WEAPON.BFG;
+WEAPON.EXPLOSIVE;
Radius 32;
Height 36;
}
States
{

View file

@ -488,8 +488,6 @@ Class Spreadgun : SWWMWeapon
SWWMWeapon.DropAmmoType "SWWMShellAmmoSmall";
Stamina 15000;
+SWWMWEAPON.NOFIRSTGIVE;
Radius 10;
Height 24;
}
States

View file

@ -220,8 +220,6 @@ Class Sparkster : SWWMWeapon
Sparkster.ClipCount 4;
+SWWMWEAPON.NOFIRSTGIVE;
+WEAPON.EXPLOSIVE;
Radius 22;
Height 24;
}
States
{

View file

@ -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
{

View file

@ -393,8 +393,6 @@ Class CandyGun : SWWMWeapon
+SWWMWEAPON.NOFIRSTGIVE;
+WEAPON.EXPLOSIVE;
+WEAPON.BFG;
Radius 12;
Height 24;
}
States
{

View file

@ -769,8 +769,6 @@ Class SilverBullet : SWWMWeapon
+SWWMWEAPON.NOFIRSTGIVE;
+WEAPON.ALT_AMMO_OPTIONAL;
+WEAPON.EXPLOSIVE;
Radius 36;
Height 36;
}
States
{