actor DarkSniperBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_5K"
dropitem "DarkShieldWepCDropped"
Weapon.AmmoUse 16
Weapon.AmmoUse2 28
Weapon.AmmoGive 64
Obituary "$OB_DARK3SNIPE"
Inventory.Pickupmessage "maybe"
weapon.ammotype1 "Darkman3SniperAmmo"
weapon.ammotype2 "Darkman3RingAmmo"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_05 K 1
loop
Ready:
DKC3 A 0 ACS_ExecuteAlways(998,0,DYE_DARKMAN3)
DKC3 A 0 A_GunFlash
goto Ready0
Ready0:
DKC3 A 0 A_GiveInventory("DarkSniperCharge_F",1)
Ready1:
DKC3 A 0 A_JumpIfInventory("Darkman3SniperAmmo",16,"Ready2")
DKC3 A 0 A_JumpIfInventory("Darkman3RingAmmo",28,"Ready3")
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 A 0 A_WeaponReady(8)
DKC3 A 2 A_WeaponReady(12)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 A 0 A_WeaponReady(8)
DKC3 A 2 A_WeaponReady(12)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3SniperAmmo",1)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3RingAmmo",1)
loop
Ready2:
DKC3 A 0 A_JumpIfInventory("Darkman3RingAmmo",28,"Ready4")
DKC3 A 4 A_WeaponReady(8)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3SniperAmmo",1)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3RingAmmo",1)
loop
Ready3:
DKC3 A 0 A_JumpIfInventory("Darkman3SniperAmmo",16,"Ready4")
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 A 0 A_WeaponReady
DKC3 A 2 A_WeaponReady(4)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 A 0 A_WeaponReady
DKC3 A 2 A_WeaponReady(4)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3SniperAmmo",1)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3RingAmmo",1)
loop
Ready4:
DKC3 A 4 A_WeaponReady
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3SniperAmmo",1)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
DKC3 AA 0 A_GiveInventory("Darkman3RingAmmo",1)
loop

Deselect:
DKC3 A 0 A_GunFlash("NoFlash")
DKC3 A 0 A_ZoomFactor(1.0,1)
DKC3 A 0 A_GiveInventory("DarkSniperFlashReset_P")
DKC3 A 0
DKC3 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
DKC3 A 1 A_Lower
goto Deselect+4
Select:
DKC3 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
DKC3 A 1 A_Raise
loop

Fire:
DKC3 A 0 A_TakeInventory("DarkSniperCharge_F",1)
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,"Fire1")
DKC3 A 0 A_GiveInventory("VivifyDelay8",1)
DKC3 A 0 A_ReFire(1)
DKC3 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon")
DKC3 A 2 OffSet(10,42)A_GiveInventory("Darkman3Main_CI",1)
DKC3 A 2 OffSet(20,52)
DKC3 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon")
DKC3 A 2 OffSet(10,42)A_GiveInventory("Darkman3Main0_CI",1)
DKC3 A 2 OffSet(20,52)
DKC3 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon")
DKC3 A 2 OffSet(10,42)A_GiveInventory("Darkman3Main0_CI",1)
DKC3 A 2 OffSet(20,52)
DKC3 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon")
DKC3 A 2 OffSet(10,42)A_GiveInventory("Darkman3Main0_CI",1)
DKC3 A 2 OffSet(20,52)
DKC3 A 2 OffSet(10,42)
DKC3 A 14 A_WeaponReady(14)
goto Ready0

Fire1:
DKC3 A 12 OffSet(20,52)A_GiveInventory("Dark3_FireCheck_P")
DKC3 A 2 OffSet(10,42)
DKC3 A 10 A_WeaponReady(14)
goto Ready0

