actor Megaman : PlayerPawn
{
player.displayname "megaman"
player.soundclass "megaman"
player.damagescreencolor "yellow"
player.forwardmove 0.8, 0.8
//+BOSS
+NOBLOOD
//damagefactor "Fire", 1.0
+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
damagefactor "Dummy", 0.0
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.Coil:
Pain.Kick:
Pain.Yamato:
Pain.Dive:
Pain.Star:
Pain.Needle:
Pain.Centaur:
Pain.FCrack:
Pain.Screw:
Pain.PharaohHold:
Pain.Treble:
Pain.Scorch:
Pain.Magnet:
Pain.Junk:
Pain.Misc:
PLAY H 0
Goto pain+1
Pain.Wind:
PLAY H 0 //ThrustThing(random(0,255),50,1,0)
PLAY H 0 ThrustThingZ(0,90,0,0)
Goto pain+1
Pain.Claw:
PLAY H 0 A_PlaySoundEx("weapon/slashclawhit","SoundSlot5")
Goto Pain
Pain.Bright:
PLAY H 0 A_GiveInventory("Flashed",1)
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.Gravity:
PLAY H 0 ThrustThingZ(0,150,1,0)
PLAY H 0 A_JumpIf(z-floorz>180,"GravityForce4")
PLAY H 0 A_JumpIf(z-floorz>128,"GravityForce3")
PLAY H 0 A_JumpIf(z-floorz>32,"GravityForce2")
PLAY H 0 A_JumpIf(z-floorz>8,"GravityForce1")
Goto pain+1
GravityForce4:
//PLAY H 0 A_Print("Gravity 4")
PLAY H 0 A_GiveInventory("GravityForce4",1)
Goto Pain+1
GravityForce3:
//PLAY H 0 A_Print("Gravity 3")
PLAY H 0 A_GiveInventory("GravityForce3",1)
Goto Pain+1
GravityForce2:
//PLAY H 0 A_Print("Gravity 2")
PLAY H 0 A_GiveInventory("GravityForce2",1)
Goto Pain+1
GravityForce1:
//PLAY H 0 A_Print("Gravity 1")
PLAY H 0 A_GiveInventory("GravityForce1",1)
Goto Pain+1
Pain.WilyFire:
PLAY H 0 //A_ChangeFlag("SHOOTABLE",0)
PLAY H 0 A_SpawnItemEx("ImOnFire")
PLAY H 0 A_GiveInventory("FireVision",1)
Goto Pain
Pain.WilyIce:
PLAY H 0 A_ChangeFlag("SHOOTABLE",0)
PLAY H 0 SetPlayerProperty(0,1,4)
PLAY H 0 A_SpawnItemEx("ImFrozen")
PLAY H 0 A_GiveInventory("IceVision",1)
PLAY H 30 A_Stop
PLAY H 30 A_ChangeFlag("SHOOTABLE",1)
PLAY H 0 SetPlayerProperty(0,0,0)
PLAY H 0 A_TakeInventory("IceVision",1)
Goto Spawn
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.Gravity:
Death.instagib:
PLAY Z 1 SetPlayerProperty(0, 0, 4)
PLAY H 0 A_GiveToTarget("KilledMe",1)
PLAY H 0 A_GiveToTarget("KilledMeStock",1)
PLAY H 0 A_GiveInventory("IsDead",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_GiveInventory("IsDead",1)
PLAY H 0 A_Stop
PLAY H 0 A_GiveToTarget("KilledMeStock",1)
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 H 0 A_GiveInventory("IsDead",1)
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
CreditWalk:
PLAY BCDE 8
loop
}
}


actor ImOnFire
{
+MISSILE
+RIPPER
+NOGRAVITY
+NOINTERACTION
States
{
Spawn:
TNT1 A 20
TNT1 A 0 A_GiveToTarget("OnFireDamage",1)
TNT1 A 20
TNT1 A 0 A_GiveToTarget("OnFireDamage",1)
TNT1 A 20
TNT1 A 0 A_GiveToTarget("OnFireDamage",1)
TNT1 A 20
TNT1 A 0 A_GiveToTarget("ImNotOnFireNow",1)
stop
}
}

actor ImFrozen
{
+MISSILE
+NOGRAVITY
+NOINTERACTION
States
{
Spawn:
TNT1 A 60
TNT1 A 0 A_GiveToTarget("ImNotFrozenNow",1)
stop
}
}

actor OnFireDamage : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 0
stop
Pickup:
TNT1 A 0 DamageThing(4)
stop
}
}

actor ImNotOnFireNow : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 0
stop
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 A_TakeInventory("FireVision",1)
TNT1 A 0 A_ChangeFlag("SHOOTABLE",1)
stop
}
}

actor ImNotFrozenNow : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Spawn:
TNT1 A 0
stop
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 A_TakeInventory("IceVision",1)
stop
}
}

actor FireVision : PowerSpeed
{
Powerup.Duration 1200
Speed 0.3
Powerup.Color Red, 0.5
}

actor IceVision : PowerSpeed
{
Powerup.Duration 1200
Speed 1.0
Powerup.Color Blue, 0.5
}

actor KilledMeStock : Inventory
{
inventory.amount 1
inventory.maxamount 9999
}

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

actor GravityForce4 : PowerProtection
{
Powerup.Duration 20
damagefactor "Gravity", 5.0
}

actor GravityForce3 : PowerProtection
{
Powerup.Duration 20
damagefactor "Gravity", 4.0
}

actor GravityForce2 : PowerProtection
{
Powerup.Duration 20
damagefactor "Gravity", 3.0
}

actor GravityForce1 : PowerProtection
{
Powerup.Duration 20
damagefactor "Gravity", 2.0
}

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)
stop
}
}

actor LMSInvincible : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
states
{
Spawn:
TNT1 A 1
stop
Pickup:
SKLB G 0 A_ChangeFlag("SHOOTABLE",0)
SKLB G 1 A_ChangeFlag("DONTRIP",1)
stop
}
}

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
}
}
