//DarkSniperBoss.txt

const int DM3_SPAWNHEIGHT = 4;
actor DarkSniperBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_5K"
dropitem "DarkShieldWepCDropped"
Weapon.AmmoUse 20
Weapon.AmmoUse2 18
Weapon.AmmoGive 80
Obituary "$OB_DARK3SNIPER"
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_GiveInventory("DarkSniperSpawnDelay")
DKC3 A 0 A_GunFlash
goto Ready0
Ready0:
DKC3 A 0 A_GiveInventory("DarkSniperCharge_F",1)
Ready1:
DKC3 A 0 A_JumpIfInventory("Darkman3SniperAmmo",20,"Ready2")
DKC3 A 0 A_JumpIfInventory("Darkman3RingAmmo",18,"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",18,"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",20,"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_JumpIfInventory("Darkman3SniperAmmo",8,1)
//goto NoAmmo
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 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 1 A_GiveInventory("Dark3_FireCheck_P")
TNT1 A 0 A_TakeInventory("DarkSniperCharge",999)
DKC3 A 11 OffSet(20,52) 
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_JumpIfInventory("Darkman3RingAmmo",54,1)
goto AltfireUnZoom
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,"AltfireZoom")
AltfireUnZoom:
DKC3 A 0 A_JumpIfInventory("DarkSniperFlag",1,"NoAmmo")
DKC3 A 0 A_PlaySoundEx("weapon/sparkalt","Weapon")
DKC3 A 4 OffSet(40,32) A_GiveInventory("Darkman3Alt_CI",1)
goto AltEnd
AltfireZoom:
DKC3 A 0 A_PlaySoundEx("weapon/sparkalt","Weapon")
DKC3 A 4 OffSet(40,32)A_GiveInventory("Darkman3Alt2_CI",1)
goto AltEnd
AltEnd:
DKC3 A 16 OffSet(40,32)
DKC3 A 8 OffSet(20,32)
DKC3 A 8 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,"Zooms")
TNT1 A 1 A_ZoomFactor(1.0,1)
TNT1 A 0 A_Jump(256,"Flash")
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_ZoomFactor(1.0,1)//LACONCHADETUMADREEEEEEEEEEEEEEEEEEEEEE
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_ZoomFactor(1.0,1)//EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_ZoomFactor(1.0,1)//EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_ZoomFactor(1.0,1)//EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_ZoomFactor(1.0,1)//EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
loop
Zooms:  
TNT1 A 0 A_ZoomFactor(1.5,1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_GiveInventory("DarkSniperFlash_P",1)
TNT1 A 0 A_JumpIfInventory("DarkSniperFlag",2,"Reset")

TNT1 A 0 A_JumpIfInventory("DarkSniperCharge",700,"Flash_Big_C")
TNT1 A 0 A_JumpIfInventory("DarkSniperCharge",525,"Flash_Smol_C")
Goto ZoomsContinue

Flash_Big_C:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"Flash_Big_B")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"Flash_Big_R")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"Flash_Big_O")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"Flash_Big_P")
Goto Flash_Big_N

Flash_Big_B: TNT1 A 0 A_FireCustomMissile("DM3BaseFX_Starter_ClientsideB",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX_StarterXB",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Big_R: TNT1 A 0 A_FireCustomMissile("DM3BaseFX_Starter_ClientsideR",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX_StarterXR",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Big_O: TNT1 A 0 A_FireCustomMissile("DM3BaseFX_Starter_ClientsideO",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX_StarterXO",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Big_P: TNT1 A 0 A_FireCustomMissile("DM3BaseFX_Starter_ClientsideP",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX_StarterXP",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Big_N: TNT1 A 0 A_FireCustomMissile("DM3BaseFX_Starter_Clientside",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX_StarterX",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue

Flash_Smol_C:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"Flash_Smol_B")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"Flash_Smol_R")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"Flash_Smol_O")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"Flash_Smol_P")
Goto Flash_Smol_N

Flash_Smol_B: TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_Starter_ClientsideB",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_StarterXB",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Smol_R: TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_Starter_ClientsideR",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_StarterXR",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Smol_O: TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_Starter_ClientsideO",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_StarterXO",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Smol_P: TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_Starter_ClientsideP",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_StarterXP",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue
Flash_Smol_N: TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_Starter_Clientside",0,0,0,DM3_SPAWNHEIGHT) TNT1 A 0 A_FireCustomMissile("DM3BaseFX2_StarterX",0,0,0,DM3_SPAWNHEIGHT) Goto ZoomsContinue