AltFire:
DKC3 A 0 A_GiveInventory("VivifyDelay6",1)
DKC3 A 0 A_TakeInventory("DarkSniperCharge_F",1)
DKC3 A 0 A_ReFire(1)
DKC3 A 0 A_PlaySoundEx("weapon/sparkalt","Weapon")
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,"AltfireZoom")
DKC3 A 4 OffSet(40,32) A_GiveInventory("Darkman3Alt_CI",1)
goto AltEnd
AltfireZoom:
DKC3 A 4 OffSet(40,32)A_GiveInventory("Darkman3Alt2_CI",1)
goto AltEnd
AltEnd:
DKC3 A 12 OffSet(40,32)
DKC3 A 4 OffSet(20,32)
DKC3 A 4 A_WeaponReady(14)
goto Ready0

FireOld:
DKC3 A 0 A_PlaySoundEx("weapon/dark3shot","Weapon")
DKC3 A 0 A_GiveInventory("Darkman3Main1_CI",1)
DKC3 A 2 OffSet(10,42)
DKC3 A 2 OffSet(20,52)
DKC3 A 2 OffSet(10,42)
DKC3 A 13 A_WeaponReady(14)
goto Ready1

AltfireOld:
DKC3 A 6
DKC3 A 0 A_PlaySoundEx("weapon/sparkalt","Weapon")
DKC3 A 0 A_GiveInventory("Darkman3Alt_CI",1)
DKC3 A 0 A_GiveInventory("Darkman3SniperAmmo",1)
DKC3 A 8 OffSet(40,32)A_SetTics(Health*3/ACS_ExecuteWithResult(CBM_FetchMyHealth,1,0)+5)
DKC3 A 0 A_GiveInventory("Darkman3SniperAmmo",1)
DKC3 A 14 OffSet(20,32)A_SetTics(Health*8/ACS_ExecuteWithResult(CBM_FetchMyHealth,1,0)+6)
goto Ready1

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("DarkSniperFlag",1,2)
TNT1 A 1
loop
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,3,5)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
TNT1 A 1 A_ZoomFactor(2.0,1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1 A_GiveInventory("DarkSniperFlash_P",1)
TNT1 A 0 A_JumpIfInventory("DarkSniperFlag",1,1)
goto Flash+10
TNT1 A 0
goto Flash+6
TNT1 A 0 A_GiveInventory("DarkSniperFlashReset_P")
TNT1 A 1 A_ZoomFactor(1.0,1)
loop
}
}

actor Darkman3SniperAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 64
+INVENTORY.IGNORESKILL
}

actor Darkman3RingAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor DarkSniperCharge : Inventory
{
inventory.amount 1
inventory.maxamount 700
}

actor DarkSniperFlag : OnceC {}
actor DarkSniperCharge_F : OnceC {}

actor DarkSniperItem : BasicClassItem
{
inventory.icon "DarkIco3"
inventory.pickupmessage "What nine thousand?!"
Tag "Dark Sniping Toggle"
states
{
Spawn:
DKC3 Z 1
loop
Use:
TNT1 A 0 A_PlaySoundEx("item/ItemUseMM9","SoundSlot7")
TNT1 A 0 A_JumpIfInventory("DarkSniperFlag",1,"Use2")
TNT1 A 0 A_GiveInventory("DarkSniperFlag",1)
fail
Use2:
TNT1 A 0 A_TakeInventory("DarkSniperFlag",1)
TNT1 A 0 A_TakeInventory("DarkSniperCharge")
fail
}
}

actor Dark3_FireCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("DarkSniperCharge",700,"Fire2")
TNT1 A 0 A_PlaySoundEx("weapon/Dark3Shot","Weapon")
TNT1 A 0 A_GiveInventory("Darkman3Main1_CI")
goto PickEnd
Fire2:
TNT1 A 0 A_PlaySoundEx("weapon/Dark3Rail","Weapon")
TNT1 A 0 A_GiveInventory("Darkman3Main2_CI")
goto PickEnd
PickEnd:
TNT1 A 0 A_TakeInventory("DarkSniperCharge")
stop
}
}

actor DarkSniperFlashReset_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("DarkSniperCharge")
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,12,1)
stop
}
}

