actor Megaman : PlayerPawn
{
player.displayname "megaman"
player.soundclass "megaman"
player.damagescreencolor "yellow"
player.forwardmove 0.8, 0.8
//+BOSS
+NOBLOOD
+DONTBLAST
player.sidemove 0.78, 0.78
player.jumpz 10
player.startitem "MegaBuster"
player.startitem "BusterAmmo", 3
+NODAMAGETHRUST
//+GHOST
player.colorrange 0 0
mass 9999
gravity 0.8
scale 2.5
States
{
Spawn:
PLAY A 0
PLAY B 1
PLAY A 1
Goto Spawn+2
See:
PLAY BCDE 5
Goto Spawn
Missile:
PLAY F 5
PLAY G 4
goto Spawn
Pain.FireSpin:
Pain.Quick:
Pain.Buster:
Pain.Kick:
Pain.Yamato:
Pain.Dive:
Pain.Star:
Pain.Needle:
Pain.Centaur:
PLAY H 0
Goto pain+1
Pain.Bright:
PLAY H 0 A_GiveInventory("Flashed",1)
Goto pain+1
Pain.Wind:
PLAY H 0 ThrustThing(random(0,255),35,1,0)
PLAY H 0 ThrustThingZ(0,100,0,0)
Goto pain+1
Pain.Gravity:
PLAY H 0 ThrustThing(random(0,255),50,1,0)
PLAY H 0 ThrustThingZ(0,60,0,0)
Goto pain+1
Pain.Shock:
PLAY H 0 A_SpawnItemEx("ShockFX",4,0,32)
PLAY H 0 A_GiveInventory("Shocked",1)
Goto Pain+1
Pain:
PLAY H 0 A_Stop
PLAY H 0 A_JumpIfInventory("EnkerMirrorCount",1,"EnkerAbsorb")
PLAY H 0 A_Pain
PLAY H 0 //A_GiveInventory("TempInvince",1)
PLAY H 0 //SetPlayerProperty(0, 1, 4)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 1 A_SpawnItem("PainFX",0,3)
PLAY H 1 //A_Recoil(1)
PLAY H 0 //SetPlayerProperty(0, 0, 4)
PLAY H 0 SetPlayerProperty(0,0,1)
Goto Spawn
Death.Beam:
Death.instagib:
PLAY Z 1 SetPlayerProperty(0, 0, 4)
PLAY H 0 A_GiveToTarget("KilledMe",1)
PLAY Z 0 A_PlayerScream
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,0,2,90)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,0,2,-90)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,0,2,90)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,0,2,-90)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,45)
PLAY Z -1
stop
Death:
PLAY H 0 SetPlayerProperty(0, 0, 4)
PLAY H 0 A_TakeInventory("PharaohCharge",999)   
PLAY H 0 A_NoBlocking
PLAY H 0 A_GiveInventory("CutterFlag",999)
PLAY H 0 A_Stop
PLAY H 1 A_GiveToTarget("KilledMe",1)
PLAY H 19 ACS_ExecuteAlways(999,0,0)
PLAY H 0 SetPlayerProperty(0, 0, 4)
PLAY H 0 A_PlayerScream
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,0,2,90)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,0,2,-90)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,0,2,90)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,0,2,-90)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,45)
PLAY Z -1
stop
Death.Falling:
PLAY H 0 SetPlayerProperty(0, 0, 4)
PLAY H 0 A_TakeInventory("PharaohCharge",999)   
PLAY H 0 A_NoBlocking
PLAY H 0 A_GiveInventory("CutterFlag",999)
PLAY Z 1 A_PlayerScream
PLAY Z 1 A_Stop
PLAY Z 1 ACS_ExecuteAlways(999,0,0)
PLAY Z -1
stop
PunkSpin:
PLAY AVW 3
PLAY XY 3
Goto PunkSpin+3
PunkStop:
PLAY WV 5
Goto Spawn
EnkerRaise:
PLAY Y 1
loop
EnkerAbsorb:
PLAY Y 0 A_PlaySound("weapon/mirrorabsorb")
PLAY Y 0 A_GiveInventory("EnkerMirrorCount",1)
Goto EnkerAbsorb3
EnkerAbsorb3:
PLAY Y 3 ACS_ExecuteAlways(998,0,65)
PLAY Y 0 A_JumpIfInventory("EnkerMirrorCount",1,"EnkerAbsorb2")
Goto Spawn
EnkerAbsorb2:
PLAY Y 3 ACS_ExecuteAlways(998,0,66)
PLAY Y 0 A_JumpIfInventory("EnkerMirrorCount",1,"EnkerAbsorb3")
Goto Spawn
DarkLeap:
PLAY Y 1 A_SpawnItemEx("DarkDamager")
PLAY Y 0 A_JumpIf(z-floorz==0,"Spawn")
loop
BalladeJump:
PLAY Y 5 A_SpawnItemEx("BalladeMelee")
loop
TheEnd:
PLAY G 4
loop
}
}

actor DarkDamager
{
PROJECTILE
obituary "%o was squashed by %k."
height 1
damagetype "Quick"
radius 1
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(1,64,0)
stop
}
}

actor Shocked : PowerupGiver
{
  inventory.maxamount 0
  powerup.duration 35
  powerup.color "00 00 00", 0.0
  powerup.type "PowerShock"
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  states
  {
  Spawn:
    TNT1 A 6
    loop
  }
}

actor PowerShock : PowerSpeed
{
Speed 0.0
}

actor TempInvince : PowerupGiver
{
  inventory.pickupmessage ""
  inventory.icon "TNT1A0"
  //inventory.respawntics 4230
  powerup.duration 48
  powerup.type "Invulnerable"
  +INVENTORY.AUTOACTIVATE
  states
  {
  Spawn:
    INVU ABCD 3
    loop
  }
}

actor PainFX
{
+NOINTERACTION
+NOGRAVITY
-SOLID
scale 2.5
States
{
Spawn:
MMFX A 2
stop
}
}

actor DeathFX1
{
height 1
radius 1
+NOINTERACTION
+NOGRAVITY
-SOLID
+DONTBLAST
scale 2.5
PROJECTILE
Speed 15
reactiontime 10
States
{
Spawn:
MMFX BCDE 2
MMFX A 0 A_CountDown
loop
}
}

actor DeathFX2 : DeathFX1
{
speed 5
}


actor LowGravity : CustomInventory
{
States
{
Pickup:
TNT1 A 1 ACS_ExecuteAlways(204,0,1)
stop
}
}

actor NormalGravity : CustomInventory
{
States
{
Pickup:
TNT1 A 1 ACS_ExecuteAlways(204,0,0)
stop
}
}

actor MonsterBlock : CustomInventory
{
States
{
Pickup:
TNT1 A 1 A_ChangeFlag("NOBLOCKMONST",0)
stop
}
}

actor JumpCancler : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor KilledMe : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
states
{
Spawn:
TNT1 A 1
stop
Pickup:
TNT1 A 1 ACS_ExecuteAlways(203,0)
}
}

actor FakeDeathFX
{
-SOLID
+NOGRAVITY
+NOINTERACTION
States
{
Spawn:
TNT1 A 1
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,0,2,90)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,0,2,-90)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX1",0,0,-90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,0,2,90)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,0,2,-90)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,0)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,90,2,-45)
PLAY Z 0 A_CustomMissile("DeathFX2",0,0,-90,2,45)
TNT1 A 1
stop
}
}