ZoomsContinue:
TNT1 A 1 //A_GiveInventory("DarkRailPointerFX",1)
TNT1 A 0 A_Jump(256,"Zooms")
Loop

Reset: 
TNT1 A 0 A_GiveInventory("DarkSniperFlashReset_P")
TNT1 A 1 A_ZoomFactor(1.0,1)
TNT1 A 0 A_Jump(256,"Flash")
Loop

NoAmmo:
DKC3 A 4
DKC3 A 0 A_GiveInventory("Darkman3SniperAmmo",1)
DKC3 A 0 A_GiveInventory("Darkman3RingAmmo",1)
goto Ready0
}
}

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

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

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

//actor DarkSniperFlag : OnceC {}
actor DarkSniperFlag : Inventory
{
inventory.maxamount 2
-invbar
}
actor DarkRailMultiFlag : OnceC {}//teehee
actor DarkSniperCharge_F : OnceC {}

actor DarkSniperSpawnDelay : Powerup
{
powerup.duration 10
}

actor DarkSniperItem : CustomInventory
{
inventory.icon "DarkIco3"
inventory.pickupmessage "What nine thousand?!"
Tag "$TAGC_5K1"
inventory.amount 1
inventory.maxamount 1
scale 2.0
+INVBAR
states
{
Spawn:
DKC3 Z 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("DarkSniperSpawnDelay",1,"Trolled")
TNT1 A 0 A_PlaySoundEx("item/ItemUseMM9","SoundSlot7")  
TNT1 A 0 A_GiveInventory("DarkSniperFlag",1)
fail  
Trolled:
TNT1 A 0
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_TakeInventory("Darkman3SniperAmmo",80)
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 A_TakeInventory("DarkSniperFlag",99)
//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",20,1)
stop
TNT1 A 0 A_GiveInventory("DarkSniperCharge",(5+(100-health*100.0/ACS_ExecuteWithResult(CBM_FetchMyHealth,1))/18)*(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 1
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","199:199=219:219"
PROJECTILE
damagetype "DMGNoHitstun"
Obituary "$OB_DARK3SMG"
+FORCEXYBILLBOARD
+BRIGHT
Damage (7)
radius 8
height 8
speed 45
scale 2.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
DSHO A 1
wait
Death:
DKC1 G 0 A_Stop
DKC1 GHIJK 1
stop
}
}

actor Darkman3SMGB : Darkman3SMG{translation "202:202=205:205","199:199=74:74"}
actor Darkman3SMGR : Darkman3SMG{translation "202:202=171:171","199:199=41:41"}
actor Darkman3SMGO : Darkman3SMG{translation "202:202=104:104","199:199=128:128"}
actor Darkman3SMGP : Darkman3SMG{translation "202:202=229:229","199:199=232:232"}

actor Darkman3SnipeShot : FastProjectile
{
Translation "202:202=216:216","199:199=219:219" 
damagetype "DMGNoHitstun"
Obituary "$OB_DARK3SNIPE" 
+FORCEXYBILLBOARD 
+BRIGHT 
var int user_dmg; 
Damage(10+user_dmg)
radius 14//11
height 14
speed 90
scale 2.5
States
{
Spawn:
DSHO A 0 
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)        
Weeee:
DSHO A 1 A_SpawnItemEx("Darkman3ShotFX1",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SetUserVar("user_dmg",user_dmg+1)
TNT1 A 0 A_JumpIf(user_dmg>=15,"Woooo")
loop
Woooo: 
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)*3.5,-sin(pitch+30)*3.5,0,1)
DSHO A 0 A_SpawnItemEx("Darkman3ShotFX1",0,0,0,0,cos(pitch+150)*3.5,-sin(pitch+150)*3.5,0,1)
DSHO A 1 A_SpawnItemEx("Darkman3ShotFX1",0,0,0,0,cos(pitch+270)*3.5,-sin(pitch+270)*3.5,0,1)
DSHO A 0 A_SetPitch(pitch%360+30)
loop
Death:
DKC1 G 0 A_Stop
DKC1 GHIJK 1 A_SetScale(scalex+.5)
stop
}
}
  