actor DarkSniperFlash_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("DarkSniperCharge_F",1,1)
stop
TNT1 A 0 A_JumpIfInventory("Darkman3SniperAmmo",16,1)
stop
TNT1 A 0 A_GiveInventory("DarkSniperCharge",(10+(100-health*100.0/ACS_ExecuteWithResult(CBM_FetchMyHealth,1))/10)*(CallACS("cbm_CheckForRage",0)+1))
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("DarkSniperCharge",701,2)
TNT1 A 0 A_JumpIfInventory("DarkSniperCharge",700,2)
TNT1 A 0
stop
TNT1 A 0 A_TakeInventory("DarkSniperCharge",-50)
TNT1 A 0 A_PlaySound("weapon/BassCombine",4,0.5)
stop
}
}

actor DarkSniperFlash_P2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_StopSound(-6)
stop
}
}

actor Darkman3SMG
{
Translation "202:202=216:216"
PROJECTILE
damagetype "DM3_Rapid"
Obituary "$OB_DARK3SMG"
+FORCEXYBILLBOARD
+BRIGHT
Damage (60)
radius 8
height 8
speed 45
scale 2.0
States
{
Spawn:
DSHO A 1
wait
}
}
actor Darkman3SMGB : Darkman3SMG{translation "202:202=205:205"}
actor Darkman3SMGR : Darkman3SMG{translation "202:202=171:171"}
actor Darkman3SMGO : Darkman3SMG{translation "202:202=104:104"}
actor Darkman3SMGP : Darkman3SMG{translation "202:202=229:229"}

actor Darkman3SnipeShot : FastProjectile
{
Translation "202:202=216:216"
damagetype "DM3_Shot"
Obituary "$OB_DARK3SNIPE"
+FORCEXYBILLBOARD
+BRIGHT
Damage(250)
radius 14//11
height 14
speed 180
scale 2.75
States
{
Spawn:
DSHO A 0
DSHO A 1 A_SpawnItemEx("Darkman3ShotFX1",0,0,0,0,0,0,0,1)
wait
}
}
actor Darkman3SnipeShotB : Darkman3SnipeShot{translation "202:202=205:205"}
actor Darkman3SnipeShotR : Darkman3SnipeShot{translation "202:202=171:171"}
actor Darkman3SnipeShotO : Darkman3SnipeShot{translation "202:202=104:104"}
actor Darkman3SnipeShotP : Darkman3SnipeShot{translation "202:202=229:229"}

actor Darkman3SniperShot : Darkman3SnipeShot
{
var int user_P;
Obituary "$OB_DARK3SNIPER"
damagetype "DM3_Snipe"
Damage (400+user_P)
States
{
Spawn:
DSHO A 0
DSHO A 0 A_SpawnItemEx("Darkman3ShotFX2",0,0,0,0,0,0,0,1)
DSHO A 0 A_SpawnItemEx("Darkman3ShotFX1",0,0,0,0,cos(pitch+30)*2.5,-sin(pitch+30)*2.5,0,1)
DSHO A 0 A_SpawnItemEx("Darkman3ShotFX1",0,0,0,0,cos(pitch+150)*2.5,-sin(pitch+150)*2.5,0,1)
DSHO A 1 A_SpawnItemEx("Darkman3ShotFX1",0,0,0,0,cos(pitch+270)*2.5,-sin(pitch+270)*2.5,0,1)
DSHO A 0 A_SetUserVar("user_P",user_P+5)
DSHO A 0 A_SetPitch(pitch%360+30)
loop
}
}
actor Darkman3SniperShotB : Darkman3SniperShot{translation "202:202=205:205"}
actor Darkman3SniperShotR : Darkman3SniperShot{translation "202:202=171:171"}
actor Darkman3SniperShotO : Darkman3SniperShot{translation "202:202=104:104"}
actor Darkman3SniperShotP : Darkman3SniperShot{translation "202:202=229:229"}


