Well i started working on some classes myself. I mostly just cut and paste stuff from the main game, but i tried to be creative.
excuse the quality.
also here is a class i made, it isn't very good, but it was my first attempt.
actor Fireman : PlayerPawn
{
player.displayname "fireman"
player.soundclass "megaman"
player.damagescreencolor "yellow"
player.forwardmove 0.6, 0.6
player.crouchsprite "FIRM"
//+BOSS
+NOBLOOD
+DONTBLAST
player.sidemove 1.0, 1.0
player.jumpz 8
player.startitem "FireStormUnlimited"
player.startitem "BusterAmmo", 3//
+NODAMAGETHRUST
//+GHOST
player.colorrange 0 0
mass 9999
damagefactor "Dummy", 0.0
gravity 0.8
scale 2.5
States
{
Spawn:
FIRM A 0
FIRM B 1
FIRM A 1
Goto Spawn+2
See:
FIRM BCDE 5
Goto Spawn
Missile:
FIRM F 5
FIRM 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 FireStormUnlimited : Weapon
{
+WEAPON.DONTBOB
Weapon.AmmoUse 0
Weapon.AmmoGive 100
Weapon.SlotNumber 1
Obituary "%o was melted by %k's FireStorm."
Inventory.Pickupmessage "Power up! Fire Storm!"
weapon.ammotype "BusterAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
//inventory.icon "FIRESI" // if this causes fail, remove the first //
Scale 2.0
States
{
Spawn:
WEAP Y 1
loop
Ready:
FIRE G 0 ACS_ExecuteAlways(998,0,123)
FIRE G 1 A_WeaponReady
Goto Ready+1
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
FIRE G 10 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
FIRE G 10 A_Raise
Loop
Fire:
FIRE H 0 A_JumpIfNoAmmo("NoAmmo")
FIRE H 0 A_PlaySoundEx("weapon/firestorm","Weapon")
FIRE H 10 A_FireCustomMissile("FireStorm",0,1,8,0)
//fire storm shield goes here
FIRE G 5
Goto Ready+1
NoAmmo:
FIRE G 0 ACS_Execute(979,0)
Goto Ready+1
}
}
actor FireStorm
{
PROJECTILE
+DONTBLAST
Radius 6
Height 7
scale 2.5
damage (5)
speed 40
States
{
Spawn:
FIRE ABC 2
loop
Death: AWSM K 0 A_Stop // Set's the projectile's velocity to nothing.
FIRE D 0 A_ChangeFlag("NOGRAVITY",0) // Change the projectile's gravity to 1 so the explosion effect isn't subject to gravity.
FIRE E 0 A_SpawnItemEx("FirePillar",0,0,0)
stop
}
}
actor FirePillar
{
PROJECTILE
-MISSILE
+DONTBLAST
+RIPPER
Scale 2.5
-NOGRAVITY
Height 20
Speed 0
Radius 20
Damage (25)
reactiontime 15
States
{
Spawn:
FLMB A 0
FLMB A 0 ACS_Execute(202,0)
FLMB H 1 A_JumpIf(z-floorz==0,"Flame")
loop
Flame:
FLMB A 0 A_ChangeFlag("FLOORHUGGER",1)
FLMB A 0 A_ChangeFlag("MISSILE",1)
FLMB A 0 A_CountDown
FLMB ABCDEFGFGFGFGFG 1
loop
Death:
FLMB A 0
stop
}
}
you can use this for a base if you want.
edit:blahg i forgot to change the pain sprites...
and things like darkdamager i forgot to take out.