actor Darkman3SnipeShotB : Darkman3SnipeShot{translation "202:202=205:205","199:199=74:74"}
actor Darkman3SnipeShotR : Darkman3SnipeShot{translation "202:202=171:171","199:199=41:41"}
actor Darkman3SnipeShotO : Darkman3SnipeShot{translation "202:202=104:104","199:199=128:128"}
actor Darkman3SnipeShotP : Darkman3SnipeShot{translation "202:202=229:229","199:199=232:232"}

actor Darkman3SniperShot : Darkman3SnipeShot
{
speed 180
var int user_P;
Obituary "$OB_DARK3SNIPER"
damagetype "DMGNoHitstun"
Damage (25+user_P)
States
{
Spawn:
DSHO A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
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+2)
//DSHO A 0 A_SetPitch(pitch%360+30)
DSHO A 0 A_JumpIf(user_P>=20,"Spawn2")
loop
Spawn2:
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_SetPitch(pitch%360+30)
loop
Death:
DKC1 G 0 A_Stop
DKC1 GHIJK 1 A_SetScale(scalex+.5)
stop
}
}
actor Darkman3SniperShotB : Darkman3SniperShot{translation "202:202=205:205","199:199=74:74"}
actor Darkman3SniperShotR : Darkman3SniperShot{translation "202:202=171:171","199:199=41:41"}
actor Darkman3SniperShotO : Darkman3SniperShot{translation "202:202=104:104","199:199=128:128"}
actor Darkman3SniperShotP : Darkman3SniperShot{translation "202:202=229:229","199:199=232:232"}


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 (6)
radius 13
height 18
speed 40
scale 2.5
States
{
Spawn:
//DSHO BCBCBC 4
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
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"
+RIPPER
damage (5)
speed 120
States
{
Spawn:
DSHO C 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 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 Darkman3RailPuff
{
Translation "192:192=65:65","198:198=60:60"
Damagetype "DMGNoHitstun"
Obituary "$OB_DARK3RAIL"
+NOINTERACTION
+NOGRAVITY
+THRUGHOST
+NOGRAVITY
scale 1.25 
States
{
Spawn:
TNT1 A 0
TNT1 A 0 //A_LOG("SPAWN")
TNT1 A 0 A_SpawnItemEx("StupidRailOnlineSound")
X_8B ABCDEF 2
Stop
/*
See://Puff test
TNT1 A 1 A_LOG("See")
stop
Hitscan:
TNT1 A 1 A_LOG("Hitscan")
stop
Melee:
TNT1 A 1 A_LOG("Melee")
stop
Active:
TNT1 A 1 A_LOG("Active")
stop
Attack:
TNT1 A 1 A_LOG("Attack")
stop
Crash:
TNT1 A 1 A_LOG("Crash")
stop
All:
TNT1 A 1 A_LOG("All??")
stop
*/
}
}

actor Darkman3RailPuffB : Darkman3RailPuff{Translation "192:192=205:205","198:198=74:74"}
actor Darkman3RailPuffR : Darkman3RailPuff{Translation "192:192=171:171","198:198=41:41"}
actor Darkman3RailPuffO : Darkman3RailPuff{Translation "192:192=104:104","198:198=128:128"}
actor Darkman3RailPuffP : Darkman3RailPuff{Translation "192:192=229:229","198:198=232:232"}

actor StupidRailOnlineSound : BasicHelper
{
Alpha 0.0
scale 0.1
States
{
Spawn:
TNT1 A 0
TNT1 A 0
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/Dark3Rail","Weapon")
TMFX D 10
stop
}
}

actor Darkman3RailFX : BasicClientSide
{
Translation "192:192=65:65","198:198=60:60"
+FORCEXYBILLBOARD
RenderStyle "translucent"
Alpha 1.0
//ReactionTime 20//3.5
Scale 0.25//2.5
States
{
Spawn:

TMFX B 1
TMFX BBBBBB 1 A_SetScale(scaleX+0.125)
TMFX B 1
TMFX BBBBBBBBBBBBBBBB 1 A_SetScale(scaleX-0.0625)
stop
}
}
actor Darkman3RailFXB : Darkman3RailFX{Translation "192:192=205:205","198:198=74:74"}
actor Darkman3RailFXR : Darkman3RailFX{Translation "192:192=171:171","198:198=41:41"}
actor Darkman3RailFXO : Darkman3RailFX{Translation "192:192=104:104","198:198=128:128"}
actor Darkman3RailFXP : Darkman3RailFX{Translation "192:192=229:229","198:198=232:232"}

actor Darkman3RailFX2S : BasicClientSide
{
Translation "192:192=65:65","198:198=60:60"
+FORCEXYBILLBOARD
+DONTSPLASH
+CLIENTSIDEONLY
+NOINTERACTION
RenderStyle "translucent"
Alpha 0.7
Scale 2.5
States
{
Spawn:
TNT1 A 0
DKC3 D 1
stop
}
}

actor Darkman3RailFX2S2 : Darkman3RailFX2S
{
renderstyle translucent
Alpha 0.5
}

actor DarkRailMultiFlag_P : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("DarkRailMultiFlag",2,"Pickup_Snd")
goto End
Pickup_Snd:
TNT1 A 0 A_SpawnItemEx("DarkRailMultiFlag_Helper")
goto End
End:
TNT1 A 0 A_TakeInventory("DarkRailMultiFlag",99)
stop
}
}

