Well, I'm pretty stumped so far with the Railgun. For some reason, the attack sound always plays even when firing the secondary shot. The secondary shot has its own unique firing sound. The scope zoom toggle is fucked up. You can hold down the secondary function button in order to rapidly switch scope zooms, which is what I don't want. I'd prefer it to be you have to press the secondary function every time you want to switch zoom levels. Also, custom bullet puffs for the rail gun doesn't seem to work.
This is what I got so far.
Code: Select all
ACTOR EriRailgun : DoomWeapon
{
+NoAlert
+ExtremeDeath
Game Doom
Scale 0.8
SpawnID 30
Weapon.SelectionOrder 100
Weapon.AmmoUse 20
Weapon.AmmoGive 40
Weapon.AmmoType "Cell"
Weapon.Kickback 500
Decal "DoomImpScorch"
Inventory.PickupMessage "You found the Railgun!"
Obituary "%o was obliterated by %k's Railgun"
AttackSound "weapons/railgunlaser"
States
{
Ready:
TNT1 A 0 A_JumpIfInventory("RailGunZoom", 1, "ReadyScope")
RGUN A 1 A_WeaponReady
Loop
ReadyScope:
RSCP A 1 A_WeaponReady(WRF_NoBob)
Loop
Deselect:
TNT1 A 0 A_TakeInventory ("RailGunZoom", 2)
TNT1 A 0 A_ZoomFactor(1.0)
RGUN A 1 A_Lower
Goto Deselect+2
Select:
RGUN A 1 A_Raise
Loop
Fire:
RGUF A 0 A_JumpIfInventory("RailGunZoom", 1, "FireZoom")
RGUF A 0 A_AlertMonsters
RGUF A 2 Bright A_PlaySound("weapons/railgunlaser",CHAN_WEAPON)
RGUF B 2 Bright A_RailAttack(250,0,10,"LIGHTBLUE","BLUE",RGF_FULLBRIGHT,0,"RailGunPuff",0,0,0,0,5,1.0,"TracerTrail")
RGUN C 5
RGUN B 6 A_PlaySound("weapons/railguncharge")
RGUN CD 7
RGUN B 6 A_PlaySound("weapons/railguncharge")
RGUN CD 7
RGUN B 6 A_PlaySound("weapons/railguncharge")
RGUN CD 7
RGUN B 6 A_PlaySound("weapons/railguncharge")
RGUN CD 7
RGUN A 6 A_PlaySound("weapons/railgunchdone")
RGUN A 4
TNT1 A 0 A_ReFire
Goto Ready
FireZoom:
TNT1 A 0 A_AlertMonsters
RSCP A 3 Bright A_PlaySound("weapons/sniperlaser",CHAN_WEAPON)
RSCP B 4 Bright A_RailAttack(330,0,10,"PINK","RED",RGF_FULLBRIGHT,0,"SniperRailGunPuff",0,0,0,0,5,1.0,"SniperTracerTrail")
RSCP B 12
RSCP C 8 A_PlaySound("weapons/railguncharge")
RSCP C 11
RSCP D 8 A_PlaySound("weapons/railguncharge")
RSCP D 11
RSCP E 8 A_PlaySound("weapons/railguncharge")
RSCP E 11
RSCP F 8 A_PlaySound("weapons/railguncharge")
RSCP F 11
RSCP A 8 A_PlaySound("weapons/railgunchdone")
RSCP A 5
TNT1 A 0 A_ReFire
Goto Ready
AltFire:
TNT1 A 1 A_PlayWeaponSound("weapons/sniperzoom")
TNT1 A 0 A_SetCrosshair(0)
RSCP A 2 A_WeaponReady(WRF_NoBob)
TNT1 A 0 A_JumpIfInventory("RailGunZoom", 2, "ZoomOut")
TNT1 A 0 A_JumpIfInventory("RailGunZoom", 1, "Zoom2")
Zoom1:
RSCP A 1 A_PlayWeaponSound("weapons/sniperzoom")
TNT1 A 0 A_ZoomFactor(3.0)
TNT1 A 0 A_GiveInventory ("RailGunZoom", 1)
Goto "AltFireDone"
Zoom2:
RSCP A 1 A_PlayWeaponSound("weapons/sniperzoom")
TNT1 A 0 A_ZoomFactor(7.0)
TNT1 A 0 A_GiveInventory ("RailGunZoom", 1)
Goto "AltFireDone"
ZoomOut:
RSCP A 1 A_PlayWeaponSound("weapons/sniperzoom")
TNT1 A 0 A_SetCrosshair(0)
TNT1 A 0 A_ZoomFactor(1.0)
TNT1 A 0 A_TakeInventory ("RailGunZoom", 2)
Goto "AltFireDone"
AltFireDone:
RSCP A 1 A_ReFire
Goto "Ready"
Spawn:
RGPU A -1
Stop
}
}
ACTOR TracerTrail
{
Alpha 0.75
RenderStyle Add
Speed 0
Decal "DoomImpScorch"
+NOBLOCKMAP
+NOGRAVITY
+NOTELEPORT
+PUFFONACTORS
+CANNOTPUSH
+NODAMAGETHRUST
+RIPPER
+NOBOSSRIP
+DONTREFLECT
Scale 0.4
States
{
Spawn:
RLAS A 2 BRIGHT A_Explode(20,8,0,0,0,0,0,"RailGunPuff")
RLAS AAA 2 BRIGHT A_FadeOut(0.3)
Loop
Death:
RLAS BCDE 2 BRIGHT A_FadeOut(0.3)
Stop
}
}
actor RailGunPuff : BulletPuff
{
+NOBLOCKMAP
+NOGRAVITY
+PUFFONACTORS
+THRUGHOST
+RIPPER
+NOBOSSRIP
+FORCEPAIN
ProjectileKickBack 220
activesound ""
attacksound "weapons/railgunhit"
seesound "weapons/railgunhit"
Decal "DoomImpScorch"
Obituary "%o was obliterated by %k's railgun"
states
{
Spawn:
RLAS A 5 BRIGHT
RLAS BBBBBCCCCCDDDDDEEEEE 2 BRIGHT A_FadeOut(0.3)
RLAS E -1
Death:
RLAS A 5 BRIGHT
RLAS BBBBBCCCCCDDDDDEEEEE 2 BRIGHT A_FadeOut(0.3)
RLAS E -1
stop
}
}
ACTOR SniperTracerTrail
{
Alpha 0.75
RenderStyle Add
Speed 0
Decal "DoomImpScorch"
+NOBLOCKMAP
+NOGRAVITY
+NOTELEPORT
+PUFFONACTORS
+CANNOTPUSH
+NODAMAGETHRUST
+RIPPER
+NOBOSSRIP
+DONTREFLECT
Scale 0.3
States
{
Spawn:
LASR A 2 BRIGHT A_Explode(20,8,0,0,0,0,0,"SniperRailGunPuff")
LASR AAA 2 BRIGHT A_FadeOut(0.3)
Loop
Death:
LASR BCDE 2 BRIGHT A_FadeOut(0.3)
Stop
}
}
actor SniperRailGunPuff : BulletPuff
{
+NOBLOCKMAP
+NOGRAVITY
+PUFFONACTORS
+THRUGHOST
+RIPPER
+NOBOSSRIP
+FORCEPAIN
ProjectileKickBack 220
activesound ""
attacksound "weapons/railgunhit"
seesound "weapons/railgunhit"
Decal "DoomImpScorch"
Obituary "%o was obliterated by %k's railgun"
states
{
Spawn:
LASR A 5 BRIGHT
LASB AAAAABBBBBCCCCCDDDD 2 BRIGHT A_FadeOut(0.3)
LASB D -1
Death:
LASR A 5 BRIGHT
LASB AAAAABBBBBCCCCCDDDD 2 BRIGHT A_FadeOut(0.3)
LASB D -1
stop
}
}