I should in theory only need one frame of this: I'm looking for a graphic that is a short, shotgun-sized gun barrel mounted to a Doomguy-gloved arm. The idea is that it be a melee weapon that takes shotgun shells. Even just a start in the right direction would be appreciated.
Re: [Request] Punch gun
Posted: Tue Aug 27, 2013 8:11 pm
by BloodyAcid
The first image that came into mind was doomguy's hand being propelled by the shell fragmentation, loaded something like the automatic from Metro 2033.
Here's the PSD which uses no layer styles and thus should be compatible with CS4 and GIMP so you can move the gun around on the back of his hand and make further adjustments.
Re: [Request] Punch gun
Posted: Wed Aug 28, 2013 12:46 pm
by wildweasel
The Ballistic Fist version seems like it would do what I need, but if I might nitpick a bit, I have a couple of potential suggestions that I'm currently unable to handle myself. Is there any chance you could make it somewhat larger, and perhaps use this hand as a base instead?
Re: [Request] Punch gun
Posted: Wed Aug 28, 2013 1:37 pm
by torridgristle
I know this isn't what you wanted, but since I've got a proper arm for it now I figured I might as well do a Ballistic Fist that looks closer to canon in case another person wants it.
Re: [Request] Punch gun
Posted: Wed Aug 28, 2013 1:38 pm
by wildweasel
Actually, this might be precisely what I'm looking for. Is the "gun" part on a separate layer, by chance? That'd ease my implementation of a muzzle flash effect.
Re: [Request] Punch gun
Posted: Wed Aug 28, 2013 1:48 pm
by torridgristle
wildweasel wrote:Actually, this might be precisely what I'm looking for. Is the "gun" part on a separate layer, by chance? That'd ease my implementation of a muzzle flash effect.
Also, resave the Ballistic Fist. I updated a few parts.
Re: [Request] Punch gun
Posted: Wed Aug 28, 2013 2:08 pm
by wildweasel
Very awesome, thanks for this!
Re: [Request] Punch gun
Posted: Sat Aug 31, 2013 9:32 am
by TheRailgunner
wildweasel wrote:Very awesome, thanks for this!
I know it's not terribly related, but you wouldn't know how to make the gun fire when it hits something, and not fire when it doesn't, would you? I've been messing around with A_JumpIfInside/OutsideMeleeRange, and so far I've just got it to occasionally jump to the firing state on contact.
Re: [Request] Punch gun
Posted: Sat Aug 31, 2013 9:41 am
by wildweasel
I'm using A_JumpIfCloser, myself. Though this does still lead to situations where my custom punch attack connects but the range check does not let the weapon fire. Though, given the cheap nature of the weapon in my mod, I'm entirely willing to let that "glitch" stand as is, and explain it in the accompanying description.
Re: [Request] Punch gun
Posted: Sat Aug 31, 2013 10:06 am
by TheRailgunner
wildweasel wrote:I'm using A_JumpIfCloser, myself. Though this does still lead to situations where my custom punch attack connects but the range check does not let the weapon fire. Though, given the cheap nature of the weapon in my mod, I'm entirely willing to let that "glitch" stand as is, and explain it in the accompanying description.
I've tried A_JumpIfCloser - it tends to either throw the punch into a loop (the "miss" state) or just outright crashes the game entirely.
EDIT: Nevermind, it was because I had stupidly misunderstood how frame-based state jumps worked.
ACTOR ShotgunFist : Weapon
{
Weapon.Kickback 100
Weapon.AmmoType "Shell"
Weapon.AmmoUse 1
Weapon.AmmoGive 16
Weapon.SlotNumber 8
+WEAPON.MELEEWEAPON
States
{
Ready:
PUNG A 1 A_WeaponReady
Loop
Deselect:
PUNG A 1 A_Lower
Loop
Select:
PUNG A 1 A_Raise
Loop
Fire:
PUNG B 4 A_JumpIfCloser(64, "Bang")
PUNG C 4
Goto FireEnd
Bang:
PUNG C 4 A_FireBullets(5.5, 3, 6, 8, "BulletPuff", 1)
FireEnd:
PUNG D 5
PUNG C 4
PUNG B 5 A_ReFire
Goto Ready
}
}
and I'm not entirely sure of what's causing it but I think it has to do with how Doom picks which monster you're targeting. I'm not entirely sure if the fist behaves any differently.
ACTOR PunchGunLoaded : Ammo
{
Inventory.MaxAmount 1
}
ACTOR PunchGunPuff
{
ActiveSound ""
AttackSound "weapons/punchgunwall"
SeeSound "weapons/punchgunpunch"
Scale 0.75
RenderStyle Add
Alpha 0.9
+NOGRAVITY
+NOEXTREMEDEATH
+PUFFONACTORS
States
{
Spawn:
POOF ABCDE 3
Stop
Melee:
POOF ABCDE 3
Stop
Crash:
POOF ABCDE 3
Stop
}
}
ACTOR PunchGun : CashWeapon
{
Weapon.AmmoType1 "PunchGunLoaded"
Weapon.AmmoUse1 1
Weapon.AmmoGive1 0
Weapon.AmmoType2 "ShotgunAmmo"
Weapon.AmmoUse2 0
Weapon.AmmoGive2 0
Weapon.SlotNumber 1
+Weapon.Ammo_Optional
+Weapon.Alt_Ammo_Optional
Decal "BulletChip"
States
{
Select:
HAND A 1 A_Raise
HAND A 0 A_Raise
Loop
Deselect:
HAND A 1 A_Lower
HAND A 0 A_Lower
Loop
Ready:
HAND A 1 A_WeaponReady(WRF_ALLOWRELOAD)
Loop
Fire:
HAND A 1 Offset(5,40)
HAND A 1 Offset(12,60)
HAND A 1 Offset(20,86)
TNT1 A 1
Hold: // Even if the gun is unloaded this is here so you can keep trying to punch for raw melee damage
PNCH A 1 Offset(-50,150)
PNCH A 1 Offset(-40,120)
PNCH A 1 Offset(-30,80)
PNCH A 1 Offset(-20,30) A_PlaySound("weapons/punchgunswing", 6)
PNCH A 1 A_JumpIfCloser(96, "FireShotgun") // Within 96 units, fires the gun.
Goto JustPunchEm // Otherwise, jump to a state where only the punch attack happens (so it still makes noise on walls)
FireShotgun:
PNCH A 0 A_JumpIfNoAmmo("JustPunchEm") // Go to the punch state if the gun isn't loaded
PNCH A 0 A_PlaySound("weapons/punchgunfire", CHAN_WEAPON)
PNCH A 0 A_GunFlash
PNCH B 0 A_CustomPunch(60, 1, 0, "PunchGunPuff") // Still punches.
PNCH B 0 A_FireBullets(15, 10, 8, 5, "BulletPuff", 1) //The gun fires on the exact same tic
PNCH B 1 BRIGHT Offset(-15,40)
PNCH C 1 BRIGHT Offset(-13,38) A_AlertMonsters // Guns are loud, yo.
Goto DontFireShotgun
JustPunchEm:
PNCH A 1 Offset(-15,40) A_CustomPunch(60, 1, 0, "PunchGunPuff")
PNCH A 1 Offset(-13,38)
Goto DontFireShotgun
DontFireShotgun:
PNCH A 1 Offset(-12,39)
PNCH A 1 Offset(-11,40)
PNCH A 1 Offset(-12,42)
PNCH A 1 Offset(-13,44)
PNCH A 1 Offset(-15,47)
PNCH A 1 Offset(-17,50)
PNCH A 1 Offset(-19,57)
PNCH A 1 Offset(-22,65)
PNCH A 1 Offset(-25,72)
PNCH A 1 Offset(-29,82)
PNCH A 1 Offset(-35,90)
PNCH A 1 Offset(-42,100)
PNCH A 1 Offset(-49,110)
PNCH A 1 Offset(-59,111)
PNCH A 1 Offset(-70,122)
PNCH A 1 Offset(-80,134)
PNCH A 1 Offset(-90,150)
TNT1 A 1 A_Refire
HAND A 1 Offset(20,66)
HAND A 1 Offset(17,60)
HAND A 1 Offset(13,55)
HAND A 1 Offset(9,50)
HAND A 1 Offset(5,46)
HAND A 1 Offset(3,42)
HAND A 1 Offset(2,38)
HAND A 1 Offset(1,35)
Goto Ready
// I omitted the altfire state (where you can punch the gun to force it to discharge without being in melee range) because it's not relevant here.
Reload:
HAND A 0 A_JumpIfInventory("PunchGunLoaded", 1, 2)
HAND A 0 A_JumpIfInventory("ShotgunAmmo", 1, 2)
HAND A 1 A_WeaponReady(WRF_NOFIRE)
Goto Ready
HAND A 1 Offset(5,40)
HAND A 1 Offset(12,60)
HAND A 1 Offset(20,86)
TNT1 A 15
HAND A 1 Offset(20,66) A_PlaySound("weapons/punchgunload")
HAND A 1 Offset(17,60) A_TakeInventory("ShotgunAmmo", 1)
HAND A 1 Offset(13,55) A_GiveInventory("PunchGunLoaded", 1)
HAND A 1 Offset(9,50)
HAND A 1 Offset(5,46)
HAND A 1 Offset(3,42)
HAND A 1 Offset(2,38)
HAND A 1 Offset(1,35)
Goto Ready
}
}