1 ACTOR FragfireCan : Ammo {
6 Inventory.MaxAmount 240
7 Ammo.BackpackAmount 160
8 Ammo.BackpackMaxAmount 400
9 Inventory.Icon "AFRAA0"
10 Inventory.PickupMessage "Picked up a Fragfire Can."
11 Inventory.PickupSound "Ammo/FragfireCanPick"
15 ACTOR FragfireCanBox : FragfireCan replaces ShellBox {
17 Inventory.PickupMessage "Picked up a Fragfire Can."
18 Inventory.PickupSound "Ammo/FragfireCanPick"
28 Actor FragfireCanHalf : FragfireCan replaces Shell {
30 Inventory.PickupMessage "Picked up a half full Fragfire Can."
40 ACTOR FragfireCanDropped {
58 BounceSound "Ammo/FragfireCanBounce"
73 ACTOR FragfireGunLoaded : Ammo {
75 Inventory.MaxAmount 80
77 Ammo.BackpackMaxAmount 80
78 +INVENTORY.IGNORESKILL
82 ACTOR FragfireGun : Weapon replaces Shotgun {
87 +INVENTORY.UNDROPPABLE
89 //+WEAPON.NO_AUTO_SWITCH
91 //+WEAPON.ALT_USES_BOTH
92 Inventory.PickupMessage "Got a Fragfire Gun."
93 Inventory.PickupSound "Ammo/FragfireGunPick"
94 //Inventory.Icon "WFRAA0"
96 Weapon.SelectionOrder 1
97 //Weapon.MinSelectionAmmo1 0
98 //Weapon.MinSelectionAmmo2 1
99 Weapon.AmmoType1 "FragfireGunLoaded"
102 Weapon.AmmoType2 "FragfireCan"
107 var int user_lowPauseCount;
109 var int user_LoadCount;
110 var int user_ClipCount;
118 // always has some loaded ammo on first pickup
119 TNT1 A 0 A_GiveInventory("FragfireGunLoaded", random(1, 6)*10)
123 stateinclude "decorate/Weapons/QuickKick/QuickKickOnSelectDeselect.txt"
126 A_GiveInventory("HoldingFragfireGun", 1);
127 if (GetCVarB('k8ZanMod_CustomCrosshairs')) A_SetCrosshair(4);
129 TNT1 A 0 A_Raise(666)
133 stateinclude "decorate/Weapons/QuickKick/QuickKickOnSelectDeselect.txt"
134 WFRR A 1 Offset(-15, 40)
135 WFRR A 1 Offset(-30, 50)
136 WFRR A 1 Offset(-50, 65)
137 WFRR A 1 Offset(-70, 80)
141 TNT1 A 0 A_TakeInventory("HoldingFragfireGun", 1)
142 TNT1 A 1 A_Lower(666) // was zero duration
147 TNT1 A 0 A_PlaySound("Ammo/FragfireGunPick", CHAN_WEAPON, 0.6)
148 WFRR A 1 Offset(-70, 80)
149 WFRR A 1 Offset(-50, 65)
150 WFRR A 1 Offset(-30, 50)
151 WFRR A 1 Offset(-15, 40)
152 TNT1 A 0 A_TakeInventory("QuickKickDisabled")
159 if (CountInv("FragfireGunLoaded") <= 3*8) {
160 user_lowPauseCount -= 1;
161 if (user_lowPauseCount < 1) {
162 if (GetCVarB("k8ZanMod_WarnLowAmmo")) {
163 A_PlaySound("weapons/zanweapon/lowammo", CHAN_VOICE, 1.0);
165 if (CountInv("FragfireGunLoaded") > 2*8) user_lowPauseCount = 40/8;
166 else if (CountInv("FragfireGunLoaded") > 1*8) user_lowPauseCount = 30/8;
167 else if (CountInv("FragfireGunLoaded") > 0*8) user_lowPauseCount = 20/8;
168 else user_lowPauseCount = 10; // one frame
172 TNT1 A 0 Offset(-15, 40) A_JumpIf(CountInv("FragfireGunLoaded")==0, "ReadyEmptyGun")
173 WFRR AA 4 A_WeaponReady(WRF_ALLOWRELOAD)
177 WFRR B 1 Offset(-15, 40) A_WeaponReady(WRF_ALLOWRELOAD)
179 Goto ReadyIdle // for sound
182 TNT1 A 0 A_JumpIfNoAmmo("Reload")
183 TNT1 A 0 A_JumpIf(waterlevel==3, "UnderwaterDryFire")
187 A_PlaySound("Weapons/FragfireGunFire", CHAN_WEAPON);
188 A_SetPitch(-1.0+pitch);
189 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(-1, 3));
191 TNT1 A 0 A_JumpIfNoAmmo("OutOfPellets")
194 A_SetPitch(-1.0+pitch);
195 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(0, 4));
197 TNT1 A 0 A_JumpIfNoAmmo("OutOfPellets")
200 A_SetPitch(-1.0+pitch);
201 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(1, 5));
203 TNT1 A 0 A_JumpIfNoAmmo("OutOfPellets")
206 A_SetPitch(-1.0+pitch);
207 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(2, 6));
209 TNT1 A 0 A_JumpIfNoAmmo("OutOfPellets")
212 A_SetPitch(-1.0+pitch);
213 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(3, 7));
215 TNT1 A 0 A_JumpIfNoAmmo("OutOfPellets")
218 A_SetPitch(-1.0+pitch);
219 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(4, 8));
221 TNT1 A 0 A_JumpIfNoAmmo("OutOfPellets")
224 A_SetPitch(-1.0+pitch);
225 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(5, 9));
227 TNT1 A 0 A_JumpIfNoAmmo("OutOfPellets")
230 A_SetPitch(-1.0+pitch);
231 A_FireProjectile("FragShot", frandom(-2.5, 2.5), 1, /*3*/0, 0, FPF_NOAUTOAIM, frandom(6, 10));
233 WFRR A 8 //Offset(0, 33)
234 WFRR A 2 A_SetPitch(1.50+pitch)
235 WFRF A 1 //A_PlaySound("Weapons/FragfireGunPump", CHAN_WEAPON)
236 WFRF A 1 A_SetPitch(1.50+pitch)
237 WFRF B 2 A_SetPitch(1.50+pitch)
238 WFRF C 2 A_SetPitch(1.50+pitch)
239 WFRF D 2 A_PlaySound("Weapons/FragfireGunPump", CHAN_WEAPON)
240 WFRF C 2 A_SetPitch(1.00+pitch)
241 WFRF B 2 A_SetPitch(1.00+pitch)
242 WFRF A 2 A_AlertMonsters
246 WFRR B 1 A_SetPitch(1.00+pitch)
247 WFRR B 1 A_SetPitch(1.00+pitch)
248 WFRR B 1 A_SetPitch(1.00+pitch)
252 //TNT1 A 0 A_JumpIfNoAmmo("Reload")
253 TNT1 A 0 A_JumpIf(CountInv("FragfireGunLoaded")==0, "Reload")
254 TNT1 A 0 A_JumpIf(waterlevel==3, "UnderwaterDryFire")
257 A_TakeInventory("FragfireGunLoaded", 1);
259 A_SetPitch(-0.3+pitch);
260 A_FireCustomMissile("FlameShot", frandom(-3, 3), 0, 4, -3, FPF_NOAUTOAIM, frandom(-3, 3));
262 WFRR A 2 //Offset(0, 33)
265 A_SetPitch(0.15+pitch);
268 WFRR A 1 A_SetPitch(0.15+pitch)
273 TNT1 A 0 A_PlaySound("Ammo/SpikeGunPick", CHAN_WEAPON, 0.4)
278 TNT1 A 0 A_PlaySound("Ammo/SpikeGunPick", CHAN_WEAPON, 0.2)
290 WFRR A 0 A_JumpIfInventory("FragfireGunLoaded", 80, "ReloadFinish")
291 WFRR A 0 A_JumpIfInventory("FragfireCan", 1, "ReloadWork")
292 TNT1 A 0 A_JumpIfNoAmmo("DryFire")
293 //WFRR B 1 A_JumpIf(CountInv("FragfireCan")==0, "ReadyIdle")
297 WFRF B 2 A_PlaySound("Weapons/FragReloadA", CHAN_WEAPON);
302 WFRL C 3 A_SpawnItem("FragfireCanDropped", -1, 16, 0)
304 WFRL D 3 A_PlaySound("Weapons/FragReloadB", CHAN_WEAPON)
309 WFRF B 2 A_PlaySound("Weapons/FragfireGunPump", CHAN_WEAPON)
319 // if reload in not cheating, drop unused ammo
320 if (!GetCVar("k8ZanMod_CheatReload")) {
321 A_TakeInventory("FragfireGunLoaded", 666);
323 user_ClipCount = CountInv("FragfireCan");
324 user_LoadCount = 80-CountInv("FragfireGunLoaded");
325 if (user_LoadCount > 0) {
326 if (user_LoadCount > user_ClipCount) user_LoadCount = user_ClipCount;
327 A_TakeInventory("FragfireCan", user_LoadCount);
328 A_GiveInventory("FragfireGunLoaded", user_LoadCount);
330 user_lowPauseCount = 0;
337 stateinclude "decorate/Weapons/QuickKick/QuickKickInclude.txt"
342 ACTOR FragShot : FastProjectile {
350 ProjectileKickBack 280
351 Damage(12*random(1, 1))
352 DamageType "FragfireGun"
358 DeathSound "Weapons/SpikeShotDeath"
359 //SeeSound "Weapons/FragfireGunFire"
360 Obituary "%o was turned into a charred pile of gore by %k's frag shot."
365 PFRA A 1 bright A_SpawnItemEx("ProjectileFragShotTrail", Random(-24, -8), 0, 0, random(1, 4), 0, 0, 0, SXF_TRANSFERPITCH, 0)
369 TNT1 A 0 A_SpawnItemEx("SparkDie", 0, 0, 0, Random(-4, 4), Random(-4, 4), Random(-3, 5), 0, 0, 100)
370 TNT1 A 0 A_SpawnItemEx("SparkDie", 0, 0, 0, Random(-5, 5), Random(-5, 5), Random(-2, 6), 0, 0, 200)
376 ACTOR FlameShot /*: FastProjectile*/ {
382 Damage (1*random(2, 6))
399 SeeSound "Weapons/FlameShot"
400 DeathSound "Weapons/FlameDeath"
401 Obituary "%o got roasted by %k."
407 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
409 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
411 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
413 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
415 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
417 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
419 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
421 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
423 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
425 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
427 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
429 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
431 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
433 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
435 TNT1 A 0 A_JumpIf(waterlevel>=1, "WaterDeath")
440 TNT1 A 0 A_SpawnItemEx("FireTinyDie1", 0, 0, 1, 0, 0, 0, 0, 0, 190)
441 TNT1 A 0 A_SpawnItemEx("FireTinyDie2", 0, 0, 1, 0, 0, 0, 0, 0, 180)
442 TNT1 A 0 A_SpawnItemEx("FireTinyDie3", 0, 0, 1, 0, 0, 0, 0, 0, 170)
443 TNT1 A 0 A_SpawnItemEx("SteamPuffMedium", 0, 0, -25)
444 TNT1 A 0 A_PlaySound("Weapons/FlameDeath", CHAN_WEAPON)
445 PFRA M 2 bright A_Explode(random(8, 12), 160, false, 80, 0, 0)
450 PFRA Q 2 bright A_PlaySound("Weapons/SteamHiss", CHAN_WEAPON)
451 TNT1 A 0 A_SpawnItemEx("SteamPuffSmall")
452 TNT1 A 0 A_SpawnItemEx("SteamPuffMedium")
453 //TNT1 A 0 A_PlaySound("Weapons/SteamHiss", CHAN_WEAPON)
459 ACTOR ProjectileFragShotTrail {
470 TNT1 A 0 A_JumpIf(waterlevel>1, "WaterDeath")
482 actor (optional) ZanSSGReplacer : RandomSpawner replaces SuperShotgun {
483 DropItem "FragfireGun"
489 Actor (optional) Zan_CrossbowFragfireCan : FragfireCanBox Replaces CrossbowAmmo {}
490 Actor (optional) Zan_CrossbowFragfireCanBox : FragfireCanBox Replaces CrossbowHefty {}
492 Actor (optional) Zan_CrossbowFragfireGun : FragfireGun Replaces Crossbow {}
493 Actor (optional) Zan_CrossbowPoweredFragfireGun : FragfireGun Replaces CrossbowPowered {}
497 Actor (optional) Zan_Mana2FragfireCan : FragfireCanBox Replaces Mana2 {}
499 Actor (optional) Zan_TPH_AmmoShotgun : FragfireCanBox Replaces AmmoShotgun {}
500 //Actor (optional) Zan_TPH_TPHShotgun : FragfireGun Replaces TPHShotgun {} //SSG
501 Actor (optional) Zan_TPH_TPHRifle : FragfireGun Replaces TPHRifle {}