nerfed Hellclaw ammo gain (it was intended to be rare! ;-)
[k8zan.git] / decorate / Weapons / Axe.txt
blobabfaf148cfc5f3dbfc274ff9d1fd19a851bc604e
1 ACTOR Axe : Weapon replaces Chainsaw {
2   +INVENTORY.IGNORESKILL
3   +WEAPON.NOALERT
4   +IGNORESKILL
5   +THRUGHOST
6   +MOVEWITHSECTOR
7   XScale 0.8
8   Yscale 0.9
9   Radius 36
10   Height 25
11   Inventory.PickupMessage "Got a hefty Axe."
12   Inventory.PickupSound "none"
13   Weapon.SelectionOrder 12
14   Weapon.SlotNumber 1
15   Weapon.SlotPriority 1
16   Weapon.Kickback 220
17   Tag "Axe"
18   //AttackSound "Weapons/AxeSwing"
19   //Inventory.Icon "AXEIA0"
20   Obituary "%o was split by %k's Axe."
22   States {
23   Spawn:
24     AXES A -1
25     Stop
27   Select:
28     stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
29     TNT1 A 0
30       {
31         A_PlaySound("Weapons/AxePickup", CHAN_WEAPON);
32         A_GiveInventory("HoldingAxe", 1);
33         if (GetCVarB('k8ZanMod_CustomCrosshairs')) A_SetCrosshair(2);
34       }
35     TNT1 A 0 A_Raise(666)
36     Goto Ready
38   Deselect:
39     stateinclude "QuickKick/QuickKickOnSelectDeselect.txt"
40     TNT1 A 1
41     Goto DeselectLoop
43   DeselectLoop:
44     TNT1 A 0 A_TakeInventory("HoldingAxe", 1)
45     TNT1 A 1 A_Lower(666)  // was zero duration
46     Loop
48   Ready:
49     TNT1 A 0 A_TakeInventory("QuickKickDisabled")
51   ReadyLoop:
52     TNT1 A 1 A_WeaponReady
53     Wait
55   Fire:
56     TNT1 A 2
57     TNT1 A 0 A_JumpIfInventory("AxeSwinging", 2, "Swing1")
58     TNT1 A 0 A_JumpIfInventory("AxeSwinging", 1, "Swing2")
59     TNT1 A 0
60       {
61         A_SetPitch(-0.6+pitch);
62         A_SetAngle(0.4+angle);
63       }
64     AXEF A 1 A_PlaySound("Weapons/AxeSwing", CHAN_WEAPON)
65     AXEF A 1 A_AlertMonsters(640)
66     TNT1 A 0 A_SetPitch(-0.6+pitch)
67     AXEF B 1 A_GiveInventory("AxeSwinging", 1)
68     TNT1 A 0 A_SetAngle(0.4+angle)
69     AXEF B 1 A_CustomPunch(5*random(6, 8), 1, 0, "AxeSlashPuff", 128, 0, 0, "ArmorBonus", "Weapons/AxeMelee", berserkerMult:8)
70     TNT1 A 0
71       {
72         A_FireProjectile("AxeCleave", 0, 0, 0, 0, FPF_NOAUTOAIM, 0);
73         A_FireProjectile("AxeCleave", 30, 0, 0, 0, FPF_NOAUTOAIM, 0);
74         A_FireProjectile("AxeCleave", 60, 0, 0, 0, FPF_NOAUTOAIM, 0);
75         A_FireProjectile("AxeCleave", 90, 0, 0, 0, FPF_NOAUTOAIM, 0);
76         A_FireProjectile("AxeCleave", 120, 0, 0, 0, FPF_NOAUTOAIM, 0);
77         A_FireProjectile("AxeCleave", 150, 0, 0, 0, FPF_NOAUTOAIM, 0);
78         A_FireProjectile("AxeCleave", -30, 0, 0, 0, FPF_NOAUTOAIM, 0);
79         A_FireProjectile("AxeCleave", -60, 0, 0, 0, FPF_NOAUTOAIM, 0);
80         A_FireProjectile("AxeCleave", -90, 0, 0, 0, FPF_NOAUTOAIM, 0);
81         A_FireProjectile("AxeCleave", -120, 0, 0, 0, FPF_NOAUTOAIM, 0);
82         A_FireProjectile("AxeCleave", -150, 0, 0, 0, FPF_NOAUTOAIM, 0);
83         A_SetPitch(0.6+pitch);
84       }
85     AXEF C 1
86     AXEF D 1
87     AXEF E 1
88     TNT1 A 0 A_SetPitch(0.6+pitch)
89     TNT1 A 8 A_WeaponReady
90     TNT1 A 1 A_TakeInventory("AxeSwinging", 2)
91     //TNT1 A 1 A_Refire
92     Goto ready
94   Swing2:
95     TNT1 A 4
96     TNT1 A 0 A_Jump(80, "Rage")
97   Swing2NoRage:
98     TNT1 A 0 A_SetPitch(-0.4+pitch)
99     TNT1 A 0 A_SetAngle(-0.4+angle)
100     AXEF F 1 A_PlaySound("Weapons/AxeSwing", CHAN_WEAPON)
101     AXEF H 2 A_GiveInventory("AxeSwinging", 1)
102     TNT1 A 0
103       {
104         A_SetPitch(-0.4+pitch);
105         A_SetAngle(-0.4+angle);
106       }
107     AXEF I 1 A_CustomPunch(5*random(5, 8), 1, 0, "AxeSlashPuff", 128, 0, 0, "ArmorBonus", "Weapons/AxeMelee", berserkerMult:8)
108     TNT1 A 0
109       {
110         A_FireProjectile("AxeCleave", 0, 0, 0, 0, FPF_NOAUTOAIM, 0);
111         A_FireProjectile("AxeCleave", 30, 0, 0, 0, FPF_NOAUTOAIM, 0);
112         A_FireProjectile("AxeCleave", 60, 0, 0, 0, FPF_NOAUTOAIM, 0);
113         A_FireProjectile("AxeCleave", 90, 0, 0, 0, FPF_NOAUTOAIM, 0);
114         A_FireProjectile("AxeCleave", 120, 0, 0, 0, FPF_NOAUTOAIM, 0);
115         A_FireProjectile("AxeCleave", 150, 0, 0, 0, FPF_NOAUTOAIM, 0);
116         A_FireProjectile("AxeCleave", -30, 0, 0, 0, FPF_NOAUTOAIM, 0);
117         A_FireProjectile("AxeCleave", -60, 0, 0, 0, FPF_NOAUTOAIM, 0);
118         A_FireProjectile("AxeCleave", -90, 0, 0, 0, FPF_NOAUTOAIM, 0);
119         A_FireProjectile("AxeCleave", -120, 0, 0, 0, FPF_NOAUTOAIM, 0);
120         A_FireProjectile("AxeCleave", -150, 0, 0, 0, FPF_NOAUTOAIM, 0);
121         A_SetPitch(0.4+pitch);
122       }
123     AXEF J 1 A_AlertMonsters(640)
124     AXEF K 1
125     TNT1 A 0 A_SetPitch(0.4+pitch)
126     TNT1 A 8 A_WeaponReady
127     TNT1 A 1 A_TakeInventory("AxeSwinging", 2)
128     //TNT1 A 1 A_Refire
129     Goto Ready
131   Swing1:
132     TNT1 A 8
133     TNT1 A 0 A_SetPitch(-0.6+pitch)
134     TNT1 A 0 A_SetAngle(0.4+angle)
135     AXEF A 1 A_PlaySound("Weapons/AxeSwing", CHAN_WEAPON)
136     AXEF A 1 A_AlertMonsters(640)
137     AXEF B 1 A_TakeInventory("AxeSwinging", 1)
138     TNT1 A 0
139       {
140         A_SetPitch(-0.6+pitch);
141         A_SetAngle(0.4+angle);
142       }
143     AXEF B 1 A_CustomPunch(5*random(6, 9), 1, 0, "AxeSlashPuff", 128, 0, 0, "ArmorBonus", "Weapons/AxeMelee", berserkerMult:8)
144     TNT1 A 0
145       {
146         A_FireProjectile("AxeCleave", 0, 0, 0, 0, FPF_NOAUTOAIM, 0);
147         A_FireProjectile("AxeCleave", 30, 0, 0, 0, FPF_NOAUTOAIM, 0);
148         A_FireProjectile("AxeCleave", 60, 0, 0, 0, FPF_NOAUTOAIM, 0);
149         A_FireProjectile("AxeCleave", 90, 0, 0, 0, FPF_NOAUTOAIM, 0);
150         A_FireProjectile("AxeCleave", 120, 0, 0, 0, FPF_NOAUTOAIM, 0);
151         A_FireProjectile("AxeCleave", 150, 0, 0, 0, FPF_NOAUTOAIM, 0);
152         A_FireProjectile("AxeCleave", -30, 0, 0, 0, FPF_NOAUTOAIM, 0);
153         A_FireProjectile("AxeCleave", -60, 0, 0, 0, FPF_NOAUTOAIM, 0);
154         A_FireProjectile("AxeCleave", -90, 0, 0, 0, FPF_NOAUTOAIM, 0);
155         A_FireProjectile("AxeCleave", -120, 0, 0, 0, FPF_NOAUTOAIM, 0);
156         A_FireProjectile("AxeCleave", -150, 0, 0, 0, FPF_NOAUTOAIM, 0);
157         A_SetPitch(0.6+pitch);
158       }
159     AXEF C 1
160     AXEF D 1
161     AXEF E 1
162     TNT1 A 0 A_SetPitch(0.6+pitch)
163     TNT1 A 8 A_WeaponReady
164     TNT1 A 1 A_TakeInventory("AxeSwinging", 2)
165     //TNT1 A 1 A_Refire
166     Goto Ready
168   Rage:
169     TNT1 A 0 A_PlaySound("Character/ZanRage", CHAN_VOICE)
170     Goto Swing2NoRage
172   AltFire:
173     TNT1 A 0 A_JumpIf(!GetCVarB('k8ZanMod_ThrowAxe'), "Fire")
174     TNT1 A 0 A_Jump(200, "AltRage")
175   AltFireNoRage:
176     TNT1 A 0 A_TakeInventory("HoldingAxe", 1)
177     TNT1 A 2
178     TNT1 A 0 A_SetPitch(-1.0+pitch)
179     AXEA A 1 A_PlaySound("Weapons/AxeSwing", CHAN_WEAPON)
180     TNT1 A 0 A_SetPitch(-1.0+pitch)
181     AXEA A 1 A_Recoil(-7)
182     TNT1 A 0 A_SetPitch(1.0+pitch)
183     AXEA B 2 A_FireCustomMissile("Axehurl", 0, 1, 0, 0, FPF_NOAUTOAIM)
184     TNT1 A 0 A_SetAngle(0.4+angle)
185     AXEA C 3 A_TakeInventory("Axe", 1)
186     TNT1 A 0 A_SetPitch(1.0+pitch)
187     AXEA D 2
188     Goto Deselect
190   AltRage:
191     TNT1 A 0 A_PlaySound("Character/ZanRage", CHAN_VOICE)
192     Goto AltFireNoRage
194     stateinclude "QuickKick/QuickKickInclude.txt"
195   }
199 ACTOR AxeSwinging : Ammo {
200   +INVENTORY.IGNORESKILL
201   Inventory.MaxAmount 2
202   Ammo.BackpackAmount 0
203   Ammo.BackpackMaxAmount 0
207 ACTOR Axehurl {
208   Radius 9
209   Height 10
210   Speed 45
211   Gravity 0.4
212   Damage (1*random(65, 75))
213   Projectile
214   ProjectileKickBack 240
215   //RipperLevel 3
216   DamageType "AxeHurl"
217   Decal "AxeHurlSmash"
218   SeeSound "Weapons/AxeHurling"
219   DeathSound "Weapons/AxeCrush"
220   Obituary "%o was split by %k's Axe."
221   +k8MissileHeadshots
222   +k8MissileHitscan  // block by "block hitscan" line flag, not by "block projectile" flag
223   //+DONTREFLECT
224   +THRUGHOST
225   //+RIPPER
226   //+LOWGRAVITY
227   -NOGRAVITY
228   -NOBLOCKMAP
230   States {
231   Spawn:
232     AXEP A 3
233     AXEP J 3
234     AXEP I 3
235     AXEP G 3
236     AXEP F 4
237     AXEP D 4
238     AXEP C 4
239     Loop
241   Death:
242     TNT1 A 0 A_AlertMonsters
243     AXES D 4
244     AXES C 4
245     AXES B 4
246     TNT1 A 0 A_SpawnItem("Axe")
247     Stop
248   }
252 ACTOR AxeSlashPuff {
253   AttackSound "Weapons/AxeMelee4"
254   DamageType "Axe"
255   +THRUGHOST
256   +NoTeleport
257   +k8AllowSimpleTick
259   States {
260   Spawn:
261     TNT1 A 1 A_SpawnItem("AxeSlashWall")
262     Stop
263   }
267 ACTOR AxeSlashWall {
268   +NoTeleport
269   +k8AllowSimpleTick
270   States {
271   Spawn:
272     TNT1 A 0
273     Stop
274   }
278 ACTOR AxeCleave : FastProjectile {
279   Radius 5
280   Height 5
281   Speed 46
282   Projectile
283   DamageType "AxeCleave"
284   // no need to, it does no damage anyway
285   +k8MissileHeadshots
286   +k8MissileHitscan  // block by "block hitscan" line flag, not by "block projectile" flag
287   +THRUGHOST
288   +NoTeleport
289   +k8AllowSimpleTick
291   States {
292     Spawn:
293       TNT1 A 2
294       Stop
296   Death:
297     TNT1 A 0 A_Explode(5*random(5, 7), 24, 0, 24, 0, 0, 0, " ", "AxeCleave")
298     Stop
299   }
303 // heretic
304 Actor (optional) Zan_MaceFragfireGun : Axe Replaces Mace {}
305 Actor (optional) Zan_MacePoweredFragfireGun : Axe Replaces MacePowered {}