From 8f4630ae8be59d184f5f8749ecb0d79ed7c37ea3 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Fri, 9 Jul 2021 13:21:28 +0200 Subject: [PATCH] Add distant item glows. --- cvarinfo.txt | 1 + language.def_menu | 2 + language.es_menu | 2 + language.version | 4 +- menudef.txt | 1 + sprites/BLPSA0.png | Bin 0 -> 2790 bytes sprites/BLPSB0.png | Bin 0 -> 3372 bytes sprites/BLPSC0.png | Bin 0 -> 3769 bytes sprites/BLPSD0.png | Bin 0 -> 3768 bytes sprites/BLPSE0.png | Bin 0 -> 3838 bytes sprites/BLPSF0.png | Bin 0 -> 3887 bytes sprites/BLPSG0.png | Bin 0 -> 3796 bytes sprites/BLPSH0.png | Bin 0 -> 1898 bytes zscript/handler/swwm_handler_process.zsc | 112 ++++++++++--------- zscript/handler/swwm_handler_worldthings.zsc | 8 ++ zscript/hud/swwm_hud.zsc | 10 +- zscript/items/swwm_ammoextra.zsc | 1 + zscript/items/swwm_basearmor.zsc | 1 + zscript/items/swwm_basehealth.zsc | 1 + zscript/items/swwm_baseitem.zsc | 16 +++ zscript/items/swwm_powerups.zsc | 8 ++ zscript/swwm_common_fx.zsc | 62 ++++++---- zscript/weapons/swwm_baseweapon.zsc | 10 +- zscript/weapons/swwm_splode.zsc | 12 +- 24 files changed, 164 insertions(+), 87 deletions(-) create mode 100644 sprites/BLPSA0.png create mode 100644 sprites/BLPSB0.png create mode 100644 sprites/BLPSC0.png create mode 100644 sprites/BLPSD0.png create mode 100644 sprites/BLPSE0.png create mode 100644 sprites/BLPSF0.png create mode 100644 sprites/BLPSG0.png create mode 100644 sprites/BLPSH0.png diff --git a/cvarinfo.txt b/cvarinfo.txt index 60c7905e7..d1a6b87cf 100644 --- a/cvarinfo.txt +++ b/cvarinfo.txt @@ -101,6 +101,7 @@ nosave int swwm_numcolor_hp = 7; // font color for health numbers (default: blu nosave int swwm_numcolor_ap = 3; // font color for armor numbers (default: green) server int swwm_drlaskill = 3; // [DRLA Monsters] skill setting for monster spawns nosave bool swwm_itemsparkles = false; // visual aid for low visibility items +nosave bool swwm_itemglows = false; // 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 diff --git a/language.def_menu b/language.def_menu index c91dc012c..bfe862750 100644 --- a/language.def_menu +++ b/language.def_menu @@ -194,6 +194,7 @@ SWWM_BUTTSFX = "Clapping Buttcheeks"; SWWM_ONDEMANDAMMO = "On Demand Ammo Placement"; SWWM_BUMP = "FOV Bump Strength"; SWWM_ENGINE = "Engine"; +SWWM_ITEMGLOWS = "Distant Items Glow"; SWWM_MMTITLE = "Minimap Settings"; SWWM_MM_ENABLE = "Show Minimap"; SWWM_MM_ROTATE = "Rotate Minimap"; @@ -336,6 +337,7 @@ TOOLTIP_SWWM_BUTTSFX = "The Demolitionist's buttcheeks will VERY AUDIBLY clap up TOOLTIP_SWWM_ONDEMANDAMMO = "Only ammo for weapons that are currently available (either in the player's inventory or in the map) will spawn in the map. May cause long load times on large maps."; 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_MM_ENABLE = "Displays a minimap under the score counter."; TOOLTIP_SWWM_MM_ROTATE = "Rotates the minimap view."; TOOLTIP_SWWM_MM_GRID = "Shows a 128x128 grid on the minimap."; diff --git a/language.es_menu b/language.es_menu index e720074b8..f893d7aaf 100644 --- a/language.es_menu +++ b/language.es_menu @@ -193,6 +193,7 @@ SWWM_BUTTSFX = "Azote de Nalgas"; SWWM_ONDEMANDAMMO = "Colocar Munición por Demanda"; SWWM_BUMP = "Intensidad de Sacudida de FOV"; SWWM_ENGINE = "Motor"; +SWWM_ITEMGLOWS = "Los Ítems Lejanos Brillan"; SWWM_MMTITLE = "Opciones de Minimapa"; SWWM_MM_ENABLE = "Mostrar Minimapa"; SWWM_MM_ROTATE = "Rotar Minimapa"; @@ -335,6 +336,7 @@ TOOLTIP_SWWM_BUTTSFX = "Las nalgas de la Demolicionista emitiran un azote MUY SO TOOLTIP_SWWM_ONDEMANDAMMO = "Solo coloca en el mapa munición para armas que estén actualmente disponibles (tanto en el inventario del jugador como en el mapa). Puede causar tiempos de carga largos en mapas grandes."; 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_MM_ENABLE = "Muestra un minimapa bajo el contador de puntuación."; TOOLTIP_SWWM_MM_ROTATE = "Gira la vista del minimapa."; TOOLTIP_SWWM_MM_GRID = "Muestra una cuadrícula de 128x128 en el minimapa."; diff --git a/language.version b/language.version index 25b99dea7..499dcd0e4 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r573 \cu(Fri 9 Jul 11:29:37 CEST 2021)\c-"; -SWWM_SHORTVER="\cw0.9.11b-pre r573 \cu(2021-07-09 11:29:37)\c-"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r574 \cu(Fri 9 Jul 13:21:28 CEST 2021)\c-"; +SWWM_SHORTVER="\cw0.9.11b-pre r574 \cu(2021-07-09 13:21:28)\c-"; diff --git a/menudef.txt b/menudef.txt index d9cbaa1f8..5b91d9e01 100644 --- a/menudef.txt +++ b/menudef.txt @@ -136,6 +136,7 @@ OptionMenu "SWWMOptionMenu" Option "$SWWM_SHADOWS", "swwm_shadows", "YesNo" ScaleSlider "$SWWM_SHADOWDIST", "swwm_shadowdist", -1, 4000, 1, "$SWWM_NONE", "$SWWM_UNLIMITED" Option "$SWWM_ITEMSPARKLES", "swwm_itemsparkles", "YesNo" + Option "$SWWM_ITEMGLOWS", "swwm_itemglows", "YesNo" Option "$SWWM_BLOOD", "swwm_blood", "YesNo" ScaleSlider "$SWWM_MAXBLOOD", "swwm_maxblood", -1, 1000, 1, "$SWWM_NONE", "$SWWM_UNLIMITED" ScaleSlider "$SWWM_MAXGIBS", "swwm_maxgibs", -1, 1000, 1, "$SWWM_NONE", "$SWWM_UNLIMITED" diff --git a/sprites/BLPSA0.png b/sprites/BLPSA0.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd43824e9a3888000b274cf4d14701ba9dd0c09 GIT binary patch literal 2790 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 aM&|7w9zFSS`6>eg1B0ilpUXO@geCyKkx#k+ literal 0 HcmV?d00001 diff --git a/sprites/BLPSB0.png b/sprites/BLPSB0.png new file mode 100644 index 0000000000000000000000000000000000000000..b5bccce447ccd8c5adf3bb30b6c4a714b19a72c5 GIT binary patch literal 3372 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 YIiEi+oS5Xyz`(%Z>FVdQ&MBb@00xGJf&c&j literal 0 HcmV?d00001 diff --git a/sprites/BLPSC0.png b/sprites/BLPSC0.png new file mode 100644 index 0000000000000000000000000000000000000000..0b946a5d537c6780a9af468bc04e80522e0cce5c GIT binary patch literal 3769 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 RfeZ``44$rjF6*2UngILRH3$Fz literal 0 HcmV?d00001 diff --git a/sprites/BLPSE0.png b/sprites/BLPSE0.png new file mode 100644 index 0000000000000000000000000000000000000000..5b269f32d07b5f40fc34804dbfc5d61c8db13a72 GIT binary patch literal 3838 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 literal 0 HcmV?d00001 diff --git a/sprites/BLPSF0.png b/sprites/BLPSF0.png new file mode 100644 index 0000000000000000000000000000000000000000..a553bf51f8c74ec02d9152106b09f0610b358b9f GIT binary patch literal 3887 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 literal 0 HcmV?d00001 diff --git a/sprites/BLPSG0.png b/sprites/BLPSG0.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c9fbbe593f292190cef88a6e883624d82f84b6 GIT binary patch literal 3796 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 giveme; diff --git a/zscript/items/swwm_basehealth.zsc b/zscript/items/swwm_basehealth.zsc index 13d1dfb15..c6756a5d1 100644 --- a/zscript/items/swwm_basehealth.zsc +++ b/zscript/items/swwm_basehealth.zsc @@ -5,6 +5,7 @@ Class SWWMHealth : Inventory abstract Mixin SWWMUseToPickup; Mixin SWWMOverlapPickupSound; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; // can't use the Health class for whatever reason // nice parser you got there I guess? diff --git a/zscript/items/swwm_baseitem.zsc b/zscript/items/swwm_baseitem.zsc index e7419f6f1..5b467cb58 100644 --- a/zscript/items/swwm_baseitem.zsc +++ b/zscript/items/swwm_baseitem.zsc @@ -165,6 +165,22 @@ Class SWWMRespawnTimer : Actor } } +Mixin Class SWWMPickupGlow +{ + override Inventory CreateTossable( int amt ) + { + let ret = Super.CreateTossable(amt); + // reattach our glow if we became a pickup + if ( (ret == self) && (PickupFlash is 'SWWMPickupFlash') && swwm_itemglows ) + { + let p = Spawn(PickupFlash,Vec3Offset(0,0,16)); + p.target = self; + p.SetStateLabel("Pickup"); + } + return ret; + } +} + Mixin Class SWWMRespawn { override void Hide() diff --git a/zscript/items/swwm_powerups.zsc b/zscript/items/swwm_powerups.zsc index 8257aef72..947b55a13 100644 --- a/zscript/items/swwm_powerups.zsc +++ b/zscript/items/swwm_powerups.zsc @@ -19,6 +19,7 @@ Class GrilledCheeseSandwich : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; // for falling off cliffs and others // last 5 seconds of safe positions @@ -452,6 +453,7 @@ Class GhostArtifact : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; Default { @@ -629,6 +631,7 @@ Class GravitySuppressor : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; override bool Use( bool pickup ) { @@ -867,6 +870,7 @@ Class FuckingInvinciball : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; override Inventory CreateCopy( Actor other ) { @@ -1154,6 +1158,7 @@ Class Ragekit : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; override bool Use( bool pickup ) { @@ -1864,6 +1869,7 @@ Class SWWMLamp : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; bool bActive, bActivated; TextureID OnIcon; @@ -2143,6 +2149,7 @@ Class EBarrier : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; override bool Use( bool pickup ) { @@ -2686,6 +2693,7 @@ Class Mykradvo : Inventory Mixin SWWMOverlapPickupSound; Mixin SWWMUseToPickup; Mixin SWWMRespawn; + Mixin SWWMPickupGlow; Actor ringa[2]; diff --git a/zscript/swwm_common_fx.zsc b/zscript/swwm_common_fx.zsc index 0e613cb88..7347203d9 100644 --- a/zscript/swwm_common_fx.zsc +++ b/zscript/swwm_common_fx.zsc @@ -1029,31 +1029,53 @@ Class SWWMPickupFlash : Actor Super.PostBeginPlay(); frame = Args[0]; } + action void A_Sparkle() + { + // offset up + SetOrigin(Vec3Offset(0,0,16),false); + roll = FRandom[ExploS](0,360); + scale *= FRandom[ExploS](.9,1.1); + scale.x *= RandomPick[ExploS](-1,1); + scale.y *= RandomPick[ExploS](-1,1); + int numpt = Random[ExploS](8,10); + for ( int i=0; i