// KirvoAbaddon

ACTOR KirovCacoClass : PlayerPawn
{
  
  Health 1200
  gibhealth 99999 //added - actor can not be gibbed
  Speed 0.50 //0.4
  Radius 31
  Height 56
  Mass 400
  PainChance 128
  Player.DisplayName "Kirov"
  Player.MaxHealth 400
  Player.ViewHeight 40
  Player.SoundClass Abbadon
  Player.JumpZ 0
  Player.MorphWeapon KirovMouth
  Player.WeaponSlot 1, KirovMouth
  BloodColor "Red" 

  
  DamageFactor "Suicide", 0 // puppetmaster can not suicide a monster
  DamageFactor "MarineDamage", 0.6
  DamageFactor "MarineRLDamage", 0.6
  DamageFactor "BFGSplash", 0.6
  DamageFactor "MarineRail", 0.6
  
  DamageFactor "CybRLDamage", 0.25
  DamageFactor "ImpBallDamage", 0
  DamageFactor "CacoDamage", 0
  DamageFactor "SkelDamage", 0
  DamageFactor "FatsoDamage", 0
  DamageFactor "KnightDamage", 0
  DamageFactor "ArachDamage", 0
  DamageFactor "viledamage", 0
  DamageFactor "Control", 0
  DamageFactor "ZombiesDamage", 0
  DamageFactor "Slime", 0
  DamageFactor "ZombieTankDamage", 0
  
  -PICKUP
  +NOSKIN
  +NOPAIN
  -FRIENDLY
  +NOTARGET
  +LONGMELEERANGE //added
  +NOTRIGGER //added - avoid issues in level design
  
  States
  {
  Spawn:
	KIRV A 5 
    Loop
  See:
    KIRV A 0 
    KIRV A 1 A_Jump (240,2) //0
	KIRV A 0 A_PlaySound("m_kirovcoco_taunt")
    KIRV A 15
    Loop
  Missile:
    KIRV BC 5 
    KIRV D 5 BRIGHT
    KIRV BC 5 
    KIRV D 5 BRIGHT
	KIRV B 16
    Goto See
  Melee:
    KIRV A 0
    Goto Missile
  Death:
    KIRV G 8 A_GiveToTarget ("MarineExp",10)
    KIRV H 8 A_PlaySoundEx ("caco/death","body")
    KIRV I 8 Thing_changeTid(144,0)
    KIRV J 8
    KIRV K 8 A_NoBlocking
	KIRV K 1 A_SpawnItemEx ("MDeathGhost",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) //0
	KIRV L -1	
	stop	
  }
}

// Weapons etc

ACTOR KirovMouth : Weapon
{ 
  OBITUARY "$OB_CACOLANTERN"
  HITOBITUARY "$OB_CACOLANTERN_MELEE"
  weapon.kickback 60
  attacksound "abba/pain"
  +WEAPON.NOALERT
  +Ammo_Optional
  +Alt_Ammo_Optional
  +WEAPON.DONTBOB
  +WEAPON.CHEATNOTWEAPON
  //+INVENTORY.UNDROPPABLE //added
  
  
  states
  {
  Spawn:
    CACB A 0 Thing_Remove (0)
    Stop
  Select:
     CACB A 1 A_Raise
     Goto Ready
  Ready:
     CACB A 4 A_WeaponReady
     TNT1 A 0 A_JumpIfInventory ("Mskull",0,3)
     CACB A 4 A_WeaponReady
     TNT1 A 0 A_JumpIfInventory ("Mskull",3,1)
	 TNT1 A 0 HealThing(10)
     Loop
  DeSelect:
     CACB A 1 A_Lower
     Loop
  Fire:
     CACB A 0 A_JumpIfCloser (130,"Melee") //60
	 CACB A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
	 CACB A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
	 CACB ABC 5
	 CACB A 0 A_SetBlend ("purple",0.35,10)
	 CACB A 0 A_FireCustomMissile ("PKirovBall",0,0,0,5)
	 CACB ABC 5
	 CACB A 0 A_SetBlend ("purple",0.35,10)
	 CACB A 0 A_FireCustomMissile ("PKirovBall",0,0,0,5)
	 CACB ABC 5 //added
	 CACB A 0 A_SetBlend ("purple",0.35,10) //added
	 CACB A 0 A_FireCustomMissile ("PKirovBall",0,0,0,5) //added
	 CACB C 6
	 CACB CBA 5
     Goto Ready
	 
   AltFireX:
     CACB ABC 3
	 CACB A 0 A_SetBlend ("purple",0.35,10)
	 CACB A 0 A_FireCustomMissile ("HomingMissile",0,0,0,5)
	 CACB C 6
	 CACB CBA 3 
     Goto Ready
   AltFireY:
	 CACB ABC 3
	 CACB A 0 A_SetBlend ("purple",0.35,10)
	 CACB A 0 A_FireCustomMissile ("MKirovGrenade",0,0,0,5)
	 CACB C 16
	 CACB CBA 3
     Goto Ready
	 
  Melee:
    CACB A 4
	CACB B 4 A_CustomPunch (6,0,1,"FBulletPuff",60)
    CACB C 4
	goto Ready	
  Altfire:
    CACB A 5 ACS_ExecuteAlways (419,0,52) 
  	goto Ready	 
  }
}

actor PKirovBall : MAbaddonBall

{
Speed 22
Damage 10
}



ACTOR MKirovGrenade : Grenade
{
	Radius 8
	Height 8
	Speed 25
	Damage 15
	Projectile
	BounceCount 0
	Scale 1.5
	-NOGRAVITY
	-NOTELEPORT
	+TELESTOMP //added
	+DOOMBOUNCE
	+DEHEXPLOSION
	+ROCKETTRAIL
	//+GRENADETRAIL
	+EXPLODEONDEATH
	//+USESTBOUNCESOUND
	//+NOBOUNCESOUND //added
	+CANBOUNCEWATER //added
	SeeSound "weapons/mgrenbounce"
	DeathSound "weapon/grenadeexplode" //weapons/rocklx
	Obituary "$OB_GRENADE"
	DamageType "AbaddonGrenDamage"
	States
	{
	Spawn:
		GRN2 ABCDEFGHIJK 3  
		loop
	Death:
		MISL B 8 bright A_Explode
		MISL C 6 bright
		MISL D 4 bright
		stop
	}

}
