Hellblazer pickups have translucent glass and show ammo state.
Added cvar for controlling blob shadow render distance. Folder reorganizing for post-release updates. Updated patron list.
This commit is contained in:
parent
c5051ea905
commit
ad2a96b676
34 changed files with 339 additions and 8 deletions
|
|
@ -19,4 +19,5 @@ Demolitionist
|
|||
include "CandyGun";
|
||||
//include "RayKhom";
|
||||
include "Ynykron";
|
||||
//include "GrandLance";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,6 +89,7 @@ server bool swwm_uncapalert = false; // all noise alerts have infinite range
|
|||
user int swwm_damagetarget = 1; // conditional healthbar hiding (1 - hide until damage is first taken, 2 - hide if at full health)
|
||||
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)
|
||||
server int swwm_silencemap = 0; // silences the map when all kills/items/secrets are achieved (2 - play calm music)
|
||||
user int swwm_shadowdist = 2000; // max distance beyond which blob shadows are no longer rendered, helps performance
|
||||
|
||||
server noarchive bool swwm_iseriouslywanttoplaythiswithbd = false; // self-explanatory
|
||||
|
||||
|
|
|
|||
|
|
@ -173,6 +173,7 @@ SWWM_SILENCEMAP = "Cleared Map Music";
|
|||
SWWM_SILENCE_KEEP = "Don't Change";
|
||||
SWWM_SILENCE_SILENT = "Silence";
|
||||
SWWM_SILENCE_CALM = "Calm Track";
|
||||
SWWM_SHADOWDIST = "Shadow Distance";
|
||||
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.";
|
||||
|
|
@ -252,6 +253,7 @@ TOOLTIP_SWWM_COLLECTANIMKEY = "Play special first person animations when picking
|
|||
TOOLTIP_SWWM_DAMAGETARGET = "Select when targetter healthbars should be shown.";
|
||||
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_SILENCEMAP = "Chooses whether you want music to stop when you 100% a map. A third option is available which switches to a soothing calm track from a game you may recognize if you know me well.";
|
||||
TOOLTIP_SWWM_SHADOWDISTANCE = "Maximum distance at which to show blob shadows. May help performance.";
|
||||
// knowledge base
|
||||
SWWM_COMINGSOON = "(coming soon)";
|
||||
SWWM_MISSTAB = "Mission";
|
||||
|
|
|
|||
|
|
@ -171,6 +171,7 @@ SWWM_SILENCEMAP = "Música de Mapa Despejado";
|
|||
SWWM_SILENCE_KEEP = "No Cambiar";
|
||||
SWWM_SILENCE_SILENT = "Silencio";
|
||||
SWWM_SILENCE_CALM = "Tema Tranquilo";
|
||||
SWWM_SHADOWDIST = "Distancia de Sombras";
|
||||
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.";
|
||||
|
|
@ -250,6 +251,7 @@ TOOLTIP_SWWM_COLLECTANIMKEY = "Muestra animaciones especiales en primera persona
|
|||
TOOLTIP_SWWM_DAMAGETARGET = "Selecciona cuando deben mostrarse las barras de vida.";
|
||||
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_SILENCEMAP = "Elige si quieres que la música se detenga cuando completas un mapa al 100%. Hay una tercera opción disponible que cambiará a un relajante tema tranquilo de un juego que podrás reconocer si me conoces bien.";
|
||||
TOOLTIP_SWWM_SHADOWDISTANCE = "Distancia máxima a la que mostrar sombras. Puede ayudar al rendimiento.";
|
||||
// knowledge base
|
||||
SWWM_COMINGSOON = "(próximamente)";
|
||||
SWWM_MISSTAB = "Misión";
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r678 \cu(Sun 13 Dec 13:57:15 CET 2020)";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r679 \cu(Mon 14 Dec 12:18:05 CET 2020)";
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ OptionMenu "SWWMOptionMenu"
|
|||
StaticText " "
|
||||
StaticText "$SWWM_ETITLE", "Blue"
|
||||
Option "$SWWM_SHADOWS", "swwm_shadows", "SWWMShadows"
|
||||
ScaleSlider "$SWWM_SHADOWDIST", "swwm_shadowdist", -1, 4000, 1, "$SWWM_NONE", "$SWWM_UNLIMITED"
|
||||
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"
|
||||
|
|
|
|||
|
|
@ -108,12 +108,107 @@ Model "Hellblazer"
|
|||
Path "models"
|
||||
|
||||
Model 0 "HellblazerPickup_d.3d"
|
||||
Skin 0 "Hellblazer.png"
|
||||
SurfaceSkin 0 0 "Hellblazer.png"
|
||||
Scale 0.11 0.11 0.11
|
||||
AngleOffset 180
|
||||
ZOffset 20
|
||||
ROTATING
|
||||
|
||||
// Missiles
|
||||
SurfaceSkin 0 2 "HellblazerAmmo.png"
|
||||
SurfaceSkin 0 3 "HellblazerAmmo.png"
|
||||
SurfaceSkin 0 4 "HellblazerAmmo.png"
|
||||
SurfaceSkin 0 5 "HellblazerAmmo.png"
|
||||
FrameIndex XZW1 A 0 0
|
||||
// Crackshots
|
||||
SurfaceSkin 0 2 "HellblazerAmmo_Cluster.png"
|
||||
SurfaceSkin 0 3 ""
|
||||
SurfaceSkin 0 4 "HellblazerAmmo_Cluster.png"
|
||||
SurfaceSkin 0 5 ""
|
||||
FrameIndex XZW1 B 0 0
|
||||
// Ravagers
|
||||
SurfaceSkin 0 2 "HellblazerAmmo_Fire.png"
|
||||
SurfaceSkin 0 3 ""
|
||||
SurfaceSkin 0 4 "HellblazerAmmo_Fire.png"
|
||||
SurfaceSkin 0 5 ""
|
||||
FrameIndex XZW1 C 0 0
|
||||
// Warheads
|
||||
SurfaceSkin 0 2 "HellblazerAmmo_Nuke.png"
|
||||
SurfaceSkin 0 3 ""
|
||||
SurfaceSkin 0 4 ""
|
||||
SurfaceSkin 0 5 "HellblazerAmmo_Nuke.png"
|
||||
FrameIndex XZW1 D 0 0
|
||||
}
|
||||
|
||||
// individual missiles for pickup model
|
||||
Model "HellblazerXSub"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "HellblazerPickup_d.3d"
|
||||
Scale 0.11 0.11 0.11
|
||||
AngleOffset 180
|
||||
ZOffset 20
|
||||
ROTATING
|
||||
|
||||
// Missiles
|
||||
SurfaceSkin 0 6 "HellblazerMissile.png"
|
||||
FrameIndex XZW1 A 0 0
|
||||
SurfaceSkin 0 6 ""
|
||||
SurfaceSkin 0 7 "HellblazerMissile.png"
|
||||
FrameIndex XZW1 B 0 0
|
||||
SurfaceSkin 0 7 ""
|
||||
SurfaceSkin 0 8 "HellblazerMissile.png"
|
||||
FrameIndex XZW1 C 0 0
|
||||
SurfaceSkin 0 8 ""
|
||||
SurfaceSkin 0 9 "HellblazerMissile.png"
|
||||
FrameIndex XZW1 D 0 0
|
||||
SurfaceSkin 0 9 ""
|
||||
SurfaceSkin 0 10 "HellblazerMissile.png"
|
||||
FrameIndex XZW1 E 0 0
|
||||
SurfaceSkin 0 10 ""
|
||||
SurfaceSkin 0 11 "HellblazerMissile.png"
|
||||
FrameIndex XZW1 F 0 0
|
||||
SurfaceSkin 0 11 ""
|
||||
// Crackshots
|
||||
SurfaceSkin 0 6 "HellblazerMissile_Cluster.png"
|
||||
FrameIndex XZW2 A 0 0
|
||||
SurfaceSkin 0 6 ""
|
||||
SurfaceSkin 0 8 "HellblazerMissile_Cluster.png"
|
||||
FrameIndex XZW2 B 0 0
|
||||
SurfaceSkin 0 8 ""
|
||||
SurfaceSkin 0 10 "HellblazerMissile_Cluster.png"
|
||||
FrameIndex XZW2 C 0 0
|
||||
SurfaceSkin 0 10 ""
|
||||
// Ravagers
|
||||
SurfaceSkin 0 6 "HellblazerMissile_Fire.png"
|
||||
FrameIndex XZW3 A 0 0
|
||||
SurfaceSkin 0 6 ""
|
||||
SurfaceSkin 0 8 "HellblazerMissile_Fire.png"
|
||||
FrameIndex XZW3 B 0 0
|
||||
SurfaceSkin 0 8 ""
|
||||
SurfaceSkin 0 10 "HellblazerMissile_Fire.png"
|
||||
FrameIndex XZW3 C 0 0
|
||||
SurfaceSkin 0 10 ""
|
||||
// Warheads
|
||||
SurfaceSkin 0 6 "HellblazerMissile_Nuke.png"
|
||||
FrameIndex XZW4 A 0 0
|
||||
SurfaceSkin 0 6 ""
|
||||
SurfaceSkin 0 9 "HellblazerMissile_Nuke.png"
|
||||
FrameIndex XZW4 B 0 0
|
||||
}
|
||||
Model "HellblazerX"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "HellblazerPickup_d.3d"
|
||||
SurfaceSkin 0 1 "Hellblazer.png"
|
||||
Scale 0.11 0.11 0.11
|
||||
AngleOffset 180
|
||||
ZOffset 20
|
||||
ROTATING
|
||||
DONTCULLBACKFACES
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -14,7 +14,7 @@ GameInfo
|
|||
"$QUITMSG12", "$QUITMSG13", "$QUITMSG14", "$QUITMSG15",
|
||||
"$QUITMSG16", "$QUITMSG17", "$QUITMSG18", "$QUITMSG19"
|
||||
ChatSound = "misc/chat"
|
||||
DefaultConversationMenuClass = "SWWMConversationMenu"
|
||||
//DefaultConversationMenuClass = "SWWMConversationMenu"
|
||||
NoMergePickupMsg = true
|
||||
CursorPic = "graphics/swwmcurs.png"
|
||||
DimColor = "Black"
|
||||
|
|
|
|||
23
zscript.txt
23
zscript.txt
|
|
@ -27,11 +27,9 @@ version "4.5"
|
|||
#include "zscript/swwm_hud.zsc"
|
||||
#include "zscript/swwm_hudextra.zsc"
|
||||
#include "zscript/swwm_kbase.zsc"
|
||||
#include "zscript/swwm_crimesdlg.zsc"
|
||||
#include "zscript/swwm_menus.zsc"
|
||||
#include "zscript/swwm_title.zsc"
|
||||
#include "zscript/swwm_inter.zsc"
|
||||
#include "zscript/swwm_strife.zsc"
|
||||
#include "zscript/swwm_blod.zsc"
|
||||
#include "zscript/swwm_help.zsc"
|
||||
#include "zscript/swwm_credits.zsc"
|
||||
|
|
@ -53,3 +51,24 @@ version "4.5"
|
|||
#include "zscript/swwm_deathlydeathcannon.zsc"
|
||||
#include "zscript/swwm_funstuff.zsc"
|
||||
#include "zscript/swwm_keys.zsc"
|
||||
// DLC1 - Weapon Set
|
||||
//#include "zscript/dlc1/swwm_dlcammo.zsc"
|
||||
//#include "zscript/dlc1/swwm_hammertime.zsc"
|
||||
//#include "zscript/dlc1/swwm_rebolber.zsc"
|
||||
//#include "zscript/dlc1/swwm_supermarioworld.zsc"
|
||||
//#include "zscript/dlc1/swwm_heavymahsheengun.zsc"
|
||||
//#include "zscript/dlc1/swwm_notashotgun.zsc"
|
||||
//#include "zscript/dlc1/swwm_blackfire.zsc"
|
||||
//#include "zscript/dlc1/swwm_veryveryfrightening.zsc"
|
||||
//#include "zscript/dlc1/swwm_thiccbolts.zsc"
|
||||
// DLC2 - Game Set
|
||||
//#include "zscript/dlc2/swwm_tetris.zsc"
|
||||
//#include "zscript/dlc2/swwm_pong.zsc"
|
||||
//#include "zscript/dlc2/swwm_snake.zsc"
|
||||
//#include "zscript/dlc2/swwm_demoland.zsc"
|
||||
//#include "zscript/dlc2/swwm_demoshmup.zsc"
|
||||
//#include "zscript/dlc2/swwm_demoquest.zsc"
|
||||
// DLC3 - Strife Support
|
||||
//#include "zscript/dlc3/swwm_crimesdlg.zsc"
|
||||
//#include "zscript/dlc3/swwm_strife.zsc"
|
||||
//#include "zscript/dlc3/swwm_hugeassrailgun.zsc"
|
||||
|
|
|
|||
1
zscript/dlc2/swwm_demoland.zsc
Normal file
1
zscript/dlc2/swwm_demoland.zsc
Normal file
|
|
@ -0,0 +1 @@
|
|||
// Demo Land Adventure game code
|
||||
1
zscript/dlc2/swwm_demoquest.zsc
Normal file
1
zscript/dlc2/swwm_demoquest.zsc
Normal file
|
|
@ -0,0 +1 @@
|
|||
// Demolition Quest game code
|
||||
1
zscript/dlc2/swwm_demoshmup.zsc
Normal file
1
zscript/dlc2/swwm_demoshmup.zsc
Normal file
|
|
@ -0,0 +1 @@
|
|||
// Interplanetary Demolitionist game code
|
||||
1
zscript/dlc2/swwm_pong.zsc
Normal file
1
zscript/dlc2/swwm_pong.zsc
Normal file
|
|
@ -0,0 +1 @@
|
|||
// Pong game code
|
||||
1
zscript/dlc2/swwm_snake.zsc
Normal file
1
zscript/dlc2/swwm_snake.zsc
Normal file
|
|
@ -0,0 +1 @@
|
|||
// Snake game code
|
||||
1
zscript/dlc2/swwm_tetris.zsc
Normal file
1
zscript/dlc2/swwm_tetris.zsc
Normal file
|
|
@ -0,0 +1 @@
|
|||
// Tetris game code
|
||||
85
zscript/dlc3/swwm_hugeassrailgun.zsc
Normal file
85
zscript/dlc3/swwm_hugeassrailgun.zsc
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
// Kmonn Shuna Grand Lance (planned for unreleased SWWM Iridium)
|
||||
// Slot 0, spawns shared with Ynykron Artifact
|
||||
|
||||
Class GrandSpear : MagAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
Tag "$T_GRANDSPEAR";
|
||||
Inventory.PickupMessage "$T_GRANDSPEAR";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_GrandSpear.png";
|
||||
MagAmmo.ParentAmmo "GrandAmmo";
|
||||
MagAmmo.ClipSize 5;
|
||||
Inventory.MaxAmount 10;
|
||||
Inventory.InterHubAmount 10;
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class GrandAmmo : Ammo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
|
||||
Default
|
||||
{
|
||||
Tag "$T_GRANDAMMO";
|
||||
Inventory.PickupMessage "$T_GRANDAMMO";
|
||||
Stamina 1200000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_RayAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
Inventory.MaxAmount 2;
|
||||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 6;
|
||||
Ammo.DropAmount 1;
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class GrandLance : SWWMWeapon
|
||||
{
|
||||
int clipcount;
|
||||
|
||||
Property ClipCount : clipcount;
|
||||
|
||||
Default
|
||||
{
|
||||
Tag "$T_GRANDLANCE";
|
||||
Inventory.PickupMessage "$I_GRANDLANCE";
|
||||
Obituary "$O_GRANDLANCE";
|
||||
Inventory.Icon "graphics/HUD/Icons/W_GrandLance.png";
|
||||
Weapon.SlotNumber 0;
|
||||
Weapon.SlotPriority 2.;
|
||||
Weapon.SelectionOrder 8000;
|
||||
Weapon.AmmoType1 "GrandAmmo";
|
||||
Weapon.AmmoGive1 1;
|
||||
SWWMWeapon.DropAmmoType "GrandAmmo";
|
||||
GrandLance.ClipCount 5;
|
||||
Stamina 4200000;
|
||||
+SWWMWEAPON.NOFIRSTGIVE;
|
||||
+WEAPON.BFG;
|
||||
+WEAPON.EXPLOSIVE;
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1220,6 +1220,77 @@ Class HellblazerWarheadArm : Actor
|
|||
}
|
||||
}
|
||||
|
||||
Class HellblazerX : GhostArtifactX {}
|
||||
|
||||
Class HellblazerXSub : GhostArtifactX
|
||||
{
|
||||
Hellblazer weap;
|
||||
int ridx;
|
||||
|
||||
Default
|
||||
{
|
||||
RenderStyle "Normal";
|
||||
}
|
||||
void UpdateMe()
|
||||
{
|
||||
static const Class<Ammo> types[] = {"HellblazerMissiles","HellblazerCrackshots","HellblazerRavagers","HellblazerWarheads"};
|
||||
int curtype = 0;
|
||||
for ( int i=0; i<4; i++ )
|
||||
{
|
||||
if ( weap.loadammo != types[i] ) continue;
|
||||
curtype = i;
|
||||
break;
|
||||
}
|
||||
static const int sofs[] = {1,7,10,13}; // offsets from SpawnState for each ammo type state label
|
||||
int idx;
|
||||
switch ( curtype )
|
||||
{
|
||||
case 0:
|
||||
idx = ridx-weap.magpos;
|
||||
if ( idx > 5 ) idx -= 6;
|
||||
else if ( idx < 0 ) idx += 6;
|
||||
if ( weap.magstate[ridx] ) SetState(SpawnState);
|
||||
else SetState(SpawnState+sofs[0]+idx);
|
||||
break;
|
||||
case 1:
|
||||
idx = ridx-weap.magpos;
|
||||
if ( idx > 2 ) idx -= 3;
|
||||
else if ( idx < 0 ) idx += 3;
|
||||
if ( (ridx > 2) || weap.magstate[ridx] ) SetState(SpawnState);
|
||||
else SetState(SpawnState+sofs[1]+idx);
|
||||
break;
|
||||
case 2:
|
||||
idx = ridx-weap.magpos;
|
||||
if ( idx > 2 ) idx -= 3;
|
||||
else if ( idx < 0 ) idx += 3;
|
||||
if ( (ridx > 2) || weap.magstate[ridx] ) SetState(SpawnState);
|
||||
else SetState(SpawnState+sofs[2]+idx);
|
||||
break;
|
||||
case 3:
|
||||
idx = ridx-weap.magpos;
|
||||
if ( idx > 1 ) idx -= 2;
|
||||
else if ( idx < 0 ) idx += 2;
|
||||
if ( (ridx > 1) || weap.magstate[ridx] ) SetState(SpawnState);
|
||||
else SetState(SpawnState+sofs[3]+idx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
TNT1 A -1;
|
||||
Missiles:
|
||||
XZW1 ABCDEF -1;
|
||||
Crackshots:
|
||||
XZW2 ABC -1;
|
||||
Ravagers:
|
||||
XZW3 ABC -1;
|
||||
Nukes:
|
||||
XZW4 AB -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class Hellblazer : SWWMWeapon
|
||||
{
|
||||
int clipcount;
|
||||
|
|
@ -1227,6 +1298,7 @@ Class Hellblazer : SWWMWeapon
|
|||
int magpos; // current rotation
|
||||
Class<Ammo> loadammo, nextammo;
|
||||
int spinskipped;
|
||||
HellblazerXSub pickuprockets[6];
|
||||
|
||||
Property ClipCount : clipcount;
|
||||
|
||||
|
|
@ -1542,6 +1614,41 @@ Class Hellblazer : SWWMWeapon
|
|||
}
|
||||
}
|
||||
|
||||
action void A_UpdatePickup()
|
||||
{
|
||||
static const Class<Ammo> types[] = {"HellblazerMissiles","HellblazerCrackshots","HellblazerRavagers","HellblazerWarheads"};
|
||||
for ( int i=0; i<6; i++ )
|
||||
{
|
||||
if ( !invoker.pickuprockets[i] )
|
||||
{
|
||||
invoker.pickuprockets[i] = HellblazerXSub(Spawn("HellblazerXSub",pos));
|
||||
invoker.pickuprockets[i].angle = angle;
|
||||
invoker.pickuprockets[i].target = invoker;
|
||||
invoker.pickuprockets[i].weap = invoker;
|
||||
invoker.pickuprockets[i].FloatBobPhase = FloatBobPhase;
|
||||
invoker.pickuprockets[i].ridx = i;
|
||||
}
|
||||
invoker.pickuprockets[i].UpdateMe();
|
||||
}
|
||||
int curtype = 0;
|
||||
for ( int i=0; i<4; i++ )
|
||||
{
|
||||
if ( invoker.loadammo != types[i] ) continue;
|
||||
curtype = i;
|
||||
break;
|
||||
}
|
||||
SetState(SpawnState+curtype+1);
|
||||
}
|
||||
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
tracer = Spawn("HellblazerX",pos);
|
||||
tracer.angle = angle;
|
||||
tracer.target = self;
|
||||
tracer.FloatBobPhase = FloatBobPhase;
|
||||
}
|
||||
|
||||
Default
|
||||
{
|
||||
Tag "$T_HELLBLAZER";
|
||||
|
|
@ -1564,7 +1671,8 @@ Class Hellblazer : SWWMWeapon
|
|||
States
|
||||
{
|
||||
Spawn:
|
||||
XZW1 A -1;
|
||||
XZW1 A -1 NoDelay A_UpdatePickup();
|
||||
XZW1 ABCD -1;
|
||||
Stop;
|
||||
Select:
|
||||
XZW2 I 0
|
||||
|
|
|
|||
|
|
@ -1430,11 +1430,14 @@ Class SWWMBulletTrail : LineTracer
|
|||
Class SWWMShadow : Actor
|
||||
{
|
||||
Sector oldfloor;
|
||||
transient CVar sdist;
|
||||
|
||||
static void Track( Actor other )
|
||||
{
|
||||
// prevent infinite recursion
|
||||
if ( other is 'SWWMShadow' ) return;
|
||||
// no shadows for overlay actors
|
||||
if ( other is 'GhostArtifactX' ) return;
|
||||
let s = SWWMShadow(Spawn("SWWMShadow",other.pos));
|
||||
s.target = other;
|
||||
s.Update(true);
|
||||
|
|
@ -1448,6 +1451,10 @@ Class SWWMShadow : Actor
|
|||
{
|
||||
alpha = 1.-min(1.,.006*abs(target.pos.z-pos.z));
|
||||
alpha *= target.alpha;
|
||||
if ( !sdist ) sdist = CVar.GetCVar('swwm_shadowdist',players[consoleplayer]);
|
||||
int sd = sdist.GetInt();
|
||||
// breaks with chasecam, but it's fine
|
||||
if ( sd > 0 ) alpha *= clamp(4.*((sd-Distance3D(players[consoleplayer].Camera))/sd),0.,1.);
|
||||
double relz = target.pos.z-pos.z;
|
||||
if ( target.bFLOATBOB ) relz += BobSin(target.FloatBobPhase)*target.FloatBobStrength;
|
||||
double bscale = (target.radius/16.)*(1.-min(1.,.003*relz));
|
||||
|
|
@ -1481,6 +1488,7 @@ Class SWWMShadow : Actor
|
|||
{
|
||||
RenderStyle "Shaded";
|
||||
StencilColor "000000";
|
||||
DistanceCheck 'swwm_shadowdist';
|
||||
Radius .1;
|
||||
Height 0.;
|
||||
+NOBLOCKMAP;
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ Class SWWMCreditsMenu : GenericMenu
|
|||
cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Pietro Gagliardi"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Xada Xephron"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Alexa Jones-Gonzales"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"John"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"NekoMithos"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Holly_Rook"));
|
||||
cpatrons.Push(new("SWWMCreditsEntry").Init(sfnt,"Namsan"));
|
||||
|
|
|
|||
|
|
@ -319,13 +319,15 @@ Class GhostArtifactX : Actor
|
|||
}
|
||||
override void Tick()
|
||||
{
|
||||
Super.Tick();
|
||||
if ( !target )
|
||||
{
|
||||
Destroy();
|
||||
return;
|
||||
}
|
||||
Warp(target,flags:WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION);
|
||||
vel = target.vel;
|
||||
prev = target.prev;
|
||||
SetOrigin(target.pos+vel,true);
|
||||
A_SetAngle(target.angle,SPF_INTERPOLATE);
|
||||
FloatBobPhase = target.FloatBobPhase;
|
||||
bInvisible = target.bInvisible||!target.InStateSequence(target.CurState,target.FindState("Spawn"));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue