Sound precaching for player/weapons.

Adjust collision sizes of projectiles.
Make player self-light toggleable.
This commit is contained in:
Mari the Deer 2021-05-18 17:17:15 +02:00
commit 8ec2c14b38
31 changed files with 618 additions and 57 deletions

View file

@ -7,8 +7,6 @@
- DLC weaponset
- Additional collectibles not added due to time constraints
- Additional achievements
- Switchable grenade types
- Extra shell/rocket types
- "White Lady" rare Lämp spawn
- More intermission art (shamefully e-begging on Twitter as usual orz)
- Extra localizations (including Japanese)

View file

@ -68,7 +68,7 @@ server bool swwm_resetscore = true; // reset score back to 0 on pistol starts
server bool swwm_notrack = false; // disables all combat tracking (useful to speed up slaughterwads)
server bool swwm_ynykronalert = false; // caps ynykron alert (so it doesn't wake everyone up)
nosave bool swwm_menupause = true; // pause the game when demolitionist menu is open
server noarchive bool swwm_debugblast = false; // debug visual aid for DoExplosion
nosave noarchive bool swwm_debugblast = false; // debug visual aid for DoExplosion
nosave bool swwm_funtags = false; // replace vanilla monster names with silly ones
server bool swwm_omnibust = false; // TODO add wallbusting effect to all weapons
server bool swwm_superfuel = false; // TODO enable unlimited fuel
@ -104,8 +104,9 @@ nosave bool swwm_itemsparkles = false; // visual aid for low visibility items
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
server noarchive bool swwm_debugview = false; // debug visual aid for various things, such as actor collision, trajectories, relationships, etc.
nosave noarchive bool swwm_debugview = false; // debug visual aid for various things, such as actor collision, trajectories, relationships, etc.
nosave noarchive bool swwm_oldcheat = false; // set to true if you used a SWWM Platinum cheat, so the easter egg only appears once per session
server bool swwm_selflight = true; // player emits light
// minimap settings
nosave bool swwm_mm_enable = true; // show a minimap below the score counter

View file

@ -183,6 +183,7 @@ SWWM_TIME_HOURS = "hours";
SWWM_TIME_MINUTES = "minutes";
SWWM_TIME_SECONDS = "seconds";
SWWM_ATITLE = "Achievements";
SWWM_SELFLIGHT = "Self-Lighting";
SWWM_MMTITLE = "Minimap Settings";
SWWM_MM_ENABLE = "Show Minimap";
SWWM_MM_ROTATE = "Rotate Minimap";
@ -318,6 +319,7 @@ TOOLTIP_SWWM_SINGLEFIRST = "For weapons that have dual-wield variants, enabling
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.";
TOOLTIP_SWWM_PLAYTIME = "Your total play time with this mod loaded.";
TOOLTIP_SWWM_SELFLIGHT = "Emit blue light from the player's face. Disable if this causes performance issues.";
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.";

View file

@ -182,6 +182,7 @@ SWWM_TIME_HOURS = "horas";
SWWM_TIME_MINUTES = "minutos";
SWWM_TIME_SECONDS = "segundos";
SWWM_ATITLE = "Logros";
SWWM_SELFLIGHT = "Luz Propia";
SWWM_MMTITLE = "Opciones de Minimapa";
SWWM_MM_ENABLE = "Mostrar Minimapa";
SWWM_MM_ROTATE = "Rotar Minimapa";
@ -317,6 +318,7 @@ TOOLTIP_SWWM_SINGLEFIRST = "Para armas que tienen variantes duales, activando es
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.";
TOOLTIP_SWWM_PLAYTIME = "Tu tiempo de juego total con este mod cargado.";
TOOLTIP_SWWM_SELFLIGHT = "Emite luz azul desde la cara del jugador. Desactiva si causa problemas de rendimiento.";
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.";

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r496 \cu(Tue 18 May 15:39:05 CEST 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r496 \cu(2021-05-18 15:39:05)\c-";
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r497 \cu(Tue 18 May 17:17:15 CEST 2021)\c-";
SWWM_SHORTVER="\cw0.9.11b-pre r497 \cu(2021-05-18 17:17:15)\c-";

View file

@ -89,6 +89,7 @@ OptionMenu "SWWMOptionMenu"
ScaleSliderFix "$SWWM_REVIVECOOLDOWN", "swwm_revivecooldown", -1, 300, 30, "$SWWM_UNLIMITED", "$SWWM_ONERETRY"
Option "$SWWM_MENUPAUSE", "swwm_menupause", "YesNo"
Option "$SWWM_PRECISECROSSHAIR", "swwm_precisecrosshair", "YesNo"
Option "$SWWM_SELFLIGHT", "swwm_selflight", "YesNo"
Submenu "$SWWM_ATITLE", "SWWMAchievementMenu"
StaticText " "
StaticText "$SWWM_OTITLE", "Blue"

View file

@ -88,7 +88,9 @@ GameInfo
"MilkBreadsGesture",
"KirinMangaGesture",
"KirinPlushGesture"
// really damn big textures
PrecacheTextures = "graphics/SWWMGZLogo.png",
"graphics/SWWMGZLogo_Layers.png"
}
ClearSkills

View file

