[Request] Punch gun

Requests go in THIS forum!
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
TheRailgunner
Posts: 1556
Joined: Mon Jul 08, 2013 10:08 pm

Re: [Request] Punch gun

Post by TheRailgunner »

Damn. A lot simpler then the convoluted mess I've got for it:

Code: Select all

Actor FistX : XWeapon Replaces Fist
{
	Weapon.SlotNumber 1
	Weapon.Kickback 300
	AttackSound "Weapons/fistx/Hit"
	States
	{
	Ready: 
      1FIR A 1 A_WeaponReady
      Loop 
   Deselect: 
      1FIR A 1 Offset(3,35)
		1FIR A 1 Offset(7,39)
		1FIR A 1 Offset(12,45)
		1FIR A 1 Offset(20,52)
		1FIR A 1 Offset(40,60)
		1FIR A 1 Offset(70,69)
		1FIR A 1 Offset(120,79)
		TNT1 A 10
	DeselectLoop:
		TNT1 A 1 A_Lower 
      Loop 
   Select: 
		1FIR A 1 Offset(120,79)
		1FIR A 1 Offset(70,69)
		1FIR A 1 Offset(40,60)
		1FIR A 1 Offset(20,52)
		1FIR A 1 Offset(12,45)
		1FIR A 1 Offset(7,39)
		1FIR A 1 Offset(3,35)
	SelectLoop:
		1FIR A 1 A_Raise
		Loop
	Fire:
		1FIR ABCD 1
		Goto FireSelector
	FireSelector:
		1FIS A 0 A_PlaySound("Weapons/fistx/Swing", 5)
		1FIS ABDF 1
		TNT1 A 0 A_JumpIfInventory("FistPack", 5, "UpgradedDamage5")
		TNT1 A 0 A_JumpIfInventory("FistPack", 4, "UpgradedDamage4")
		TNT1 A 0 A_JumpIfInventory("FistPack", 3, "UpgradedDamage3")
		TNT1 A 0 A_JumpIfInventory("FistPack", 2, "UpgradedDamage2")
		TNT1 A 0 A_JumpIfInventory("FistPack", 1, "UpgradedDamage")
		Goto FireContinue
	FireMiss:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 BRIGHT A_CustomPunch(20,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 8
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	FireContinue:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("FireMiss")
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "Berserked")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(16, 5, 2, 2, "PelletExplode")
		1FIF A 0 BRIGHT A_CustomPunch(20,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 8
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	FireMissB:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 BRIGHT A_CustomPunch(200,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 8
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Berserked:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("FireMissB")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(16, 5, 2, 2, "PelletExplode")
		1FIF A 0 A_CustomPunch(200,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up1Miss:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(30,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 6
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedDamage:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up1Miss")
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "UpgradedBerserked")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(14, 5, 2, 3, "PelletExplode")
		1FIF A 0 A_CustomPunch(30,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 6
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up1MissB:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(210,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 6
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedBerserked:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up1MissB")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(14, 5, 2, 3, "PelletExplode")
		1FIF A 0 A_CustomPunch(210,1,0,"PelletExplode",77,0)
		1FIF AB 3
		1FIS E 3
		1FIS DC 2
		1FIS BA 1
		TNT1 A 6
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up2Miss:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(40,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS EDC 2
		1FIS BA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("UpgradedDamage2")
		goto FireFinish
	UpgradedDamage2:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up2Miss")
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "UpgradedBerserked2")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(12, 5, 2, 4, "PelletExplode")
		1FIF A 0 A_CustomPunch(40,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS EDC 2
		1FIS BA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("UpgradedDamage2")
		goto FireFinish
	Up2MissB:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(220,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS EDC 2
		1FIS BA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("UpgradedDamage2")
		goto FireFinish
	UpgradedBerserked2:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up2MissB")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(12, 5, 2, 4, "PelletExplode")
		1FIF A 0 A_CustomPunch(220,1,0,"PelletExplode",6,0)
		1FIF AB 3
		1FIS EDC 2
		1FIS BA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("UpgradedDamage2")
		goto FireFinish
	Up3Miss:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(50,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedDamage3:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up3Miss")
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "UpgradedBerserked3")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(10, 4, 2, 5, "PelletExplode")
		1FIF A 0 A_CustomPunch(50,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up3MissB:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(230,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedBerserked3:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up3MissB")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(10, 4, 2, 5, "PelletExplode")
		1FIF A 0 A_CustomPunch(230,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 4
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up4Miss:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(60,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 3
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedDamage4:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up4Miss")
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "UpgradedBerserked4")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(8, 4, 2, 6, "PelletExplode")
		1FIF A 0 A_CustomPunch(60,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 3
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up4MissB:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(240,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 3
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedBerserked4:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up4MissB")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(8, 4, 2, 6, "PelletExplode")
		1FIF A 0 A_CustomPunch(240,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 3
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up5Miss:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(75,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 2
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedDamage5:
		TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "UpgradedBerserked5")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(6, 4, 2, 7, "PelletExplode")
		1FIF A 0 A_CustomPunch(75,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 2
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	Up5MissB:
		TNT1 A 0 A_JumpIfCloser(77, 12)
		1FIF A 0 A_CustomPunch(250,1,0,"PelletExplode",64,0)
		1FIS GH 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 2
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	UpgradedBerserked5:
		TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("Up5MissB")
		1FIF A 0 A_PlaySound("weapons/fistx/fire", 6)
		1FIF A 0 BRIGHT A_FireBullets(6, 4, 2, 7, "PelletExplode")
		1FIF A 0 A_CustomPunch(250,1,0,"PelletExplode",76,0)
		1FIF AB 3
		1FIS ED 2
		1FIS CBA 1
		TNT1 A 2
		TNT1 A 1 A_ReFire("FireSelector")
		goto FireFinish
	FireFinish:
		1FIR DCBA 1
		goto Ready
	}
}

ACTOR FistPack : Inventory replaces Chainsaw
{
	Inventory.Amount 1
	Inventory.MaxAmount 5
	Inventory.Pickupmessage "Picked up an upgrade pack for the Explosive Fist."
	States
	{
	Spawn:
		1UPG A -1
		Stop
	}
}
Funny thing is, I only put two bullets in the attack (as opposed to a wrist-mounted super shotgun blast), to aesthetically complete the look of having actually fired the weapon. Strangely enough, the actual Ballistic Fist doesn't use ammo, which was unintentionally reflected here.
User avatar
wildweasel
Posts: 21706
Joined: Tue Jul 15, 2003 7:33 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): A lot of them
Graphics Processor: Not Listed
Contact:

Re: [Request] Punch gun

Post by wildweasel »

I also need to get around to Textures-ing together a proper reload animation, instead of dropping the hand off screen and playing clicky noises.
User avatar
torridgristle
Posts: 684
Joined: Fri Aug 23, 2013 9:34 am

Re: [Request] Punch gun

Post by torridgristle »

Here's the sounds from Fallout if you prefer them. Also included are the same firing sounds with the reverb mostly cut out and an alternate reverb.

https://www.dropbox.com/s/4c5flq6uu69rc ... 20Fist.zip
Post Reply

Return to “Requests”