actor DarkRailMultiFlag_Helper : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Log("\c[WhiteOutLine]Multi-kill achieved!")
TNT1 A 10 A_PlaySound("weapon/Dark3Rail",2,0.75,0,ATTN_NONE)
TNT1 A 0 A_PlaySound("S_Spin/SUCCESS",1,0.55,0,ATTN_NONE)
TNT1 A 1
stop
}
}

actor Darkman3Target : FastProjectile
{
Translation "192:192=65:65","198:198=60:60"
PROJECTILE
+THRUGHOST
+DONTBLAST
+DONTSPLASH
+CLIENTSIDEONLY
damagetype "DarkShot"
Obituary "$OB_DARK3SNIPE"
Damage (0)
radius 2
height 2
speed 9999
scale 2
States
{
Spawn:
TNT1 A 0
TNT1 A 1
loop
Death:
TNT1 A 0 A_SpawnItemEx("Darkman3RailFX2S",0,0,0,0,0,0,0,1)
TNT1 A 1 A_Stop
stop
}
}

actor Darkman3Target2 : Darkman3Target
{
renderstyle translucent
alpha 0.1
States
{
Death:
TNT1 A 0 A_SpawnItemEx("Darkman3RailFX2S2",0,0,0,0,0,0,0,1)
TNT1 A 1 A_Stop
stop
}
}

actor Darkman3TargetB : Darkman3Target{Translation "192:192=205:205","198:198=74:74"}
actor Darkman3TargetR : Darkman3Target{Translation "192:192=171:171","198:198=41:41"}
actor Darkman3TargetO : Darkman3Target{Translation "192:192=104:104","198:198=128:128"}
actor Darkman3TargetP : Darkman3Target{Translation "192:192=229:229","198:198=232:232"}

actor Darkman3Target2B : Darkman3Target2{Translation "192:192=205:205","198:198=74:74"}
actor Darkman3Target2R : Darkman3Target2{Translation "192:192=171:171","198:198=41:41"}
actor Darkman3Target2O : Darkman3Target2{Translation "192:192=104:104","198:198=128:128"}
actor Darkman3Target2P : Darkman3Target2{Translation "192:192=229:229","198:198=232:232"}

// [BG] Yeah
Actor DM3BaseFX_Starter_Clientside : FastProjectile {
Translation "192:192=65:65","198:198=60:60"
PROJECTILE
+DONTBLAST
+DONTSPLASH
+DONTREFLECT
+CLIENTSIDEONLY
+BRIGHT

Damage (0)
Radius 2
Height 2
Scale 2.5
Speed 60
States {
Spawn:
TNT1 A 0
TNT1 A 0 A_SetPitch(pitch+1)
TNT1 A 0 A_JumpIf(pitch>50,"Death") // 512 + 8 + 1
TNT1 A 0 A_SpawnItemEx("DM3BaseFX_Starter_Clientside",0,0,0,momx,momy,momz,0,521)
TNT1 A 0 A_SpawnItemEx("Darkman3TargetLine2",0,0,0,0,0,0,0,33)
TNT1 A 1
Stop

Death:
TNT1 A 0 A_JumpIf(CallACS("cbm_IsPointerClient",2)!=1,2)
TNT1 A 0 A_SpawnItemEx("Darkman3RailFX2S",0,0,0,0,0,0,0,33) 
TNT1 A 1
stop
}
}

