// Decorate code for Vivienne
Actor Vivienne : PlayerPawn
{
+NOSKIN
+NOICEDEATH
+NODAMAGETHRUST
+QUICKTORETALIATE  
+GHOST
    Health 120
    Radius 16
    Height 56
    Mass 700
	scale 1.0
    PainChance 256
    Player.ColorRange 112, 127
	Player.Weaponslot 1, ViviPistol
	Player.Weaponslot 2, ViviSteampunker
	Player.Maxhealth 100
	Player.Startitem "ViviAmmo", 15
	Player.StartItem "ViviJumpAmmo", 100
	Player.StartItem "ViviSteampunkerAmmo", 100
	Player.StartItem "ViviMineAmmo", 100
	Player.StartItem "SpecialAbility", 1
	Player.Startitem "ViviPistol"
	Player.StartItem "ViviSteampunker"
    Player.DisplayName "Vivienne"
    Player.StartItem "IsHuman", 1
    Player.StartItem "Screamer", 0
    Player.ForwardMove 1.0, 1.0
    Player.SideMove 1.0, 1.0
	Damagefactor "Normal", 1.0
	Damagefactor "AntiAirbolt", 0.0
	Damagefactor "GraveStalkerLure", 1.1
	Damagefactor "Yureiball", 0.6
	Damagefactor "Sentinel", 0.0
	Damagefactor "Hellzone", 0.7
	Damagefactor "MechPewPews", 0.0
	Damagefactor "MacheteSlicerino", 0.0
    Damagefactor "GasterSmokeHurt", 0.0
	Damagefactor "StrifeSuit", 0.0
    Player.SoundClass "Vivi"
	Player.ScoreIcon "VIVIST"
    LimitedToTeam 0
    States
    {
 Spawn:
		GIRL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		GIRL A 15 Setplayerproperty(0,0,0)
		GIRL AAAAAAAAA 1
		TNT1 A 0 A_JumpIfInventory("Waiting",15,"WaitingTooLong")
		TNT1 A 0 A_GiveInventory("Waiting",1)
		TNT1 A 0 A_JumpIfInventory("ViviJumpAmmo", 100, "Spawn")
		Loop
		WaitingTooLong:
		GIRL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
		GIRL A 1
		GIRL A 1
		GIRL A 1 A_TakeInventory("Waiting",15)
		goto Spawn
 See:
   GIRL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   GIRL A 0 A_JumpIfHealthlower(50,"INeedHealingSee")
   GIRL A 4 
   GIRL B 4 A_SpawnItemEx ("ViviStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   TNT1 A 0 A_GiveInventory("ViviMineAmmo",1)
   GIRL A 0 A_TakeInventory("Waiting",15)
   GIRL C 4
   GIRL D 4 A_SpawnItemEx ("ViviStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   TNT1 A 0 A_GiveInventory("ViviMineAmmo",1)
   GIRL A 0
   Goto Spawn
 INeedHealingSee:
   GIRL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   GIRL A 0 A_SpawnItemEx("INeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
   GIRL A 4 
   GIRL B 4 A_SpawnItemEx ("ViviStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   TNT1 A 0 A_GiveInventory("ViviMineAmmo",1)
   GIRL A 0 A_TakeInventory("Waiting",15)
   GIRL C 4
   GIRL D 4 A_SpawnItemEx ("ViviStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   TNT1 A 0 A_GiveInventory("ViviMineAmmo",1)
   GIRL A 0
   Goto Spawn
 Missile:
   GIRL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   GIRL F 6 A_TakeInventory("Waiting",15)
   Goto Spawn
   Melee:
   GIRL A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")	
   GIRL F 6
   Goto Spawn
   	Pain.Justicar:
	TNT1 A 0 A_custommissile("Justicarattack",14,0,random(0,360))
	TNT1 A 0 A_GiveToTarget("Health",1)
	TNT1 A 0 A_GiveToTarget("JusticarSecondaryAmmo",1)
	Goto pain
	Pain.TeleOtherPlant:
	TNT1 A 0 A_GiveInventory("TeleOtherPlanted",1)
	Goto Pain
	Pain.TeleOtherActivateDamage:
	TNT1 A 0 A_JumpIfInventory("TeleOtherPlanted",1,"TeleOtherSend")
	Goto Pain
	TeleOtherSend:
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 ACS_ExecuteAlways(466,0,2)
	GIRL G 1 A_PlaySound("TeleOther/activate",CHAN_6,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	Goto Pain
	Death.TeleOtherActivateDamage:
	TNT1 A 0 A_JumpIfInventory("TeleOtherPlanted",1,"TeleOtherSplode")
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 A_GiveToTarget("KilledMe",1)
	GIRL G 1 A_PlaySound("Gibbage/XSplat")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
	TeleOtherSplode:
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 ACS_ExecuteAlways(466,0,2)
	TNT1 A 0 A_GiveToTarget("KilledMe",1)
	GIRL G 1 A_PlaySound("Gibbage/XSplat")
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_6,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
  Pain.Choke:
	TNT1 A 0 A_GiveToTarget("Health",2)
	TNT1 A 0 A_GiveToTarget("ChokeCharging",1)
	Goto Pain
  Pain.JusticarSpike:
	TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
	TNT1 A 0 A_GiveToTarget("Health",2)
  Pain:
	GIRL G 0 A_GiveInventory("ViviJumpAmmo",1)
    GIRL G 4 A_Pain
    Goto Spawn
	Pain.LoonaClawing:
	TNT1 A 0 A_GiveToTarget("Health",6)
	GIRL G 20 Setplayerproperty(0,1,0)
	GIRL G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",5)
	GIRL G 20 Setplayerproperty(0,1,0)
	GIRL G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",8)
	GIRL G 20 Setplayerproperty(0,1,0)
	GIRL G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Death.LoonaClawing:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Death.LoonaClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Death.LoonaClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Pain.GloomWatcherLure:
	TNT1 A 0 ACS_ExecuteAlways(134)
	TNT1 A 0 A_Playsound("GloomWatcher/FeintAttack",CHAN_7)
	Goto pain
	Death.GloomWatcherlure:
	TNT1 A 0 ACS_ExecuteAlways(134)
	TNT1 A 0 A_Playsound("GloomWatcher/FeintAttack",CHAN_7)
	Goto Death.Jitter
	GloomDeath:
	TNT1 A 1 Damagething(99999,18)
	Goto Death
	Death.Fleshbent:
	TNT1 A 0 A_GiveToTarget("TentacleAmmo",2)
	TNT1 A 0 A_GiveToTarget("Soulscepter1",15)
	TNT1 A 0 A_GiveToTarget("Soulscepter2",50)
	Goto Death.Jitter
	Pain.BastetClawing:
		TNT1 A 0 A_GiveToTarget("Health",4)
		Goto Pain
	Pain.BastetClawingLightSFX:
		TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_5)
		TNT1 A 0 A_GiveToTarget("Health",3)
		Goto Pain
	Pain.BastetClawingHeavySFX:
		TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_5)
		TNT1 A 0 A_GiveToTarget("Health",6)
		Goto Pain
	Pain.Sickle:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
	Pain.Wendigo:
		TNT1 A 0 A_PlaySound("RAVEN1",CHAN_5)
		TNT1 A 0 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,4), random(0,360), 128)
		TNT1 A 0 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,4), random(0,360), 128)
		Goto Pain
  Pain.Creepstun:
    GIRL G 0 A_Pain
	GIRL G 0 A_GiveToTarget("health",5)
	GIRL G 40 Setplayerproperty(0,1,0)
	GIRL G 2 Setplayerproperty(0,0,0)
	Goto Spawn
  Death.Creeper:
	GIRL A 0 A_PlaySoundEx("creeperattack", "Body")
	GIRL A 0 A_SpawnItemEx("CreeperPopUp",0,0,10)
	TNT1 A 0 A_GiveToTarget("GhoulAmmo",1)
	GIRL A 0 A_GiveToTarget("Creeperheal",1)
    GIRL A 0 ACS_ExecuteAlways(997,0,1)
	goto DeathAnimAlt
  Death.Creepstun:
	GIRL A 0 A_GiveToTarget("Unlock13",1)
	GIRL A 0 A_GiveToTarget("CreepGotya",1)
	goto DeathAnimAlt
  Death.SjasScream:
  Death.FrostbiteWind:
  Death.EmtalicSaw:
  Death.LichFire:
    GIRL A 0 A_GiveToTarget("KilledJ",1)
    Goto DeathAnim
  Death:
  DeathAnim:
	GIRL A 0 A_GiveToTarget("KillBeep",1)
	GIRL A 0 A_GiveInventory("ItemDeath",1)
	GIRL A 0 A_TakeInventory("KilledCount",999)
    GIRL A 0 A_GiveToTarget("KilledMe",1)
    GIRL A 0 A_GiveToTarget("KilledVivi",1)
	SPIN A 3
	SPIN B 3 A_PlayerScream
	SPIN C 3 A_NoBlocking
	SPIN D 3
	SPIN E 3
	SPIN F 3
	SPIN G 3
	SPIN H 3
	SPIN I 3
	SPIN J 3
	SPIN K 3
	SPIN L 3
	SPIN M 3
	SPIN N 5
	SPIN O 5
	SPIN P 8
	SPIN Q 8
	SPIN R 8
	SPIN S 10
	SPIN T 10
	SPIN U 10
	SPIN V -1
    Stop
  DeathAnimAlt:
	GIRL A 0 A_GiveToTarget("KillIndicator",1)
	GIRL A 0 A_GiveInventory("ItemDeath",1)
	GIRL A 0 A_TakeInventory("KilledCount",999)
    GIRL A 0 A_GiveToTarget("KilledMe",1)
    GIRL A 0 A_GiveToTarget("KilledVivi",1)
	SPIN A 3
	SPIN B 3 A_PlayerScream
	SPIN C 3 A_NoBlocking
	SPIN D 3
	SPIN E 3
	SPIN F 3
	SPIN G 3
	SPIN H 3
	SPIN I 3
	SPIN J 3
	SPIN K 3
	SPIN L 3
	SPIN M 3
	SPIN N 5
	SPIN O 5
	SPIN P 8
	SPIN Q 8
	SPIN R 8
	SPIN S 10
	SPIN T 10
	SPIN U 10
	SPIN V -1
    Stop
	Death.GhoulChainSaw:
	TNT1 A 0 A_GiveToTarget("Health",50)
	TNT1 A 0 A_GiveToTarget("BearTarpsAmmo",1)
	TNT1 A 0 A_GiveToTarget("SawyerRageammo",10)
	TNT1 A 0 A_GiveToTarget("DUMMY_SawyerBloodyChainsaw", 1)
	Goto Death.Jitter
	Death.BastetClawing:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.BastetClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.BastetClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.Choke:
		TNT1 A 0 A_GiveToTarget("Health",25)
		TNT1 A 0 A_GiveToTarget("ChokeCharging",40)
	Goto Death.Jitter
	Death.JusticarSpike:
		TNT1 A 0 A_GiveToTarget("Health",15)
	Goto Death.Jitter
	Death.Sinistar:
		TNT1 A 0 A_GiveToTarget("SiniPrimary",1)
	Goto Death.Jitter
  Death.MapGibber:
		TNT1 A 0 A_PlaySound("car/hit",chan_auto)
  Death.MapGibber2:
  Death.Jitter:
	GIRL A 0 A_GiveToTarget("KillBeep",1)
	GIRL A 0 A_GiveInventory("ItemDeath",1)
    GIRL A 0 A_GiveToTarget("Crunched",1)
	GIRL A 0 A_GiveToTarget("KilledMe",1)
	GIRL A 0 A_GiveToTarget("KilledVivi",1)
	GIRL G 1 A_PlaySound("gibbage/xsplat")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
  Death.JitterAlt:
	GIRL A 0 A_GiveToTarget("KillIndicator",1)
	GIRL A 0 A_GiveInventory("ItemDeath",1)
    GIRL A 0 A_GiveToTarget("Crunched",1)
	GIRL A 0 A_GiveToTarget("KilledMe",1)
	GIRL A 0 A_GiveToTarget("KilledVivi",1)
	GIRL G 1 A_PlaySound("gibbage/xsplat")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
	Death.Harvester:
		TNT1 A 0 A_GiveToTarget("SoulHarvesterFragment",1)
		TNT1 A 0 A_GiveToTarget("KilledJ",1)
		Goto Death.Jitter
	Death.HarvesterRock:
		TNT1 A 0 ACS_NamedExecute("SilverFieldsBell",55)
		Goto DeathAnim
	Death.HarvesterAlt:
		TNT1 A 0 A_GiveToTarget("Crunched2",1)
		TNT1 A 0 ACS_NamedExecute("SilverFieldsBell",55)
		Goto Death.Jitter
  Death.Ravager:
		GIRL A 0 A_GiveToTarget("KilledR",1)
		GIRL A 0 A_GiveToTarget("Health",100)
		GIRL A 0 ACS_ExecuteAlways(997,0,2)
		GIRL A 0 A_PlaySoundEx("RavagerAttack","Body")
		GIRL A 0 A_SpawnItemEx("RavagerHit",0,0,32)
		Goto DeathAnimAlt
	Death.RavagerBall:
		GIRL A 0 A_GiveToTarget("RavagerGotYa",1)
		GIRL A 0 A_GiveToTarget("KilledJ",1)
		Goto DeathAnimAlt
	Death.Yurei:
		GIRL A 0 A_GiveToTarget("KilledY",1)
		GIRL A 0 A_PlaySoundEx("YureiKill1","Body",0,1)
		GIRL A 0 ACS_ExecuteAlways(997,0,3)
		Goto DeathAnimAlt
	Death.YureiBall:
		GIRL A 0 A_GiveToTarget("Health",10)
		GIRL A 0 A_SpawnItemEx("BallFire")
		Goto Death.SjasScream
	Death.UboaRawrScream:
		Goto DeathAnimAlt
	Death.Misty:
	Death.Whiteface:
		GIRL A 0 A_GiveToTarget("KillBeep",1)
		GIRL A 0 A_GiveInventory("ItemDeath",1)
		GIRL A 0 A_GiveToTarget("KilledMe",1)
		GIRL A 0 A_GiveToTarget("KilledM",1)
		GIRL HHHH 2 A_FadeOut(0.1)
		GIRL A 0 A_PlayerScream
		GIRL IIIIJJ 2 A_FadeOut(0.1)
		GIRL A 0 A_NoBlocking
		NULL A -1
		Stop
	Death.Clowny:
		GIRL A 0 ACS_ExecuteAlways(997,0,4)
		GIRL A 0 A_GiveToTarget("KilledC",1)
		Goto DeathAnim
	Death.Mohoph:
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		GIRL A 0 A_GiveToTarget("TransVivi",1)
		GIRL A 0 A_PlaySoundEx("MohophKill","Body")
		GIRL A 0 ACS_ExecuteAlways(997,0,5)
		Goto DeathAnim
	Death.EmtalicWeak:
		GIRL A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto DeathAnim
	Death.Emtalic:
		GIRL A 0  A_PlaySoundEx("RamSuccess","Body")
		Goto Death.Jitter
	Death.I1:
		GIRL A 0 A_SpawnItemEx("Heart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		GIRL A 0 A_GiveToTarget("KilledI1",1)
		Goto DeathAnim
	Death.I2:
		GIRL A 0 A_GiveToTarget("KillBeep",1)
		GIRL A 0 A_GiveInventory("ItemDeath",1)
		GIRL A 0 A_GiveToTarget("KilledMe",1)
		GIRL A 0 A_GiveToTarget("KilledI2",1)
		GIRL A 0 A_GiveToTarget("Clip",1)
		GIRL G 0 SetPlayerProperty(0,1,4)
		GIRL G 0 A_Stop
		GIRL GGGGGGGGGGGGGG 5 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		NULL A 0 A_PlayerScream
		NULL A 0 ACS_ExecuteAlways(997,0,6)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
		NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		NULL A 1 A_SpawnItemEx("SkullGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A 1 A_SpawnItemEx("ChestGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("ArmGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("HandGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A 1 A_SpawnItemEx("CoccyxGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("LegGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AAAAAA 1 A_SpawnItemEx("BoneGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A -1 A_NoBlocking
		Stop
	Death.I3:
		GIRL A 0 A_GiveToTarget("KillBeep",1)
		GIRL A 0 A_GiveInventory("ItemDeath",1)
		GIRL A 0 A_GiveToTarget("KilledMe",1)
		GIRL A 0 A_GiveToTarget("KilledI3",1)
		GIRL HHHHHHHH 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GIRL I 0 A_PlayerScream
		GIRL IIIIIIII 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GIRL J 0 A_NoBlocking
		GIRL JJJJJJJJKKKKKKKKLLLLLLLLMMMMMMMM 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GIRL NNNNNNN 3 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		GIRL N -1
		Stop
	Death.I4:
		GIRL A 0 A_GiveToTarget("KilledI4",1)
		Goto DeathAnim
	Death.I5:
		GIRL A 0 A_GiveToTarget("KilledI5",1)
		Goto DeathAnim
	Pain.RavagerBall:
		GIRL A 0 ACS_ExecuteAlways(920,0)
		Goto Pain
	Pain.YureiBall:
		GIRL A 0 A_GiveToTarget("Health",10)
		GIRL A 0 A_SpawnItemEx("BallFire")
		Goto Pain
	Pain.Emtalic:
		GIRL A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Pain.EmtalicWeak:
		GIRL A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Death.Tenebra:
		TNT1 A 0 A_GiveToTarget("Health",20)
		Goto DeathAnim
	Death.TenebraRail:
	Death.Telefrag:
	Death.Grenade:
	Death.Termissiles:
	Death.ChaosExpl12:
	Death.KarenExplo:
	Death.IlluNukeKABUUM:
	Death.CalebDynamite:
	Death.Wendigo:
	Death.MorphRipperGib:
	Death.DarkVortex:
	Death.ImpostorJitter:
	Death.PuppetStrings:
	Death.LichIce:
	Death.LichLightning:
	Death.AsylumCannonBall:
		Goto Death.Jitter
	Death.TrueDivine:
		TNT1 A 0 A_PlaySoundEx("SoulSnatchStinger",CHAN_AUTO,0,1)
		TNT1 A 0 A_SpawnItemEx("SoulSnatch")
		Goto Death.JitterAlt
	Death.Judgement:
		TNT1 A 0 A_SpawnItemEx("StellarisThunderFX")
		Goto Death.JitterAlt
	Death.VoltMelee:
	Death.AmperRail:
		TNT1 A 0 A_GiveToTarget("VoltRingAmmo",2)
		TNT1 A 0 A_GiveToTarget("AmperSpeedTokenCheck",1)
		Goto Death.Jitter
	Pain.FrostbiteWind:
	Pain.Ravager:
	Pain.Juglava:
	Pain.HarvesterRock:
	Pain.EmtalicSaw:
	Pain.MorphRipper:
	Pain.MorphRipperGib:
	Pain.I1:
	Pain.I3:
	Pain.ZombiePoison:
	Pain.Asylum:
	Pain.AsylumCannonBall:
	Pain.FleshlingMissile:
	Pain.DarkVortex:
	Pain.ImpostorJitter:
	Pain.BlueFire:
	Pain.PuppetStrings:
	Pain.LichFire:
	Pain.LichIce:
	Pain.LichLightning:
	Pain.Whiteface:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		Goto Pain
	}
}

Actor ViviStomp : CyborgStomp
{
	DeathSound "ViviStep"
}

Actor ViviAmmo : Ammo
{
	Ammo.BackPackAmount 15
	Ammo.BackPackMaxAmount 15
	Inventory.Amount 15
	Inventory.MaxAmount 15
	Inventory.Icon "CLIPA0"
	+INVENTORY.IGNORESKILL
	States
	{
	Spawn:
		TNT1 A -1
		Stop
	}
}

Actor ViviJumpAmmo : Ammo
{
	Ammo.BackPackAmount 100
	Ammo.BackPackMaxAmount 100
	Inventory.Amount 100
	Inventory.MaxAmount 100
	Inventory.Icon "TNT1A0"
	+INVENTORY.IGNORESKILL
	States
	{
	Spawn:
		TNT1 A -1
		Stop
	}
}

Actor ViviSteampunkerAmmo : Ammo
{
	Ammo.BackPackAmount 100
	Ammo.BackPackMaxAmount 100
	Inventory.Amount 100
	Inventory.MaxAmount 100
	Inventory.Icon "TNT1A0"
	+INVENTORY.IGNORESKILL
	States
	{
	Spawn:
		TNT1 A -1
		Stop
	}
}

Actor ViviMineAmmo : Ammo
{
	Ammo.BackPackAmount 100
	Ammo.BackPackMaxAmount 100
	Inventory.Amount 100
	Inventory.MaxAmount 100
	Inventory.Icon "TNT1A0"
	+INVENTORY.IGNORESKILL
	States
	{
	Spawn:
		TNT1 A -1
		Stop
	}
}

actor Waiting : Inventory { -INVBAR +INVENTORY.UNDROPPABLE Inventory.MaxAmount 15 }
actor TauntCooldown : Inventory { -INVBAR +INVENTORY.UNDROPPABLE Inventory.MaxAmount 5 }

actor Vivipistol : Weapon 
{  
  Weapon.AmmoUse 0
  Weapon.AmmoUse2 100
  Weapon.AmmoGive 20
  Weapon.AmmoType "ViviAmmo"
  Weapon.AmmoType2 "ViviJumpAmmo"
  Weapon.SlotNumber 2
  Weapon.BobStyle Inversesmooth
  Weapon.Bobspeed 1.5
  Weapon.Kickback 500
  Obituary "%o misses %k too much."
  //+NOALERT
  +noautofire
  Decal BulletChip
  Inventory.Icon "TNT1A0"
  Inventory.Pickupmessage "Picked up a 10mm Pistol."
  States
  {
  Ready:
  TNT1 A 0 A_JumpIfinventory("CyborgDashCheck", 1, "Reload")
  TNT1 A 0 A_JumpIfInventory("ViviAmmo",1,1)
  TNT1 A 0 A_JumpIfInventory("Waiting",15,"WaitingTaunt")
    BREG A 1 A_WeaponReady
    Loop
  Deselect:
    BREG A 1 A_Lower
    Loop
  Select:
    BREG A 1 A_Raise
    Loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("ViviAmmo",1,1)
	Goto Reload
	BREG A 0 A_TakeInventory("ViviAmmo",1)
	BREG A 0 A_Playweaponsound("Vivi/Pistol")
	BREG A 0 A_FireCustomMissile("KarTracer3",0,1)
	BREG A 0 A_GiveInventory("ViviJumpAmmo",5)
	BREG A 0 A_FireCustomMissile("RifleCaseSpawn",0,0,0,5)
	BREG A 2 A_SetPitch (pitch-1.0)
	BREG B 2 A_SetPitch (pitch+1.0)
	BREG C 1
	BREG D 1
	BREG E 1
	BREG B 2 
	BREG A 10
	BREG A 0 A_ReFire
	BREG A 1 A_WeaponReady
    Goto Ready
  Flash:
    BREG A 3 Bright
    Goto LightDone
  Spawn:
    SPIP A -1
    Stop
	WaitingTaunt:
		BREG AAAA 1 A_Lower
		BREG A 0 A_Lower
		BREG A 1 A_Lower
		BREG A 0 A_Lower
		BREG A 1 A_Lower
		BREG A 0 A_Lower
		BREG A 1 A_Lower
		BREG A 0 A_Lower
		BREG A 1 A_Lower
		BREG A 0 A_Lower
		BREG A 0 A_Lower
	WaitingTaunt1:
		TNT1 A 0 A_PlaySound("Vivi/Idle",CHAN_VOICE)
		TNT1 AAAAAAAAAAAAA 0 A_Raise 
		TNT1 A 0 ACS_ExecuteAlways(996,0)
		TNT1 A 0 A_GiveInventory("ViviJumpAmmo", 50)
		TNT1 A 0 HealThing(5)
		TNT1 A 0 A_GiveInventory("ViviSteampunkerAmmo",5)
		IDLL A 3 
		IDLL B 3 
		IDLL C 3
		TNT1 A 0 A_GiveInventory("TauntCooldown",5)
		IDLL D 3
		IDLL E 3
		IDLL F 3
		IDLL G 3
		IDLL H 3
		IDLL I 3
		IDLL J 3
		TNT1 A 0 ACS_ExecuteAlways(996,0)
		TNT1 A 0 A_GiveInventory("ViviJumpAmmo", 50)
		TNT1 A 0 HealThing(5)
		TNT1 A 0 A_GiveInventory("ViviSteampunkerAmmo",5)
		IDLL K 3
		IDLL L 3
		IDLL M 3
		IDLL N 3
		IDLL O 3
		IDLL P 3
		IDLL Q 3
		IDLL R 3
		IDLL S 3
		IDLL T 3
		IDLL U 3
		IDLL V 3
		IDLL W 3
		IDLL X 3
		IDLL Y 3 A_TakeInventory("Waiting",15)
		IDLL YYYYYYYYYYYYYY 0 A_Lower
		goto Select
		Altfire:
		BREG A 1 Offset (0,36) A_TakeInventory("ViviJumpAmmo",100)
		BREG A 0 Offset (2,40)
		BREG A 1 Offset (4,44)
		BREG A 0 Offset (6,48)
		BREG A 1 Offset (8,52)
		BREG A 0 Offset (10,56)
		BREG A 1 Offset (12,60)
		BREG A 0 Offset (14,64)
		BREG A 1 Offset (14,68)
		BREG A 0 Offset (14,72)
		BREG A 1 Offset (14,76)
		PUNG B 2
		PUNG C 2
		TNT1 A 0 ThrustThingZ(0,80,0,0)
		TNT1 A 0 A_RadiusThrust(40000,168,RTF_NOIMPACTDAMAGE)
		PUNG D 1 A_SpawnItemEx("ViviTornado")
		TNT1 A 0 A_Playsound("Vivi/Nado",CHAN_WEAPON)
		PUNG D 1 A_Playsound("Vivi/Yahoo",CHAN_ITEM)
		PUNG D 15
		PUNG C 2
		PUNG B 2
		BREG A 1 Offset (14,76)
		BREG A 0 Offset (14,72)
		BREG A 1 Offset (14,68)
		BREG A 0 Offset (14,64)
		BREG A 1 Offset (12,60)
		BREG A 0 Offset (10,56)
		BREG A 1 Offset (8,52)
		BREG A 0 Offset (6,48)
		BREG A 1 Offset (4,44)
		BREG A 0 Offset (2,40)
		BREG A 1 Offset (0,36)
		BREG A 40 A_WeaponReady(WRF_NOSECONDARY)
		Goto Ready
		Reload:
	TNT1 A 0 A_TakeInventory("CyborgDashCheck")
	TNT1 A 0 A_JumpIfInventory("Viviammo", 15, "Ready")
		BREG A 2 Offset (0,36)
		BREG A 0 Offset (2,40)
		BREG A 2 Offset (4,44)A_PlaySound ("MAGUNLOA")
		BREG A 0 Offset (6,48)
		BREG A 2 Offset (8,52)
		BREG A 0 Offset (10,56)
		BREG A 2 Offset (12,60)
		BREG A 0 Offset (14,64)
		BREG A 2 Offset (14,68)
		BREG A 0 Offset (14,72)
		BREG A 10 Offset (14,76) A_PlaySound ("MAGLOAD")
		BREG A 0 A_GiveInventory("Viviammo",15)
		BREG A 10 Offset (14,76)
		BREG A 0 Offset (14,72)
		BREG A 5 Offset (14,68)
		BREG A 0 Offset (14,64)
		BREG A 4 Offset (12,60)
		BREG A 0 Offset (10,56)
		BREG A 3 Offset (8,52)
		BREG A 0 Offset (6,48)
		BREG A 2 Offset (4,44)
		BREG A 0 Offset (2,40)
		BREG A 2 Offset (0,36)
    Goto Ready
  }
}


Actor ViviMinePlacing
{
	Speed 10
	Height 5
	Radius 5
	Scale 0.5
	Damage (0)
	Obituary "%o was blown away."
	PROJECTILE
	-NOGRAVITY
	+BLOODLESSIMPACT
	+RIPPER
	States
	{
	Spawn:
		LMIN A 1 A_JumpIf(WaterLevel == 2, "Death2")
		LMIN A 0 A_GiveInventory("Clip",1)
		LMIN A 0 A_JumpIfInventory("Clip", 100, "Death2")
		Loop
	Death:
		LMIN A 0 A_CustomMissile("ViviMines", 0, 0, 0, 0)
		Stop
	Death2:
		LMIN A 1
		Stop
	}
}

Actor ViviMines
{	
	Height 5
	Radius 10
	Scale 0.5
	Speed 0
	Damage (25)
	ReactionTime 3600
	Obituary "%o was blown away."
	DeathSound "Vivi/MineSplode"
	DamageType "ViviMine"
	DamageFactor "Jitterskull", 0.0
	DamageFactor "SjasScream", 0.0
	PROJECTILE
	Explosionradius 128
	Explosiondamage 20
	+friendly
	+NOCLIP
	-NOGRAVITY
	+THRUGHOST
	+SEEKERMISSILE
	States
	{
	Spawn:
		LMIN AB 5
		LMIN C 0 A_ChangeFlag("NOCLIP",0)
		LMIN B 1 A_CountDown
		LMIN C 0
		Goto Spawn+3
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	Death:
		TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK|SMF_CURSPEED,256)
		TNT1 A 0 A_JumpIfTargetInLOS("SplashBeep",360,JLOSF_PROJECTILE,180)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	SplashBeep:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		TNT1 A 0 A_Jump(256,"DeathCont")
		Goto DeathCont
	DeathCont:
		NF32 A 0 A_Explode(5,128,0)
		NF32 A 1 A_RadiusThrust(30000,128,RTF_NOIMPACTDAMAGE)
		NF32 BCDEFGJKLMNO 2
		Stop
	FadeOut:
		LMIN D 1 A_FadeOut(0.1)
		Loop
	}
}


ACTOR KarTracer3 : MP40Tracer
{
	Damage (30)
	Damagetype "Vivi"
	speed 1000
	Obituary "%o misses %k too much."
}


ACTOR ViviTornado
{
  renderstyle translucent
  Obituary "%o tasted the rainbow."
   ALPHA 0.70
   scale 1.2
   height 50
   radius 50
   mass 99999999999
   projectile
   DamageType "RainbowNado"
   States
   {
   Spawn:
      NF22 A 0
      NF22 ABCDEFGHIJKLMNO 2 Bright A_Explode(20,168,0)
      stop
   }
}

actor ViviSteampunker : Weapon // Replaces PlasmaRifle
{
  Weapon.SelectionOrder 100
  Weapon.AmmoType1 "ViviSteampunkerAmmo"
  Weapon.AmmoType2 "ViviMineAmmo"
  Weapon.AmmoGive 50
  Weapon.BobStyle Inversesmooth
  Weapon.Bobspeed 1.5
  Inventory.icon "TNT1A0"
  +NOAUTOFIRE
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.ALT_AMMO_OPTIONAL
  States
  {
    Ready:
	WZ31 A 0 A_JumpIfInventory("Waiting",10,"WaitingTaunt")
    WZ31 FGHIJKLMLKJIHGF 2 A_WeaponReady
	WZ31 A 0 A_JumpIfInventory("Waiting",10,"WaitingTaunt")
    Loop
  Deselect:
    WZ31 A 1 A_Lower
	//TNT1 AA 0 A_Lower
    Loop
  Select:
	WZ31 A 0 A_Print("Steampunker primary fire hit on allies reduces their damage taken. On Ghouls, can stun temporarily if hit enough.")
	Goto RaiseSet
	RaiseSet:
    WZ31 A 1 A_Raise
	//TNT1 AA 0 A_Raise
    Loop
  Fire:
	WZ31 A 0 A_JumpIfInventory("ViviSteampunkerAmmo",1,"Fire2")
	Goto Ready
  Fire2:
    WZ31 A 0 A_PlaySound("Vivi/Steampunker")
	WZ31 A 0 A_TakeInventory("ViviSteampunkerAmmo",1)
	WZ31 B 1 bright Offset (6,40) A_FireCustomMissile("ViviBufferProjectile",0,1,8,5)
	WZ31 B 1 bright Offset (6,40) A_FireCustomMissile("ViviSteamSpawningCase",30,0,-15,5,0)
	WZ31 C 1 bright Offset (6,40)
	WZ31 D 1 Offset (4,36)
	WZ31 E 1 Offset (3,34)
	WZ31 B 0 A_refire
	goto FireFinish
	FireFinish:
	WZ31 A 0 A_PlaySound("Weapons/PlasmaPostFire", CHAN_ITEM) 
    WZ31 A 1 Offset (6,40)
    WZ31 A 1 Offset (4,44)
    WZ31 A 1 Offset (2,40)
    WZ31 A 1 Offset (0,36)
	Goto Ready
	Altfire:
	WZ31 A 0 A_JumpIfInventory("ViviMineAmmo",25,"Altfire2")
	Goto Ready
	Altfire2:
	WZ31 A 0 A_TakeInventory("ViviMineAmmo",25)
	WZ31 A 0 A_PlayWeaponSound("Vivi/MinePlace")
	WZ31 A 2 Offset (6,40) A_SpawnItemEx("ViviMinePlacing",50,0,50)
    WZ31 A 2 Offset (4,44)
    WZ31 A 2 Offset (2,40)
    WZ31 A 2 Offset (0,36)
	Goto Ready
	WaitingTaunt:
		WZ31 AAAA 1 A_Lower
		WZ31 A 0 A_Lower
		WZ31 A 1 A_Lower
		WZ31 A 0 A_Lower
		WZ31 A 1 A_Lower
		WZ31 A 0 A_Lower
		WZ31 A 1 A_Lower
		WZ31 A 0 A_Lower
		WZ31 A 1 A_Lower
		WZ31 A 0 A_Lower
		WZ31 A 0 A_Lower
	WaitingTaunt1:
		TNT1 A 0 A_PlaySound("Vivi/Idle",CHAN_VOICE)
		TNT1 AAAAAAAAAAAAA 0 A_Raise 
		TNT1 A 0 ACS_ExecuteAlways(996,0)
		TNT1 A 0 A_GiveInventory("ViviSteampunkerAmmo", 50)
		TNT1 A 0 A_GiveInventory("ViviMineAmmo",50)
		IDLL A 3 
		IDLL B 3 
		IDLL C 3
		TNT1 A 0 A_GiveInventory("TauntCooldown",5)
		IDLL D 3
		IDLL E 3
		IDLL F 3
		IDLL G 3
		IDLL H 3
		IDLL I 3
		IDLL J 3
		TNT1 A 0 ACS_ExecuteAlways(996,0)
		TNT1 A 0 A_GiveInventory("ViviSteampunkerAmmo", 50)
		TNT1 A 0 A_GiveInventory("ViviMineAmmo",50)
		IDLL K 3
		IDLL L 3
		IDLL M 3
		IDLL N 3
		IDLL O 3
		IDLL P 3
		IDLL Q 3
		IDLL R 3
		IDLL S 3
		IDLL T 3
		IDLL U 3
		IDLL V 3
		IDLL W 3
		IDLL X 3
		IDLL Y 3 A_TakeInventory("Waiting",15)
		IDLL YYYYYYYYYYYYYY 0 A_Lower
		goto Select
  }
}

actor ViviSteamSpawningCase {
	speed 15
	PROJECTILE
	+NOCLIP
	+CLIENTSIDEONLY
	states{
		spawn:
			NULL A 0
			NULL A 1 A_SpawnItemEx("VivisSteamCasing", -25, 20, 0, random(0,1), random(5,6), 0, 0, SXF_TRANSFERPOINTERS) 
			stop
	}

}

actor VivisSteamCasing {
	scale 0.12
	radius 2
	height 2
	speed 6
	mass 4
	bouncefactor 0.5
	PROJECTILE
	+DOOMBOUNCE
	+NODROPOFF
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+FLOORCLIP
	-NOGRAVITY
	-NOBLOCKMAP
	+CLIENTSIDEONLY
	seesound "weapons/shell"
	states{
		spawn:
			SGSC AABBCCDDEEFFGGHH 1 A_SpawnItemEx ("sgauss_casing_smoke", 0, 0, 0, frandom(-0.1,0.1), frandom(-0.1,0.1) , frandom(0.6,1.0), 0)
			loop
		death:
			NULL A 0 A_Jump(255, "pos1", "pos2", "pos3", "pos4")
			NULL A 0
		pos1:
			SGSC A 200
			SGSC AAAAAAAAAA 1 A_FadeOut(0.1)
			stop
		pos2:
			SGSC E 200
			SGSC EEEEEEEEEE 1 A_FadeOut(0.1)
			stop
		pos3:
			SGSC G 200
			SGSC GGGGGGGGGG 1 A_FadeOut(0.1)
			stop
		pos4:
			SGSC C 200
			SGSC CCCCCCCCCC 1 A_FadeOut(0.1)
			stop	
	}
}

actor ViviBufferProjectile : fastprojectile
{
PROJECTILE
Radius		10
Height		8
Speed		60
scale		0.5
RenderStyle Add
Alpha		0.4
Damage (0)
Damagetype "Sentinel"
DeathSound	"weapons/plasmax"	
+HITTRACER
States
{
Spawn:
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
WZ33 B 0 A_SpawnItemEx("ViviBufferTrail")
TNT1 A 0 A_SpawnItemEx("ViviGBVFXIcyTrail",random(-20,20),random(-20,20),random(-20,20),0,0,0)
WZ33 B 0 A_SpawnItemEx("ViviIcyTrail",random(-20,20),random(-20,20),random(-20,20))
WZ33 B 0 A_SpawnItemEx("ViviMageIceBallParticle", 0, 0, 0, Random(3, 4), 0, Random(-0.5, 0.5), Random(-15, 15), 128)
WZ33 B 1 bright A_Fadeout(0.05)
Stop
XDeath:
TNT1 A 0 A_GiveToTarget("HitBeep",1)
TNT1 A 0 A_PlaySound("INARHLS",CHAN_ITEM)
Goto Death
Death:
WZ33 C 1 A_GiveInventory("GodmodePowerup",1,AAPTR_TRACER)
WZ33 CCDDEEFFGGHH 2 bright 
Stop 
}
}

Actor ViviGBVFXIcyTrail : GBVFXIcyTrail
{
	RenderStyle Add
	Alpha 0.4
}

Actor ViviIcyTrail : IcyTrail
{
	RenderStyle Add
	Alpha 0.4
}

Actor ViviMageIceBallParticle : MageIceBallParticle
{
	RenderStyle Add
	Alpha 0.4
}

Actor ViviBufferTrail
{   
  Radius 2
  Height 2
  Damage 0
  Scale 0.5
  Projectile
  -BloodSplatter
  +CLIENTSIDEONLY
  RenderStyle Add
  Alpha 0.3
  States
  {
  Spawn:
    WZ33 B 1 Bright A_fadeout (0.1)
    loop
  }
}


Actor GodmodePowerup : CustomInventory
{
	Inventory.Amount 1
	Inventory.PickupSound "INARHLS"
	Scale 0.035
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_FadeOut(0.1)
		Goto Spawn
	Pickup:
		TNT1 A 0 A_JumpIfInventory("Vivisteampunker",0,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("ShieldAndThrowingAxe",0,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("IsHuman",1,"Buff")
		TNT1 A 0 A_JumpIfInventory("sjashands",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("creeperweapon",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("Jitterskullweapon",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("frostteeth",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("choketeeth",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("eyesoreteeth",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("ravagerweapon",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("jugulumteeth",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("harvesterteeth",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("samaravisionsx",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("mistyhands",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("clownyface",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("emtalicweapon",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("righthand",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("uboahands",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("undeathface",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("Impostorhands",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("BloodMagicHands",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("Emberwand",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("gravestalkermalezombie",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("soulscepter",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("puppeteerhands",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("shallowteeth",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("gravestalkermalezombie",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("BlazeSpawnWeapon",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("AmorbisWeapon",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("GaunaWeapon",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("AsylumVision",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("z-Z.Morph.Z-z",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("GhoulChainsawX",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("JusticarCurseX",1,"NopeBuff")
		TNT1 A 0 A_JumpIfInventory("KXObliteratorHand",1,"DisableTrigger")
		TNT1 A 0 A_JumpIfInventory("Voltcleaver",1,"DisableTrigger")
		fail
	Buff:
		TNT1 A 0 A_GiveInventory("Steampunkerbuff",1)
		TNT1 A 0 A_GiveInventory("SteampunkerbuffColor",1)
		Stop
	DisableTrigger:
		TNT1 AAA 0 A_GiveInventory("GhoulDisableTrigger",1)
		Stop
	NopeBuff:
		TNT1 A 0
		Stop
	}
}

Actor GhoulDisableTrigger : Inventory
{
	Inventory.Amount 0
	Inventory.MaxAmount 15
}



ACTOR Steampunkerbuff : PowerupGiver 12222
{
  +COUNTITEM
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.BIGPOWERUP
  Inventory.MaxAmount 0
  Scale 0.73
  Powerup.Type "Protection"
  Powerup.Duration -10
  Powerup.Color 00 00 128, 0.3
  DamageFactor "Normal", 0.4
  States
  {
  Spawn:
    TNT1 A 1 Bright
    Loop
  }
}

Actor SteampunkerbuffColor : CustomInventory
{
	Inventory.MaxAmount 1
	States
	{
	Spawn:
		TNT1 A 1
		Loop
	Pickup:
		ANT1 A 1 ACS_NamedExecuteAlways("ViviLightScript",0)
		ANT1 A 0 A_JumpIfInventory("ViviLightToken",1,"NoPickup")
		ANT1 A 0 A_FireCustomMissile("ViviLight")
		Stop
	NoPickup:
		ANT1 A 1
		Fail
	}
}

ACTOR ViviLight : RenegadeNodSymbol
{
  Scale 0.5
  +NOTONAUTOMAP
  states
    {
    Spawn:
	   TNT1 A 0 A_JumpIfInTargetInventory("ItemDeath",1,"Death")
	   TNT1 A 0 BRIGHT a_warp(AAPTR_TARGET,0,0,0)
	   TNT1 A 1 Bright Light("ViviLightDef")
       Loop
	Death:
	   TNT1 A 1
	   Stop
	}
}

Actor ViviLightToken : Inventory
{
	Inventory.MaxAmount 1
}

Actor ViviLightTimerItem : Inventory
{
	Inventory.MaxAmount 1
}

Actor ViviLightTimerTokens : Inventory
{
	Inventory.MaxAmount 10
}