actor Darkman3ShotFX1 : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
RenderStyle "translucent"
Alpha 0.9
ReactionTime 7
States
{
Spawn:
TNT1 A 1
DSHO A 1 A_CountDown
DSHO A 0 A_FadeOut
DSHO A 0 A_SetScale(scaleX-0.2)
goto Spawn+1
}
}
actor Darkman3ShotFX2 : Darkman3ShotFX1
{
Alpha 1.0
ReactionTime 8
}

actor Dark3_ShockRing
{
Translation "202:202=216:216"
PROJECTILE
damagetype "NeutralShock"
Obituary "$OB_DARK3RING"
+FORCEXYBILLBOARD
+BRIGHT
damage (60)
radius 13
height 18
speed 40
scale 2.5
States
{
Spawn:
//DSHO BCBCBC 4
DSHO CCCCCCCC 2 A_SpawnItemEx("DarkRingFX",0,0,0,0,0,0,0,1)
stop
}
}
actor Dark3_ShockRingB : Dark3_ShockRing{translation "202:202=205:205"}
actor Dark3_ShockRingR : Dark3_ShockRing{translation "202:202=171:171"}
actor Dark3_ShockRingO : Dark3_ShockRing{translation "202:202=104:104"}
actor Dark3_ShockRingP : Dark3_ShockRing{translation "202:202=229:229"}

actor Dark3_ShockRinger : Dark3_ShockRing
{
Obituary "$OB_DARK3RINGER"
damage (150)
speed 120
States
{
Spawn:
DSHO C 0
DSHO C 2 A_SpawnItemEx("DarkRingFX",0,0,0,0,0,0,0,1)
wait
}
}
actor Dark3_ShockRingerB : Dark3_ShockRinger{translation "202:202=205:205"}
actor Dark3_ShockRingerR : Dark3_ShockRinger{translation "202:202=171:171"}
actor Dark3_ShockRingerO : Dark3_ShockRinger{translation "202:202=104:104"}
actor Dark3_ShockRingerP : Dark3_ShockRinger{translation "202:202=229:229"}

actor DarkRingFX : BasicClientSide
{
+FORCEXYBILLBOARD
+BRIGHT
RenderStyle "Translucent"
Alpha 0.6
States
{
Spawn:
DSHO C 4
DSHO C 1 A_FadeOut(0.15)
wait
}
}

actor Darkman3Main0_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("Darkman3SMG",frandom(-2,2),0,8,0,0,frandom(-2,2))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGB",frandom(-2,2),0,8,0,0,frandom(-2,2))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGR",frandom(-2,2),0,8,0,0,frandom(-2,2))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGO",frandom(-2,2),0,8,0,0,frandom(-2,2))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGP",frandom(-2,2),0,8,0,0,frandom(-2,2))
goto Done
}
}

actor Darkman3Main_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("Darkman3SMG",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGP",0,0,8,0)
goto Done
}
}

actor Darkman3Main1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("Darkman3SnipeShot",0,1,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("Darkman3SnipeShotB",0,1,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("Darkman3SnipeShotR",0,1,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("Darkman3SnipeShotO",0,1,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("Darkman3SnipeShotP",0,1,0,0)
goto Done
}
}

actor Darkman3Main2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("Darkman3SniperShot",0,1,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("Darkman3SniperShotB",0,1,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("Darkman3SniperShotR",0,1,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("Darkman3SniperShotO",0,1,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("Darkman3SniperShotP",0,1,0,0)
goto Done
}
}

actor Darkman3Alt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRing",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRing",15,0,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRing",-15,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingB",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingB",15,0,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingB",-15,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingR",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingR",15,0,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingR",-15,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingO",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingO",15,0,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingO",-15,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingP",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingP",15,0,8,0)
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingP",-15,0,8,0)
goto Done
}
}

actor Darkman3Alt2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRinger",0,1,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingerB",0,1,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingerR",0,1,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingerO",0,1,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("Dark3_ShockRingerP",0,1,0,0)
goto Done
}
}