Actor DM3BaseFX2_Starter_Clientside  : DM3BaseFX_Starter_Clientside{
States {
Spawn:
TNT1 A 0
TNT1 A 0 A_SetPitch(pitch+1)
TNT1 A 0 A_JumpIf(pitch>50,"Death")
TNT1 A 0 A_SpawnItemEx("DM3BaseFX2_Starter_Clientside",0,0,0,momx,momy,momz,0,521)
TNT1 A 0 A_SpawnItemEx("Darkman3TargetLine2",0,0,0,0,0,0,0,33)
TNT1 A 1
Stop

Death:
TNT1 A 0 A_JumpIf(CallACS("cbm_IsPointerClient",2)!=1,2)
TNT1 A 0 A_SpawnItemEx("Darkman3RailFX2S2",0,0,0,0,0,0,0,33)
TNT1 A 1
stop
}
}

Actor DM3BaseFX_Starter : DM3BaseFX_Starter_Clientside{
States {
Spawn:
TNT1 A 0
TNT1 A 0 A_SetPitch(pitch+1)
TNT1 A 0 A_JumpIf(pitch>50,"Death")
TNT1 A 0 A_SpawnItemEx("DM3BaseFX_Starter",0,0,0,momx,momy,momz,0,521)
TNT1 A 0 A_JumpIf(CallACS("cbm_IsPointerClient",2)!=1,2)
TNT1 A 1
Stop
TNT1 A 1 A_SpawnItemEx("Darkman3TargetLine",0,0,0,0,0,0,0,33)
Stop

XDeath:
Crash:
Death:
TNT1 A 0 A_JumpIf(CallACS("cbm_IsPointerClient",2)==1,2)
TNT1 A 1 A_SpawnItemEx("Darkman3RailFX2S",0,0,0,0,0,0,0,33)
stop
TNT1 A 1
Stop
}
}

Actor DM3BaseFX2_Starter : DM3BaseFX2_Starter_Clientside{
States {
Spawn:
TNT1 A 0
TNT1 A 0 A_SetPitch(pitch+1)
TNT1 A 0 A_JumpIf(pitch>50,"Death")
TNT1 A 0 A_SpawnItemEx("DM3BaseFX2_Starter",0,0,0,momx,momy,momz,0,521)
TNT1 A 0 A_JumpIf(CallACS("cbm_IsPointerClient",2)!=1,2)
TNT1 A 1
Stop
TNT1 A 1 A_SpawnItemEx("Darkman3TargetLine2",0,0,0,0,0,0,0,33)
Stop

XDeath:
Crash:
Death:
TNT1 A 0 A_JumpIf(CallACS("cbm_IsPointerClient",2)==1,2)
TNT1 A 1 A_SpawnItemEx("Darkman3RailFX2S2",0,0,0,0,0,0,0,33)
stop
TNT1 A 1
Stop
}
}

Actor DM3BaseFX_StarterX : DM3BaseFX_Starter {-CLIENTSIDEONLY +NONETID}
Actor DM3BaseFX2_StarterX : DM3BaseFX2_Starter {-CLIENTSIDEONLY +NONETID}

actor DM3BaseFX_Starter_ClientsideB : DM3BaseFX_Starter_Clientside{Translation "192:192=205:205","198:198=74:74"}
actor DM3BaseFX_Starter_ClientsideR : DM3BaseFX_Starter_Clientside{Translation "192:192=171:171","198:198=41:41"}
actor DM3BaseFX_Starter_ClientsideO : DM3BaseFX_Starter_Clientside{Translation "192:192=104:104","198:198=128:128"}
actor DM3BaseFX_Starter_ClientsideP : DM3BaseFX_Starter_Clientside{Translation "192:192=229:229","198:198=232:232"}

actor DM3BaseFX2_Starter_ClientsideB : DM3BaseFX2_Starter_Clientside{Translation "192:192=205:205","198:198=74:74"}
actor DM3BaseFX2_Starter_ClientsideR : DM3BaseFX2_Starter_Clientside{Translation "192:192=171:171","198:198=41:41"}
actor DM3BaseFX2_Starter_ClientsideO : DM3BaseFX2_Starter_Clientside{Translation "192:192=104:104","198:198=128:128"}
actor DM3BaseFX2_Starter_ClientsideP : DM3BaseFX2_Starter_Clientside{Translation "192:192=229:229","198:198=232:232"}

