Remove fat chodes, Silver Bullet reimplemented.

This commit is contained in:
Mari the Deer 2022-10-07 20:13:10 +02:00
commit 62d10ed11c
46 changed files with 333 additions and 1413 deletions

View file

@ -40,7 +40,7 @@ More weapons, because we need 'em. In addition, all the "easy to implement" mini
- ✓ Spreadgun loads golden shells with altfire, like in IA3
- ✓ Wallbuster tops up buckshot one cylinder at a time until stopped
- Remove all missile types except blazers, and rewrite the absolute mess of code the Hellblazer currently is
- Ammo types for Silver Bullet kept intact, but implement "alt reload" instead through altfire+reload combo
- Remove fat chodes
## 1.4 update *(Fine Refinements)*:

View file

@ -76,75 +76,72 @@ DoomEdNums
29040 = "SilverBulletAmmo"
29041 = "SilverBulletAmmo2"
29042 = "SilverBullets"
29043 = "SilverBullets_2"
29044 = "SilverBullets_3"
29045 = "SilverBullets2"
29046 = "SilverBullets2_2"
29047 = "SilverBullets2_3"
29048 = "CandyGunAmmo"
29049 = "CandyGunBullets"
29050 = "CandyGunBullets2"
29051 = "CandyGunBullets3"
29052 = "YnykronAmmo"
29043 = "SilverBullets2"
29044 = "SilverBullets3"
29045 = "CandyGunAmmo"
29046 = "CandyGunBullets"
29047 = "CandyGunBullets2"
29048 = "CandyGunBullets3"
29049 = "YnykronAmmo"
// DLC Ammo
29053 = "SMW05Ammo"
29054 = "SMW05Ammo2"
29055 = "SMW05Ammo3"
29056 = "SMW05SmallAmmo"
29057 = "SMW05BigAmmo"
29058 = "SheenAmmo"
29059 = "SheenAmmo2"
29060 = "SheenAmmo3"
29061 = "SheenSmallAmmo"
29062 = "SheenBigAmmo"
29063 = "QuadravolAmmo"
29064 = "QuadravolAmmo2"
29065 = "QuadravolAmmo3"
29066 = "SparksterBAmmo"
29067 = "SparksterBAmmo2"
29068 = "SparksterBAmmo3"
29069 = "SparksterRAmmo"
29070 = "SparksterRAmmo2"
29071 = "SparksterRAmmo3"
29072 = "RayBolt"
29073 = "RayBolt2"
29074 = "RayBolt5"
29075 = "RayAmmo"
29076 = "MisterRound"
29077 = "MisterRound2"
29078 = "MisterRound3"
29079 = "MisterRound5"
29080 = "MisterAmmo"
29081 = "MisterGAmmo"
29082 = "UltimatePod"
29083 = "UltimateAmmo"
29050 = "SMW05Ammo"
29051 = "SMW05Ammo2"
29052 = "SMW05Ammo3"
29053 = "SMW05SmallAmmo"
29054 = "SMW05BigAmmo"
29055 = "SheenAmmo"
29056 = "SheenAmmo2"
29057 = "SheenAmmo3"
29058 = "SheenSmallAmmo"
29059 = "SheenBigAmmo"
29060 = "QuadravolAmmo"
29061 = "QuadravolAmmo2"
29062 = "QuadravolAmmo3"
29063 = "SparksterBAmmo"
29064 = "SparksterBAmmo2"
29065 = "SparksterBAmmo3"
29066 = "SparksterRAmmo"
29067 = "SparksterRAmmo2"
29068 = "SparksterRAmmo3"
29069 = "RayBolt"
29070 = "RayBolt2"
29071 = "RayBolt5"
29072 = "RayAmmo"
29073 = "MisterRound"
29074 = "MisterRound2"
29075 = "MisterRound3"
29076 = "MisterRound5"
29077 = "MisterAmmo"
29078 = "MisterGAmmo"
29079 = "UltimatePod"
29080 = "UltimateAmmo"
// For Hexen
29084 = "FabricatorTier1"
29085 = "FabricatorTier2"
29086 = "FabricatorTier3"
29087 = "FabricatorTier4"
29081 = "FabricatorTier1"
29082 = "FabricatorTier2"
29083 = "FabricatorTier3"
29084 = "FabricatorTier4"
// Backpack
29088 = "HammerspaceEmbiggener"
29085 = "HammerspaceEmbiggener"
// Health
29089 = "HealthNuggetItem"
29090 = "TetraHealthItem"
29091 = "CubeHealthItem"
29092 = "RefresherItem"
29086 = "HealthNuggetItem"
29087 = "TetraHealthItem"
29088 = "CubeHealthItem"
29089 = "RefresherItem"
// Armor
29093 = "ArmorNuggetItem"
29094 = "BlastSuitItem"
29095 = "WarArmorItem"
29090 = "ArmorNuggetItem"
29091 = "BlastSuitItem"
29092 = "WarArmorItem"
// Powerups
29096 = "GrilledCheeseSandwich"
29097 = "GhostArtifact"
29098 = "GravitySuppressor"
29099 = "FuckingInvinciball"
29100 = "Ragekit"
29101 = "SWWMLamp"
29102 = "EBarrier"
29103 = "Mykradvo"
29104 = "DivineSprite"
29105 = "AngerySigil"
29093 = "GrilledCheeseSandwich"
29094 = "GhostArtifact"
29095 = "GravitySuppressor"
29096 = "FuckingInvinciball"
29097 = "Ragekit"
29098 = "SWWMLamp"
29099 = "EBarrier"
29100 = "Mykradvo"
29101 = "DivineSprite"
29102 = "AngerySigil"
}
```

View file

@ -320,13 +320,13 @@ Neatly packaged single-shot charges of **Nokron**. Recognizable by its red color
The definitive model of **Blackmann Arms**'s legendary **Silver Bullet** series. A lighter *(43kg)*, lower caliber *(1.150)* variant of the former 1.350 **BEHEMOTH** model, discontinued due to being seen as too impractical *(it was full auto, no, really)*.
**Primary fire:** Shoot the bullet. A second press chambers another round.
**Primary fire:** Shoot the bullet.
**Secondary fire:** Hold and combine with primary fire to manually cock *(in case you want to eject unfired rounds)*, or with reload to switch to alternate ammo *(if available)*.
**Secondary fire:** Cocks the gun, loading a new round if available. Note that you can eject unfired rounds in the process *(if you somehow want to)*.
**Tertiary fire:** Press and hold to enter scoped mode. Release to pick the desired zoom level *(can go up to 16x)*. Press again to exit scoped mode.
**Reload:** Reload *(what else is new)*. Note that if you only have alternate ammo available, you must use the combo with secondary fire.
**Reload:** Reload *(what else is new)*.
This weapon is generally not recommended for human use outside of power armor. Good thing you're not a human, then. Still, the recoil compensator jet engines can potentially deal damage to yourself if you don't have any armor, so be careful.
@ -339,13 +339,6 @@ The 1.150 caliber **eXplosive Super Burst** bullets employ an **Explodium** shap
In the world, they may pop up as spare bullets or full mags. Each five bullets picked up will be automatically converted to a full mag in your inventory. They are hard to come by as full mags, so expect to be finding singular rounds more often than not.
### 1.150 FCB Bullets ~ Replaces Cells, Runes
![](docimg/fcbbullet.png)
The more directly explosive counterpart of the **XSB**. Personally baptized by **Blackmann Arms** CEO **Hermann E. Ischer** himself as ***"Fat Chode Bombs"***, these **High-Explosive Squash Head** rounds will blast through walls on impact, hitting anything standing behind them, and in some cases, tearing down the wall itself too.
These are a bit more rare than the standard rounds. You won't even get them from **Embiggeners**.
### Ray-Khom *(slot 8)* ~ Replaces Plasma Rifle, Hellstaff, Arc of Death
![](docimg/raykhom.png)

View file

@ -28,7 +28,6 @@ Shot MiniBrass
Salt MiniKinylum
Concussion MiniBlurp
CriticalConcussion MiniWitch
Corroded MiniMint
Wallbust MiniSayaHUD
Shrapnel MiniTomato
Biospark MiniSulfur

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

View file

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 130 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 B

View file

Before

Width:  |  Height:  |  Size: 137 B

After

Width:  |  Height:  |  Size: 137 B

Before After
Before After

View file

@ -52,12 +52,8 @@ 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";
@ -467,7 +463,6 @@ O_EVISCERATOR = "%o was eviscerated by %k.";
O_HELLBLAZER = "%k blasted %o into burning bits.";
O_SPARKSTER = "%o got sparked hard by %k.";
O_SILVERBULLET = "%o could not ignore the girth of %k's bullets.";
O_SILVERBULLET2 = "%o was blasted by %k's girthy bullets.";
O_CANDYGUN = "%k made %o taste the sweetness (and death).";
O_YNYKRON = "%o was instantly removed by %k.";
O_YNYKRONALT = "%o was furiously obliterated by %k.";
@ -670,8 +665,6 @@ SWWM_GRAVKILL = "Gravity";
SWWM_PARRYKILL = "Deflected Projectiles";
SWWM_SETSLOTSTRICT = "\cg!!!WARNING!!!\c-\n\cj\"setslotstrict\" is enabled. This will cause the mod's weapons to not have slots assigned. Please go into Miscellaneous Options and toggle the \"Strict KEYCONF Weapons/Players\" setting.\c-";
SWWM_WARNALTHUD = "ALTERNATIVE HUD IS UNSUPPORTED";
SWWM_FCBSEL = "1.150 FCB";
SWWM_XSBSEL = "1.150 XSB";
SWWM_WIDESPREAD = "Wide Spread Mode";
SWWM_TIGHTSPREAD = "Tight Spread Mode";
SWWM_YNYKRONFORWARD = "Beam Mode"; // desya / forward
@ -733,10 +726,9 @@ TT_SPARKSTER =
"\cfReload:\c- Reload / double load.";
TT_SILVERBULLET =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Cycle bolt.\n"
"\cfZoom:\c- Use scope.\n"
"\cfReload:\c- Reload weapon.\n"
"\cfAltfire+Fire:\c- Manual bolt cycle.\n"
"\cfAltfire+Reload:\c- Reload special ammo.";
"\cfReload:\c- Reload weapon.";
TT_CANDYGUN =
"\cfFire:\c- Shoot weapon.\n"
"\cfAltfire:\c- Throw magazine.\n"

View file

@ -42,12 +42,8 @@ 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";
@ -370,7 +366,6 @@ O_EVISCERATOR = "%o fue descuartizad@[ao_esp] por %k.";
O_HELLBLAZER = "%k reventó a %o en cachitos humeantes.";
O_SPARKSTER = "%o fue bien chispead@[ao_esp] por %k.";
O_SILVERBULLET = "%o no pudo ignorar el grosor de las balas de %k.";
O_SILVERBULLET2 = "%o fue reventad@[ao_esp] por las gruesas balas de %k.";
O_CANDYGUN = "%k hizo probar a %o un sabor dulce (de muerte).";
O_YNYKRON = "%o fue borrad@[ao_esp] instantáneamente por %k.";
O_YNYKRONALT = "%o fue aniquilad@[ao_esp] furiosamente por %k.";
@ -623,10 +618,9 @@ TT_SPARKSTER =
"\cfRecarga:\c- Recarga / doble carga.";
TT_SILVERBULLET =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Accionar perno.\n"
"\cfZoom:\c- Usar mira.\n"
"\cfRecarga:\c- Recargar arma.\n"
"\cfSecundario+Primario:\c- Accionar perno manualmente.\n"
"\cfSecundario+Recarga:\c- Recargar munición especial.";
"\cfRecarga:\c- Recargar arma.";
TT_CANDYGUN =
"\cfPrimario:\c- Disparar arma.\n"
"\cfSecundario:\c- Lanzar cargador.\n"

View file

@ -1,3 +1,3 @@
[default]
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r545 \cu(Fri 7 Oct 19:12:41 CEST 2022)\c-";
SWWM_SHORTVER="\cw1.3pre r545 \cu(2022-10-07 19:12:41)\c-";
SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r546 \cu(Fri 7 Oct 20:13:10 CEST 2022)\c-";
SWWM_SHORTVER="\cw1.3pre r546 \cu(2022-10-07 20:13:10)\c-";

View file

@ -15,17 +15,15 @@ TXT
The **Silver Bullet JET** is the 1.150 member of the **Silver Bullet** series of ultra-high caliber rifles manufactured by **Blackmann Arms**. It was created as a lighter, more "reasonable" alternative to the 1.350 **Behemoth** model. Weighing 43 kilograms and sporting a total length of 2.4 meters, it is sufficiently compact for non-augmented human use.
The main ammunition designed for this specific model is the 1.150 **XSB (eXplosive Super Burst)**. This beastly 30x140mm cartridge employs a low density **Explodium** shaped charge as propellant, allowing high velocity while still being safe for use. The bullets themselves are composed of a tungsten carbide core, snugly wrapped in an aluminum jacket, and decorated with a thin silver plating for aesthetic appearance (Silver Bullets are, indeed, NOT really made of silver). XSB rounds can penetrate several targets before eventually stopping, depending on their size, they may also do the same for thin walls.
The secondary ammunition is the 1.150 **FCB (Fat Chode Bomb)**. Personally named by the CEO of Blackmann Arms himself, FCBs are quite similar to the standard XSB ammunition, but instead the bullets are full of additional Explodium, which on impact, is released violently, propagating its deadly blast through solid surfaces. Due to the volatility of these bullets, the propellant employed is slightly less potent, which results in a diminished potential for target penetration, but the blast definitely compensates for this. The explosive charge is so powerful that it can break some walls to pieces.
The ammunition designed for this specific model is the 1.150 **XSB (eXplosive Super Burst)**. This beastly 30x140mm cartridge employs a low density **Explodium** shaped charge as propellant, allowing high velocity while still being safe for use. The bullets themselves are composed of a tungsten carbide core, snugly wrapped in an aluminum jacket, and decorated with a thin silver plating for aesthetic appearance (Silver Bullets are, indeed, NOT really made of silver). XSB rounds can penetrate several targets before eventually stopping, depending on their size, they may also do the same for thin walls.
In order to compensate for its massive recoil, the weapon redirects a part of the gasses from round ignition into a set of jet compensators designed by **Forx Aeronautics**. Although partially cooled in the process, it is still hot enough to cause some damage to users not wearing adequate protection.
\cfPrimary Fire:\c- Shoot the bullet. Any small targets hit by it are pretty much turned to paste. A second press after firing will chamber another round.
\cfSecondary Fire:\c- Hold and then press primary fire to manually cock, allowing you to retrieve unfired rounds. Hold and then press reload to reload, but using secondary ammunition if available.
\cfSecondary Fire:\c- Cycle the bolt, chambering a new round if available. Note that you may eject unfired rounds as well.
\cfReloading:\c- Reloads the weapon. Each magazine holds 5 rounds. An extra round can also be kept chambered. Note that if you only have secondary ammunition available, you must use the combo with secondary fire.
\cfReloading:\c- Reloads the weapon. Each magazine holds 5 rounds. An extra round can also be kept chambered.
\cfZoom:\c- Custom-tailored adjustable telescopic sight, up to 16x. Equipped with a soft foam covering to protect the user's face during scoped fire.

View file

@ -9,17 +9,15 @@ TXT
El **Silver Bullet JET** es el miembro de calibre 1.150 de la serie **Silver Bullet** de rifles de calibre ultra-alto fabricados por **Blackmann Arms**. Fue creado como una alternativa ligera y más "razonable" del modelo **Behemoth** de calibre 1.350. Pesando 43 kilos y con una longitud total de 2.4 metros, es suficientemente compacto para el uso por humanos no mejorados.
La munición diseñada principalmente para este modelo son las balas **XSB (eXplosive Super Burst)** del calibre 1.150. Este bestial cartucho de 30x140mm emplea una carga de baja densidad de **Explodium** como propulsor, permitiendo una alta velocidad siendo a la vez seguro de usar. Las balas en sí están compuestas de un núcleo de carburo de tungsteno, con una envoltura de aluminio, y decorado con una capa fina de plata para una apariencia más estética (estas Balas de Plata, ciertamente, NO están hechas de plata). Las balas XSB pueden penetrar varios objetivos antes de detenerse, dependiendo de su tamaño, pueden incluso hacer lo mismo con paredes ligeras.
La munición secundaria son las balas **FCB (Fat Chode Bomb)** también de calibre 1.150. Llamadas así por el propio CEO de Blackmann Arms, las FCB son bastante similares a la munición XSB estándar, con la diferencia de que estas balas están llenas de Explodium, el cual, al impactar, es liberado violentamente, propagando su estallido mortífero a través de superficies sólidas. Dada la volatilidad de estas balas, el propulsor empleado es ligeramente menos potente, lo cual resulta en un disminuído potencial de penetración de objetivos, pero la explosión definitivamente lo compensa. La carga explosiva es tan potente que puede derribar completamente algunas paredes.
La munición diseñada para este modelo son las balas **XSB (eXplosive Super Burst)** del calibre 1.150. Este bestial cartucho de 30x140mm emplea una carga de baja densidad de **Explodium** como propulsor, permitiendo una alta velocidad siendo a la vez seguro de usar. Las balas en sí están compuestas de un núcleo de carburo de tungsteno, con una envoltura de aluminio, y decorado con una capa fina de plata para una apariencia más estética (estas Balas de Plata, ciertamente, NO están hechas de plata). Las balas XSB pueden penetrar varios objetivos antes de detenerse, dependiendo de su tamaño, pueden incluso hacer lo mismo con paredes ligeras.
Para poder compensar su masivo retroceso, el arma redirige una parte de los gases de ignición hasta un grupo de jets compensadores diseñados por **Aeronáutica Forx**. Aunque son parcialmente refrigerados en el proceso, son aun lo suficientemente cálidos para causar ligero daño a usuarios que no lleven la protección adecuada.
\cfFuego Primario:\c- Dispara la bala. Cualquier objetivo alcanzado por ella queda hecho papilla. Un segundo pulsado tras disparar cargará otra bala.
\cfFuego Primario:\c- Dispara la bala. Cualquier objetivo alcanzado por ella queda hecho papilla.
\cfFuego Secundario:\c- Mantén y luego pulsa fuego primario para accionar el perno manualmente, permitiéndote recuperar balas sin usar. Mantén y luego pulsa recarga para recargar, pero usando munición secundaria si está disponible.
\cfFuego Secundario:\c- Acciona el perno, insertando una nueva bala en la recámara si hay disponibles. Ten en cuenta que puedes eyectar balas sin usar.
\cfRecarga:\c- Recarga el arma. Cada cargador tiene 5 balas. Se puede mantener también una bala extra en la recámara. Ten en cuenta que si solo tienes munición secundaria, deberás usar la combinación de fuego secundario.
\cfRecarga:\c- Recarga el arma. Cada cargador tiene 5 balas. Se puede mantener también una bala extra en la recámara.
\cfZoom:\c- Mira telescópica hecha a medida, hasta 16 aumentos. Equipada con una cubierta de espuma suave para proteger la cara del usuario durante el disparo con mira.

View file

@ -257,19 +257,6 @@ Model "SilverBulletAmmo"
FrameIndex XZW1 A 0 0
}
Model "SilverBulletAmmo2"
{
Path "models"
Model 0 "SilverbulletMag_d.3d"
Skin 0 "SilverbulletAmmo_FCB.png"
Scale 0.25 0.25 0.25
PitchOffset 30
ZOffset 16
ROTATING
FrameIndex XZW1 A 0 0
}
Model "SilverBullets"
{
Path "models"
@ -283,7 +270,7 @@ Model "SilverBullets"
FrameIndex XZW1 A 0 0
}
Model "SilverBullets_2"
Model "SilverBullets2"
{
Path "models"
@ -295,7 +282,7 @@ Model "SilverBullets_2"
FrameIndex XZW1 A 0 0
}
Model "SilverBullets_3"
Model "SilverBullets3"
{
Path "models"
@ -307,43 +294,6 @@ Model "SilverBullets_3"
FrameIndex XZW1 A 0 0
}
Model "SilverBullets2"
{
Path "models"
Model 0 "SilverbulletBullet_FCB_d.3d"
Skin 0 "SilverbulletBullet_FCB.png"
Scale 0.05 0.05 0.05
PitchOffset 30
ZOffset 16
ROTATING
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"
{

View file

@ -13,21 +13,6 @@ Model "SilverBulletCasing"
ZOffset 1
FrameIndex XZW1 B 0 0
}
Model "SilverBulletCasing2"
{
Path "models"
Model 0 "SilverbulletCase_FCB_d.3d"
Skin 0 "SilverbulletBullet_FCB_Used.png"
Scale 0.04 0.04 0.04
AngleOffset 90
USEACTORPITCH
USEACTORROLL
FrameIndex XZW1 A 0 0
ZOffset 1
FrameIndex XZW1 B 0 0
}
Model "SilverBulletMag"
{
Path "models"
@ -45,23 +30,6 @@ Model "SilverBulletMag"
RollOffset -90
FrameIndex XZW1 C 0 0
}
Model "SilverBulletMag2"
{
Path "models"
Model 0 "SilverbulletMag_d.3d"
Skin 0 "SilverbulletAmmo_FCB_EmptyMag.png"
Scale 0.2 0.2 0.2
USEACTORPITCH
USEACTORROLL
FrameIndex XZW1 A 0 0
RollOffset 90
ZOffset 1.8
FrameIndex XZW1 B 0 0
RollOffset -90
FrameIndex XZW1 C 0 0
}
Model "SilverBullet"
{
@ -76,8 +44,6 @@ Model "SilverBullet"
ROTATING
FrameIndex XZW1 A 0 0
SurfaceSkin 0 1 "SilverbulletAmmo_FCB.png"
FrameIndex XZW1 B 0 0
}
Model "SilverBullet"
@ -103,77 +69,48 @@ Model "SilverBullet"
Scale -0.005 0.0025 0.005
DONTCULLBACKFACES
// Casing (XSB)
// Casing
SurfaceSkin 2 5 "SilverbulletBullet_Used.png"
FrameIndex XZW7 D 2 30
FrameIndex XZW7 E 2 31
FrameIndex XZW7 F 2 32
FrameIndex XZW7 G 2 33
FrameIndex XZW7 H 2 34
FrameIndex XZW7 I 2 35
FrameIndex XZW7 J 2 36
FrameIndex XZW7 K 2 37
FrameIndex XZW7 L 2 38
FrameIndex XZW7 M 2 39
FrameIndex XZW7 N 2 40
FrameIndex XZW7 O 2 41
// Casing (FCB)
SurfaceSkin 2 5 "SilverbulletBullet_FCB_Used.png"
FrameIndex XZWD D 2 30
FrameIndex XZWD E 2 31
FrameIndex XZWD F 2 32
FrameIndex XZWD G 2 33
FrameIndex XZWD H 2 34
FrameIndex XZWD I 2 35
FrameIndex XZWD J 2 36
FrameIndex XZWD K 2 37
FrameIndex XZWD L 2 38
FrameIndex XZWD M 2 39
FrameIndex XZWD N 2 40
FrameIndex XZWD O 2 41
// Jets
SurfaceSkin 2 5 ""
SurfaceSkin 2 6 "SilverbulletJetSmoke.png"
FrameIndex XZW7 P 2 16
FrameIndex XZW7 Q 2 17
FrameIndex XZW7 R 2 18
FrameIndex XZW7 S 2 19
FrameIndex XZW7 T 2 20
FrameIndex XZW7 U 2 21
FrameIndex XZW7 V 2 22
FrameIndex XZW7 W 2 23
FrameIndex XZW7 X 2 24
// Bullet (XSB)
SurfaceSkin 2 6 ""
FrameIndex XZW7 S 2 30
FrameIndex XZW7 T 2 31
FrameIndex XZW7 U 2 32
FrameIndex XZW7 V 2 33
FrameIndex XZW7 W 2 34
FrameIndex XZW7 X 2 35
FrameIndex XZW7 Y 2 36
FrameIndex XZW7 Z 2 37
FrameIndex XZW8 A 2 38
FrameIndex XZW8 B 2 39
FrameIndex XZW8 C 2 40
FrameIndex XZW8 D 2 41
// Bullet
SurfaceSkin 2 5 "SilverbulletBullet.png"
SurfaceSkin 2 7 "SilverbulletBullet.png"
FrameIndex XZWD P 2 30
FrameIndex XZWD Q 2 31
FrameIndex XZWD R 2 32
FrameIndex XZWD S 2 33
FrameIndex XZWD T 2 34
FrameIndex XZWD U 2 35
FrameIndex XZWD V 2 36
FrameIndex XZWD W 2 37
FrameIndex XZWD X 2 38
FrameIndex XZWD Y 2 39
FrameIndex XZWD Z 2 40
FrameIndex XZWE A 2 41
// Bullet (FCB)
SurfaceSkin 2 5 "SilverbulletBullet_FCB.png"
SurfaceSkin 2 7 "SilverbulletBullet_FCB.png"
FrameIndex XZWE B 2 30
FrameIndex XZWE C 2 31
FrameIndex XZWE D 2 32
FrameIndex XZWE E 2 33
FrameIndex XZWE F 2 34
FrameIndex XZWE G 2 35
FrameIndex XZWE H 2 36
FrameIndex XZWE I 2 37
FrameIndex XZWE J 2 38
FrameIndex XZWE K 2 39
FrameIndex XZWE L 2 40
FrameIndex XZWE M 2 41
FrameIndex XZW8 E 2 30
FrameIndex XZW8 F 2 31
FrameIndex XZW8 G 2 32
FrameIndex XZW8 H 2 33
FrameIndex XZW8 I 2 34
FrameIndex XZW8 J 2 35
FrameIndex XZW8 K 2 36
FrameIndex XZW8 L 2 37
FrameIndex XZW8 M 2 38
FrameIndex XZW8 N 2 39
FrameIndex XZW8 O 2 40
FrameIndex XZW8 P 2 41
SurfaceSkin 2 5 ""
SurfaceSkin 2 7 ""
// Jets
SurfaceSkin 2 6 "SilverbulletJetSmoke.png"
FrameIndex XZW8 Q 2 16
FrameIndex XZW8 R 2 17
FrameIndex XZW8 S 2 18
FrameIndex XZW8 T 2 19
FrameIndex XZW8 U 2 20
FrameIndex XZW8 V 2 21
FrameIndex XZW8 W 2 22
FrameIndex XZW8 X 2 23
FrameIndex XZW8 Y 2 24
}
Model "SilverBullet"
@ -189,7 +126,6 @@ Model "SilverBullet"
AngleOffset -90
Scale -0.005 0.0025 0.005
// EXPLOSIVE SUPER BURST
// Still / Deselect
FrameIndex XZW2 A 1 0
FrameIndex XZW2 B 1 1
@ -261,223 +197,63 @@ Model "SilverBullet"
FrameIndex XZW4 L 1 67
FrameIndex XZW4 M 1 68
FrameIndex XZW4 N 1 69
// UnloadEmpty
SurfaceSkin 1 4 "SilverbulletAmmo_EmptyMag.png"
FrameIndex XZW4 O 1 59
FrameIndex XZW4 P 1 60
FrameIndex XZW4 Q 1 61
FrameIndex XZW4 R 1 62
FrameIndex XZW4 S 1 63
FrameIndex XZW4 T 1 64
FrameIndex XZW4 U 1 65
FrameIndex XZW4 V 1 66
FrameIndex XZW4 W 1 67
FrameIndex XZW4 X 1 68
FrameIndex XZW4 Y 1 69
SurfaceSkin 1 4 "SilverbulletAmmo.png"
// Load
FrameIndex XZW4 Z 1 70
FrameIndex XZW5 A 1 71
FrameIndex XZW5 B 1 72
FrameIndex XZW5 C 1 73
FrameIndex XZW5 D 1 74
FrameIndex XZW5 E 1 75
FrameIndex XZW5 F 1 76
FrameIndex XZW5 G 1 77
FrameIndex XZW5 H 1 78
FrameIndex XZW5 I 1 79
FrameIndex XZW5 J 1 80
FrameIndex XZW5 K 1 81
FrameIndex XZW5 L 1 82
FrameIndex XZW5 M 1 83
FrameIndex XZW5 N 1 84
FrameIndex XZW4 O 1 70
FrameIndex XZW4 P 1 71
FrameIndex XZW4 Q 1 72
FrameIndex XZW4 R 1 73
FrameIndex XZW4 S 1 74
FrameIndex XZW4 T 1 75
FrameIndex XZW4 U 1 76
FrameIndex XZW4 V 1 77
FrameIndex XZW4 W 1 78
FrameIndex XZW4 X 1 79
FrameIndex XZW4 Y 1 80
FrameIndex XZW4 Z 1 81
FrameIndex XZW5 A 1 82
FrameIndex XZW5 B 1 83
FrameIndex XZW5 C 1 84
// Idle
FrameIndex XZW5 O 1 86
FrameIndex XZW5 P 1 87
FrameIndex XZW5 Q 1 88
FrameIndex XZW5 R 1 89
FrameIndex XZW5 S 1 90
FrameIndex XZW5 T 1 91
FrameIndex XZW5 U 1 92
FrameIndex XZW5 V 1 93
FrameIndex XZW5 W 1 94
FrameIndex XZW5 X 1 95
FrameIndex XZW5 Y 1 96
FrameIndex XZW5 Z 1 97
FrameIndex XZW6 A 1 98
FrameIndex XZW6 B 1 99
FrameIndex XZW6 C 1 100
FrameIndex XZW6 D 1 101
FrameIndex XZW6 E 1 102
FrameIndex XZW6 F 1 103
FrameIndex XZW6 G 1 104
FrameIndex XZW6 H 1 105
FrameIndex XZW5 D 1 86
FrameIndex XZW5 E 1 87
FrameIndex XZW5 F 1 88
FrameIndex XZW5 G 1 89
FrameIndex XZW5 H 1 90
FrameIndex XZW5 I 1 91
FrameIndex XZW5 J 1 92
FrameIndex XZW5 K 1 93
FrameIndex XZW5 L 1 94
FrameIndex XZW5 M 1 95
FrameIndex XZW5 N 1 96
FrameIndex XZW5 O 1 97
FrameIndex XZW5 P 1 98
FrameIndex XZW5 Q 1 99
FrameIndex XZW5 R 1 100
FrameIndex XZW5 S 1 101
FrameIndex XZW5 T 1 102
FrameIndex XZW5 U 1 103
FrameIndex XZW5 V 1 104
FrameIndex XZW5 W 1 105
// Melee
FrameIndex XZW6 I 1 107
FrameIndex XZW6 J 1 108
FrameIndex XZW6 K 1 109
FrameIndex XZW6 L 1 110
FrameIndex XZW6 M 1 111
FrameIndex XZW6 N 1 112
FrameIndex XZW6 O 1 113
FrameIndex XZW6 P 1 114
FrameIndex XZW6 Q 1 115
FrameIndex XZW6 R 1 116
FrameIndex XZW6 S 1 117
FrameIndex XZW6 T 1 118
FrameIndex XZW6 U 1 119
FrameIndex XZW6 V 1 120
FrameIndex XZW6 W 1 121
FrameIndex XZW6 X 1 122
FrameIndex XZW6 Y 1 123
FrameIndex XZW6 Z 1 124
FrameIndex XZW7 A 1 125
FrameIndex XZW7 B 1 126
FrameIndex XZW7 C 1 127
//// FAT CHODE BOMB
SurfaceSkin 1 4 "SilverbulletAmmo_FCB.png"
// Still / Deselect
FrameIndex XZW8 A 1 0
FrameIndex XZW8 B 1 1
FrameIndex XZW8 C 1 2
FrameIndex XZW8 D 1 3
FrameIndex XZW8 E 1 4
FrameIndex XZW8 F 1 5
FrameIndex XZW8 G 1 6 // Select
FrameIndex XZW8 H 1 7
FrameIndex XZW8 I 1 8
FrameIndex XZW8 J 1 9
FrameIndex XZW8 K 1 10
FrameIndex XZW8 L 1 11
FrameIndex XZW8 M 1 12
FrameIndex XZW8 N 1 13
// Fire
FrameIndex XZW8 O 1 15
FrameIndex XZW8 P 1 16
FrameIndex XZW8 Q 1 17
FrameIndex XZW8 R 1 18
FrameIndex XZW8 S 1 19
FrameIndex XZW8 T 1 20
FrameIndex XZW8 U 1 21
FrameIndex XZW8 V 1 22
FrameIndex XZW8 W 1 23
// Bolt
FrameIndex XZW8 X 1 25
FrameIndex XZW8 Y 1 26
FrameIndex XZW8 Z 1 27
FrameIndex XZW9 A 1 28
FrameIndex XZW9 B 1 29
FrameIndex XZW9 C 1 30 // StartCasing
FrameIndex XZW9 D 1 31
FrameIndex XZW9 E 1 32
FrameIndex XZW9 F 1 33
FrameIndex XZW9 G 1 34
FrameIndex XZW9 H 1 35
FrameIndex XZW9 I 1 36
FrameIndex XZW9 J 1 37
FrameIndex XZW9 K 1 38
FrameIndex XZW9 L 1 39
FrameIndex XZW9 M 1 40
FrameIndex XZW9 N 1 41 // EndCasing
FrameIndex XZW9 O 1 42
FrameIndex XZW9 P 1 43
FrameIndex XZW9 Q 1 44
FrameIndex XZW9 R 1 45
// ZoomIn
FrameIndex XZW9 S 1 47
FrameIndex XZW9 T 1 48
FrameIndex XZW9 U 1 49
FrameIndex XZW9 V 1 50
FrameIndex XZW9 W 1 51
FrameIndex XZW9 X 1 52 // ZoomStill / ZoomOut
FrameIndex XZW9 Y 1 53
FrameIndex XZW9 Z 1 54
FrameIndex XZWA A 1 55
FrameIndex XZWA B 1 56
FrameIndex XZWA C 1 57
// Unload
FrameIndex XZWA D 1 59
FrameIndex XZWA E 1 60
FrameIndex XZWA F 1 61
FrameIndex XZWA G 1 62
FrameIndex XZWA H 1 63
FrameIndex XZWA I 1 64
FrameIndex XZWA J 1 65
FrameIndex XZWA K 1 66
FrameIndex XZWA L 1 67
FrameIndex XZWA M 1 68
FrameIndex XZWA N 1 69
// UnloadEmpty
SurfaceSkin 1 4 "SilverbulletAmmo_FCB_EmptyMag.png"
FrameIndex XZWA O 1 59
FrameIndex XZWA P 1 60
FrameIndex XZWA Q 1 61
FrameIndex XZWA R 1 62
FrameIndex XZWA S 1 63
FrameIndex XZWA T 1 64
FrameIndex XZWA U 1 65
FrameIndex XZWA V 1 66
FrameIndex XZWA W 1 67
FrameIndex XZWA X 1 68
FrameIndex XZWA Y 1 69
SurfaceSkin 1 4 "SilverbulletAmmo_FCB.png"
// Load
FrameIndex XZWA Z 1 70
FrameIndex XZWB A 1 71
FrameIndex XZWB B 1 72
FrameIndex XZWB C 1 73
FrameIndex XZWB D 1 74
FrameIndex XZWB E 1 75
FrameIndex XZWB F 1 76
FrameIndex XZWB G 1 77
FrameIndex XZWB H 1 78
FrameIndex XZWB I 1 79
FrameIndex XZWB J 1 80
FrameIndex XZWB K 1 81
FrameIndex XZWB L 1 82
FrameIndex XZWB M 1 83
FrameIndex XZWB N 1 84
// Idle
FrameIndex XZWB O 1 86
FrameIndex XZWB P 1 87
FrameIndex XZWB Q 1 88
FrameIndex XZWB R 1 89
FrameIndex XZWB S 1 90
FrameIndex XZWB T 1 91
FrameIndex XZWB U 1 92
FrameIndex XZWB V 1 93
FrameIndex XZWB W 1 94
FrameIndex XZWB X 1 95
FrameIndex XZWB Y 1 96
FrameIndex XZWB Z 1 97
FrameIndex XZWC A 1 98
FrameIndex XZWC B 1 99
FrameIndex XZWC C 1 100
FrameIndex XZWC D 1 101
FrameIndex XZWC E 1 102
FrameIndex XZWC F 1 103
FrameIndex XZWC G 1 104
FrameIndex XZWC H 1 105
// Melee
FrameIndex XZWC I 1 107
FrameIndex XZWC J 1 108
FrameIndex XZWC K 1 109
FrameIndex XZWC L 1 110
FrameIndex XZWC M 1 111
FrameIndex XZWC N 1 112
FrameIndex XZWC O 1 113
FrameIndex XZWC P 1 114
FrameIndex XZWC Q 1 115
FrameIndex XZWC R 1 116
FrameIndex XZWC S 1 117
FrameIndex XZWC T 1 118
FrameIndex XZWC U 1 119
FrameIndex XZWC V 1 120
FrameIndex XZWC W 1 121
FrameIndex XZWC X 1 122
FrameIndex XZWC Y 1 123
FrameIndex XZWC Z 1 124
FrameIndex XZWD A 1 125
FrameIndex XZWD B 1 126
FrameIndex XZWD C 1 127
FrameIndex XZW5 X 1 107
FrameIndex XZW5 Y 1 108
FrameIndex XZW5 Z 1 109
FrameIndex XZW6 A 1 110
FrameIndex XZW6 B 1 111
FrameIndex XZW6 C 1 112
FrameIndex XZW6 D 1 113
FrameIndex XZW6 E 1 114
FrameIndex XZW6 F 1 115
FrameIndex XZW6 G 1 116
FrameIndex XZW6 H 1 117
FrameIndex XZW6 I 1 118
FrameIndex XZW6 J 1 119
FrameIndex XZW6 K 1 120
FrameIndex XZW6 L 1 121
FrameIndex XZW6 M 1 122
FrameIndex XZW6 N 1 123
FrameIndex XZW6 O 1 124
FrameIndex XZW6 P 1 125
FrameIndex XZW6 Q 1 126
FrameIndex XZW6 R 1 127
}

View file

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -185,9 +185,8 @@ at the price of some slight unstability (you might hurt yourself with it).
Slot 8. Sniper rifle.
The big and bulky brother of that unwieldy thing from Ultra Suite.
Primary fire (you guessed it) shoots.
Secondary fire allows for special actions when held. Combine with primary fire
to manually cycle the bolt, and with reload to reload secondary ammo (if any).
Reload does what you'd expect (as long as you have primary ammo).
Secondary fire cycles the bolt.
Reload does what you'd expect.
Tertiary fire is a zoom. Hold to keep increasing the zoom factor, up to 16x.
Crouching with this weapon braces it and disengages the recoil compensator,
which can definitely cause some self-hurt from how hot the jet gas can get.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -175,12 +175,12 @@ Class SWWMStatusBar : BaseStatusBar
int tclabel, tcvalue, tcextra, tccompl, tcsucks;
String tclabel_s, tcextra_s;
int AmmoFlash[19]; // flash when new ammo is received
int AmmoOldAmounts[19]; // to detect when to flash
int AmmoMaxFlash[19]; // flash when ammo max amount changes
int AmmoOldMaxAmounts[19]; // to detect when to flash
Class<SWWMAmmo> AmmoSlots[19]; // ammo type on each slot
String AmmoNames[19]; // ammo 4-letter names
int AmmoFlash[18]; // flash when new ammo is received
int AmmoOldAmounts[18]; // to detect when to flash
int AmmoMaxFlash[18]; // flash when ammo max amount changes
int AmmoOldMaxAmounts[18]; // to detect when to flash
Class<SWWMAmmo> AmmoSlots[18]; // ammo type on each slot
String AmmoNames[18]; // ammo 4-letter names
int HealthFlash; // flash when healing
int LastHealth; // to detect when to flash
int LagHealth[10]; // for delayed decay bar
@ -944,7 +944,7 @@ Class SWWMStatusBar : BaseStatusBar
for ( int i=9; i>0; i-- )
LagHealth[i] = LagHealth[i-1];
// ammo updates
for ( int i=0; i<19; i++ )
for ( int i=0; i<18; i++ )
{
let a = SWWMAmmo(CPlayer.mo.FindInventory(AmmoSlots[i]));
int amt = 0;
@ -1299,14 +1299,13 @@ Class SWWMStatusBar : BaseStatusBar
AmmoSlots[8] = 'SparksterBAmmo';
AmmoSlots[9] = 'SparksterRAmmo';
AmmoSlots[10] = 'SilverBulletAmmo';
AmmoSlots[11] = 'SilverBulletAmmo2';
AmmoSlots[12] = 'RayAmmo';
AmmoSlots[13] = 'CandyGunAmmo';
AmmoSlots[14] = 'CandyGunSpares';
AmmoSlots[15] = 'MisterAmmo';
AmmoSlots[16] = 'MisterGAmmo';
AmmoSlots[17] = 'YnykronAmmo';
AmmoSlots[18] = 'UltimateAmmo';
AmmoSlots[11] = 'RayAmmo';
AmmoSlots[12] = 'CandyGunAmmo';
AmmoSlots[13] = 'CandyGunSpares';
AmmoSlots[14] = 'MisterAmmo';
AmmoSlots[15] = 'MisterGAmmo';
AmmoSlots[16] = 'YnykronAmmo';
AmmoSlots[17] = 'UltimateAmmo';
AmmoNames[0] = "SHOT";
AmmoNames[1] = "GOLD";
AmmoNames[2] = "SCRW";
@ -1318,14 +1317,13 @@ Class SWWMStatusBar : BaseStatusBar
AmmoNames[8] = "KINY";
AmmoNames[9] = "NOKR";
AmmoNames[10] = "RIFL";
AmmoNames[11] = "CHOD";
AmmoNames[12] = "BOLT";
AmmoNames[13] = "CAND";
AmmoNames[14] = "CGUN";
AmmoNames[15] = "MSTR";
AmmoNames[16] = "MGRN";
AmmoNames[17] = "CRYS";
AmmoNames[18] = "ULTI";
AmmoNames[11] = "BOLT";
AmmoNames[12] = "CAND";
AmmoNames[13] = "CGUN";
AmmoNames[14] = "MSTR";
AmmoNames[15] = "MGRN";
AmmoNames[16] = "CRYS";
AmmoNames[17] = "ULTI";
for ( int i=0; i<18; i++ )
{
AmmoFlash[i] = 0;
@ -2694,7 +2692,7 @@ Class SWWMStatusBar : BaseStatusBar
OwnedWeapons.Push(SWWMWeapon(i));
}
String str;
for ( int i=18; i>=0; i-- )
for ( int i=17; i>=0; i-- )
{
let a = AmmoSlots[i];
// check if owned

View file

@ -328,9 +328,9 @@ Class SilverBulletAmmo : SWWMAmmo
SWWMAmmo.PickupTag "XSBMAG";
Stamina 70000;
Inventory.Amount 1;
Inventory.MaxAmount 3;
Inventory.MaxAmount 5;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 6;
Ammo.BackpackMaxAmount 11;
Ammo.DropAmount 1;
SWWMAmmo.MagAmmoType "SilverBullets";
+FLOATBOB;
@ -347,33 +347,6 @@ Class SilverBulletAmmo : SWWMAmmo
}
}
Class SilverBulletAmmo2 : SWWMAmmo
{
Default
{
Tag "$T_FCBMAG";
SWWMAmmo.PickupTag "FCBMAG";
Stamina 80000;
Inventory.Amount 1;
Inventory.MaxAmount 2;
Ammo.BackpackAmount 0;
Ammo.BackpackMaxAmount 4;
Ammo.DropAmount 1;
SWWMAmmo.MagAmmoType "SilverBullets2";
+FLOATBOB;
FloatBobStrength 0.25;
Radius 10;
Height 26;
Accuracy 80;
}
States
{
Spawn:
XZW1 A -1;
Stop;
}
}
Class SilverBullets : MagAmmo
{
Default
@ -397,7 +370,7 @@ Class SilverBullets : MagAmmo
Stop;
}
}
Class SilverBullets_2 : SilverBullets
Class SilverBullets2 : SilverBullets
{
Default
{
@ -406,47 +379,7 @@ Class SilverBullets_2 : SilverBullets
Height 24;
}
}
Class SilverBullets_3 : SilverBullets
{
Default
{
Inventory.Amount 3;
Radius 6;
Height 24;
}
}
Class SilverBullets2 : MagAmmo
{
Default
{
Tag "$T_FCBBULLET";
MagAmmo.PickupTag "FCBBULLET";
Stamina -15000;
MagAmmo.ParentAmmo "SilverBulletAmmo2";
MagAmmo.ClipSize 5;
Inventory.MaxAmount 5;
+FLOATBOB;
FloatBobStrength 0.25;
Radius 4;
Height 22;
}
States
{
Spawn:
XZW1 A -1;
Stop;
}
}
Class SilverBullets2_2 : SilverBullets2
{
Default
{
Inventory.Amount 2;
Radius 6;
Height 24;
}
}
Class SilverBullets2_3 : SilverBullets2
Class SilverBullets3 : SilverBullets
{
Default
{

View file

@ -216,11 +216,7 @@ Class SWWMCellAmmoBig : SWWMAmmoSpawner
bool aex = SWWMUtility.ItemExists('SilverBullet',ownedonly:enemydrop),
bex = SWWMUtility.ItemExists('RayKhom',ownedonly:enemydrop);
if ( (!aex && bex) || (Random[Replacements](0,1) && bex) ) return Random[Replacements](0,2)?'RayBolt5':'RayAmmo';
if ( aex )
{
if ( Random[Replacements](0,3) ) return Random[Replacements](0,2)?'SilverBullets_2':'SilverBullets2_2';
return Random[Replacements](0,2)?'SilverBulletAmmo':'SilverBulletAmmo2';
}
if ( aex ) return Random[Replacements](0,3)?'SilverBullets3':'SilverBulletAmmo';
}
bool aex = SWWMUtility.ItemExists('Sparkster',ownedonly:enemydrop),
bex = SWWMUtility.ItemExists('ModernSparkster',ownedonly:enemydrop);

View file

@ -891,11 +891,11 @@ Class RewardCandyGun : ChanceboxReward
override void SpawnReward( Vector3 pos )
{
SpawnCenter(pos,"CandyGun");
SpawnCircle(pos,6,"CandyGunBullets");
SpawnCircle(pos,7,"CandyGunBullets");
}
}
// TODO ray-khom bolts all over
// them silver bullets, of two types
// them silver bullets
Class RewardSilverBullets : ChanceboxReward
{
override bool CheckRequirements()
@ -905,7 +905,7 @@ Class RewardSilverBullets : ChanceboxReward
override void SpawnReward( Vector3 pos )
{
SpawnCircle(pos,3,"SilverBullets2");
SpawnCircle(pos,4,"SilverBullets");
SpawnCircle(pos,6,"SilverBullets",3.);
}
}

View file

@ -174,7 +174,7 @@ Class SWWMStats : SWWMStaticThinker
else if ( (inflictor is 'HellblazerMissile') || (inflictor is 'HellblazerArm') ) which = 'Hellblazer';
else if ( (inflictor is 'QuadProj') || (inflictor is 'QuadExplArm') || (inflictor is 'OnFire') ) which = 'Quadravol';
else if ( (inflictor is 'BigBiospark') || (inflictor is 'BiosparkBall') || (inflictor is 'BiosparkBeamImpact') || (inflictor is 'BiosparkComboImpact') || (inflictor is 'BiosparkComboImpactSub') || (inflictor is 'BiosparkBeam') || (inflictor is 'BiosparkArc') || (inflictor is 'BiosparkCore') ) which = 'Sparkster';
else if ( (inflictor is 'SilverAirRip') || (inflictor is 'SilverAirRip2') || (inflictor is 'SilverImpact') || (inflictor is 'FatChodeImpact') || (inflictor is 'FatChodeExplosionArm') ) which = 'SilverBullet';
else if ( (inflictor is 'SilverAirRip') || (inflictor is 'SilverImpact') ) which = 'SilverBullet';
else if ( (inflictor is 'CandyBeam') || (inflictor is 'CandyPop') || (inflictor is 'CandyMagArm') || (inflictor is 'CandyGunProj') || (inflictor is 'CandyMagProj') || (inflictor is 'CandyBulletImpact') ) which = 'CandyGun';
else if ( (inflictor is 'MisterBulletImpact') || (inflictor is 'MisterPop') || (inflictor is 'MisterFuzzy') || (inflictor is 'MisterGrenade') || (inflictor is 'MisterRailBeam') ) which = 'MisterRifle';
else if ( (inflictor is 'YnykronBeam') || (inflictor is 'YnykronImpact') || (inflictor is 'YnykronSingularity') || (inflictor is 'YnykronCloud') || (inflictor is 'YnykronVoidBeam') || (inflictor is 'YnykronLightningArc') || (inflictor is 'YnykronLightningImpact') ) which = 'Ynykron';

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,6 @@ Class SilverBulletCasing : SWWMCasing
BounceSound "silverbullet/casing";
}
}
Class SilverBulletCasing2 : SilverBulletCasing {}
Class SilverBulletMag : SWWMCasing
{
@ -36,7 +35,6 @@ Class SilverBulletMag : SWWMCasing
Stop;
}
}
Class SilverBulletMag2 : SilverBulletMag {}
Class SilverAirRip : Actor
{
@ -83,17 +81,6 @@ Class SilverAirRip : Actor
Stop;
}
}
Class SilverAirRip2 : SilverAirRip
{
Default
{
Obituary "$O_SILVERBULLET2";
}
override void Explode()
{
SWWMUtility.DoExplosion(self,20,2000,30,ignoreme:target);
}
}
Class SilverImpact : Actor
{
@ -178,246 +165,3 @@ Class SilverImpact : Actor
Stop;
}
}
Class ExploLight3 : PaletteLight
{
Default
{
ReactionTime 30;
Args 0,0,0,250;
}
}
Class FatChodeRing : Actor
{
Default
{
RenderStyle "Add";
Scale 3.;
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XRG0 ABCDEFGHIJKLMNOPQRSTUVWX 1 Bright A_SetScale(scale.x*1.06);
Stop;
}
}
Class FatChodeImpact : Actor
{
double realangle, realpitch;
Default
{
Obituary "$O_SILVERBULLET2";
DamageType 'Explodium';
RenderStyle "Add";
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+NOTELEPORT;
+NOINTERACTION;
Scale 4.5;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
SWWMUtility.DoExplosion(self,600,40000,250,120,DE_THRUWALLS|DE_EXTRAZTHRUST);
A_AlertMonsters(swwm_uncapalert?0:8000);
A_QuakeEx(7,7,7,50,0,2000,"",QF_RELATIVE|QF_SCALEDOWN|QF_3D,falloff:800,rollIntensity:1.);
A_StartSound("silverbullet/chode",CHAN_VOICE,CHANF_DEFAULT,1.,.35);
A_SprayDecal("BigPock",-64);
A_SprayDecal("HugeWallCrack",-64);
A_SprayDecal("WumboRocketBlast",-64);
Scale *= FRandom[ExploS](0.8,1.1);
Scale.x *= RandomPick[ExploS](-1,1);
Scale.y *= RandomPick[ExploS](-1,1);
int numpt = Random[Silverbullet](15,25);
Vector3 x = SWWMUtility.Vec3FromAngles(angle,pitch);
for ( int i=0; i<numpt; i++ )
{
Vector3 pvel = (x+SWWMUtility.Vec3FromAngles(FRandom[Silverbullet](0,360),FRandom[Silverbullet](-90,90))*.4).unit()*FRandom[Silverbullet](.4,2.);
let s = Spawn("SWWMSmoke",pos);
s.vel = pvel;
s.scale *= 1.8;
s.special1 = Random[Silverbullet](1,4);
s.SetShade(Color(1,1,1)*Random[Silverbullet](96,192));
}
numpt = Random[Silverbullet](6,9);
for ( int i=0; i<numpt; i++ )
{
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[Silverbullet](0,360),FRandom[Silverbullet](-90,90))*FRandom[Silverbullet](2,8);
let s = Spawn("SWWMSpark",pos);
s.scale *= 1.3;
s.vel = pvel;
}
numpt = Random[Silverbullet](10,15);
for ( int i=0; i<numpt; i++ )
{
Vector3 pvel = (x+SWWMUtility.Vec3FromAngles(FRandom[Silverbullet](0,360),FRandom[Silverbullet](-90,90))*.6).unit()*FRandom[Silverbullet](6,20);
let s = Spawn("SWWMChip",pos);
s.scale *= 1.6;
s.vel = pvel;
}
numpt = Random[Silverbullet](16,20);
for ( int i=0; i<numpt; i++ )
{
let s = Spawn("FatChodeExtraArm",pos);
s.target = target;
}
numpt = Random[Silverbullet](8,10);
Vector3 y, z, dir;
double a, s;
[x, y, z] = swwm_CoordUtil.GetAxes(realpitch,realangle,0);
for ( int i=0; i<numpt; i++ )
{
let e = Spawn("FatChodeExplosionArm",pos);
e.target = target;
a = FRandom[Silverbullet](0,360);
s = FRandom[Silverbullet](0,.2);
dir = SWWMUtility.ConeSpread(x,y,z,a,s);
e.angle = atan2(dir.y,dir.x);
e.pitch = asin(-dir.z);
}
Spawn("ExploLight3",pos);
Spawn("FatChodeRing",pos);
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XEX1 ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ 1 Bright;
Stop;
}
}
Class FatChodeExtraArm : ExplodiumMagArm
{
Default
{
Obituary "$O_SILVERBULLET2";
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
vel *= 1.5;
}
}
Class FatChodeExplosionTrail : Actor
{
Default
{
RenderStyle "Add";
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOBLOCKMAP;
+FORCEXYBILLBOARD;
+NOTELEPORT;
+NOINTERACTION;
Scale 3.;
}
override void Tick()
{
if ( isFrozen() ) return;
if ( !CheckNoDelay() || (tics == -1) ) return;
if ( tics > 0 ) tics--;
while ( !tics )
{
if ( !SetState(CurState.NextState) )
return;
}
}
States
{
Spawn:
XEX1 ACEGIKMOQSUWY[ 1 Bright;
Stop;
}
}
Class FatChodeExplosionArm : Actor
{
Default
{
Obituary "$O_SILVERBULLET2";
DamageType 'Explodium';
Radius 0.1;
Height 0;
+NOGRAVITY;
+NOCLIP;
+DONTSPLASH;
+NOTELEPORT;
+NOBLOCKMAP;
+FORCERADIUSDMG;
+NODAMAGETHRUST;
+NOINTERACTION;
}
override void PostBeginPlay()
{
Super.PostBeginPlay();
reactiontime = Random[ExploS](15,20);
vel = SWWMUtility.Vec3FromAngles(angle,pitch)*FRandom[ExploS](20.,30.);
}
States
{
Spawn:
TNT1 A 1
{
if ( !(ReactionTime%2) )
SWWMUtility.DoExplosion(self,10+reactiontime,8000+1500*reactiontime,80+5*reactiontime,50,DE_THRUWALLS);
if ( level.IsPointInLevel(pos) )
{
A_SprayDecal("HugeRocketBlast",-32);
Spawn("FatChodeExplosionTrail",pos);
Vector3 pvel = SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90))*FRandom[ExploS](1,5);
let s = Spawn("SWWMHalfSmoke",pos);
s.vel = pvel+vel*.2;
s.SetShade(Color(1,1,1)*Random[ExploS](64,224));
s.special1 = Random[ExploS](1,4);
s.scale *= 2.4;
s.alpha *= .1+.4*(ReactionTime/15.);
}
A_CountDown();
}
Wait;
}
}

View file

@ -179,17 +179,15 @@ extend Class Sparkster
// Silver Bullet JET
extend Class SilverBullet
{
ui TextureID WeaponBox[2], ZoomBar, RoundTex[4];
ui TextureID WeaponBox[2], ZoomBar, RoundTex[2];
override void DrawWeapon( double TicFrac, double bx, double by, double hs, Vector2 ss )
{
if ( !WeaponBox[0] ) WeaponBox[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletDisplay.png");
if ( !WeaponBox[1] ) WeaponBox[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletZoomDisplay.png");
if ( !ZoomBar ) ZoomBar = TexMan.CheckForTexture("graphics/HUD/SilverBulletZoomBar.png");
if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSB.png");
if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCB.png");
if ( !RoundTex[2] ) RoundTex[2] = TexMan.CheckForTexture("graphics/HUD/SilverBulletXSBCasing.png");
if ( !RoundTex[3] ) RoundTex[3] = TexMan.CheckForTexture("graphics/HUD/SilverBulletFCBCasing.png");
if ( !RoundTex[0] ) RoundTex[0] = TexMan.CheckForTexture("graphics/HUD/SilverBulletRound.png");
if ( !RoundTex[1] ) RoundTex[1] = TexMan.CheckForTexture("graphics/HUD/SilverBulletCasing.png");
double zl = clamp(ZoomInter?ZoomInter.GetValue(TicFrac):(zoomlevel*10),0.,160.);
if ( zl >= 10. )
{
@ -199,9 +197,9 @@ extend Class SilverBullet
Screen.DrawTexture(ZoomBar,false,bx-18,by-37,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_WindowRightF,zw);
}
Screen.DrawTexture(WeaponBox[0],false,bx-20,by-29,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
if ( chambered ) Screen.DrawTexture(RoundTex[fcbchambered+fired*2],false,bx-18,by-27,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
if ( chambered ) Screen.DrawTexture(RoundTex[fired],false,bx-18,by-27,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
for ( int i=0; i<clipcount; i++ )
Screen.DrawTexture(RoundTex[fcbloaded],false,bx-18,by-(22-i*4),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
Screen.DrawTexture(RoundTex[0],false,bx-18,by-(22-i*4),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
}
}