@ -3,6 +3,7 @@
extend Class SWWMHandler
{
ui SWWMProjectionData projdata;
transient ui Font dbgfont;
private ui void DrawWorldLine( RenderEvent e, Vector3 apos, Vector3 bpos, Color col )
{
@ -89,11 +90,15 @@ extend Class SWWMHandler
if ( a.target ) DrawWorldLine(e,pos,a.target.prev*(1.-e.FracTic)+a.target.pos*e.FracTic,"Gold");
if ( a.tracer ) DrawWorldLine(e,pos,a.tracer.prev*(1.-e.FracTic)+a.tracer.pos*e.FracTic,"Orange");
if ( a.master ) DrawWorldLine(e,pos,a.master.prev*(1.-e.FracTic)+a.master.pos*e.FracTic,"Purple");
Vector3 ndc = SWWMUtility.ProjectPoint(projdata,e.viewpos+level.Vec3Diff(e.viewpos,pos+(0,0,a.Height/2)));
double hdiff = a.Height/2;
if ( a.bFLOATBOB ) hdiff += a.GetBobOffset();
Vector3 ndc = SWWMUtility.ProjectPoint(projdata,e.viewpos+level.Vec3Diff(e.viewpos,pos+(0,0,hdiff)));
if ( ndc.z > 1. ) return;
Vector2 vpos = SWWMUtility.NDCToViewport(projdata,ndc);
String tag = a.player?a.player.GetUserName():a.GetTag();
Screen.DrawText(NewSmallFont,Font.CR_UNTRANSLATED,vpos.x-NewSmallFont.StringWidth(tag)/2,vpos.y-NewSmallFont.GetHeight()/2,tag);
if ( tag == a.GetClassName() ) SWWMUtility.BeautifyClassName(tag);
if ( !dbgfont ) dbgfont = Font.GetFont('TewiShadedOutline');
Screen.DrawText(dbgfont,Font.CR_RED,vpos.x-dbgfont.StringWidth(tag)/2,vpos.y-NewSmallFont.GetHeight()/2,tag);
}
private ui void DrawDebug( RenderEvent e )
@ -108,7 +113,7 @@ extend Class SWWMHandler
if ( a == players[consoleplayer].Camera ) continue;
if ( a.bINVISIBLE && !(a is 'DynamicLight') ) continue;
if ( (a is 'Inventory') && Inventory(a).Owner ) continue;
if ( a is 'SWWMShadow' ) continue;
if ( (a is 'SWWMShadow') || (a is 'GhostArtifactX') || (a is 'DemolitionistSelfLight') ) continue;
if ( a.Distance3DSquared(e.Camera) > 1000000 ) continue;
DrawActor(e,a);
}

View file

@ -108,7 +108,25 @@ Class SayaBeanGesture : SWWMItemGesture
s.plushuses++;
SWWMUtility.AchievementProgress('swwm_progress_plush',s.plushuses,player);
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("saya/giggle1");
MarkSound("saya/giggle2");
MarkSound("saya/giggle3");
MarkSound("saya/giggle4");
MarkSound("saya/giggle5");
MarkSound("saya/giggle6");
MarkSound("saya/giggle7");
MarkSound("saya/giggle8");
MarkSound("saya/giggle9");
MarkSound("saya/giggle10");
MarkSound("saya/giggle11");
MarkSound("saya/giggle12");
MarkSound("saya/giggle13");
MarkSound("saya/giggle14");
MarkSound("saya/pervert");
}
States
{
Fire:
@ -154,5 +172,22 @@ Class LithiumNovelGesture : SWWMItemGesture {}
Class KirinCummiesGesture : SWWMItemGesture {}
Class MilkBreadsGesture : SWWMItemGesture {}
Class KirinMangaGesture : SWWMItemGesture {}
Class KirinPlushGesture : SWWMItemGesture {}
Class KirinPlushGesture : SWWMItemGesture
{
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("kirin/giggle1");
MarkSound("kirin/giggle2");
MarkSound("kirin/giggle3");
MarkSound("kirin/giggle4");
MarkSound("kirin/giggle5");
MarkSound("kirin/giggle6");
MarkSound("kirin/giggle7");
MarkSound("kirin/giggle8");
MarkSound("kirin/giggle9");
MarkSound("kirin/giggle10");
MarkSound("kirin/giggle11");
}
}
Class RubberDuckGesture : SWWMItemGesture {}

View file

@ -74,8 +74,8 @@ Class SWWMSmoke : Actor
{
RenderStyle "Shaded";
StencilColor "FFFFFF";
Radius 2;
Height 2;
Radius .1;
Height 0;
Speed 1;
+NOBLOCKMAP;
+NOGRAVITY;
@ -193,7 +193,7 @@ Class SWWMHalfSmoke : Actor
{
RenderStyle "Shaded";
StencilColor "FFFFFF";
Radius 0.1;
Radius .1;
Height 0;
Speed 1;
+NOBLOCKMAP;
@ -279,8 +279,8 @@ Class SWWMBubble : Actor
Default
{
RenderStyle "Add";
Radius 2;
Height 2;
Radius .1;
Height 0;
+NOBLOCKMAP;
+NOGRAVITY;
+DONTSPLASH;
@ -414,8 +414,8 @@ Class SWWMSpark : Actor
Default
{
RenderStyle "Add";
Radius 2;
Height 2;
Radius .1;
Height 0;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+THRUACTORS;
@ -579,8 +579,8 @@ Class SWWMChip : Actor
Default
{
Radius 1;
Height 1;
Radius .1;
Height 0;
+NOBLOCKMAP;
+THRUACTORS;
+NOTELEPORT;
@ -781,6 +781,8 @@ Class SWWMItemFog : Actor
Default
{
RenderStyle "Add";
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
@ -836,8 +838,8 @@ Class SWWMTeleportSparkle : Actor
{
RenderStyle "Add";
Scale 0.3;
Radius 0.1;
Height 0;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
@ -1011,6 +1013,8 @@ Class SWWMPickupFlash : Actor
{
RenderStyle "Add";
Args 0,3,2,1;
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
@ -1115,7 +1119,7 @@ Class InvisibleSplasher : Actor
{
Mass 100;
VSpeed -2;
Radius 2;
Radius 1;
Height 2;
+NOBLOCKMAP; // needed to prevent infinite loops with some 3D floor water (yes, you read that right)
FloatBobPhase 0;

View file

@ -2616,6 +2616,84 @@ Class Demolitionist : PlayerPawn
if ( l && l.thelamp )
CompanionLamp(l.thelamp).justteleport = true;
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("demolitionist/walk1");
MarkSound("demolitionist/walk2");
MarkSound("demolitionist/walk3");
MarkSound("demolitionist/walk4");
MarkSound("demolitionist/runstart1");
MarkSound("demolitionist/runstart2");
MarkSound("demolitionist/runstart3");
MarkSound("demolitionist/runstart4");
MarkSound("demolitionist/run1");
MarkSound("demolitionist/run2");
MarkSound("demolitionist/run3");
MarkSound("demolitionist/run4");
MarkSound("demolitionist/runstop1");
MarkSound("demolitionist/runstop2");
MarkSound("demolitionist/runstop3");
MarkSound("demolitionist/runstop4");
MarkSound("demolitionist/jet");
MarkSound("demolitionist/jetstop");
MarkSound("demolitionist/death1");
MarkSound("demolitionist/death2");
MarkSound("demolitionist/death3");
MarkSound("demolitionist/xdeath1");
MarkSound("demolitionist/xdeath2");
MarkSound("demolitionist/xdeath3");
MarkSound("demolitionist/wdeath1");
MarkSound("demolitionist/wdeath2");
MarkSound("demolitionist/wdeath3");
MarkSound("demolitionist/pain1");
MarkSound("demolitionist/pain2");
MarkSound("demolitionist/pain3");
MarkSound("demolitionist/hipain1");
MarkSound("demolitionist/hipain2");
MarkSound("demolitionist/hipain3");
MarkSound("demolitionist/lopain1");
MarkSound("demolitionist/lopain2");
MarkSound("demolitionist/lopain3");
MarkSound("demolitionist/hardland1");
MarkSound("demolitionist/hardland2");
MarkSound("demolitionist/hardland3");
MarkSound("demolitionist/swing1");
MarkSound("demolitionist/swing2");
MarkSound("demolitionist/swing3");
MarkSound("demolitionist/wswing1");
MarkSound("demolitionist/wswing2");
MarkSound("demolitionist/punch1");
MarkSound("demolitionist/punch2");
MarkSound("demolitionist/punch3");
MarkSound("demolitionist/punchf1");
MarkSound("demolitionist/punchf2");
MarkSound("demolitionist/punchf3");
MarkSound("demolitionist/bump1");
MarkSound("demolitionist/bump2");
MarkSound("demolitionist/bump3");
MarkSound("demolitionist/kick1");
MarkSound("demolitionist/kick2");
MarkSound("demolitionist/kick3");
MarkSound("demolitionist/revive");
MarkSound("demolitionist/youdied");
MarkSound("demolitionist/parry");
MarkSound("demolitionist/handsup");
MarkSound("demolitionist/handsdown");
MarkSound("demolitionist/whits1");
MarkSound("demolitionist/whits2");
MarkSound("demolitionist/whits3");
MarkSound("demolitionist/whitm1");
MarkSound("demolitionist/whitm2");
MarkSound("demolitionist/whitm3");
MarkSound("demolitionist/whitl1");
MarkSound("demolitionist/whitl2");
MarkSound("demolitionist/buttslam");
MarkSound("demolitionist/smooch");
MarkSound("demolitionist/blowkiss");
MarkSound("demolitionist/petting");
MarkSound("demolitionist/knockout");
}
States
{
Spawn:

View file

@ -5,8 +5,8 @@ Class DashTrail : Actor
Default
{
RenderStyle "Add";
Radius 2;
Height 2;
Radius .1;
Height 0.;
Scale 0.3;
+NOGRAVITY;
+NOBLOCKMAP;
@ -52,8 +52,8 @@ Class DashTrail2 : Actor
Default
{
RenderStyle "Add";
Radius 2;
Height 2;
Radius .1;
Height 0.;
Scale 0.2;
Alpha 0.4;
+NOGRAVITY;
@ -199,6 +199,8 @@ Class DemolitionistShockwave : Actor
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+NOINTERACTION;
Radius .1;
Height 0.;
}
override void PostBeginPlay()
{
@ -282,6 +284,8 @@ Class DemolitionistSelfLight : Actor
Default
{
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
@ -320,7 +324,8 @@ Class DemolitionistSelfLight : Actor
}
else tagcolor = Color(255,32,48,24);
}
bool curactive = activelight();
bool doselflight = swwm_selflight;
bool curactive = doselflight&&activelight();
// setting the pitch to a value outside [-90,90] makes it auto-update to the actor's own pitch
// this is undocumented and it's very great and nice and fine that such a thing had to be found out purely by chance
// how very wonderful /s
@ -329,7 +334,7 @@ Class DemolitionistSelfLight : Actor
else if ( !curactive && oldactive )
target.A_AttachLight('DemoSelfLight',DynamicLight.PointLight,0,0,0);
oldactive = curactive;
bool curglow = !(target.bINVISIBLE||(target.alpha <= double.epsilon));
bool curglow = doselflight&&(!(target.bINVISIBLE||(target.alpha <= double.epsilon)));
if ( curglow && !oldglow ) target.A_AttachLight('DemoSelfLight2',DynamicLight.PointLight,tagcolor,80,0,DynamicLight.LF_DONTLIGHTSELF|DynamicLight.LF_ATTENUATE,(0,0,target.height/2));
else if ( !curglow && oldglow ) target.A_AttachLight('DemoSelfLight2',DynamicLight.PointLight,0,0,0);
oldglow = curglow;

View file

@ -10,7 +10,7 @@ Class SWWMCasing : Actor abstract
Default
{
Radius 2;
Radius 1;
Height 2;
+NOBLOCKMAP;
+MISSILE;

View file

@ -603,6 +603,45 @@ Class Hellblazer : SWWMWeapon
tracer.FloatBobPhase = FloatBobPhase;
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("hellblazer/select");
MarkSound("hellblazer/deselect");
MarkSound("hellblazer/fire");
MarkSound("hellblazer/altfire");
MarkSound("hellblazer/meleestart");
MarkSound("hellblazer/meleeend");
MarkSound("hellblazer/idle");
MarkSound("hellblazer/dustoff");
MarkSound("hellblazer/shift");
MarkSound("hellblazer/spin");
MarkSound("hellblazer/open");
MarkSound("hellblazer/magout");
MarkSound("hellblazer/magin");
MarkSound("hellblazer/close");
MarkSound("hellblazer/hitm1");
MarkSound("hellblazer/hitm2");
MarkSound("hellblazer/hitm3");
MarkSound("hellblazer/hitc1");
MarkSound("hellblazer/hitc2");
MarkSound("hellblazer/hitc3");
MarkSound("hellblazer/hitcs1");
MarkSound("hellblazer/hitcs2");
MarkSound("hellblazer/hitcs3");
MarkSound("hellblazer/hitr1");
MarkSound("hellblazer/hitr2");
MarkSound("hellblazer/hitr3");
MarkSound("hellblazer/hitw1");
MarkSound("hellblazer/hitw2");
MarkSound("hellblazer/bounce");
MarkSound("hellblazer/fly");
MarkSound("hellblazer/preload");
MarkSound("hellblazer/hold");
MarkSound("hellblazer/lock");
MarkSound("hellblazer/clear");
}
Default
{
Tag "$T_HELLBLAZER";

View file

@ -243,8 +243,8 @@ Class HellblazerMissile : Actor
{
Obituary "$O_HELLBLAZER";
DamageType 'Exploded';
Radius 4;
Height 8;
Radius 2;
Height 4;
Speed 50;
PROJECTILE;
+EXPLODEONWATER;

View file

@ -816,6 +816,33 @@ Class Wallbuster : SWWMWeapon
return good;
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("wallbuster/select");
MarkSound("wallbuster/deselect");
MarkSound("wallbuster/dryfire");
MarkSound("wallbuster/spin");
MarkSound("wallbuster/spinbig");
MarkSound("wallbuster/unlock");
MarkSound("wallbuster/lock");
MarkSound("wallbuster/meleestart");
MarkSound("wallbuster/meleeend");
MarkSound("wallbuster/detach");
MarkSound("wallbuster/attach");
MarkSound("wallbuster/handspin");
MarkSound("wallbuster/load1");
MarkSound("wallbuster/load2");
MarkSound("wallbuster/load3");
MarkSound("wallbuster/load4");
MarkSound("wallbuster/smallbust1");
MarkSound("wallbuster/smallbust2");
MarkSound("wallbuster/smallbust3");
MarkSound("wallbuster/bigbust1");
MarkSound("wallbuster/bigbust2");
MarkSound("wallbuster/bigbust3");
}
Default
{
Tag "$T_WALLBUSTER";

View file

@ -238,6 +238,44 @@ Class Eviscerator : SWWMWeapon
s.speed *= .1;
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("eviscerator/select");
MarkSound("eviscerator/deselect");
MarkSound("eviscerator/load");
MarkSound("eviscerator/fire1");
MarkSound("eviscerator/fire2");
MarkSound("eviscerator/altfire1");
MarkSound("eviscerator/altfire2");
MarkSound("eviscerator/eject");
MarkSound("eviscerator/ejectend");
MarkSound("eviscerator/switch");
MarkSound("eviscerator/checkgun");
MarkSound("eviscerator/meleestart");
MarkSound("eviscerator/meleeend");
MarkSound("eviscerator/hit1");
MarkSound("eviscerator/hit2");
MarkSound("eviscerator/hit3");
MarkSound("eviscerator/hit4");
MarkSound("eviscerator/hit5");
MarkSound("eviscerator/hit6");
MarkSound("eviscerator/hith1");
MarkSound("eviscerator/hith2");
MarkSound("eviscerator/hith3");
MarkSound("eviscerator/hith4");
MarkSound("eviscerator/hith5");
MarkSound("eviscerator/hith6");
MarkSound("eviscerator/hith7");
MarkSound("eviscerator/hith8");
MarkSound("eviscerator/hitf1");
MarkSound("eviscerator/hitf2");
MarkSound("eviscerator/hitf3");
MarkSound("eviscerator/shell1");
MarkSound("eviscerator/shell2");
MarkSound("eviscerator/casing");
}
Default
{
Tag "$T_EVISCERATOR";

View file

@ -145,7 +145,7 @@ Class EvisceratorChunk : Actor
Default
{
Obituary "$O_EVISCERATOR";
Radius 2;
Radius 1;
Height 2;
Speed 50;
DamageFunction int(clamp((vel.length()-8)*.2+max(0,1.-lifetime)*2.,0,15));
@ -450,7 +450,7 @@ Class EvisceratorProj : Actor
{
Obituary "$O_EVISCERATOR";
DamageType 'Exploded';
Radius 4;
Radius 2;
Height 4;
Gravity 0.35;
Speed 50;

View file

@ -193,6 +193,41 @@ Class Ynykron : SWWMWeapon
return Super.PickupForAmmoSWWM(ownedWeapon);
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("ynykron/select");
MarkSound("ynykron/deselect");
MarkSound("ynykron/idle");
MarkSound("ynykron/ready");
MarkSound("ynykron/latch");
MarkSound("ynykron/ventopen");
MarkSound("ynykron/ventclose");
MarkSound("ynykron/puff");
MarkSound("ynykron/puffing");
MarkSound("ynykron/puffend");
MarkSound("ynykron/meleestart");
MarkSound("ynykron/meleeend");
MarkSound("ynykron/checkout");
MarkSound("ynykron/fire");
MarkSound("ynykron/altfire");
MarkSound("ynykron/magout");
MarkSound("ynykron/magin");
MarkSound("ynykron/beam");
MarkSound("ynykron/hit1");
MarkSound("ynykron/hit2");
MarkSound("ynykron/hit3");
MarkSound("ynykron/altbeam");
MarkSound("ynykron/vortex");
MarkSound("ynykron/vortexarc1");
MarkSound("ynykron/vortexarc2");
MarkSound("ynykron/vortexarc3");
MarkSound("ynykron/vortexflash1");
MarkSound("ynykron/vortexflash2");
MarkSound("ynykron/vortexend");
MarkSound("ynykron/wind");
}
Default
{
Tag "$T_YNYKRON";

View file

@ -220,7 +220,7 @@ Class YnykronImpactArm : Actor
-NOGRAVITY;
Gravity 0.35;
BounceFactor 1.0;
Radius 4;
Radius 2;
Height 4;
}
override void PostBeginPlay()
@ -265,6 +265,8 @@ Class YnykronImpactTrail : Actor
+NOINTERACTION;
Scale 2.;
Alpha .2;
Radius .1;
Height 0.;
}
override void PostBeginPlay()
{
@ -302,6 +304,8 @@ Class YnykronDelayedImpact : Actor
+NOGRAVITY;
+NOTELEPORT;
+NOINTERACTION;
Radius .1;
Height 0.;
}
override void Tick()
{
@ -344,6 +348,8 @@ Class YnykronImpact : Actor
+NODAMAGETHRUST;
+FORCERADIUSDMG;
+EXTREMEDEATH;
Radius .1;
Height 0.;
}
private bool CmpDist( Actor a, Actor b )
@ -1677,6 +1683,7 @@ Class YnykronLightningArc : Actor
r.ReactionTime += Random[Ynykron](-3,3);
}
}
if ( arcsnd != "" ) A_StartSound(arcsnd,CHAN_WEAPON);
if ( ((ReactionTime > 0) && (special1 > ReactionTime)) || bAMBUSH ) return;
let b = Spawn(GetClass(),invoker.nextpos);
b.angle = atan2(invoker.nextdir.y,invoker.nextdir.x);
@ -1685,7 +1692,6 @@ Class YnykronLightningArc : Actor
b.special1 = special1+1;
YnykronLightningArc(b).destpos = invoker.destpos;
b.SetState(b.FindState("Trailer"));
if ( arcsnd != "" ) A_StartSound(arcsnd,CHAN_WEAPON);
}
override void PostBeginPlay()
{
@ -2071,7 +2077,7 @@ Class YnykronSingularityExplosionArm : Actor
-NOGRAVITY;
Gravity 0.35;
BounceFactor 1.0;
Radius 4;
Radius 2;
Height 4;
}
override void PostBeginPlay()
@ -2117,6 +2123,8 @@ Class YnykronSingularityExplosionTrail : Actor
+NOINTERACTION;
Scale 3.;
Alpha .2;
Radius 0.1;
Height 0;
}
override void PostBeginPlay()
{

View file

@ -298,6 +298,25 @@ Class DeepImpact : SWWMWeapon
A_QuakeEx(1,1,1,2,0,1,"",QF_RELATIVE|QF_SCALEUP,rollIntensity:.05);
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("deepimpact/fire");
MarkSound("deepimpact/charge");
MarkSound("deepimpact/altfire");
MarkSound("deepimpact/dryfire");
MarkSound("deepimpact/select");
MarkSound("deepimpact/checkout");
MarkSound("deepimpact/deselect");
MarkSound("deepimpact/bullet");
MarkSound("deepimpact/bullethit1");
MarkSound("deepimpact/bullethit2");
MarkSound("deepimpact/reloadbeg");
MarkSound("deepimpact/reloadend");
MarkSound("deepimpact/reload");
MarkSound("deepimpact/noreload");
}
Default
{
Tag "$T_DEEPIMPACT";

View file

@ -215,6 +215,37 @@ Class PusherWeapon : SWWMWeapon
player.SetPSprite(PSP_WEAPON,ResolveState("AltRelease"));
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("pusher/select");
MarkSound("pusher/deselect");
MarkSound("pusher/motor");
MarkSound("pusher/motorend");
MarkSound("pusher/start");
MarkSound("pusher/drill");
MarkSound("pusher/hit1");
MarkSound("pusher/hit2");
MarkSound("pusher/hit3");
MarkSound("pusher/meat1");
MarkSound("pusher/meat2");
MarkSound("pusher/meat3");
MarkSound("pusher/end");
MarkSound("pusher/checkout");
MarkSound("pusher/pullback");
MarkSound("pusher/altfire1");
MarkSound("pusher/altfire2");
MarkSound("pusher/miss");
MarkSound("pusher/althit1");
MarkSound("pusher/althit2");
MarkSound("pusher/altmeat1");
MarkSound("pusher/altmeat2");
MarkSound("pusher/fly");
MarkSound("pusher/bounce1");
MarkSound("pusher/bounce2");
MarkSound("pusher/bounce3");
}
Default
{
Tag "$T_PUSHER";

View file

@ -788,6 +788,89 @@ Class Spreadgun : SWWMWeapon
A_DropItem(Random[Spreadgun](0,2)?"RedShell":"GreenShell",Random[Spreadgun](1,2));
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("spreadgun/open");
MarkSound("spreadgun/hammer");
MarkSound("spreadgun/close");
MarkSound("spreadgun/shellin");
MarkSound("spreadgun/select");
MarkSound("spreadgun/deselect");
MarkSound("spreadgun/redfire1");
MarkSound("spreadgun/redfire2");
MarkSound("spreadgun/greenfire1");
MarkSound("spreadgun/greenfire2");
MarkSound("spreadgun/whitefire1");
MarkSound("spreadgun/whitefire2");
MarkSound("spreadgun/bluefire1");
MarkSound("spreadgun/bluefire2");
MarkSound("spreadgun/blackfire1");
MarkSound("spreadgun/blackfire2");
MarkSound("spreadgun/purplefire1");
MarkSound("spreadgun/purplefire2");
MarkSound("spreadgun/goldfire1");
MarkSound("spreadgun/goldfire2");
MarkSound("spreadgun/checkgun");
MarkSound("spreadgun/casing1");
MarkSound("spreadgun/casing2");
MarkSound("spreadgun/casing3");
MarkSound("spreadgun/casing4");
MarkSound("spreadgun/casing5");
MarkSound("spreadgun/casing6");
MarkSound("spreadgun/gcasing1");
MarkSound("spreadgun/gcasing2");
MarkSound("spreadgun/gcasing3");
MarkSound("spreadgun/pellet1");
MarkSound("spreadgun/pellet2");
MarkSound("spreadgun/pellet3");
MarkSound("spreadgun/pellet4");
MarkSound("spreadgun/pellet5");
MarkSound("spreadgun/pellet6");
MarkSound("spreadgun/pellet7");
MarkSound("spreadgun/pellet8");
MarkSound("spreadgun/pelletf1");
MarkSound("spreadgun/pelletf2");
MarkSound("spreadgun/pelletf3");
MarkSound("spreadgun/pelletf4");
MarkSound("spreadgun/pelletf5");
MarkSound("spreadgun/pelletf6");
MarkSound("spreadgun/slug1");
MarkSound("spreadgun/slug2");
MarkSound("spreadgun/slugf1");
MarkSound("spreadgun/slugf2");
MarkSound("spreadgun/corrode");
MarkSound("spreadgun/corrodepuff1");
MarkSound("spreadgun/corrodepuff2");
MarkSound("spreadgun/ball1");
MarkSound("spreadgun/ball2");
MarkSound("spreadgun/ball3");
MarkSound("spreadgun/ballf1");
MarkSound("spreadgun/ballf2");
MarkSound("spreadgun/ballf3");
MarkSound("spreadgun/salt1");
MarkSound("spreadgun/salt2");
MarkSound("spreadgun/salt3");
MarkSound("spreadgun/salt4");
MarkSound("spreadgun/salttrail1");
MarkSound("spreadgun/salttrail2");
MarkSound("spreadgun/salttrail3");
MarkSound("spreadgun/salttrail4");
MarkSound("spreadgun/goldexpl1");
MarkSound("spreadgun/goldexpl2");
MarkSound("misc/clonk1");
MarkSound("misc/clonk2");
MarkSound("misc/clonk3");
MarkSound("misc/clonk4");
MarkSound("misc/clonk5");
MarkSound("misc/clonk6");
MarkSound("misc/clonk7");
MarkSound("misc/clonk8");
MarkSound("misc/clonk9");
MarkSound("misc/clonk10");
MarkSound("misc/clonk11");
}
Default
{
Tag "$T_SPREADGUN";

View file

@ -126,6 +126,8 @@ Class DragonBreathPuff : Actor
RenderStyle "Add";
Scale 0.5;
Alpha 0.35;
Radius .1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+DONTSPLASH;
@ -177,7 +179,7 @@ Class DragonBreathArm : Actor
-NOGRAVITY;
Gravity 0.15;
BounceFactor 1.0;
Radius 4;
Radius 2;
Height 4;
}
override void PostBeginPlay()
@ -1144,7 +1146,7 @@ Class TheBall : Actor
Speed 80;
Gravity 0.1;
BounceFactor 1.0;
Radius 2;
Radius 1;
Height 2;
}
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )

View file

@ -190,6 +190,60 @@ Class Sparkster : SWWMWeapon
A_StartSound("biospark/fail",CHAN_WEAPON,CHANF_OVERLAP);
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("biospark/select");
MarkSound("biospark/deselect");
MarkSound("biospark/fire1");
MarkSound("biospark/fire2");
MarkSound("biospark/fire3");
MarkSound("biospark/altfire1");
MarkSound("biospark/altfire2");
MarkSound("biospark/altfire3");
MarkSound("biospark/thirdfire");
MarkSound("biospark/meleestart");
MarkSound("biospark/meleeend");
MarkSound("biospark/idle");
MarkSound("biospark/idle2");
MarkSound("biospark/magout");
MarkSound("biospark/magin");
MarkSound("biospark/spark");
MarkSound("biospark/hit1");
MarkSound("biospark/hit2");
MarkSound("biospark/hit3");
MarkSound("biospark/beamhit1");
MarkSound("biospark/beamhit2");
MarkSound("biospark/deploy1");
MarkSound("biospark/deploy2");
MarkSound("biospark/deploy3");
MarkSound("biospark/bighit1");
MarkSound("biospark/bighit2");
MarkSound("biospark/bigspark");
MarkSound("biospark/arc1");
MarkSound("biospark/arc2");
MarkSound("biospark/arc3");
MarkSound("biospark/arc4");
MarkSound("biospark/bigarc1");
MarkSound("biospark/bigarc2");
MarkSound("biospark/bigarc3");
MarkSound("biospark/bigarc4");
MarkSound("biospark/hugearc1");
MarkSound("biospark/hugearc2");
MarkSound("biospark/hugearc3");
MarkSound("biospark/zap1");
MarkSound("biospark/zap2");
MarkSound("biospark/zap3");
MarkSound("biospark/zap4");
MarkSound("biospark/zap5");
MarkSound("biospark/zap6");
MarkSound("biospark/prefire");
MarkSound("biospark/prethird");
MarkSound("biospark/hiss");
MarkSound("biospark/fail");
MarkSound("biospark/checkout");
}
Default
{
Tag "$T_SPARKSTER";

View file

@ -59,8 +59,8 @@ Class BiosparkHitbox : Actor
{
Default
{
Radius 30;
Height 60;
Radius 8;
Height 16;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
@ -85,8 +85,8 @@ Class BigBiosparkHitbox : BiosparkHitbox
{
Default
{
Radius 80;
Height 160;
Radius 40;
Height 80;
}
}
@ -98,6 +98,8 @@ Class BigOrbiter : Actor
{
RenderStyle "Add";
Scale 3.;
Radius .1;
Height 0.;
+NOINTERACTION;
+NOCLIP;
+DONTSPLASH;
@ -386,7 +388,7 @@ Class BigBiospark : Actor
DamageType "Plasma";
RenderStyle "Add";
Health 1200;
Radius 2;
Radius 1;
Height 2;
Speed 1;
BounceFactor 1.;
@ -430,8 +432,8 @@ Class BiosparkBall : Actor
Obituary "$O_SPARKSTER";
DamageType "Plasma";
RenderStyle "Add";
Radius 3;
Height 6;
Radius 1;
Height 2;
Speed 20;
PROJECTILE;
+FOILINVUL;
@ -1728,7 +1730,7 @@ Class BiosparkCore : Actor
Gravity .1;
BounceFactor 1.;
WallBounceFactor 1.;
Radius 2;
Radius 1;
Height 2;
ReactionTime 25;
}

View file

@ -260,6 +260,37 @@ Class ExplodiumGun : SWWMWeapon
return copy;
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("explodium/casing1");
MarkSound("explodium/casing2");
MarkSound("explodium/casing3");
MarkSound("explodium/casing4");
MarkSound("explodium/checkout");
MarkSound("explodium/fire1");
MarkSound("explodium/fire2");
MarkSound("explodium/fire3");
MarkSound("explodium/hit1");
MarkSound("explodium/hit2");
MarkSound("explodium/hit3");
MarkSound("explodium/jamitin");
MarkSound("explodium/mag1");
MarkSound("explodium/mag2");
MarkSound("explodium/mag3");
MarkSound("explodium/maghit1");
MarkSound("explodium/maghit2");
MarkSound("explodium/magin");
MarkSound("explodium/magout");
MarkSound("explodium/magpin");
MarkSound("explodium/select");
MarkSound("explodium/deselect");
MarkSound("explodium/slideback");
MarkSound("explodium/slideforward");
MarkSound("explodium/speen");
MarkSound("explodium/throwmag");
}
Default
{
Tag "$T_EXPLODIUM";

View file

@ -45,7 +45,7 @@ Class ExplodiumMagArm : Actor
-NOGRAVITY;
Gravity 0.35;
BounceFactor 1.0;
Radius 4;
Radius 2;
Height 4;
}
override void PostBeginPlay()
@ -118,7 +118,7 @@ Class ExplodiumMagProj : Actor
{
Obituary "$O_EXPLODIUM";
DamageType "Explodium";
Radius 4;
Radius 2;
Height 4;
Gravity 0.5;
Speed 30;

View file

@ -313,6 +313,22 @@ Class CandyGun : SWWMWeapon
}
return Super.CreateTossable(amt);
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("candygun/fire1");
MarkSound("candygun/fire2");
MarkSound("candygun/fire3");
MarkSound("candygun/hit1");
MarkSound("candygun/hit2");
MarkSound("candygun/hit3");
MarkSound("candygun/maghit1");
MarkSound("candygun/maghit2");
MarkSound("candygun/gunhit1");
MarkSound("candygun/gunhit2");
}
Default
{
Tag "$T_CANDYGUN";

View file

@ -2,9 +2,7 @@
Class CandyCasing : SWWMCasing {}
Class CandyMag : ExplodiumMag
{
}
Class CandyMag : ExplodiumMag {}
Class CandyLight : PaletteLight
{
@ -217,6 +215,8 @@ Class CandyPop : Actor
DamageType "Explodium";
RenderStyle "Add";
Scale 2.;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;
@ -358,7 +358,7 @@ Class CandyMagArm : Actor
+FOILINVUL;
Gravity 0.35;
BounceFactor 1.0;
Radius 4;
Radius 2;
Height 4;
}
override void PostBeginPlay()
@ -416,6 +416,8 @@ Class CandyMagTrail : Actor
+NOINTERACTION;
Scale 2.4;
Alpha 0.7;
Radius .1;
Height 0.;
}
override void Tick()
{
@ -516,7 +518,7 @@ Class CandyGunProj : Actor
{
Obituary "$O_CANDYGUN";
DamageType "Explodium";
Radius 6;
Radius 3;
Height 6;
Gravity 0.5;
Speed 30;
@ -653,8 +655,8 @@ Class CandyMagProj : Actor
{
Obituary "$O_CANDYGUN";
DamageType "Explodium";
Radius 6;
Height 6;
Radius 2;
Height 4;
Gravity 0.5;
Speed 30;
PROJECTILE;
@ -784,6 +786,8 @@ Class CandyBulletImpact : Actor
DamageType "Explodium";
RenderStyle "Add";
Scale 2.5;
Radius .1;
Height 0.;
+NOGRAVITY;
+NOBLOCKMAP;
+NODAMAGETHRUST;

View file

@ -887,6 +887,45 @@ Class SilverBullet : SWWMWeapon
return good;
}
override void MarkPrecacheSounds()
{
Super.MarkPrecacheSounds();
MarkSound("silverbullet/select");
MarkSound("silverbullet/deselect");
MarkSound("silverbullet/meleestart");
MarkSound("silverbullet/meleeend");
MarkSound("silverbullet/idle");
MarkSound("silverbullet/boltopen");
MarkSound("silverbullet/boltclose");
MarkSound("silverbullet/magout");
MarkSound("silverbullet/magin");
MarkSound("silverbullet/zoomstart");
MarkSound("silverbullet/zooming");
MarkSound("silverbullet/zoomend");
MarkSound("silverbullet/fire1");
MarkSound("silverbullet/fire2");
MarkSound("silverbullet/fire3");
MarkSound("silverbullet/altfire1");
MarkSound("silverbullet/altfire2");
MarkSound("silverbullet/altfire3");
MarkSound("silverbullet/jet");
MarkSound("silverbullet/casing1");
MarkSound("silverbullet/casing2");
MarkSound("silverbullet/casing3");
MarkSound("silverbullet/casing4");
MarkSound("silverbullet/mag1");
MarkSound("silverbullet/mag2");
MarkSound("silverbullet/mag3");
MarkSound("silverbullet/hit1");
MarkSound("silverbullet/hit2");
MarkSound("silverbullet/flesh1");
MarkSound("silverbullet/flesh2");
MarkSound("silverbullet/chode1");
MarkSound("silverbullet/chode2");
MarkSound("silverbullet/crouch");
MarkSound("silverbullet/uncrouch");
}
Default
{
Tag "$T_SILVERBULLET";