actor DM3BaseFX_StarterXB : DM3BaseFX_StarterX{Translation "192:192=205:205","198:198=74:74"}
actor DM3BaseFX_StarterXR : DM3BaseFX_StarterX{Translation "192:192=171:171","198:198=41:41"}
actor DM3BaseFX_StarterXO : DM3BaseFX_StarterX{Translation "192:192=104:104","198:198=128:128"}
actor DM3BaseFX_StarterXP : DM3BaseFX_StarterX{Translation "192:192=229:229","198:198=232:232"}

actor DM3BaseFX2_StarterXB : DM3BaseFX_StarterX{Translation "192:192=205:205","198:198=74:74"}
actor DM3BaseFX2_StarterXR : DM3BaseFX_StarterX{Translation "192:192=171:171","198:198=41:41"}
actor DM3BaseFX2_StarterXO : DM3BaseFX_StarterX{Translation "192:192=104:104","198:198=128:128"}
actor DM3BaseFX2_StarterXP : DM3BaseFX_StarterX{Translation "192:192=229:229","198:198=232:232"}

actor Darkman3TargetLine
{
Translation "192:192=65:65","198:198=60:60"
+NOGRAVITY
-SOLID
+DONTSPLASH
+DONTBLAST
+THRUGHOST
+THRUACTORS
+CLIENTSIDEONLY
+NOINTERACTION
Renderstyle "Normal"
Radius 3
Height 3
Scale 1.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfTargetInLoS("Spawn2",0)
TNT1 A 1
stop
Spawn2:
DKC3 C 1
stop
}
}

actor Darkman3TargetLine2 : Darkman3TargetLine
{
renderstyle translucent
alpha 0.1
}

actor Darkman3Main0_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("Darkman3SMG",frandom(-1,1),0,8,0,0,frandom(-1,1))
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGB",frandom(-1,1),0,8,0,0,frandom(-1,1))
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGR",frandom(-1,1),0,8,0,0,frandom(-1,1))
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGO",frandom(-1,1),0,8,0,0,frandom(-1,1))
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("Darkman3SMGP",frandom(-1,1),0,8,0,0,frandom(-1,1))
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_RailAttack(25,0,1,"68 44 FC","D8 B8 F8",1,0,"Darkman3RailPuff",0,0)
TNT1 A 0 A_RailAttack(30,0,1,"68 44 FC","D8 B8 F8",1,0,"Darkman3RailPuff",0,0,0.0,1,10.0,10.0,"Darkman3RailFX")
goto Done
FireB:
TNT1 A 0 A_RailAttack(30,0,1,"00 70 E8","38 B8 F8",1,0,"Darkman3RailPuffB",0,0,0.0,1,10.0,10.0,"Darkman3RailFXB")
goto Done
FireR:
TNT1 A 0 A_RailAttack(30,0,1,"E0 00 58","FF 9B 9B",1,0,"Darkman3RailPuffR",0,0,0.0,1,10.0,10.0,"Darkman3RailFXR")
goto Done
FireO:
TNT1 A 0 A_RailAttack(30,0,1,"00 A8 00","B8 F8 18",1,0,"Darkman3RailPuffO",0,0,0.0,1,10.0,10.0,"Darkman3RailFXO")
goto Done
FireP:
TNT1 A 0 A_RailAttack(30,0,1,"C0 70 00","F8 B8 00",1,0,"Darkman3RailPuffP",0,0,0.0,1,10.0,10.0,"Darkman3RailFXP")
goto Done
}
}

/*
actor DarkRailPointerFX : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("DarkSniperCharge",700,"Pickup_Big")
TNT1 A 0 A_JumpIfInventory("DarkSniperCharge",525,"Pickup_Smol")
goto End
Pickup_Big:
TNT1 A 0 A_GiveInventory("Darkman3Main2FX_CI")
goto End
Pickup_Smol:
TNT1 A 0 A_GiveInventory("Darkman3Main2FX2_CI")
goto End
}
}
*/

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 
Done:
TNT1 A 0 A_GiveInventory("Darkman3RingAmmo",1)
TNT1 A 0 A_TakeInventory("Darkman3RingAmmo",1)
stop
}
}

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