Major ammo overhaul.
DoExplosion sector portal fix.
This commit is contained in:
parent
ccab16a7a9
commit
c1de57b376
43 changed files with 1249 additions and 681 deletions
|
|
@ -74,6 +74,8 @@ All the hard stuff *(some of these aren't guaranteed)*.
|
|||
* **Photo Mode**
|
||||
- Dedicated poses
|
||||
- Stickers
|
||||
* **Virtual Training Map**
|
||||
- Featuring Maidbot as assistant
|
||||
|
||||
## Unspecified
|
||||
|
||||
|
|
|
|||
|
|
@ -63,3 +63,19 @@ HardwareShader Texture "models/matcap/glassmap.png"
|
|||
{
|
||||
Shader "shaders/glsl/Shinemap.fp"
|
||||
}
|
||||
HardwareShader Texture "models/matcap/kinymap.png"
|
||||
{
|
||||
Shader "shaders/glsl/Shinemap.fp"
|
||||
}
|
||||
HardwareShader Texture "models/matcap/nkrknmap.png"
|
||||
{
|
||||
Shader "shaders/glsl/Shinemap.fp"
|
||||
}
|
||||
HardwareShader Texture "models/matcap/nokromap.png"
|
||||
{
|
||||
Shader "shaders/glsl/Shinemap.fp"
|
||||
}
|
||||
HardwareShader Texture "models/matcap/pearlmap.png"
|
||||
{
|
||||
Shader "shaders/glsl/Shinemap.fp"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,47 +59,76 @@ T_GOLDSHELL = "Golden Shell";
|
|||
T_GOLDSHELLS = "Golden Shells";
|
||||
T_EVISHELL = "Eviscerator Shell";
|
||||
T_EVISHELLS = "Eviscerator Shells";
|
||||
I_EVISHELLCLIP2 = "Eviscerator Duo Clip";
|
||||
I_EVISHELLCLIP3 = "Eviscerator Trio Clip";
|
||||
I_EVISHELLPAK = "Eviscerator 6-Pack";
|
||||
T_HELLMISSILES = "Hellblazer Missiles";
|
||||
T_HELLCLUSTERS = "Hellblazer Crackshots";
|
||||
T_HELLBURNINATORS = "Hellblazer Ravagers";
|
||||
T_HELLNUKES = "Hellblazer Warheads";
|
||||
T_HELLMISSILE = "Hellblazer Missile";
|
||||
T_HELLCLUSTER = "Hellblazer Crackshot";
|
||||
T_HELLBURNINATOR = "Hellblazer Ravager";
|
||||
T_HELLNUKE = "Hellblazer Warhead";
|
||||
T_HELLMISSILES = "Hellblazer Missiles";
|
||||
T_HELLMISSILE2 = "2 Hellblazer Missiles";
|
||||
T_HELLMISSILE3 = "3 Hellblazer Missiles";
|
||||
T_HELLMISSILEMAG = "Hellblazer Missile Mag";
|
||||
T_HELLCLUSTER = "Hellblazer Crackshot";
|
||||
T_HELLCLUSTERS = "Hellblazer Crackshots";
|
||||
T_HELLCLUSTER2 = "2 Hellblazer Crackshots";
|
||||
T_HELLCLUSTERMAG = "Hellblazer Crackshot Mag";
|
||||
T_HELLBURNINATOR = "Hellblazer Ravager";
|
||||
T_HELLBURNINATORS = "Hellblazer Ravagers";
|
||||
T_HELLBURNINATORMAG = "Hellblazer Ravager Mag";
|
||||
T_HELLNUKE = "Hellblazer Warhead";
|
||||
T_HELLNUKES = "Hellblazer Warheads";
|
||||
T_HELLNUKEMAG = "Hellblazer Warhead Mag";
|
||||
T_SPARKUNIT = "Biospark Unit";
|
||||
T_SPARKUNITS = "Biospark Units";
|
||||
T_XSBMAG = "1.150 XSB Magazine";
|
||||
T_XSBMAGS = "1.150 XSB Magazines";
|
||||
T_FCBMAG = "1.150 FCB Magazine";
|
||||
T_FCBMAGS = "1.150 FCB Magazines";
|
||||
T_XSBBULLET = "1.150 XSB Bullet";
|
||||
T_XSBBULLETS = "1.150 XSB Bullets";
|
||||
T_FCBBULLET = "1.150 FCB Bullet";
|
||||
T_FCBBULLETS = "1.150 FCB Bullets";
|
||||
T_CANDYMAG = "Candy Gun Magazine";
|
||||
T_CANDYMAGS = "Candy Gun Magazines";
|
||||
T_CANDYBULLET = "Candy Gun Bullet";
|
||||
T_CANDYBULLETS = "Candy Gun Bullet";
|
||||
T_CANDYSPARE = "Candy Gun Spare";
|
||||
T_CANDYSPARES = "Candy Gun Spares";
|
||||
T_YNYKRONAMMO = "Crystal Box";
|
||||
T_YNYKRONAMMOS = "Crystal Boxes";
|
||||
T_SMW05BULLET = "SMW.05 Bullet";
|
||||
T_SMW05BULLETS = "SMW.05 Bullets";
|
||||
T_SHEENBULLET = "14.5x114mm MT Bullet";
|
||||
T_SHEENBULLETS = "14.5x114mm MT Bullets";
|
||||
T_QUADAMMO = "Quadravol Cell";
|
||||
T_QUADAMMOS = "Quadravol Cells";
|
||||
T_DARKAMMO = "Blackfire Canister";
|
||||
T_DARKAMMOS = "Blackfire Canisters";
|
||||
T_EMPCORE = "Dysedum Rod";
|
||||
T_EMPCORES = "Dysedum Rods";
|
||||
T_RAYBOLT = "Ray-Khom Bolt";
|
||||
T_RAYBOLTS = "Ray-Khom Bolts";
|
||||
T_RAYAMMO = "Ray-Khom Magazine";
|
||||
T_RAYAMMOS = "Ray-Khom Magazines";
|
||||
T_RAYBATTERY = "Ray-Khom Battery";
|
||||
T_RAYBATTERYS = "Ray-Khom Batteries";
|
||||
T_GRANDSPEAR = "Grand Lance Spear";
|
||||
T_GRANDSPEARS = "Grand Lance Spears";
|
||||
T_GRANDAMMO = "Grand Lance Magazine";
|
||||
T_SPARKBAMMO = "Kinylum Cell";
|
||||
T_SPARKRAMMO = "Nokron Cell";
|
||||
T_GRANDAMMOS = "Grand Lance Magazines";
|
||||
T_SPARKBCELL = "Kinylum Cell";
|
||||
T_SPARKBCELLS = "Kinylum Cells";
|
||||
T_SPARKRCELL = "Nokron Cell";
|
||||
T_SPARKRCELLS = "Nokron Cells";
|
||||
T_MRROUND = "Mortal Round";
|
||||
T_MRROUNDS = "Mortal Rounds";
|
||||
T_MRAMMO = "Mortal Magazine";
|
||||
T_MRAMMOS = "Mortal Magazines";
|
||||
T_MRGRENADE = "Mortal Grenade";
|
||||
T_MRGRENADES = "Mortal Grenades";
|
||||
T_ULTIMATEPOD = "Rafan-Kos Pod";
|
||||
T_ULTIMATEPODS = "Rafan-Kos Pods";
|
||||
T_ULTIMATEAMMO = "Rafan-Kos Magazine";
|
||||
T_ULTIMATEAMMOS = "Rafan-Kos Magazines";
|
||||
T_BLASTSUIT = "Blast Suit";
|
||||
T_EMBIGGENER = "Hammerspace Embiggener";
|
||||
T_BULKEMBIGGENER = "Bulk Hammerspace Embiggener";
|
||||
|
|
|
|||
|
|
@ -49,47 +49,73 @@ T_GOLDSHELL = "Cartucho Dorado";
|
|||
T_GOLDSHELLS = "Cartuchos Dorados";
|
||||
T_EVISHELL = "Proyectil de Eviscerator";
|
||||
T_EVISHELLS = "Proyectiles de Eviscerator";
|
||||
I_EVISHELLCLIP2 = "Clip en Duo para Eviscerator";
|
||||
I_EVISHELLCLIP3 = "Clip en Trio para Eviscerator";
|
||||
I_EVISHELLPAK = "Pack de Seis para Eviscerator";
|
||||
T_HELLMISSILES = "Misiles Hellblazer";
|
||||
T_HELLCLUSTERS = "Estalladores Hellblazer";
|
||||
T_HELLBURNINATORS = "Ruinadores Hellblazer";
|
||||
T_HELLNUKES = "Cabezas Nucleares Hellblazer";
|
||||
T_HELLMISSILE = "Misil Hellblazer";
|
||||
T_HELLCLUSTER = "Estallador Hellblazer";
|
||||
T_HELLBURNINATOR = "Ruinador Hellblazer";
|
||||
T_HELLNUKE = "Cabeza Nuclear Hellblazer";
|
||||
T_HELLMISSILES = "Misiles Hellblazer";
|
||||
T_HELLMISSILEMAG = "Cargador de Misiles Hellblazer";
|
||||
T_HELLCLUSTER = "Estallador Hellblazer";
|
||||
T_HELLCLUSTERS = "Estalladores Hellblazer";
|
||||
T_HELLCLUSTERMAG = "Cargador de Estalladores Hellblazer";
|
||||
T_HELLBURNINATOR = "Ruinador Hellblazer";
|
||||
T_HELLBURNINATORS = "Ruinadores Hellblazer";
|
||||
T_HELLBURNINATORMAG = "Cargador de Ruinadores Hellblazer";
|
||||
T_HELLNUKE = "Cabeza Nuclear Hellblazer";
|
||||
T_HELLNUKES = "Cabezas Nucleares Hellblazer";
|
||||
T_HELLNUKEMAG = "Cargador de Cabezas Nucleares Hellblazer";
|
||||
T_SPARKUNIT = "Unidad Biospark";
|
||||
T_SPARKUNITS = "Unidades Biospark";
|
||||
T_XSBMAG = "Cargador 1.150 XSB";
|
||||
T_XSBMAGS = "Cargadores 1.150 XSB";
|
||||
T_FCBMAG = "Cargador 1.150 FCB";
|
||||
T_FCBMAGS = "Cargadores 1.150 FCB";
|
||||
T_XSBBULLET = "Bala 1.150 XSB";
|
||||
T_XSBBULLETS = "Balas 1.150 XSB";
|
||||
T_FCBBULLET = "Bala 1.150 FCB";
|
||||
T_FCBBULLETS = "Balas 1.150 FCB";
|
||||
T_CANDYMAG = "Cargador de Pistola Caramelo";
|
||||
T_CANDYMAGS = "Cargadores de Pistola Caramelo";
|
||||
T_CANDYBULLET = "Bala de Pistola Caramelo";
|
||||
T_CANDYBULLETS = "Balas de Pistola Caramelo";
|
||||
T_CANDYSPARE = "Repuesto de Pistola Caramelo";
|
||||
T_CANDYSPARES = "Repuestos de Pistola Caramelo";
|
||||
T_YNYKRONAMMO = "Contenedor de Cristal";
|
||||
T_YNYKRONAMMOS = "Contenedores de Cristal";
|
||||
T_SMW05BULLET = "Bala SMW.05";
|
||||
T_SMW05BULLETS = "Balas SMW.05";
|
||||
T_SHEENBULLET = "Bala 14.5x114mm MT";
|
||||
T_SHEENBULLETS = "Balas 14.5x114mm MT";
|
||||
T_QUADAMMO = "Célula de Quadravol";
|
||||
T_QUADAMMOS = "Células de Quadravol";
|
||||
T_DARKAMMO = "Frasco de Fuego Negro";
|
||||
T_DARKAMMOS = "Frascos de Fuego Negro";
|
||||
T_EMPCORE = "Barra de Dysedum";
|
||||
T_EMPCORES = "Barras de Dysedum";
|
||||
T_RAYBOLT = "Proyectil de Ray-Khom";
|
||||
T_RAYBOLTS = "Proyectiles de Ray-Khom";
|
||||
T_RAYAMMO = "Cargador de Ray-Khom";
|
||||
T_RAYAMMOS = "Cargadores de Ray-Khom";
|
||||
T_RAYBATTERY = "Batería de Ray-Khom";
|
||||
T_RAYBATTERYS = "Baterías de Ray-Khom";
|
||||
T_GRANDSPEAR = "Arpón de Gran Lanza";
|
||||
T_GRANDSPEARS = "Arpones de Gran Lanza";
|
||||
T_GRANDAMMO = "Cargador de Gran Lanza";
|
||||
T_GRANDAMMOS = "Cargadores de Gran Lanza";
|
||||
T_SPARKBAMMO = "Célula de Kinylum";
|
||||
T_SPARKBAMMOS = "Células de Kinylum";
|
||||
T_SPARKRAMMO = "Célula de Nokron";
|
||||
T_SPARKRAMMOS = "Células de Nokron";
|
||||
T_MRROUND = "Bala Mortal";
|
||||
T_MRROUNDS = "Balas Mortales";
|
||||
T_MRAMMO = "Cargador Mortal";
|
||||
T_MRAMMOS = "Cargadores Mortales";
|
||||
T_MRGRENADE = "Granada Mortal";
|
||||
T_MRGRENADES = "Granadas Mortales";
|
||||
T_ULTIMATEPOD = "Cápsula de Rafan-Kos";
|
||||
T_ULTIMATEPODS = "Cápsulas de Rafan-Kos";
|
||||
T_ULTIMATEAMMO = "Cargador de Rafan-Kos";
|
||||
T_ULTIMATEAMMOS = "Cargadores de Rafan-Kos";
|
||||
T_BLASTSUIT = "Chaleco Antiexplosivos";
|
||||
T_EMBIGGENER = "Ensanchecedor de Hammerspace";
|
||||
T_BULKEMBIGGENER = "Ensanchecedor de Hammerspace a Granel";
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
[default]
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r15 \cu(Sat 11 Sep 21:15:52 CEST 2021)\c-";
|
||||
SWWM_SHORTVER="\cw1.1pre r15 \cu(2021-09-11 21:15:52)\c-";
|
||||
SWWM_MODVER="\chSWWM \czGZ\c- \cw1.1pre r16 \cu(Sun 12 Sep 19:09:00 CEST 2021)\c-";
|
||||
SWWM_SHORTVER="\cw1.1pre r16 \cu(2021-09-12 19:09:00)\c-";
|
||||
|
|
|
|||
148
modeldef.ammo
148
modeldef.ammo
|
|
@ -275,6 +275,32 @@ Model "EvisceratorShell"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "EvisceratorShell2"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "EvisceratorClip_Two_d.3d"
|
||||
SurfaceSkin 0 0 "EvisceratorShell.png"
|
||||
SurfaceSkin 0 1 "EvisceratorClip.png"
|
||||
Scale 0.18 0.18 0.18
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "EvisceratorShell3"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "EvisceratorClip_Three_d.3d"
|
||||
SurfaceSkin 0 0 "EvisceratorShell.png"
|
||||
SurfaceSkin 0 1 "EvisceratorClip.png"
|
||||
Scale 0.18 0.18 0.18
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "EvisceratorSixPack"
|
||||
{
|
||||
Path "models"
|
||||
|
|
@ -302,6 +328,30 @@ Model "HellblazerMissiles"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "HellblazerMissiles2"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "HellblazerDuo_d.3d"
|
||||
Skin 0 "HellblazerMissile.png"
|
||||
Scale 0.16 0.16 0.16
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "HellblazerMissiles3"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "HellblazerTrio_d.3d"
|
||||
Skin 0 "HellblazerMissile.png"
|
||||
Scale 0.16 0.16 0.16
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "HellblazerMissileMag"
|
||||
{
|
||||
Path "models"
|
||||
|
|
@ -330,6 +380,18 @@ Model "HellblazerCrackshots"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "HellblazerCrackshots2"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "HellblazerDuo_d.3d"
|
||||
Skin 0 "HellblazerMissile_Cluster.png"
|
||||
Scale 0.16 0.16 0.16
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "HellblazerCrackshotMag"
|
||||
{
|
||||
Path "models"
|
||||
|
|
@ -414,6 +476,18 @@ Model "SparkUnit"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SparkUnit2"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "SparksterAmmo2_d.3d"
|
||||
Skin 0 "SparksterAmmo.png"
|
||||
Scale 0.16 0.16 0.16
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
|
||||
Model "SilverBulletAmmo"
|
||||
{
|
||||
|
|
@ -454,6 +528,30 @@ Model "SilverBullets"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SilverBullets_2"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "SilverbulletBullet2_d.3d"
|
||||
Skin 0 "SilverbulletBullet.png"
|
||||
Scale 0.05 0.05 0.05
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SilverBullets_3"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "SilverbulletBullet3_d.3d"
|
||||
Skin 0 "SilverbulletBullet.png"
|
||||
Scale 0.05 0.05 0.05
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SilverBullets2"
|
||||
{
|
||||
Path "models"
|
||||
|
|
@ -467,6 +565,30 @@ Model "SilverBullets2"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SilverBullets2_2"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "SilverbulletBullet2_FCB_d.3d"
|
||||
Skin 0 "SilverbulletBullet_FCB.png"
|
||||
Scale 0.05 0.05 0.05
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SilverBullets2_3"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "SilverbulletBullet3_FCB_d.3d"
|
||||
Skin 0 "SilverbulletBullet_FCB.png"
|
||||
Scale 0.05 0.05 0.05
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
|
||||
Model "CandyGunAmmo"
|
||||
{
|
||||
|
|
@ -495,6 +617,32 @@ Model "CandyGunBullets"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "CandyGunBullets2"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "ExplodiumBullet2_d.3d"
|
||||
SurfaceSkin 0 0 "CandyBullet.png"
|
||||
SurfaceSkin 0 1 "CandyCasing.png"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "CandyGunBullets3"
|
||||
{
|
||||
Path "models"
|
||||
|
||||
Model 0 "ExplodiumBullet3_d.3d"
|
||||
SurfaceSkin 0 0 "CandyBullet.png"
|
||||
SurfaceSkin 0 1 "CandyCasing.png"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
|
||||
Model "YnykronAmmo"
|
||||
{
|
||||
|
|
|
|||
104
modeldef.dlcammo
104
modeldef.dlcammo
|
|
@ -11,6 +11,32 @@ Model "SMW05Ammo"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SMW05Ammo2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SMW05Ammo3"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SMW05SmallAmmo"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
|
@ -51,6 +77,32 @@ Model "SheenAmmo"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SheenAmmo2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.015 0.015 0.015
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SheenAmmo3"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.015 0.015 0.015
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SheenTinyAmmo"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
|
@ -104,6 +156,19 @@ Model "QuadravolAmmo"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "QuadravolAmmo2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
|
||||
Model "DarkCanister"
|
||||
{
|
||||
|
|
@ -132,6 +197,19 @@ Model "EMPCore"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "EMPCore2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
|
||||
Model "RayBolt"
|
||||
{
|
||||
|
|
@ -146,6 +224,32 @@ Model "RayBolt"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "RayBolt2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "RayBolt5"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "RayAmmo"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
|
|
|||
|
|
@ -11,6 +11,32 @@ Model "SparksterBAmmo"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SparksterBAmmo2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SparksterBAmmo3"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SparksterRAmmo"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
|
@ -24,6 +50,32 @@ Model "SparksterRAmmo"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SparksterRAmmo2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "SparksterRAmmo3"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.025 0.025 0.025
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
|
||||
Model "MisterRound"
|
||||
{
|
||||
|
|
@ -38,6 +90,58 @@ Model "MisterRound"
|
|||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "MisterRound2"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "MisterRound3"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "MisterRound5"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "MisterRound10"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
||||
Model 0 "BaseCube_d.3d"
|
||||
Skin 0 "CHIPTILE"
|
||||
Scale 0.02 0.02 0.02
|
||||
ZOffset 16
|
||||
PitchOffset 30
|
||||
ROTATING
|
||||
|
||||
FrameIndex XZW1 A 0 0
|
||||
}
|
||||
Model "MisterAmmo"
|
||||
{
|
||||
Path "models/extra"
|
||||
|
|
|
|||
|
|
@ -281,18 +281,26 @@ Model "ShinemapDebugSphere"
|
|||
FrameIndex XZW1 H 0 0
|
||||
Skin 0 "matcap/invincimap.png"
|
||||
FrameIndex XZW1 I 0 0
|
||||
Skin 0 "matcap/leadmap.png"
|
||||
Skin 0 "matcap/kinymap.png"
|
||||
FrameIndex XZW1 J 0 0
|
||||
Skin 0 "matcap/pinkmap.png"
|
||||
Skin 0 "matcap/leadmap.png"
|
||||
FrameIndex XZW1 K 0 0
|
||||
Skin 0 "matcap/puromap.png"
|
||||
Skin 0 "matcap/nkrknmap.png"
|
||||
FrameIndex XZW1 L 0 0
|
||||
Skin 0 "matcap/purpmap.png"
|
||||
Skin 0 "matcap/nokromap.png"
|
||||
FrameIndex XZW1 M 0 0
|
||||
Skin 0 "matcap/ragemap.png"
|
||||
Skin 0 "matcap/pearlmap.png"
|
||||
FrameIndex XZW1 N 0 0
|
||||
Skin 0 "matcap/redmap.png"
|
||||
Skin 0 "matcap/pinkmap.png"
|
||||
FrameIndex XZW1 O 0 0
|
||||
Skin 0 "matcap/silvermap.png"
|
||||
Skin 0 "matcap/puromap.png"
|
||||
FrameIndex XZW1 P 0 0
|
||||
Skin 0 "matcap/purpmap.png"
|
||||
FrameIndex XZW1 Q 0 0
|
||||
Skin 0 "matcap/ragemap.png"
|
||||
FrameIndex XZW1 R 0 0
|
||||
Skin 0 "matcap/redmap.png"
|
||||
FrameIndex XZW1 S 0 0
|
||||
Skin 0 "matcap/silvermap.png"
|
||||
FrameIndex XZW1 T 0 0
|
||||
}
|
||||
|
|
|
|||
BIN
models/EvisceratorClip.png
Normal file
BIN
models/EvisceratorClip.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
BIN
models/EvisceratorClip_Three_a.3d
Normal file
BIN
models/EvisceratorClip_Three_a.3d
Normal file
Binary file not shown.
BIN
models/EvisceratorClip_Three_d.3d
Normal file
BIN
models/EvisceratorClip_Three_d.3d
Normal file
Binary file not shown.
BIN
models/EvisceratorClip_Two_a.3d
Normal file
BIN
models/EvisceratorClip_Two_a.3d
Normal file
Binary file not shown.
BIN
models/EvisceratorClip_Two_d.3d
Normal file
BIN
models/EvisceratorClip_Two_d.3d
Normal file
Binary file not shown.
BIN
models/ExplodiumBullet2_a.3d
Normal file
BIN
models/ExplodiumBullet2_a.3d
Normal file
Binary file not shown.
BIN
models/ExplodiumBullet2_d.3d
Normal file
BIN
models/ExplodiumBullet2_d.3d
Normal file
Binary file not shown.
BIN
models/ExplodiumBullet3_a.3d
Normal file
BIN
models/ExplodiumBullet3_a.3d
Normal file
Binary file not shown.
BIN
models/ExplodiumBullet3_d.3d
Normal file
BIN
models/ExplodiumBullet3_d.3d
Normal file
Binary file not shown.
BIN
models/HellblazerDuo_a.3d
Normal file
BIN
models/HellblazerDuo_a.3d
Normal file
Binary file not shown.
BIN
models/HellblazerDuo_d.3d
Normal file
BIN
models/HellblazerDuo_d.3d
Normal file
Binary file not shown.
BIN
models/HellblazerTrio_a.3d
Normal file
BIN
models/HellblazerTrio_a.3d
Normal file
Binary file not shown.
BIN
models/HellblazerTrio_d.3d
Normal file
BIN
models/HellblazerTrio_d.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet2_FCB_a.3d
Normal file
BIN
models/SilverbulletBullet2_FCB_a.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet2_FCB_d.3d
Normal file
BIN
models/SilverbulletBullet2_FCB_d.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet2_a.3d
Normal file
BIN
models/SilverbulletBullet2_a.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet2_d.3d
Normal file
BIN
models/SilverbulletBullet2_d.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet3_FCB_a.3d
Normal file
BIN
models/SilverbulletBullet3_FCB_a.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet3_FCB_d.3d
Normal file
BIN
models/SilverbulletBullet3_FCB_d.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet3_a.3d
Normal file
BIN
models/SilverbulletBullet3_a.3d
Normal file
Binary file not shown.
BIN
models/SilverbulletBullet3_d.3d
Normal file
BIN
models/SilverbulletBullet3_d.3d
Normal file
Binary file not shown.
BIN
models/SparksterAmmo2_a.3d
Normal file
BIN
models/SparksterAmmo2_a.3d
Normal file
Binary file not shown.
BIN
models/SparksterAmmo2_d.3d
Normal file
BIN
models/SparksterAmmo2_d.3d
Normal file
Binary file not shown.
|
|
@ -1,37 +1,3 @@
|
|||
Collectible models:
|
||||
x Cube
|
||||
x Akari Project
|
||||
x Love Signals CD
|
||||
x Nutatco Bar
|
||||
x Frispy Corn
|
||||
x Demo Plush
|
||||
x Saya Bean
|
||||
x Peach Juice
|
||||
x Milk Breads
|
||||
x Kirin Manga
|
||||
x Kirin Plush
|
||||
|
||||
Collectible gestures:
|
||||
x Cube
|
||||
x Akari Project
|
||||
x Love Signals CD
|
||||
x Nutatco Bar
|
||||
x Frispy Corn
|
||||
x Saya Bean
|
||||
x Demo Plush
|
||||
x Peach Juice
|
||||
x Milk Breads
|
||||
x Kirin Manga
|
||||
x Kirin Plush
|
||||
|
||||
Key gestures:
|
||||
x Keycard
|
||||
x Skull key
|
||||
x Heretic Yellow Key
|
||||
x Heretic Green Key
|
||||
x Heretic Blue Key
|
||||
x Heretic Red Key
|
||||
|
||||
# Post-release stuff
|
||||
|
||||
Extra items:
|
||||
|
|
@ -39,9 +5,6 @@ Extra items:
|
|||
x Devastation Sigil
|
||||
x Divine Sprite
|
||||
|
||||
Character models:
|
||||
- White Lady
|
||||
|
||||
Extra collectibles:
|
||||
- Moth Plushy
|
||||
- AA-12
|
||||
|
|
@ -74,6 +37,7 @@ Ammo models:
|
|||
- Gamma mag
|
||||
- Sheen Ammo
|
||||
- Single
|
||||
- 10 Belt
|
||||
- 50 Box
|
||||
- 100 Box
|
||||
- Quadravol Ammo
|
||||
|
|
@ -100,9 +64,13 @@ Ammo models:
|
|||
- Mortal Rifle Ammo
|
||||
- Round
|
||||
- Mag
|
||||
- 1 Grenade
|
||||
- 2 Grenades
|
||||
- 3 Grenades
|
||||
- Grenade
|
||||
- Rafan-Kos Ammo
|
||||
- Pod
|
||||
- Mag
|
||||
|
||||
# Final Update
|
||||
|
||||
Character models:
|
||||
- Maidbot
|
||||
- White Lady
|
||||
|
|
|
|||
|
|
@ -1,13 +1,7 @@
|
|||
// All DLC weapon ammo pickups
|
||||
|
||||
Class SMW05Ammo : Ammo
|
||||
Class SMW05Ammo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x SMW.05 Bullets
|
||||
|
|
@ -15,6 +9,7 @@ Class SMW05Ammo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_SMW05Ammo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_SMW05BULLET";
|
||||
SWWMAmmo.PickupTag "SMW05BULLET";
|
||||
Stamina 300;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SMW05Ammo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -26,6 +21,11 @@ Class SMW05Ammo : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 20;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = Random[ShellDrop](1,clamp(dropamount,1,3));
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -33,21 +33,28 @@ Class SMW05Ammo : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class SMW05BundleSpawn : SWWMAmmoSpawner
|
||||
Class SMW05Ammo2 : SMW05Ammo
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("SMW05Ammo",Vec3Angle(4,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 1x SMW.05 Bullets
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SMW05Ammo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class SMW05Ammo3 : SMW05Ammo
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 1x SMW.05 Bullets
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SMW05Ammo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
}
|
||||
}
|
||||
|
||||
Class SMW05SmallAmmo : SMW05Ammo
|
||||
{
|
||||
Default
|
||||
|
|
@ -59,7 +66,6 @@ Class SMW05SmallAmmo : SMW05Ammo
|
|||
Inventory.Amount 6;
|
||||
}
|
||||
}
|
||||
|
||||
Class SMW05BigAmmo : SMW05Ammo
|
||||
{
|
||||
Default
|
||||
|
|
@ -72,32 +78,16 @@ Class SMW05BigAmmo : SMW05Ammo
|
|||
}
|
||||
}
|
||||
|
||||
Class SheenAmmo : Ammo
|
||||
Class SheenAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
override string PickupMessage()
|
||||
{
|
||||
String tagstr = "$T_SHEENBULLET";
|
||||
tagstr.MakeUpper();
|
||||
if ( Amount > 1 )
|
||||
{
|
||||
tagstr = tagstr.."S";
|
||||
return String.Format("%d %s",Amount,StringTable.Localize(tagstr));
|
||||
}
|
||||
return StringTable.Localize(tagstr);
|
||||
}
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x Sheen Bullets
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SheenAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_SHEENBULLETS";
|
||||
Tag "$T_SHEENBULLET";
|
||||
SWWMAmmo.PickupTag "SHEENBULLET";
|
||||
Stamina 400;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SheenAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -109,6 +99,11 @@ Class SheenAmmo : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 35;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = Random[ShellDrop](1,clamp(dropamount,1,3));
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -116,7 +111,28 @@ Class SheenAmmo : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class SheenAmmo2 : SheenAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 2x Sheen Bullets
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SheenAmmo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class SheenAmmo3 : SheenAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 3x Sheen Bullets
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SheenAmmo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
}
|
||||
}
|
||||
Class SheenTinyAmmo : SheenAmmo
|
||||
{
|
||||
Default
|
||||
|
|
@ -128,7 +144,6 @@ Class SheenTinyAmmo : SheenAmmo
|
|||
Inventory.Amount 10;
|
||||
}
|
||||
}
|
||||
|
||||
Class SheenSmallAmmo : SheenAmmo
|
||||
{
|
||||
Default
|
||||
|
|
@ -140,7 +155,6 @@ Class SheenSmallAmmo : SheenAmmo
|
|||
Inventory.Amount 50;
|
||||
}
|
||||
}
|
||||
|
||||
Class SheenBigAmmo : SheenAmmo
|
||||
{
|
||||
Default
|
||||
|
|
@ -153,13 +167,8 @@ Class SheenBigAmmo : SheenAmmo
|
|||
}
|
||||
}
|
||||
|
||||
Class QuadravolAmmo : Ammo
|
||||
Class QuadravolAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Quadravol Ammo
|
||||
|
|
@ -167,7 +176,7 @@ Class QuadravolAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_QuadAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_QUADAMMO";
|
||||
Inventory.PickupMessage "$T_QUADAMMO";
|
||||
SWWMAmmo.PickupTag "QUADAMMO";
|
||||
Stamina 10000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_QuadAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -179,11 +188,6 @@ Class QuadravolAmmo : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 45;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -191,28 +195,20 @@ Class QuadravolAmmo : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class QuadravolAmmoBundleSpawn : SWWMAmmoSpawner
|
||||
Class QuadravolAmmo2 : QuadravolAmmo
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("QuadravolAmmo",Vec3Angle(6,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x Quadravol Ammo
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_QuadAmmo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
|
||||
Class DarkCanister : Ammo
|
||||
Class DarkCanister : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Dark Canister
|
||||
|
|
@ -220,7 +216,7 @@ Class DarkCanister : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_DarkAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_DARKAMMO";
|
||||
Inventory.PickupMessage "$T_DARKAMMO";
|
||||
SWWMAmmo.PickupTag "DARKAMMO";
|
||||
Stamina 20000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_DarkAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -232,11 +228,6 @@ Class DarkCanister : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 60;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -245,12 +236,8 @@ Class DarkCanister : Ammo
|
|||
}
|
||||
}
|
||||
|
||||
Class EMPCore : Ammo
|
||||
Class EMPCore : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title EMP Core
|
||||
|
|
@ -258,7 +245,7 @@ Class EMPCore : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_EMPCore.png
|
||||
//$Icon ammo
|
||||
Tag "$T_EMPCORE";
|
||||
Inventory.PickupMessage "$T_EMPCORE";
|
||||
SWWMAmmo.PickupTag "EMPCORE";
|
||||
Stamina 60000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_EMPCore.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -270,11 +257,6 @@ Class EMPCore : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 80;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -282,18 +264,15 @@ Class EMPCore : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class EMPCoreBundleSpawn : SWWMAmmoSpawner
|
||||
Class EMPCore2 : EMPCore
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<3; i++ )
|
||||
{
|
||||
let a = Spawn("EMPCore",Vec3Angle(6,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x EMP Core
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_EMPCore.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -306,7 +285,7 @@ Class RayBolt : MagAmmo
|
|||
//$Sprite graphics/HUD/Icons/A_RayBolt.png
|
||||
//$Icon ammo
|
||||
Tag "$T_RAYBOLT";
|
||||
Inventory.PickupMessage "$T_RAYBOLT";
|
||||
MagAmmo.PickupTag "RAYBOLT";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_RayBolt.png";
|
||||
MagAmmo.ParentAmmo "RayAmmo";
|
||||
MagAmmo.ClipSize 10;
|
||||
|
|
@ -321,28 +300,31 @@ Class RayBolt : MagAmmo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class RayBoltBundleSpawn : SWWMAmmoSpawner
|
||||
Class RayBolt2 : RayBolt
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,5);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("RayBolt",Vec3Angle(6,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x Ray-Khom Bolt
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_RayBolt.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class RayBolt5 : RayBolt
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 5x Ray-Khom Bolt
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_RayBolt.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 5;
|
||||
}
|
||||
}
|
||||
|
||||
Class RayAmmo : Ammo
|
||||
Class RayAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Ray-Khom Mag
|
||||
|
|
@ -350,7 +332,7 @@ Class RayAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_RayAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_RAYAMMO";
|
||||
Inventory.PickupMessage "$T_RAYAMMO";
|
||||
SWWMAmmo.PickupTag "RAYAMMO";
|
||||
Stamina 150000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_RayAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -358,15 +340,11 @@ Class RayAmmo : Ammo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 9;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "RayBolt";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
Accuracy 90;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -375,13 +353,8 @@ Class RayAmmo : Ammo
|
|||
}
|
||||
}
|
||||
|
||||
Class RayBattery : Ammo
|
||||
Class RayBattery : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Ray-Khom Battery
|
||||
|
|
@ -389,7 +362,7 @@ Class RayBattery : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_RayBattery.png
|
||||
//$Icon ammo
|
||||
Tag "$T_RAYBATTERY";
|
||||
Inventory.PickupMessage "$T_RAYBATTERY";
|
||||
SWWMAmmo.PickupTag "RAYBATTERY";
|
||||
Stamina 320000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_RayBattery.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -402,11 +375,6 @@ Class RayBattery : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 90;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -424,7 +392,7 @@ Class GrandSpear : MagAmmo
|
|||
//$Sprite graphics/HUD/Icons/A_GrandSpear.png
|
||||
//$Icon ammo
|
||||
Tag "$T_GRANDSPEAR";
|
||||
Inventory.PickupMessage "$T_GRANDSPEAR";
|
||||
MagAmmo.PickupTag "GRANDSPEAR";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_GrandSpear.png";
|
||||
MagAmmo.ParentAmmo "GrandAmmo";
|
||||
MagAmmo.ClipSize 5;
|
||||
|
|
@ -440,13 +408,8 @@ Class GrandSpear : MagAmmo
|
|||
}
|
||||
}
|
||||
|
||||
Class GrandAmmo : Ammo
|
||||
Class GrandAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Grand Lance Mag
|
||||
|
|
@ -454,7 +417,7 @@ Class GrandAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_GrandAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_GRANDAMMO";
|
||||
Inventory.PickupMessage "$T_GRANDAMMO";
|
||||
SWWMAmmo.PickupTag "GRANDAMMO";
|
||||
Stamina -1200000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_GrandAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -462,14 +425,10 @@ Class GrandAmmo : Ammo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 4;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "GrandSpear";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
|
|||
|
|
@ -1,20 +1,15 @@
|
|||
// All DLC weapon ammo pickups
|
||||
|
||||
Class SparksterBAmmo : Ammo
|
||||
Class SparksterBAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Sparkster Blue Ammo
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SparkBAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_SPARKBAMMO";
|
||||
Inventory.PickupMessage "$T_SPARKBAMMO";
|
||||
Tag "$T_SPARKBCELL";
|
||||
SWWMAmmo.PickupTag "SPARKBCELL";
|
||||
Stamina 16000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SparkBAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -26,11 +21,6 @@ Class SparksterBAmmo : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 70;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -38,22 +28,39 @@ Class SparksterBAmmo : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class SparksterRAmmo : Ammo
|
||||
Class SparksterBAmmo2 : SparksterBAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
Default
|
||||
{
|
||||
//$Title 2x Sparkster Blue Ammo
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SparkBAmmo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class SparksterBAmmo3 : SparksterBAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 3x Sparkster Blue Ammo
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SparkBAmmo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
}
|
||||
}
|
||||
|
||||
Class SparksterRAmmo : SWWMAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title Sparkster Red Ammo
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SparkRAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_SPARKRAMMO";
|
||||
Inventory.PickupMessage "$T_SPARKRAMMO";
|
||||
Tag "$T_SPARKRCELL";
|
||||
SWWMAmmo.PickupTag "SPARKRCELL";
|
||||
Stamina 18000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SparkRAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -65,11 +72,6 @@ Class SparksterRAmmo : Ammo
|
|||
FloatBobStrength 0.25;
|
||||
Accuracy 75;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -77,34 +79,26 @@ Class SparksterRAmmo : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class SparksterAmmoBundleSpawn : SWWMAmmoSpawner
|
||||
Class SparksterRAmmo2 : SparksterRAmmo
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn(Random[Bundle](0,2)?"SparksterBAmmo":"SparksterRAmmo",Vec3Angle(6,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x Sparkster Red Ammo
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SparkRAmmo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class SparksterBigAmmoBundleSpawn : SWWMAmmoSpawner
|
||||
Class SparksterRAmmo3 : SparksterRAmmo
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](3,6);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn(Random[Bundle](0,2)?"SparksterBAmmo":"SparksterRAmmo",Vec3Angle(8,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
let a = Spawn(Random[Bundle](0,2)?"SparksterBAmmo":"SparksterRAmmo",pos);
|
||||
a.angle = angle;
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
//$Title 3x Sparkster Red Ammo
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SparkRAmmo.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -117,7 +111,7 @@ Class MisterRound : MagAmmo
|
|||
//$Sprite graphics/HUD/Icons/A_MRRound.png
|
||||
//$Icon ammo
|
||||
Tag "$T_MRROUND";
|
||||
Inventory.PickupMessage "$T_MRROUND";
|
||||
MagAmmo.PickupTag "MRROUND";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_MRRound.png";
|
||||
MagAmmo.ParentAmmo "MisterAmmo";
|
||||
MagAmmo.ClipSize 30;
|
||||
|
|
@ -132,28 +126,53 @@ Class MisterRound : MagAmmo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class MisterRoundBundleSpawn : SWWMAmmoSpawner
|
||||
Class MisterRound2 : MisterRound
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](5,10);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("MisterRound",Vec3Angle(6,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x Mortal Rifle Round
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_MRRound.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class MisterRound3 : MisterRound
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 3x Mortal Rifle Round
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_MRRound.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
}
|
||||
}
|
||||
Class MisterRound5 : MisterRound
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 5x Mortal Rifle Round
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_MRRound.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 5;
|
||||
}
|
||||
}
|
||||
Class MisterRound10 : MisterRound
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 10x Mortal Rifle Round
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_MRRound.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 10;
|
||||
}
|
||||
}
|
||||
|
||||
Class MisterAmmo : Ammo
|
||||
Class MisterAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Mortal Rifle Mag
|
||||
|
|
@ -161,7 +180,7 @@ Class MisterAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_MRAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_MRAMMO";
|
||||
Inventory.PickupMessage "$T_MRAMMO";
|
||||
SWWMAmmo.PickupTag "MRAMMO";
|
||||
Stamina 120000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_MRAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -169,15 +188,11 @@ Class MisterAmmo : Ammo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 6;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "MisterRound";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
Accuracy 90;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -186,14 +201,8 @@ Class MisterAmmo : Ammo
|
|||
}
|
||||
}
|
||||
|
||||
Class MisterGAmmo : Ammo
|
||||
Class MisterGAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Mortal Rifle Grenade
|
||||
|
|
@ -201,6 +210,7 @@ Class MisterGAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_MRGrenade.png
|
||||
//$Icon ammo
|
||||
Tag "$T_MRGRENADE";
|
||||
SWWMAmmo.PickupTag "MRGRENADE";
|
||||
Stamina 90000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_MRGrenade.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -251,7 +261,7 @@ Class UltimatePod : MagAmmo
|
|||
//$Sprite graphics/HUD/Icons/A_UltimatePod.png
|
||||
//$Icon ammo
|
||||
Tag "$T_ULTIMATEPOD";
|
||||
Inventory.PickupMessage "$T_ULTIMATEPOD";
|
||||
MagAmmo.PickupTag "ULTIMATEPOD";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_UltimatePod.png";
|
||||
MagAmmo.ParentAmmo "UltimateAmmo";
|
||||
MagAmmo.ClipSize 4;
|
||||
|
|
@ -267,13 +277,8 @@ Class UltimatePod : MagAmmo
|
|||
}
|
||||
}
|
||||
|
||||
Class UltimateAmmo : Ammo
|
||||
Class UltimateAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Ultimate Mag
|
||||
|
|
@ -281,7 +286,7 @@ Class UltimateAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_UltimateAmmo.png
|
||||
//$Icon ammo
|
||||
Tag "$T_ULTIMATEAMMO";
|
||||
Inventory.PickupMessage "$T_ULTIMATEAMMO";
|
||||
SWWMAmmo.PickupTag "ULTIMATEAMMO";
|
||||
Stamina -2000000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_UltimateAmmo.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -289,14 +294,10 @@ Class UltimateAmmo : Ammo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 5;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "UltimatePod";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
|
|||
|
|
@ -85,8 +85,8 @@ Class AmmoFabricator : Inventory abstract
|
|||
let a = (Class<Ammo>)(AllActorClasses[i]);
|
||||
// skip over candy gun spares, they're "special ammo"
|
||||
if ( a == 'CandyGunSpares' ) continue;
|
||||
// only direct descendants of ammo with a set price below our max unit price
|
||||
if ( !a || (a.GetParentClass() != 'Ammo') ) continue;
|
||||
// only direct descendants of swwmammo with a set price below our max unit price
|
||||
if ( !a || (a.GetParentClass() != 'SWWMAmmo') ) continue;
|
||||
let def = GetDefaultByType(a);
|
||||
if ( (def.Stamina <= 0) || (def.Stamina > maxunitprice) ) continue;
|
||||
// only ammo for weapons that are valid (can be used)
|
||||
|
|
@ -350,7 +350,7 @@ Class HammerspaceEmbiggener : Inventory
|
|||
for ( int i=0; i<AllActorClasses.Size(); i++ )
|
||||
{
|
||||
let type = (class<Ammo>)(AllActorClasses[i]);
|
||||
if ( !type || (type.GetParentClass() != 'Ammo') ) continue;
|
||||
if ( !type || (type.GetParentClass() != 'SWWMAmmo') ) continue;
|
||||
// check that it's for a valid weapon
|
||||
bool isvalid = false;
|
||||
for ( int j=0; j<validweapons.Size(); j++ )
|
||||
|
|
|
|||
|
|
@ -2,21 +2,16 @@
|
|||
// Spreadgun / Wallbuster ammo
|
||||
// ============================================================================
|
||||
|
||||
Class RedShell : Ammo
|
||||
Class RedShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x Red Shells
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_ShellsNormal.png
|
||||
//$Icon ammo
|
||||
Tag "$T_REDSHELLS";
|
||||
Tag "$T_REDSHELL";
|
||||
SWWMAmmo.PickupTag "REDSHELL";
|
||||
Stamina 500;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsNormal.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -62,21 +57,16 @@ Class RedShell4 : RedShell
|
|||
}
|
||||
}
|
||||
|
||||
Class GreenShell : Ammo
|
||||
Class GreenShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x Green Shells
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_ShellsSlug.png
|
||||
//$Icon ammo
|
||||
Tag "$T_GREENSHELLS";
|
||||
Tag "$T_GREENSHELL";
|
||||
SWWMAmmo.PickupTag "GREENSHELL";
|
||||
Stamina 800;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsSlug.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -122,21 +112,16 @@ Class GreenShell4 : GreenShell
|
|||
}
|
||||
}
|
||||
|
||||
Class WhiteShell : Ammo
|
||||
Class WhiteShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x White Shells
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_ShellsDragon.png
|
||||
//$Icon ammo
|
||||
Tag "$T_WHITESHELLS";
|
||||
Tag "$T_WHITESHELL";
|
||||
SWWMAmmo.PickupTag "WHITESHELL";
|
||||
Stamina 1000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsDragon.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -181,21 +166,16 @@ Class WhiteShell4 : WhiteShell
|
|||
}
|
||||
}
|
||||
|
||||
Class BlueShell : Ammo
|
||||
Class BlueShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x Blue Shells
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_ShellsKinylum.png
|
||||
//$Icon ammo
|
||||
Tag "$T_BLUESHELLS";
|
||||
Tag "$T_BLUESHELL";
|
||||
SWWMAmmo.PickupTag "BLUESHELL";
|
||||
Stamina 2500;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsKinylum.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -241,21 +221,16 @@ Class BlueShell4 : BlueShell
|
|||
}
|
||||
}
|
||||
|
||||
Class BlackShell : Ammo
|
||||
Class BlackShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x Black Shells
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_ShellsFuck.png
|
||||
//$Icon ammo
|
||||
Tag "$T_BLACKSHELLS";
|
||||
Tag "$T_BLACKSHELL";
|
||||
SWWMAmmo.PickupTag "BLACKSHELL";
|
||||
Stamina 4000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsFuck.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -301,21 +276,16 @@ Class BlackShell4 : BlackShell
|
|||
}
|
||||
}
|
||||
|
||||
Class PurpleShell : Ammo
|
||||
Class PurpleShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title 1x Purple Shells
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_ShellsBall.png
|
||||
//$Icon ammo
|
||||
Tag "$T_PURPLESHELLS";
|
||||
Tag "$T_PURPLESHELL";
|
||||
SWWMAmmo.PickupTag "PURPLESHELL";
|
||||
Stamina 1500;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsBall.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -395,14 +365,8 @@ Class GoldShellSparkle : Actor
|
|||
}
|
||||
}
|
||||
|
||||
Class GoldShell : Ammo
|
||||
Class GoldShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMShellAmmo;
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
action void A_GoldShellTrail()
|
||||
{
|
||||
if ( Random[Goldy](0,2) ) return;
|
||||
|
|
@ -415,7 +379,8 @@ Class GoldShell : Ammo
|
|||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_ShellsGold.png
|
||||
//$Icon ammo
|
||||
Tag "$T_GOLDSHELLS";
|
||||
Tag "$T_GOLDSHELL";
|
||||
SWWMAmmo.PickupTag "GOLDSHELL";
|
||||
Stamina -1000000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_ShellsGold.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -465,20 +430,16 @@ Class GoldShell4 : GoldShell
|
|||
// Eviscerator ammo
|
||||
// ============================================================================
|
||||
|
||||
Class EvisceratorShell : Ammo
|
||||
Class EvisceratorShell : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Eviscerator Shell
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_Eviscerator.png
|
||||
//$Icon ammo
|
||||
Tag "$T_EVISHELLS";
|
||||
Tag "$T_EVISHELL";
|
||||
SWWMAmmo.PickupTag "EVISHELL";
|
||||
Inventory.PickupMessage "$T_EVISHELL";
|
||||
Stamina 3000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_Eviscerator.png";
|
||||
|
|
@ -488,6 +449,7 @@ Class EvisceratorShell : Ammo
|
|||
Ammo.BackpackMaxAmount 60;
|
||||
Ammo.DropAmount 1;
|
||||
+FLOATBOB;
|
||||
+SWWMAMMO.USEPICKUPMSG;
|
||||
FloatBobStrength 0.25;
|
||||
Radius 8;
|
||||
Height 22;
|
||||
|
|
@ -495,8 +457,8 @@ Class EvisceratorShell : Ammo
|
|||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,4);
|
||||
Ammo.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,3);
|
||||
}
|
||||
States
|
||||
{
|
||||
|
|
@ -505,6 +467,32 @@ Class EvisceratorShell : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class EvisceratorShell2 : EvisceratorShell
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title Eviscerator Dual Clip
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_Eviscerator.png
|
||||
//$Icon ammo
|
||||
Inventory.PickupMessage "$I_EVISHELLCLIP2";
|
||||
Inventory.Amount 2;
|
||||
Radius 16;
|
||||
}
|
||||
}
|
||||
Class EvisceratorShell3 : EvisceratorShell
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title Eviscerator Triple Clip
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_Eviscerator.png
|
||||
//$Icon ammo
|
||||
Inventory.PickupMessage "$I_EVISHELLCLIP3";
|
||||
Inventory.Amount 3;
|
||||
Radius 16;
|
||||
}
|
||||
}
|
||||
|
||||
Class EvisceratorSixPack : EvisceratorShell
|
||||
{
|
||||
|
|
@ -514,7 +502,6 @@ Class EvisceratorSixPack : EvisceratorShell
|
|||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_Eviscerator.png
|
||||
//$Icon ammo
|
||||
Tag "$I_EVISHELLPAK";
|
||||
Inventory.PickupMessage "$I_EVISHELLPAK";
|
||||
Inventory.Amount 6;
|
||||
Radius 20;
|
||||
|
|
@ -522,39 +509,20 @@ Class EvisceratorSixPack : EvisceratorShell
|
|||
}
|
||||
}
|
||||
|
||||
Class EvisceratorBundleSpawn : SWWMAmmoSpawner
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("EvisceratorShell",Vec3Angle(12,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Hellblazer ammo
|
||||
// ============================================================================
|
||||
|
||||
Class HellblazerMissiles : Ammo
|
||||
Class HellblazerMissiles : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Hellblazer Missile
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerMissile.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLMISSILES";
|
||||
Inventory.PickupMessage "$T_HELLMISSILE";
|
||||
Tag "$T_HELLMISSILE";
|
||||
SWWMAmmo.PickupTag "HELLMISSILE";
|
||||
Stamina 8000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerMissile.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -570,7 +538,7 @@ Class HellblazerMissiles : Ammo
|
|||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Ammo.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,3);
|
||||
}
|
||||
States
|
||||
|
|
@ -580,6 +548,28 @@ Class HellblazerMissiles : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class HellblazerMissiles2 : HellblazerMissiles
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 2x Hellblazer Missile
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerMissile.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class HellblazerMissiles3 : HellblazerMissiles
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 3x Hellblazer Missile
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerMissile.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
}
|
||||
}
|
||||
Class HellblazerMissileMag : HellblazerMissiles
|
||||
{
|
||||
Default
|
||||
|
|
@ -588,42 +578,24 @@ Class HellblazerMissileMag : HellblazerMissiles
|
|||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerMissile.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLMISSILEMAG";
|
||||
Inventory.PickupMessage "$T_HELLMISSILEMAG";
|
||||
Inventory.Amount 6;
|
||||
+SWWMAMMO.USEPICKUPMSG;
|
||||
Radius 12;
|
||||
Height 26;
|
||||
}
|
||||
}
|
||||
Class HellblazerMissileBundleSpawn : SWWMAmmoSpawner
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("HellblazerMissiles",Vec3Angle(8,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Class HellblazerCrackshots : Ammo
|
||||
Class HellblazerCrackshots : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Hellblazer Crackshot
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerCrackshot.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLCLUSTERS";
|
||||
Inventory.PickupMessage "$T_HELLCLUSTER";
|
||||
Tag "$T_HELLCLUSTER";
|
||||
SWWMAmmo.PickupTag "HELLCLUSTER";
|
||||
Stamina 15000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerCrackshot.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -639,7 +611,7 @@ Class HellblazerCrackshots : Ammo
|
|||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Ammo.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,2);
|
||||
}
|
||||
States
|
||||
|
|
@ -649,6 +621,17 @@ Class HellblazerCrackshots : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class HellblazerCrackshots2 : HellblazerCrackshots
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 2x Hellblazer Crackshots
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerCrackshot.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
}
|
||||
}
|
||||
Class HellblazerCrackshotMag : HellblazerCrackshots
|
||||
{
|
||||
Default
|
||||
|
|
@ -657,42 +640,24 @@ Class HellblazerCrackshotMag : HellblazerCrackshots
|
|||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerCrackshot.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLCLUSTERMAG";
|
||||
Inventory.PickupMessage "$T_HELLCLUSTERMAG";
|
||||
Inventory.Amount 3;
|
||||
+SWWMAMMO.USEPICKUPMSG;
|
||||
Radius 12;
|
||||
Height 26;
|
||||
}
|
||||
}
|
||||
Class HellblazerCrackshotBundleSpawn : SWWMAmmoSpawner
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("HellblazerCrackshots",Vec3Angle(8,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Class HellblazerRavagers : Ammo
|
||||
Class HellblazerRavagers : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Hellblazer Ravager
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerRavager.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLBURNINATORS";
|
||||
Inventory.PickupMessage "$T_HELLBURNINATOR";
|
||||
Tag "$T_HELLBURNINATOR";
|
||||
SWWMAmmo.PickupTag "HELLBURNINATOR";
|
||||
Stamina 25000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerRavager.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -708,7 +673,7 @@ Class HellblazerRavagers : Ammo
|
|||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Ammo.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
|
|
@ -726,29 +691,24 @@ Class HellblazerRavagerMag : HellblazerRavagers
|
|||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerRavager.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLBURNINATORMAG";
|
||||
Inventory.PickupMessage "$T_HELLBURNINATORMAG";
|
||||
Inventory.Amount 3;
|
||||
+SWWMAMMO.USEPICKUPMSG;
|
||||
Radius 12;
|
||||
Height 26;
|
||||
}
|
||||
}
|
||||
|
||||
Class HellblazerWarheads : Ammo
|
||||
Class HellblazerWarheads : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Hellblazer Warhead
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerWarhead.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLNUKES";
|
||||
Inventory.PickupMessage "$T_HELLNUKE";
|
||||
Tag "$T_HELLNUKE";
|
||||
SWWMAmmo.PickupTag "HELLNUKE";
|
||||
Stamina 40000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_HellblazerWarhead.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -764,7 +724,7 @@ Class HellblazerWarheads : Ammo
|
|||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Ammo.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
|
|
@ -782,9 +742,9 @@ Class HellblazerWarheadMag : HellblazerWarheads
|
|||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_HellblazerWarhead.png
|
||||
//$Icon ammo
|
||||
Tag "$T_HELLNUKEMAG";
|
||||
Inventory.PickupMessage "$T_HELLNUKEMAG";
|
||||
Inventory.Amount 2;
|
||||
+SWWMAMMO.USEPICKUPMSG;
|
||||
Radius 12;
|
||||
Height 26;
|
||||
}
|
||||
|
|
@ -794,13 +754,8 @@ Class HellblazerWarheadMag : HellblazerWarheads
|
|||
// Sparkster ammo
|
||||
// ============================================================================
|
||||
|
||||
Class SparkUnit : Ammo
|
||||
Class SparkUnit : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Spark Unit
|
||||
|
|
@ -808,7 +763,7 @@ Class SparkUnit : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_Sparkster.png
|
||||
//$Icon ammo
|
||||
Tag "$T_SPARKUNIT";
|
||||
Inventory.PickupMessage "$T_SPARKUNIT";
|
||||
SWWMAmmo.PickupTag "SPARKUNIT";
|
||||
Stamina 50000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_Sparkster.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -824,7 +779,7 @@ Class SparkUnit : Ammo
|
|||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Ammo.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
|
|
@ -834,32 +789,25 @@ Class SparkUnit : Ammo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class SparkUnitBundleSpawn : SWWMAmmoSpawner
|
||||
Class SparkUnit2 : SparkUnit
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("SparkUnit",Vec3Angle(8,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x Spark Unit
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_Sparkster.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
Radius 8;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Silver Bullet ammo
|
||||
// ============================================================================
|
||||
|
||||
Class SilverBulletAmmo : Ammo
|
||||
Class SilverBulletAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Silver Bullet Mag (XSB)
|
||||
|
|
@ -867,7 +815,7 @@ Class SilverBulletAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_SilverBullet.png
|
||||
//$Icon ammo
|
||||
Tag "$T_XSBMAG";
|
||||
Inventory.PickupMessage "$T_XSBMAG";
|
||||
SWWMAmmo.PickupTag "XSBMAG";
|
||||
Stamina 70000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SilverBullet.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -875,28 +823,13 @@ Class SilverBulletAmmo : Ammo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 8;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "SilverBullets";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
Radius 10;
|
||||
Height 26;
|
||||
Accuracy 75;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
override void AttachToOwner( Actor other )
|
||||
{
|
||||
Super.AttachToOwner(other);
|
||||
// attach our mag ammo if we have none
|
||||
if ( Owner.FindInventory('SilverBullets') )
|
||||
{
|
||||
let ma = Inventory(Spawn('SilverBullets'));
|
||||
ma.Amount = 0;
|
||||
ma.AttachToOwner(Owner);
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -905,13 +838,8 @@ Class SilverBulletAmmo : Ammo
|
|||
}
|
||||
}
|
||||
|
||||
Class SilverBulletAmmo2 : Ammo
|
||||
Class SilverBulletAmmo2 : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Silver Bullet Mag (FCB)
|
||||
|
|
@ -919,7 +847,7 @@ Class SilverBulletAmmo2 : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_SilverBullet2.png
|
||||
//$Icon ammo
|
||||
Tag "$T_FCBMAG";
|
||||
Inventory.PickupMessage "$T_FCBMAG";
|
||||
SWWMAmmo.PickupTag "FCBMAG";
|
||||
Stamina 80000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SilverBullet2.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -927,28 +855,13 @@ Class SilverBulletAmmo2 : Ammo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 4;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "SilverBullets2";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
Radius 10;
|
||||
Height 26;
|
||||
Accuracy 80;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
override void AttachToOwner( Actor other )
|
||||
{
|
||||
Super.AttachToOwner(other);
|
||||
// attach our mag ammo if we have none
|
||||
if ( Owner.FindInventory('SilverBullets2') )
|
||||
{
|
||||
let ma = Inventory(Spawn('SilverBullets2'));
|
||||
ma.Amount = 0;
|
||||
ma.AttachToOwner(Owner);
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -966,7 +879,7 @@ Class SilverBullets : MagAmmo
|
|||
//$Sprite graphics/HUD/Icons/A_SilverBulletBullet.png
|
||||
//$Icon ammo
|
||||
Tag "$T_XSBBULLET";
|
||||
Inventory.PickupMessage "$T_XSBBULLET";
|
||||
MagAmmo.PickupTag "XSBBULLET";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SilverBulletBullet.png";
|
||||
MagAmmo.ParentAmmo "SilverBulletAmmo";
|
||||
MagAmmo.ClipSize 5;
|
||||
|
|
@ -983,6 +896,32 @@ Class SilverBullets : MagAmmo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
Class SilverBullets_2 : SilverBullets
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 2x Silver Bullet Round (XSB)
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SilverBulletBullet.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
Radius 6;
|
||||
Height 24;
|
||||
}
|
||||
}
|
||||
Class SilverBullets_3 : SilverBullets
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 3x Silver Bullet Round (XSB)
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SilverBulletBullet.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
Radius 6;
|
||||
Height 24;
|
||||
}
|
||||
}
|
||||
Class SilverBullets2 : MagAmmo
|
||||
{
|
||||
Default
|
||||
|
|
@ -992,7 +931,7 @@ Class SilverBullets2 : MagAmmo
|
|||
//$Sprite graphics/HUD/Icons/A_SilverBulletBullet2.png
|
||||
//$Icon ammo
|
||||
Tag "$T_FCBBULLET";
|
||||
Inventory.PickupMessage "$T_FCBBULLET";
|
||||
MagAmmo.PickupTag "FCBBULLET";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_SilverBulletBullet2.png";
|
||||
MagAmmo.ParentAmmo "SilverBulletAmmo2";
|
||||
MagAmmo.ClipSize 5;
|
||||
|
|
@ -1009,31 +948,30 @@ Class SilverBullets2 : MagAmmo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class SilverBulletsBundleSpawn : SWWMAmmoSpawner
|
||||
Class SilverBullets2_2 : SilverBullets2
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("SilverBullets",Vec3Angle(6,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x Silver Bullet Round (FCB)
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SilverBulletBullet2.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
Radius 6;
|
||||
Height 24;
|
||||
}
|
||||
}
|
||||
Class SilverBullets2BundleSpawn : SWWMAmmoSpawner
|
||||
Class SilverBullets2_3 : SilverBullets2
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("SilverBullets2",Vec3Angle(6,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 3x Silver Bullet Round (FCB)
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_SilverBulletBullet2.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
Radius 6;
|
||||
Height 24;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1041,13 +979,8 @@ Class SilverBullets2BundleSpawn : SWWMAmmoSpawner
|
|||
// Candygun ammo
|
||||
// ============================================================================
|
||||
|
||||
Class CandyGunAmmo : Ammo
|
||||
Class CandyGunAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Candy Gun Mag
|
||||
|
|
@ -1055,7 +988,7 @@ Class CandyGunAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_CandyGun.png
|
||||
//$Icon ammo
|
||||
Tag "$T_CANDYMAG";
|
||||
Inventory.PickupMessage "$T_CANDYMAG";
|
||||
SWWMAmmo.PickupTag "CANDYMAG";
|
||||
Stamina 100000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_CandyGun.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -1063,28 +996,13 @@ Class CandyGunAmmo : Ammo
|
|||
Ammo.BackpackAmount 0;
|
||||
Ammo.BackpackMaxAmount 6;
|
||||
Ammo.DropAmount 1;
|
||||
SWWMAmmo.MagAmmoType "CandyGunBullets";
|
||||
+FLOATBOB;
|
||||
FloatBobStrength 0.25;
|
||||
Radius 6;
|
||||
Height 24;
|
||||
Accuracy 90;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
override void AttachToOwner( Actor other )
|
||||
{
|
||||
Super.AttachToOwner(other);
|
||||
// attach our mag ammo if we have none
|
||||
if ( Owner.FindInventory('CandyGunBullets') )
|
||||
{
|
||||
let ma = Inventory(Spawn('CandyGunBullets'));
|
||||
ma.Amount = 0;
|
||||
ma.AttachToOwner(Owner);
|
||||
}
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
@ -1102,7 +1020,7 @@ Class CandyGunBullets : MagAmmo
|
|||
//$Sprite graphics/HUD/Icons/A_CandyBullet.png
|
||||
//$Icon ammo
|
||||
Tag "$T_CANDYBULLET";
|
||||
Inventory.PickupMessage "$T_CANDYBULLET";
|
||||
MagAmmo.PickupTag "CANDYBULLET";
|
||||
Inventory.Icon "graphics/HUD/Icons/A_CandyBullet.png";
|
||||
MagAmmo.ParentAmmo "CandyGunAmmo";
|
||||
MagAmmo.ClipSize 7;
|
||||
|
|
@ -1119,26 +1037,37 @@ Class CandyGunBullets : MagAmmo
|
|||
Stop;
|
||||
}
|
||||
}
|
||||
|
||||
Class CandyGunBulletsBundleSpawn : SWWMAmmoSpawner
|
||||
Class CandyGunBullets2 : CandyGunBullets
|
||||
{
|
||||
override void SpawnAmmo()
|
||||
Default
|
||||
{
|
||||
int bnd = Random[Bundle](2,3);
|
||||
for ( int i=0; i<bnd; i++ )
|
||||
{
|
||||
let a = Spawn("CandyGunBullets",Vec3Angle(4,i*(360/bnd)));
|
||||
a.angle = i*(360/bnd);
|
||||
SWWMUtility.TransferItemProp(self,a,true);
|
||||
}
|
||||
//$Title 2x Candy Gun Round
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_CandyBullet.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 2;
|
||||
Radius 2.5;
|
||||
}
|
||||
}
|
||||
Class CandyGunBullets3 : CandyGunBullets
|
||||
{
|
||||
Default
|
||||
{
|
||||
//$Title 2x Candy Gun Round
|
||||
//$Group Ammo
|
||||
//$Sprite graphics/HUD/Icons/A_CandyBullet.png
|
||||
//$Icon ammo
|
||||
Inventory.Amount 3;
|
||||
Radius 3;
|
||||
}
|
||||
}
|
||||
|
||||
Class CandyGunSpares : Ammo
|
||||
Class CandyGunSpares : SWWMAmmo
|
||||
{
|
||||
Default
|
||||
{
|
||||
Tag "$T_CANDYSPARE";
|
||||
SWWMAmmo.PickupTag "CANDYSPARE";
|
||||
Stamina 600000;
|
||||
Inventory.Icon "graphics/HUD/Icons/W_CandyGun.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -1171,13 +1100,8 @@ Class CandyGunSpares : Ammo
|
|||
// Ynykron ammo
|
||||
// ============================================================================
|
||||
|
||||
Class YnykronAmmo : Ammo
|
||||
Class YnykronAmmo : SWWMAmmo
|
||||
{
|
||||
Mixin SWWMAmmo;
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
Default
|
||||
{
|
||||
//$Title Ynykron Ammo
|
||||
|
|
@ -1185,7 +1109,7 @@ Class YnykronAmmo : Ammo
|
|||
//$Sprite graphics/HUD/Icons/A_Ynykron.png
|
||||
//$Icon ammo
|
||||
Tag "$T_YNYKRONAMMO";
|
||||
Inventory.PickupMessage "$T_YNYKRONAMMO";
|
||||
SWWMAmmo.PickupTag "YNYKRONAMMO";
|
||||
Stamina -3000000;
|
||||
Inventory.Icon "graphics/HUD/Icons/A_Ynykron.png";
|
||||
Inventory.Amount 1;
|
||||
|
|
@ -1198,11 +1122,6 @@ Class YnykronAmmo : Ammo
|
|||
Radius 8;
|
||||
Height 24;
|
||||
}
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = min(Amount,1);
|
||||
}
|
||||
States
|
||||
{
|
||||
Spawn:
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ Class SWWMShellAmmoSmall : SWWMAmmoSpawner
|
|||
static Class<Actor> PickAmmo( bool notondemand = false )
|
||||
{
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('PuntzerBeta') || SWWMUtility.ItemExists('PuntzerGamma')) )
|
||||
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05BundleSpawn';*/
|
||||
return Random[Replacements](0,2)?'SMW05SmallAmmo':'SMW05Ammo3';*/
|
||||
switch( Random[Replacements](0,8) )
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -88,7 +88,7 @@ Class SWWMClipAmmoBig : SWWMAmmoSpawner
|
|||
{
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
|
||||
return Random[Replacements](0,2)?'SheenSmallAmmo':'SheenBigAmmo';*/
|
||||
return Random[Replacements](0,5)?'EvisceratorShell':'EvisceratorBundleSpawn';
|
||||
return Random[Replacements](0,5)?'EvisceratorShell':Random[Replacements](0,2)?'EvisceratorShell2':'EvisceratorShell3';
|
||||
}
|
||||
}
|
||||
Class SWWMBlastAmmoSmall : SWWMAmmoSpawner
|
||||
|
|
@ -110,7 +110,7 @@ Class SWWMBlastAmmoBig : SWWMAmmoSpawner
|
|||
{
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('HeavyMahsheenGun')) )
|
||||
return Random[Replacements](0,2)?'SheenBigAmmo':'SheenSmallAmmo';*/
|
||||
return Random[Replacements](0,2)?'EvisceratorShell':'EvisceratorBundleSpawn';
|
||||
return Random[Replacements](0,2)?'EvisceratorShell':Random[Replacements](0,1)?'EvisceratorShell2':'EvisceratorShell3';
|
||||
}
|
||||
}
|
||||
Class SWWMRocketAmmoSmall : SWWMAmmoSpawner
|
||||
|
|
@ -131,9 +131,12 @@ Class SWWMRocketAmmoBig : SWWMAmmoSpawner
|
|||
static Class<Actor> PickAmmo( bool notondemand = false )
|
||||
{
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('ModernSparkster')) )
|
||||
return Random[Replacements](0,2)?'SparksterAmmoBundleSpawn':'SparksterBigAmmoBundleSpawn';*/
|
||||
{
|
||||
if ( Random[Replacements](0,1) ) return Random[Replacements](0,2)?'SparksterBAmmo2':'SparksterBAmmo3';
|
||||
return Random[Replacements](0,2)?'SparksterRAmmo2':'SparksterRAmmo3';
|
||||
}*/
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('Quadravol')) )
|
||||
return Random[Replacements](0,2)?'QuadravolAmmo':'QuadravolAmmoBundleSpawn';*/
|
||||
return Random[Replacements](0,2)?'QuadravolAmmo':'QuadravolAmmo2';*/
|
||||
switch ( Random[Replacements](0,11) )
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -141,12 +144,12 @@ Class SWWMRocketAmmoBig : SWWMAmmoSpawner
|
|||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
return Random[Replacements](0,4)?'HellblazerMissiles':'HellblazerMissileBundleSpawn';
|
||||
return Random[Replacements](0,4)?'HellblazerMissiles':Random[Replacements](0,2)?'HellblazerMissiles2':'HellblazerMissiles3';
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
case 8:
|
||||
return Random[Replacements](0,7)?'HellblazerCrackshots':'HellblazerCrackshotBundleSpawn';
|
||||
return Random[Replacements](0,7)?'HellblazerCrackshots':'HellblazerCrackshots2';
|
||||
case 9:
|
||||
case 10:
|
||||
return 'HellblazerRavagers';
|
||||
|
|
@ -167,7 +170,7 @@ Class SWWMCellAmmoSmall : SWWMAmmoSpawner
|
|||
if ( !Random[Replacements](0,3) )
|
||||
{
|
||||
/*if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('MisterRifle')) ) return 'MisterGAmmo';*/
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('RayKhom')) ) return 'RayBolt';*/
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('RayKhom')) ) return 'RayBolt2';*/
|
||||
if ( notondemand || SWWMUtility.ItemExists('CandyGun') ) return 'CandyGunBullets';
|
||||
}
|
||||
/*if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('EMPCarbine')) ) return 'EMPCore';*/
|
||||
|
|
@ -194,17 +197,17 @@ Class SWWMCellAmmoBig : SWWMAmmoSpawner
|
|||
}
|
||||
/*if ( Random[Replacements](0,1) )
|
||||
{
|
||||
if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('EMPCarbine')) ) return Random[Replacements](0,3)?'EMPCoreBundleSpawn':'EMPCore';
|
||||
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('MisterRifle')) ) return Random[Replacements](0,2)?'MisterRoundBundleSpawn':'MisterAmmo';
|
||||
if ( notondemand || SWWMUtility.ItemExists('RayKhom') ) return Random[Replacements](0,2)?'RayBoltBundleSpawn':'RayAmmo';
|
||||
if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('EMPCarbine')) ) return Random[Replacements](0,3)?'EMPCore2':'EMPCore';
|
||||
if ( Random[Replacements](0,1) && (notondemand || SWWMUtility.ItemExists('MisterRifle')) ) return Random[Replacements](0,2)?'MisterRound5':'MisterAmmo';
|
||||
if ( notondemand || SWWMUtility.ItemExists('RayKhom') ) return Random[Replacements](0,2)?'RayBolt5':'RayAmmo';
|
||||
}*/
|
||||
if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('SilverBullet')) )
|
||||
{
|
||||
if ( Random[Replacements](0,3) ) return Random[Replacements](0,2)?'SilverBulletsBundleSpawn':'SilverBullets2BundleSpawn';
|
||||
if ( Random[Replacements](0,3) ) return Random[Replacements](0,2)?'SilverBullets_2':'SilverBullets2_2';
|
||||
return Random[Replacements](0,2)?'SilverBulletAmmo':'SilverBulletAmmo2';
|
||||
}
|
||||
if ( notondemand || SWWMUtility.ItemExists('CandyGun') ) return Random[Replacements](0,3)?'CandyGunBulletsBundleSpawn':'CandyGunAmmo';
|
||||
if ( notondemand || SWWMUtility.ItemExists('CandyGun') ) return Random[Replacements](0,3)?'CandyGunBullets3':'CandyGunAmmo';
|
||||
/*if ( !Random[Replacements](0,2) && (notondemand || SWWMUtility.ItemExists('BlackfireIgniter')) ) return 'DarkCanister';*/
|
||||
return Random[Replacements](0,3)?'SparkUnit':'SparkUnitBundleSpawn';
|
||||
return Random[Replacements](0,3)?'SparkUnit':'SparkUnit2';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,39 @@
|
|||
// Common code for ammo division
|
||||
Mixin Class SWWMAmmo
|
||||
Class SWWMAmmo : Ammo
|
||||
{
|
||||
Mixin SWWMOverlapPickupSound;
|
||||
Mixin SWWMUseToPickup;
|
||||
Mixin SWWMRespawn;
|
||||
|
||||
String PickupTag;
|
||||
Class<MagAmmo> MagAmmoType;
|
||||
private int SAmmoFlags;
|
||||
|
||||
Property PickupTag : PickupTag;
|
||||
Property MagAmmoType : MagAmmoType;
|
||||
|
||||
FlagDef UsePickupMsg : SAmmoFlags, 0; // use the set pickup message rather than generating from pickup tag
|
||||
|
||||
override Class<Ammo> GetParentAmmo()
|
||||
{
|
||||
Class<Object> type = GetClass();
|
||||
while ( (type.GetParentClass() != "SWWMAmmo") && type.GetParentClass() )
|
||||
type = type.GetParentClass();
|
||||
return (Class<Ammo>)(type);
|
||||
}
|
||||
|
||||
override string PickupMessage()
|
||||
{
|
||||
if ( bUsePickupMsg ) return Super.PickupMessage();
|
||||
String tagstr = "$T_"..PickupTag;
|
||||
if ( Amount > 1 )
|
||||
{
|
||||
tagstr = tagstr.."S";
|
||||
return String.Format("%d %s",Amount,StringTable.Localize(tagstr));
|
||||
}
|
||||
return StringTable.Localize(tagstr);
|
||||
}
|
||||
|
||||
private Inventory DoDrop( Class<Inventory> type )
|
||||
{
|
||||
let copy = Inventory(Spawn(type,Owner.Pos,NO_REPLACE));
|
||||
|
|
@ -122,22 +155,7 @@ Mixin Class SWWMAmmo
|
|||
ammotypes.Push((Class<Ammo>)(AllActorClasses[i]));
|
||||
}
|
||||
// sort from largest to smallest
|
||||
for ( int i=0; i<ammotypes.Size(); i++ )
|
||||
{
|
||||
int j = 1;
|
||||
while ( j < ammotypes.Size() )
|
||||
{
|
||||
int k = j;
|
||||
while ( (k > 0) && CmpAmmo(ammotypes[k-1],ammotypes[k]) )
|
||||
{
|
||||
Class<Ammo> tmp = ammotypes[k];
|
||||
ammotypes[k] = ammotypes[k-1];
|
||||
ammotypes[k-1] = tmp;
|
||||
k--;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
qsort_ammotypes(ammotypes,0,ammotypes.Size()-1);
|
||||
// drop spares
|
||||
Inventory last;
|
||||
while ( excess > 0 )
|
||||
|
|
@ -196,6 +214,31 @@ Mixin Class SWWMAmmo
|
|||
return true;
|
||||
}
|
||||
|
||||
override void AttachToOwner( Actor other )
|
||||
{
|
||||
Super.AttachToOwner(other);
|
||||
// attach our mag ammo if we have none
|
||||
if ( MagAmmoType && !Owner.FindInventory(MagAmmoType) )
|
||||
{
|
||||
let ma = Inventory(Spawn(MagAmmoType));
|
||||
ma.Amount = 0;
|
||||
ma.AttachToOwner(Owner);
|
||||
}
|
||||
}
|
||||
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
int maxdrop = 1;
|
||||
for ( int i=0; i<AllActorClasses.Size(); i++ )
|
||||
{
|
||||
if ( !(AllActorClasses[i] is GetParentAmmo()) ) continue;
|
||||
let def = GetDefaultByType((Class<Ammo>)(AllActorClasses[i]));
|
||||
maxdrop = max(maxdrop,def.amount);
|
||||
}
|
||||
Amount = Random[ShellDrop](1,clamp(dropamount,1,maxdrop));
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
+INVENTORY.IGNORESKILL;
|
||||
|
|
@ -214,9 +257,11 @@ Class MagAmmo : Inventory abstract
|
|||
Ammo pamo;
|
||||
int ClipSize;
|
||||
int countdown;
|
||||
String PickupTag;
|
||||
|
||||
Property ParentAmmo : ParentAmmo;
|
||||
Property ClipSize : ClipSize;
|
||||
Property PickupTag : PickupTag;
|
||||
|
||||
default
|
||||
{
|
||||
|
|
@ -226,6 +271,59 @@ Class MagAmmo : Inventory abstract
|
|||
Inventory.PickupFlash "SWWMPickupFlash";
|
||||
}
|
||||
|
||||
virtual Class<MagAmmo> GetParentMagAmmo()
|
||||
{
|
||||
Class<Object> type = GetClass();
|
||||
while ( (type.GetParentClass() != "MagAmmo") && type.GetParentClass() )
|
||||
type = type.GetParentClass();
|
||||
return (Class<MagAmmo>)(type);
|
||||
}
|
||||
|
||||
private bool CmpAmmo( Class<MagAmmo> a, Class<MagAmmo> b )
|
||||
{
|
||||
let amta = GetDefaultByType(a).Amount;
|
||||
let amtb = GetDefaultByType(b).Amount;
|
||||
return (amta < amtb);
|
||||
}
|
||||
|
||||
private int partition_ammotypes( Array<Class<MagAmmo> > a, int l, int h )
|
||||
{
|
||||
Class<MagAmmo> pv = a[h];
|
||||
int i = (l-1);
|
||||
for ( int j=l; j<=(h-1); j++ )
|
||||
{
|
||||
if ( CmpAmmo(pv,a[j]) )
|
||||
{
|
||||
i++;
|
||||
Class<MagAmmo> tmp = a[j];
|
||||
a[j] = a[i];
|
||||
a[i] = tmp;
|
||||
}
|
||||
}
|
||||
Class<MagAmmo> tmp = a[h];
|
||||
a[h] = a[i+1];
|
||||
a[i+1] = tmp;
|
||||
return i+1;
|
||||
}
|
||||
private void qsort_ammotypes( Array<Class<MagAmmo> > a, int l, int h )
|
||||
{
|
||||
if ( l >= h ) return;
|
||||
int p = partition_ammotypes(a,l,h);
|
||||
qsort_ammotypes(a,l,p-1);
|
||||
qsort_ammotypes(a,p+1,h);
|
||||
}
|
||||
|
||||
override string PickupMessage()
|
||||
{
|
||||
String tagstr = "$T_"..PickupTag;
|
||||
if ( Amount > 1 )
|
||||
{
|
||||
tagstr = tagstr.."S";
|
||||
return String.Format("%d %s",Amount,StringTable.Localize(tagstr));
|
||||
}
|
||||
return StringTable.Localize(tagstr);
|
||||
}
|
||||
|
||||
override bool HandlePickup( Inventory item )
|
||||
{
|
||||
// see if the mag can be split apart
|
||||
|
|
@ -257,7 +355,78 @@ Class MagAmmo : Inventory abstract
|
|||
return true;
|
||||
}
|
||||
}
|
||||
return Super.HandlePickup(item);
|
||||
// drop excess mag ammo
|
||||
if ( (item is 'MagAmmo') && (MagAmmo(item).GetParentMagAmmo() == GetClass()) )
|
||||
{
|
||||
int excess = Amount+item.Amount;
|
||||
if ( excess > MaxAmount ) excess -= MaxAmount;
|
||||
if ( excess < item.Amount )
|
||||
{
|
||||
// enumerate all subclasses
|
||||
Array<Class<MagAmmo> > ammotypes;
|
||||
ammotypes.Clear();
|
||||
for ( int i=0; i<AllActorClasses.Size(); i++ )
|
||||
{
|
||||
if ( AllActorClasses[i] is GetParentMagAmmo() )
|
||||
ammotypes.Push((Class<MagAmmo>)(AllActorClasses[i]));
|
||||
}
|
||||
// sort from largest to smallest
|
||||
qsort_ammotypes(ammotypes,0,ammotypes.Size()-1);
|
||||
// drop spares
|
||||
Inventory last;
|
||||
while ( excess > 0 )
|
||||
{
|
||||
for ( int i=0; i<ammotypes.Size(); i++ )
|
||||
{
|
||||
let def = GetDefaultByType(ammotypes[i]);
|
||||
if ( excess >= def.Amount )
|
||||
{
|
||||
double ang = FRandom[Junk](0,360);
|
||||
last = DoDrop(ammotypes[i]);
|
||||
last.SetOrigin(item.pos,false);
|
||||
last.vel.xy = (cos(ang),sin(ang))*FRandom[Junk](2,5);
|
||||
excess -= def.Amount;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( Amount < MaxAmount )
|
||||
{
|
||||
int receiving = item.Amount;
|
||||
int oldamt = Amount;
|
||||
if ( (Amount > 0) && ((Amount+item.Amount) < 0) ) Amount = int.max;
|
||||
else Amount += item.Amount;
|
||||
if ( Amount > MaxAmount && !sv_unlimited_pickup ) Amount = MaxAmount;
|
||||
item.bPickupGood = true;
|
||||
// autoswitch if needed (checks parent ammo type)
|
||||
if ( (oldamt == 0) && Owner && Owner.player )
|
||||
PlayerPawn(Owner).CheckWeaponSwitch(ParentAmmo);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
override Inventory CreateCopy( Actor other )
|
||||
{
|
||||
Inventory copy;
|
||||
int amount = Amount;
|
||||
let type = GetParentMagAmmo();
|
||||
if ( (GetClass() != type) && type )
|
||||
{
|
||||
if ( !GoAway() ) Destroy();
|
||||
copy = Inventory(Spawn(type));
|
||||
copy.Amount = amount;
|
||||
copy.BecomeItem();
|
||||
}
|
||||
else
|
||||
{
|
||||
copy = Super.CreateCopy(other);
|
||||
copy.Amount = amount;
|
||||
}
|
||||
if ( copy.Amount > copy.MaxAmount ) copy.Amount = copy.MaxAmount;
|
||||
return copy;
|
||||
}
|
||||
|
||||
override bool CanPickup( Actor toucher )
|
||||
|
|
@ -363,6 +532,16 @@ Class MagAmmo : Inventory abstract
|
|||
return null;
|
||||
// cap
|
||||
amt = min(amount,amt);
|
||||
// enumerate all subclasses
|
||||
Array<Class<MagAmmo> > ammotypes;
|
||||
ammotypes.Clear();
|
||||
for ( int i=0; i<AllActorClasses.Size(); i++ )
|
||||
{
|
||||
if ( AllActorClasses[i] is GetParentMagAmmo() )
|
||||
ammotypes.Push((Class<MagAmmo>)(AllActorClasses[i]));
|
||||
}
|
||||
// sort from largest to smallest
|
||||
qsort_ammotypes(ammotypes,0,ammotypes.Size()-1);
|
||||
// perform subdivision
|
||||
Inventory last = null;
|
||||
let pammo = GetDefaultByType(ParentAmmo);
|
||||
|
|
@ -376,10 +555,18 @@ Class MagAmmo : Inventory abstract
|
|||
Amount -= ClipSize;
|
||||
continue;
|
||||
}
|
||||
// drop individual bullets
|
||||
last = DoDrop(GetClass());
|
||||
amt--;
|
||||
Amount--;
|
||||
// drop bullets otherwise
|
||||
for ( int i=0; i<ammotypes.Size(); i++ )
|
||||
{
|
||||
let def = GetDefaultByType(ammotypes[i]);
|
||||
if ( amt >= def.Amount )
|
||||
{
|
||||
last = DoDrop(ammotypes[i]);
|
||||
amt -= def.Amount;
|
||||
Amount -= def.Amount;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return last;
|
||||
}
|
||||
|
|
@ -391,29 +578,7 @@ Class MagAmmo : Inventory abstract
|
|||
}
|
||||
}
|
||||
|
||||
// Common code for grouped shell handling and per-amount pickup messages
|
||||
Mixin Class SWWMShellAmmo
|
||||
{
|
||||
override string PickupMessage()
|
||||
{
|
||||
String tagstr = "$T_"..GetParentAmmo().GetClassName();
|
||||
tagstr.MakeUpper();
|
||||
if ( Amount > 1 )
|
||||
{
|
||||
tagstr = tagstr.."S";
|
||||
return String.Format("%d %s",Amount,StringTable.Localize(tagstr));
|
||||
}
|
||||
return StringTable.Localize(tagstr);
|
||||
}
|
||||
|
||||
override void ModifyDropAmount( int dropamount )
|
||||
{
|
||||
Super.ModifyDropAmount(dropamount);
|
||||
Amount = Random[ShellDrop](1,clamp(dropamount,1,4));
|
||||
}
|
||||
}
|
||||
|
||||
// Ref class for ammo spawners, used by both on-demand replacers and bundles
|
||||
// Ref class for ammo spawners, used by on-demand replacers
|
||||
Class SWWMAmmoSpawner : Actor abstract
|
||||
{
|
||||
virtual void SpawnAmmo() {}
|
||||
|
|
|
|||
|
|
@ -1090,8 +1090,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=0; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -1136,8 +1138,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=0; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -1165,8 +1169,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=0; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -1211,8 +1217,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=0; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -1320,10 +1328,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
if ( sub )
|
||||
{
|
||||
int amt = (storelist[i] is 'CandyGun')?(players[consoleplayer].mo.CountInv("CandyGunSpares")+1):players[consoleplayer].mo.CountInv(storelist[i]);
|
||||
if ( (amt > 1) || (storelist[i] is 'Ammo') ) str = String.Format("(%d/%d) %s",storeunits[i],amt,def.GetTag());
|
||||
if ( (amt > 1) || (storelist[i] is 'Ammo') ) str = String.Format("(%d/%d) %s",storeunits[i],amt,SWWMUtility.GetAmmoTagClass(storelist[i]));
|
||||
else str = def.GetTag();
|
||||
}
|
||||
else if ( storeunits[i] > 1 ) str = String.Format("%dx %s",storeunits[i],def.GetTag());
|
||||
else if ( (storeunits[i] > 1) || (storelist[i] is 'Ammo') ) str = String.Format("%dx %s",storeunits[i],SWWMUtility.GetAmmoTagClass(storelist[i]));
|
||||
else str = def.GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -1366,7 +1374,13 @@ Class DemolitionistMenu : GenericMenu
|
|||
{
|
||||
if ( !storelist[i] ) continue;
|
||||
let def = GetDefaultByType(storelist[i]);
|
||||
if ( storeunits[i] > 1 ) str = String.Format("%dx %s",storeunits[i],def.GetTag());
|
||||
if ( sub )
|
||||
{
|
||||
int amt = (storelist[i] is 'CandyGun')?(players[consoleplayer].mo.CountInv("CandyGunSpares")+1):players[consoleplayer].mo.CountInv(storelist[i]);
|
||||
if ( (amt > 1) || (storelist[i] is 'Ammo') ) str = String.Format("(%d/%d) %s",storeunits[i],amt,SWWMUtility.GetAmmoTagClass(storelist[i]));
|
||||
else str = def.GetTag();
|
||||
}
|
||||
else if ( storeunits[i] > 1 ) str = String.Format("%dx %s",storeunits[i],def.GetTag());
|
||||
else str = def.GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -1632,7 +1646,7 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=0; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
|
|
@ -1688,10 +1702,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
if ( sub )
|
||||
{
|
||||
int amt = (storelist[i] is 'CandyGun')?(players[consoleplayer].mo.CountInv("CandyGunSpares")+1):players[consoleplayer].mo.CountInv(storelist[i]);
|
||||
if ( (amt > 1) || (storelist[i] is 'Ammo') ) str = String.Format("(%d/%d) %s",storeunits[i],amt,def.GetTag());
|
||||
if ( (amt > 1) || (storelist[i] is 'Ammo') ) str = String.Format("(%d/%d) %s",storeunits[i],amt,SWWMUtility.GetAmmoTagClass(storelist[i]));
|
||||
else str = def.GetTag();
|
||||
}
|
||||
else if ( storeunits[i] > 1 ) str = String.Format("%dx %s",storeunits[i],def.GetTag());
|
||||
else if ( (storeunits[i] > 1) || (storelist[i] is 'Ammo') ) str = String.Format("%dx %s",storeunits[i],SWWMUtility.GetAmmoTagClass(storelist[i]));
|
||||
else str = def.GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -2374,7 +2388,7 @@ Class DemolitionistMenu : GenericMenu
|
|||
if ( !ready || !ready.ValidateSpriteFrame() ) continue;
|
||||
}
|
||||
// ignore child ammos
|
||||
if ( (type is 'Ammo') && (type.GetParentClass() != 'Ammo') ) continue;
|
||||
if ( (type is 'Ammo') && (type.GetParentClass() != 'SWWMAmmo') ) continue;
|
||||
if ( inv.Stamina == 0 ) continue;
|
||||
// items with negative stamina can only be sold
|
||||
if ( (inv.Stamina < 0) && !sub ) continue;
|
||||
|
|
@ -3187,8 +3201,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=0; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -3199,8 +3215,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=ofs; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
int clscol = Font.CR_WHITE;
|
||||
if ( invlist[i] is 'Weapon' ) clscol = SWWMUtility.IsVIPItem(invlist[i])?Font.FindFontColor('VIPGold'):Font.CR_GOLD;
|
||||
|
|
@ -3246,8 +3264,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=0; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
len = fnt.StringWidth(str);
|
||||
if ( len > longest ) longest = len;
|
||||
|
|
@ -3258,8 +3278,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
for ( int i=ofs; i<invlist.Size(); i++ )
|
||||
{
|
||||
if ( !invlist[i] ) continue;
|
||||
if ( invlist[i] is 'Ammo' ) str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,invlist[i].GetTag());
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) ) str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
if ( (invlist[i] is 'Ammo') || (invlist[i] is 'MagAmmo') )
|
||||
str = String.Format("(%d/%d) %s",invlist[i].Amount,invlist[i].MaxAmount,SWWMUtility.GetAmmoTag(invlist[i]));
|
||||
else if ( (invlist[i].Amount > 1) || (!(invlist[i] is 'PuzzleItem') && !(invlist[i] is 'Weapon') && (invlist[i].MaxAmount > 1)) )
|
||||
str = String.Format("%dx %s",invlist[i].Amount,invlist[i].GetTag());
|
||||
else str = invlist[i].GetTag();
|
||||
int clscol = Font.CR_WHITE;
|
||||
if ( invlist[i] is 'Weapon' ) clscol = SWWMUtility.IsVIPItem(invlist[i])?Font.FindFontColor('VIPGold'):Font.CR_GOLD;
|
||||
|
|
@ -3456,10 +3478,10 @@ Class DemolitionistMenu : GenericMenu
|
|||
if ( sub )
|
||||
{
|
||||
int amt = (storelist[i] is 'CandyGun')?(players[consoleplayer].mo.CountInv("CandyGunSpares")+1):players[consoleplayer].mo.CountInv(storelist[i]);
|
||||
if ( (amt > 1) || (storelist[i] is 'Ammo') ) str = String.Format("(%d/%d) %s",storeunits[i],amt,def.GetTag());
|
||||
if ( (amt > 1) || (storelist[i] is 'Ammo') ) str = String.Format("(%d/%d) %s",storeunits[i],amt,SWWMUtility.GetAmmoTagClass(storelist[i]));
|
||||
else str = def.GetTag();
|
||||
}
|
||||
else if ( (storeunits[i] > 1) || (storelist[i] is 'Ammo') ) str = String.Format("%dx %s",storeunits[i],def.GetTag());
|
||||
else if ( (storeunits[i] > 1) || (storelist[i] is 'Ammo') ) str = String.Format("%dx %s",storeunits[i],SWWMUtility.GetAmmoTagClass(storelist[i]));
|
||||
else str = def.GetTag();
|
||||
int clscol = Font.CR_WHITE;
|
||||
if ( storelist[i] is 'Weapon' ) clscol = SWWMUtility.IsVIPItemClass(storelist[i])?Font.FindFontColor('VIPGold'):Font.CR_GOLD;
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ Class Demolitionist : PlayerPawn
|
|||
for ( int i=0; i<AllActorClasses.Size(); i++ )
|
||||
{
|
||||
let type = (class<Ammo>)(AllActorClasses[i]);
|
||||
if ( !type || (type.GetParentClass() != "Ammo") )
|
||||
if ( !type || (type == "Ammo") || (type == "SWWMAmmo") || ((type.GetParentClass() != "Ammo") && (type.GetParentClass() != "SWWMAmmo")) )
|
||||
continue;
|
||||
// Only give if it's for a valid weapon
|
||||
bool isvalid = false;
|
||||
|
|
|
|||
|
|
@ -232,17 +232,8 @@ Class SWWMItemSense : Thinker
|
|||
let i = item;
|
||||
if ( i is 'SWWMRespawnTimer' ) i = i.tracer;
|
||||
if ( !i ) return;
|
||||
// certain ammo types use the pickup message as it's amount-aware
|
||||
if ( (i is 'RedShell') || (i is 'GreenShell')
|
||||
|| (i is 'WhiteShell') || (i is 'BlueShell')
|
||||
|| (i is 'BlackShell') || (i is 'PurpleShell')
|
||||
|| (i is 'GoldShell') || (i is 'EvisceratorShell')
|
||||
|| (i is 'HellblazerMissiles')
|
||||
|| (i is 'HellblazerCrackshots')
|
||||
|| (i is 'HellblazerRavagers')
|
||||
|| (i is 'HellblazerWarheads')
|
||||
|| (i is 'SMW05Ammo')
|
||||
|| (i is 'SheenAmmo') )
|
||||
// our ammo types use the pickup message, as it's amount-aware
|
||||
if ( (i is 'SWWMAmmo') || (i is 'MagAmmo') )
|
||||
tag = Inventory(i).PickupMessage();
|
||||
else tag = i.GetTag();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -888,6 +888,16 @@ Class SWWMUtility
|
|||
basetag = "BOSSBRAIN";
|
||||
break;
|
||||
case 'WolfensteinSS':
|
||||
// ensure it's not being replaced
|
||||
let def = GetDefaultByType('WolfensteinSS');
|
||||
bool dehackery = false;
|
||||
for ( State s=def.SpawnState; s; s=s.NextState )
|
||||
{
|
||||
if ( s.bDEHACKED ) dehackery = true;
|
||||
// keep checking until we hit a loop, just in case
|
||||
if ( s.NextState && (s.DistanceTo(s.NextState) <= 0) ) break;
|
||||
}
|
||||
if ( dehackery ) break;
|
||||
case 'SWWMSS':
|
||||
basetag = "WOLFSS";
|
||||
break;
|
||||
|
|
@ -1073,9 +1083,12 @@ Class SWWMUtility
|
|||
Actor Instigator = (flags&DE_NOTMISSILE)?Source:Source.target;
|
||||
BlockThingsIterator bi = BlockThingsIterator.Create(Source,ExplosionRadius);
|
||||
int nhit = 0, nkill = 0;
|
||||
Array<Actor> washit;
|
||||
washit.Clear();
|
||||
while ( bi.Next() )
|
||||
{
|
||||
Actor a = bi.Thing;
|
||||
washit.Push(a);
|
||||
// early checks for self and ignored actor (usually the instigator)
|
||||
if ( !a || (a == ignoreme) || (a == Source) )
|
||||
continue;
|
||||
|
|
@ -1129,6 +1142,76 @@ Class SWWMUtility
|
|||
if ( (flags&DE_HOWL) && a && (a.Health > 0) && a.bISMONSTER && !Random[DoBlast](0,3) ) a.Howl();
|
||||
if ( (!a || (a.Health <= 0)) && (!(flags&DE_COUNTENEMIES) || hostile) && (!(flags&DE_COUNTSTEALTH) || inactive) ) nkill++;
|
||||
}
|
||||
// traverse portals (needed since BlockThingsIterator can't properly cross sector portals in both vertical directions)
|
||||
let hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
if ( !hnd || (hnd.psectors.Size() <= 1) ) return nhit, nkill;
|
||||
int thisgroup = Source.CurSector.portalgroup;
|
||||
for ( int i=0; i<hnd.psectors.Size(); i++ )
|
||||
{
|
||||
if ( i == thisgroup ) continue;
|
||||
Vector2 relpos = Source.pos.xy+SWWMUtility.PortalDisplacement(level.Sectors[hnd.psectors[thisgroup]],level.Sectors[hnd.psectors[i]]);
|
||||
bi = BlockThingsIterator.CreateFromPos(relpos.x,relpos.y,Source.pos.z,Source.pos.z+Source.height,ExplosionRadius,false);
|
||||
while ( bi.Next() )
|
||||
{
|
||||
Actor a = bi.Thing;
|
||||
// early exit for already processed actors
|
||||
if ( washit.Find(a) < washit.Size() )
|
||||
continue;
|
||||
washit.Push(a);
|
||||
// early checks for self and ignored actor (usually the instigator)
|
||||
if ( !a || (a == ignoreme) || (a == Source) )
|
||||
continue;
|
||||
// can't be affected
|
||||
if ( !a.bSHOOTABLE && !a.bVULNERABLE )
|
||||
continue;
|
||||
// no blasting if no radius dmg (unless forced)
|
||||
if ( a.bNORADIUSDMG && !Source.bFORCERADIUSDMG )
|
||||
continue;
|
||||
// check the DONTHARMCLASS/DONTHARMSPECIES flags
|
||||
if ( !a.player && ((Source.bDONTHARMCLASS && (a.GetClass() == Source.GetClass())) || (Source.bDONTHARMSPECIES && (a.GetSpecies() == Source.GetSpecies()))) )
|
||||
continue;
|
||||
// can we see it
|
||||
if ( !(flags&DE_THRUWALLS) && !Source.CheckSight(a,SF_IGNOREVISIBILITY|SF_IGNOREWATERBOUNDARY) )
|
||||
continue;
|
||||
// intersecting?
|
||||
if ( !SWWMUtility.SphereIntersect(a,Source.pos,ExplosionRadius) )
|
||||
continue;
|
||||
// calculate factor
|
||||
Vector3 dir = level.Vec3Diff(Source.pos,a.Vec3Offset(0,0,a.Height/2));
|
||||
double dist = dir.length();
|
||||
// intersecting, randomize direction
|
||||
if ( dir.length() <= double.epsilon )
|
||||
{
|
||||
double ang = FRandom[DoBlast](0,360);
|
||||
double pt = FRandom[DoBlast](-90,90);
|
||||
dir = (cos(ang)*cos(pt),sin(ang)*cos(pt),-sin(pt));
|
||||
}
|
||||
dir /= dist;
|
||||
dist = clamp(dist-FullDamageRadius,0,min(dist,ExplosionRadius));
|
||||
double damagescale = 1.-clamp((dist-a.Radius)*brange,0.,1.);
|
||||
double mm = MomentumTransfer*damagescale;
|
||||
// no knockback if massive/unpushable
|
||||
if ( (abs(mm) > 0.) && !a.bDORMANT && !a.bDONTTHRUST && (a.Mass < Actor.LARGE_MASS) )
|
||||
{
|
||||
Vector3 Momentum = dir*mm;
|
||||
if ( (a.pos.z <= a.floorz) || !a.TestMobjZ() )
|
||||
Momentum.z = max(Momentum.z,(flags&DE_EXTRAZTHRUST?.4:.1)*Momentum.length());
|
||||
Momentum /= GameTicRate*max(50,a.Mass); // prevent tiny things from getting yeeted at warp speed
|
||||
a.vel += Momentum;
|
||||
if ( (flags&DE_BLAST) && a.bCANBLAST && !a.bDONTBLAST ) a.bBLASTED = true;
|
||||
}
|
||||
// hit it
|
||||
bool inactive = (!a.player&&!a.target);
|
||||
bool hostile = (Instigator&&a.IsHostile(Instigator)&&(a.bISMONSTER||a.player));
|
||||
if ( (!(flags&DE_COUNTENEMIES) || hostile) && (!(flags&DE_COUNTSTEALTH) || inactive) ) nhit++;
|
||||
int dmg = int(Damage*damagescale);
|
||||
if ( dmg <= 0 ) continue; // no harm
|
||||
int ndmg = a.DamageMobj(Source,Instigator,dmg,(DamageType=='')?Source.DamageType:DamageType,DMG_EXPLOSION,atan2(-dir.y,-dir.x));
|
||||
if ( a && !(flags&DE_NOBLEED) ) a.TraceBleed((ndmg>0)?ndmg:dmg,Source);
|
||||
if ( (flags&DE_HOWL) && a && (a.Health > 0) && a.bISMONSTER && !Random[DoBlast](0,3) ) a.Howl();
|
||||
if ( (!a || (a.Health <= 0)) && (!(flags&DE_COUNTENEMIES) || hostile) && (!(flags&DE_COUNTSTEALTH) || inactive) ) nkill++;
|
||||
}
|
||||
}
|
||||
return nhit, nkill;
|
||||
}
|
||||
|
||||
|
|
@ -1467,7 +1550,7 @@ Class SWWMUtility
|
|||
// to be filled
|
||||
static bool IsKnownCustomWAD()
|
||||
{
|
||||
if ( (gameinfo.gametype&GAME_DOOM) )
|
||||
if ( gameinfo.gametype&GAME_DOOM )
|
||||
{
|
||||
if ( IsEviternity() ) return true;
|
||||
}
|
||||
|
|
@ -1558,9 +1641,25 @@ Class SWWMUtility
|
|||
if ( i is 'WarArmor' ) return true;
|
||||
if ( i is 'FuckingInvinciball' ) return true;
|
||||
if ( i is 'SWWMLamp' ) return true;
|
||||
if ( i is 'AngerySigil' ) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// returns the plural tag (if available)
|
||||
static clearscope string GetAmmoTag( Inventory i )
|
||||
{
|
||||
if ( i is 'MagAmmo' ) return StringTable.Localize("$T_"..MagAmmo(i).PickupTag.."S");
|
||||
if ( i is 'SWWMAmmo' ) return StringTable.Localize("$T_"..SWWMAmmo(i).PickupTag.."S");
|
||||
return i.GetTag();
|
||||
}
|
||||
// because of zscript fuckery with GetDefaultByType
|
||||
static clearscope string GetAmmoTagClass( Class<Inventory> i )
|
||||
{
|
||||
if ( i is 'MagAmmo' ) return StringTable.Localize("$T_"..GetDefaultByType((Class<MagAmmo>)(i)).PickupTag.."S");
|
||||
if ( i is 'SWWMAmmo' ) return StringTable.Localize("$T_"..GetDefaultByType((Class<SWWMAmmo>)(i)).PickupTag.."S");
|
||||
return GetDefaultByType(i).GetTag();
|
||||
}
|
||||
|
||||
static bool, TextureID DefaceTexture( TextureID checkme )
|
||||
{
|
||||
String tn = TexMan.GetName(checkme);
|
||||
|
|
@ -1929,13 +2028,17 @@ Class ShinemapDebugSphere : Actor
|
|||
XZW1 G -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 H -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 I -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 J -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 J -1 Bright A_SetRenderStyle(1.,STYLE_Add);
|
||||
XZW1 K -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 L -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 M -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 L -1 Bright A_SetRenderStyle(1.,STYLE_Add);
|
||||
XZW1 M -1 Bright A_SetRenderStyle(1.,STYLE_Add);
|
||||
XZW1 N -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 O -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 P -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 Q -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 R -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 S -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
XZW1 T -1 A_SetRenderStyle(1.,STYLE_Normal);
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue