small cleanups: use new k8vavoom decorate actions
[k8zan.git] / decorate / Weapons / PotionLauncher_Acid.txt
blob7295d883fda7cf69ab1491b3f6c8c4eba160e2a6
1 ACTOR PotionBoxAcid : Ammo /*replaces CellPack*/ /*6005*/ {
2   Radius 25
3   Height 16
4   XScale 0.60
5   YScale 0.55
6   Inventory.Amount 8
7   Inventory.MaxAmount 48
8   Ammo.BackpackAmount 16
9   Ammo.BackpackMaxAmount 64
10   Inventory.Icon "APOXA0"
11   Inventory.PickupMessage "Picked up a Box of Acid Potions."
12   Inventory.PickupSound "Ammo/PotionBoxPick"
14   States {
15   Spawn:
16     APOX A -1
17     Stop
18   }
22 ACTOR PotionLauncherAcidLoaded : Ammo {
23   Inventory.Amount 0
24   Inventory.MaxAmount 8
25   Ammo.BackpackAmount 0
26   Ammo.BackpackMaxAmount 8
27   +INVENTORY.IGNORESKILL
31 ACTOR PotionLauncherAcid : Weapon /*6000*/ {
32   Xscale 0.50
33   Yscale 0.47
34   Radius 28
35   Height 18
36   +INVENTORY.UNDROPPABLE
37   +WEAPON.NOALERT
38   //+WEAPON.NO_AUTO_SWITCH
39   +WEAPON.AMMO_OPTIONAL
40   //+WEAPON.ALT_USES_BOTH
41   //Inventory.Icon "WPOXA0"
42   Inventory.PickupMessage "Got a Potion Launcher loaded with few Acid Potions."
43   Inventory.PickupSound "Weapons/PoxCycle"
44   Weapon.SelectionOrder 7
45   //Weapon.MinSelectionAmmo1 0
46   //Weapon.MinSelectionAmmo2 1
47   Weapon.AmmoType1 "PotionLauncherAcidLoaded"
48   Weapon.AmmoGive1 0
49   Weapon.AmmoUse1 1
50   Weapon.AmmoType2 "PotionBoxAcid"
51   Weapon.AmmoGive2 4
52   Weapon.AmmoUse2 0
53   Weapon.SlotNumber 6
54   Tag "Acid Poition Launcher"
56   States {
57   Spawn:
58     WPOX B -1
59     Stop
61   PickupWeapon:
62     // always has some loaded ammo on first pickup
63     TNT1 A 0 A_GiveInventory("PotionLauncherAcidLoaded", random(0, 2))
64     Stop
66   Select:
67     stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
68     TNT1 A 0 A_GiveInventory("HoldingPotionLauncher", 1)
69     TNT1 A 0 { if (GetCVarB('k8ZanMod_CustomCrosshairs')) A_SetCrosshair(6); }
70     TNT1 A 0 A_Raise(666)
71     Goto Ready
73   Deselect:
74     stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
75     WPOR A 1 Offset(-15, 40)
76     WPOR A 1 Offset(-30, 50)
77     WPOR A 1 Offset(-50, 65)
78     WPOR A 1 Offset(-70, 80)
79     Goto DeselectLoop
81   DeselectLoop:
82     TNT1 A 0 A_TakeInventory("HoldingPotionLauncher", 1)
83     TNT1 A 1 A_Lower(666)  // was zero duration
84     Loop
86   Ready:
87     TNT1 A 8
88     TNT1 A 0 A_PlaySound("Weapons/PoxCycle", CHAN_WEAPON, 0.6)
89     WPOR A 1 Offset(-70, 80)
90     WPOR A 1 Offset(-50, 65)
91     WPOR A 1 Offset(-30, 50)
92     WPOR A 1 Offset(-15, 40)
93     TNT1 A 0 A_TakeInventory("QuickKickDisabled")
94     Goto ReadyIdle
96   ReadyIdle:
97     //TNT1 A 0 A_JumpIfNotInventory("PotionLauncherAcidLoaded", "ReadyEmptyGun")
98     WPOR A 4 A_WeaponReady(WRF_ALLOWRELOAD)
99     WPOR AAAAA 4 A_WeaponReady(WRF_ALLOWRELOAD | WRF_NOFIRE)
100     Loop
102   Fire:
103     TNT1 A 0 A_JumpIfNoAmmo("Reload")
104     TNT1 A 0 A_JumpIf(waterlevel==3, "UnderwaterDryFire")
105     //k8: do not horizontally ofsset spike shots, i want them to go through the crosshair
106     WSPI A 0 A_FireProjectile("PotionAcid", 0, 1, /*4*/random(-2, 2), 0, FPF_NOAUTOAIM, 0)
107     TNT1 A 0 A_PlaySound("Weapons/PoxFire", CHAN_WEAPON)
108     TNT1 A 0 A_GunFlash
109     WPOR A 2 A_SetPitch(0.50+pitch)
110     WPOR A 1 A_SetPitch(-0.50+pitch)
111     WPOF A 2 A_SetPitch(0.50+pitch)
112     WPOF A 1 A_SetPitch(-0.50+pitch)
113     WPOF B 2 A_SetPitch(0.50+pitch)
114     WPOF B 1 A_SetPitch(-0.50+pitch)
115     WPOF C 3
116     TNT1 A 0 A_PlaySound("Weapons/PoxCycle", CHAN_WEAPON)
117     WPOF D 3
118     WPOR A 0 A_AlertMonsters
119     WPOR A 12 A_WeaponReady(WRF_NOFIRE | WRF_ALLOWRELOAD)
120     Goto ReadyIdle
122   AltFire:
123     TNT1 A 0 A_JumpIfNotInventory("PotionLauncherAcidLoaded", "Reload")
124     TNT1 A 0 A_JumpIf(waterlevel==3, "UnderwaterDryFire")
125     TNT1 A 0 A_TakeInventory("PotionLauncherAcidLoaded", 1)
126     WSPI A 0 A_FireProjectile("PotionBounceAcid", 0, 1, /*4*/random(-2, 2), 0, FPF_NOAUTOAIM, 0)
127     TNT1 A 0 A_PlaySound("Weapons/PoxFire", CHAN_WEAPON)
128     TNT1 A 0 A_GunFlash
129     WPOR A 2 A_SetPitch(0.50+pitch)
130     WPOR A 1 A_SetPitch(-0.50+pitch)
131     WPOF A 2 A_SetPitch(0.50+pitch)
132     WPOF A 1 A_SetPitch(-0.50+pitch)
133     WPOF B 2 A_SetPitch(0.50+pitch)
134     WPOF B 1 A_SetPitch(-0.50+pitch)
135     WPOF C 3
136     TNT1 A 0 A_PlaySound("Weapons/PoxCycle", CHAN_WEAPON)
137     WPOF D 3
138     WPOR A 0 A_AlertMonsters
139     WPOR A 12 A_WeaponReady(WRF_NOFIRE | WRF_ALLOWRELOAD)
140     Goto ReadyIdle
142   Flash:
143     WPOH A 1 A_Light1
144     WPOH B 1 A_Light1
145     WPOH C 1 A_Light1
146     WPOH D 3 A_Light0
147     WPOH E 3 A_Light0
148     TNT1 A 0 A_Light0
149     Goto LightDone
151   DryFire:
152     WPOR A 16 A_PlaySound("Ammo/SpikeGunPick", CHAN_WEAPON, 0.2)
153     Goto ReadyIdle
155   UnderwaterDryFire:
156     TNT1 A 0 A_PlaySound("Ammo/SpikeGunPick", CHAN_WEAPON, 0.4)
157     WPOR A 24
158     Goto ReadyIdle
160   Reload:
161     WFRR A 0 A_JumpIfInventory("PotionLauncherAcidLoaded", 8, "ReadyIdle")
162     WFRR A 0 A_JumpIfInventory("PotionBoxAcid", 1, "ReloadWork")
163     WFRR A 0 A_JumpIfNoAmmo("Dryfire")
164     WPOR A 1 A_JumpIfNotInventory("PotionBoxAcid", "ReadyIdle")
165     Goto ReadyIdle
167   ReloadWork:
168     WPOL A 3 A_PlaySound("Weapons/PoxReloadA", CHAN_WEAPON)
169     WPOL B 3
170     WPOL C 3
171     WPOL D 3
172     WPOL E 2
173     Goto ReloadLoop
175   ReloadLoop:
176     TNT1 A 0 A_JumpIfNotInventory("PotionLauncherAcidLoaded", 2)
177     WPOL E 1 A_WeaponReady
178     TNT1 A 0 A_TakeInventory("PotionBoxAcid", 1)
179     TNT1 A 0 A_GiveInventory("PotionLauncherAcidLoaded", 1)
180     WPOL E 3 A_PlaySound("Weapons/PoxReloadB", CHAN_WEAPON)
181     WPOL D 4 Offset(0, 40)
182     TNT1 A 0 A_JumpIfInventory("PotionLauncherAcidLoaded", 8, "ReloadFinish")
183     TNT1 A 0 A_JumpIfInventory("PotionBoxAcid", 1, "ReloadLoop")
184     Goto ReloadFinish
186   ReloadFinish:
187     WPOL D 3
188     WPOL C 3
189     WPOL B 3 A_PlaySound("Weapons/PoxReloadC", CHAN_WEAPON)
190     WPOL A 2
191     Goto ReadyIdle
193     stateinclude "QuickKick/QuickKickInclude.txt"
194   }
198 ACTOR PotionAcid {
199   Scale 0.7
200   Radius 5
201   Height 4
202   Mass 25
203   Speed 50
204   Gravity 0.6
205   Projectile
206   ProjectileKickBack 100
207   //Damage(1*random(50, 70))
208   //DamageType "PoxAcid"
209   +FOILINVUL
210   +DONTREFLECT
211   -NOGRAVITY
212   +THRUGHOST
213   +NOBLOCKMAP
214   //+NOEXTREMEDEATH
215   +NODAMAGETHRUST
216   SeeSound "Weapons/BoltSee"
217   DeathSound "Weapons/PotionDie"
218   Obituary "%o was dissolved by %k's Acid Potion."
219   Decal "AcidDecal"
221   States {
222   Spawn:
223     PPOT Y 1
224     TNT1 A 0 A_JumpIf(WaterLevel>0, "Death")
225     Loop
227   Death:
228     TNT1 A 0 A_Scream
229     TNT1 A 0 A_Explode(random(140, 170), 128, XF_EXPLICITDAMAGETYPE|(GetCVarB('k8ZanMod_DamageSelfPotion') ? XF_HURTSOURCE : 0), True, 32, 0, 0, "", "PoxAcid")
230     TNT1 A 0 A_SpawnItemEx("AcidSplash", 0, 0, 1, 0, 0, 3, 0, SXF_NOCHECKPOSITION, 0)
231     TNT1 AAAAAAA 0 A_SpawnItemEx("AcidSplashSmallA", random(-16, 16), random(-16, 16), random(0, 16), random(-5, 5), random(-5, 5), random(4, 8), 0, SXF_NOCHECKPOSITION, 0)
232     TNT1 AAAAAAA 0 A_SpawnItemEx("AcidSplashSmallB", random(-16, 16), random(-16, 16), random(0, 16), random(-5, 5), random(-5, 5), random(4, 8), 0, SXF_NOCHECKPOSITION, 0)
233     TNT1 AAAAAAA 0 A_SpawnItemEx("AcidSplashSmallC", random(-16, 16), random(-16, 16), random(0, 16), random(-5, 5), random(-5, 5), random(4, 8), 0, SXF_NOCHECKPOSITION, 0)
234     TNT1 A 0 A_SpawnItemEx("JunkTempShrapnelA", 0, 0, 0, random(-5, 5), random(-5, 5), random(0, 4), 0, SXF_NOCHECKPOSITION, 150)
235     TNT1 A 0 A_SpawnItemEx("JunkTempShrapnelB", 0, 0, 0, random(-5, 5), random(-5, 5), random(0, 4), 0, SXF_NOCHECKPOSITION, 0)
236     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardA", 0, 0, 0, random(0, 5), random(0, 5), random(0, 8), 0, SXF_NOCHECKPOSITION, 0)
237     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardA", 0, 0, 0, random(-5, 0), random(-5, 0), random(0, 8), 0, SXF_NOCHECKPOSITION, 50)
238     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardB", 0, 0, 0, random(0, 5), random(0, 5), random(0, 6), 0, SXF_NOCHECKPOSITION, 0)
239     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardB", 0, 0, 0, random(-5, 0), random(-5, 0), random(0, 6), 0, SXF_NOCHECKPOSITION, 150)
240     TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("MagicSparkGreen", random(-5, 5), random(-5, 5), random(0, 5), random(-15, 15), random(-15, 15), random(0, 15), 0, SXF_NOCHECKPOSITION, 0)
241     TNT1 A 30 A_Quake(1, 30, 0, 512)
242     Stop
243   }
247 ACTOR PotionBounceAcid {
248   Scale 0.7
249   Radius 5
250   Height 4
251   Mass 25
252   Speed 50
253   Gravity 0.6
254   Projectile
255   ProjectileKickBack 100
256   Damage(1*random(50, 70))
257   DamageType "PoxBlunt"
258   +THRUGHOST
259   //+NOEXTREMEDEATH
260   -NOGRAVITY
261   +NOBLOCKMAP
262   +BOUNCEONFLOORS
263   +BOUNCEONWALLS
264   +BOUNCEONCEILINGS
265   +ALLOWBOUNCEONACTORS
266   +BOUNCEONACTORS
267   BounceType Hexen
268   BounceFactor 0.30
269   WallBounceFactor 0.30
270   BounceCount 6
271   BounceSound "Ammo/DepletedShardBounce"
272   SeeSound "Weapons/BoltSee"
273   DeathSound "Weapons/PotionDie"
274   Obituary "%o was knocked out cold by %k's Acid Potion."
276   States {
277   Spawn:
278     PPOT Y 1
279     TNT1 A 0 A_JumpIf(WaterLevel>0, "Death")
280     Loop
282   Death:
283     TNT1 A 0 A_Scream
284     TNT1 A 0 A_Changeflag("FOILINVUL", 1)
285     TNT1 A 0 A_Explode(random(140, 170), 128, XF_EXPLICITDAMAGETYPE|(GetCVarB('k8ZanMod_DamageSelfPotion') ? XF_HURTSOURCE : 0), True, 32, 0, 0, "", "PoxAcid")
286     TNT1 A 0 A_SpawnItemEx("AcidSplash", 0, 0, 1, 0, 0, 3, 0, SXF_NOCHECKPOSITION, 0)
287     TNT1 AAAAAAA 0 A_SpawnItemEx("AcidSplashSmallA", random(-16, 16), random(-16, 16), random(0, 16), random(-5, 5), random(-5, 5), random(4, 8), 0, SXF_NOCHECKPOSITION, 0)
288     TNT1 AAAAAAA 0 A_SpawnItemEx("AcidSplashSmallB", random(-16, 16), random(-16, 16), random(0, 16), random(-5, 5), random(-5, 5), random(4, 8), 0, SXF_NOCHECKPOSITION, 0)
289     TNT1 AAAAAAA 0 A_SpawnItemEx("AcidSplashSmallC", random(-16, 16), random(-16, 16), random(0, 16), random(-5, 5), random(-5, 5), random(4, 8), 0, SXF_NOCHECKPOSITION, 0)
290     TNT1 A 0 A_SpawnItemEx("JunkTempShrapnelA", 0, 0, 0, random(-5, 5), random(-5, 5), random(0, 4), 0, SXF_NOCHECKPOSITION, 150)
291     TNT1 A 0 A_SpawnItemEx("JunkTempShrapnelB", 0, 0, 0, random(-5, 5), random(-5, 5), random(0, 4), 0, SXF_NOCHECKPOSITION, 0)
292     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardA", 0, 0, 0, random(0, 5), random(0, 5), random(0, 8), 0, SXF_NOCHECKPOSITION, 0)
293     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardA", 0, 0, 0, random(-5, 0), random(-5, 0), random(0, 8), 0, SXF_NOCHECKPOSITION, 50)
294     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardB", 0, 0, 0, random(0, 5), random(0, 5), random(0, 6), 0, SXF_NOCHECKPOSITION, 0)
295     TNT1 A 0 A_SpawnItemEx("JunkTempGlassShardB", 0, 0, 0, random(-5, 0), random(-5, 0), random(0, 6), 0, SXF_NOCHECKPOSITION, 150)
296     TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("MagicSparkGreen", random(-5, 5), random(-5, 5), random(0, 5), random(-15, 15), random(-15, 15), random(0, 15), 0, SXF_NOCHECKPOSITION, 0)
297     TNT1 A 30 A_Quake(1, 30, 0, 512)
298     Stop
299   }
303 ACTOR AcidSplash {
304   Radius 5
305   Height 5
306   Scale 1.0
307   Gravity 0.7
308   +MISSILE
309   +NOBLOCKMAP
310   +FRIGHTENED
311   +NOTELEPORT
312   +THRUGHOST
313   +FLOORCLIP
314   +NoTeleport
315   +k8AllowSimpleTick
316   //Decal "AcidDecal"
318   States {
319   Spawn:
320     TNT1 A 0
321     TNT1 A 0 A_JumpIf(!IsFlatDecalsAllowed(), "NoFlatDecals")
322     TNT1 A 0 A_SetFlatDecal("AcidDecal");
323     Goto DieNow
324   NoFlatDecals:
325     PPOT BCD 4 bright
326     PPOT E 1000 bright
327     Stop
329   Death:
330     TNT1 A 0 A_SpawnItemEx("AcidSplashFloor", 0, 0, 0, random(0, 0), random(0, 0), random(0, 0), 0, SXF_NOCHECKPOSITION, 0)
331   DieNow:
332     TNT1 A 0 A_Playsound("Weapons/AcidSizzle", CHAN_AUTO)
333     TNT1 A 0
334     Stop
335   }
339 ACTOR AcidSplashSmallA {
340   Radius 5
341   Height 5
342   Scale 0.4
343   Gravity 0.7
344   //Damage 10
345   //DamageType "PoxAcid"
346   //+FOILINVUL
347   +MISSILE
348   +NOBLOCKMAP
349   +FRIGHTENED
350   +NOTELEPORT
351   +THRUGHOST
352   +FLOORCLIP
353   +NoTeleport
354   +k8AllowSimpleTick
355   Decal "AcidSplashSmall"
357   States {
358   Spawn:
359     PPOT F 1 Bright
360     Loop
362   Death:
363     TNT1 A 0 A_Playsound("Weapons/AcidSizzle", CHAN_AUTO)
364     //TNT1 A 0 A_SpawnItemEx("AcidSplashFloorSmall", 0, 0, 0, random(0, 0), random(0, 0), random(0, 0), 0, SXF_NOCHECKPOSITION, 0)
365     Stop
366   }
370 ACTOR AcidSplashSmallB {
371   Radius 5
372   Height 5
373   Scale 0.5
374   Gravity 0.7
375   //Damage 10
376   //DamageType "PoxAcid"
377   //+FOILINVUL
378   +MISSILE
379   +NOBLOCKMAP
380   +FRIGHTENED
381   +NOTELEPORT
382   +THRUGHOST
383   +FLOORCLIP
384   +NoTeleport
385   +k8AllowSimpleTick
386   Decal "AcidSplashSmall"
388   States {
389   Spawn:
390     PPOT G 1 Bright
391     Loop
393   Death:
394     TNT1 A 0 A_Playsound("Weapons/AcidSizzle", CHAN_AUTO)
395     //TNT1 A 0 A_SpawnItemEx("AcidSplashFloorSmall", 0, 0, 0, random(0, 0), random(0, 0), random(0, 0), 0, SXF_NOCHECKPOSITION, 0)
396     Stop
397   }
401 ACTOR AcidSplashSmallC {
402   Radius 5
403   Height 5
404   Scale 0.6
405   Gravity 0.7
406   //Damage 10
407   //DamageType "PoxAcid"
408   //+FOILINVUL
409   +MISSILE
410   +NOBLOCKMAP
411   +FRIGHTENED
412   +NOTELEPORT
413   +THRUGHOST
414   +FLOORCLIP
415   +NoTeleport
416   +k8AllowSimpleTick
417   Decal "AcidSplashSmall"
419   States {
420   Spawn:
421     PPOT H 1 Bright
422     Loop
424   Death:
425     TNT1 A 0 A_Playsound("Weapons/AcidSizzle", CHAN_AUTO)
426     //TNT1 A 0 A_SpawnItemEx("AcidSplashFloorSmall", 0, 0, 0, random(0, 0), random(0, 0), random(0, 0), 0, SXF_NOCHECKPOSITION, 0)
427     Stop
428   }
432 ACTOR AcidSplashFloor {
433   Radius 5
434   Height 5
435   Scale 1.3
436   +MOVEWITHSECTOR
437   +DROPOFF
438   +NOBLOCKMAP
439   +NOTELEPORT
440   +FLATSPRITE
441   +FLOORCLIP
442   +NoTeleport
443   +k8AllowSimpleTick
445   States {
446   Spawn:
447     //PPOT A 2100 bright
448     //PPOT A random(1100, 2100) bright
449     PPOT A random(15, 35) bright
450     PPOT A 0 A_FadeOut(0.01)
451     Loop
452   }
457 ACTOR AcidSplashFloorSmall {
458   Radius 5
459   Height 5
460   Scale 0.4
461   +MOVEWITHSECTOR
462   +DROPOFF
463   +NOBLOCKMAP
464   +NOTELEPORT
465   +FLATSPRITE
466   +FLOORCLIP
467   +NoTeleport
468   +k8AllowSimpleTick
470   States {
471   Spawn:
472     PPOT A 2100 bright
473     Stop
474   }