I am currently working on a monster replacement mod that replaces all demons with zombified humans instead. Realm667's bestiary has been most helpful in that regard, but what I am missing at the moment is a replacement for the Arch-Vile. So far, I have yet to find a human enemy that is filling the same purpose.
Does anyone know where I can find one or happen to have what I am looking for?
Just an idea but I've always seen the archvile as some sort of sorcerer-like monster. If you happen across a fire wizard for Heretic or Hexen I think they would work perfect for this purpose and their same animations could be used to faithfully replace the Archvile attacks, if desired. But I don't know if that's what you would want.
The mod idea does sound interesting at any rate, though.
That could work, although if I do so, I may have to create a monster from scratch - something that I currently do not know how to do: this started as a personal project just for fun, so I thought I would save time by just using Realm667's creations instead of going through the hassle of learning the programming language.
I did come across Realm667's Banshee, which in many ways feels like a really OP Arch-Vile. In its current state, it only summons Lost Souls; maybe if I can figure out how to replace this with the Arch-Vile's resurrect ability, I guess it could make for an adequate replacement. I also know Realm667's Spirit Imp has the ability to revive a single enemy when it is killed.
EDIT: So looking at the Banshee's DECORATE code, it seems to have what looks like the Arch-Vile's Resurrect ability:
Spoiler:
Heal: BANS BCD 5 BRIGHT Goto See
Now, all I need is to figure out how to nerf the Banshee and have it focus more on healing.
Thank you! I would like to know if there is a way to make the Banshee more focused on reviving fallen enemies. I have put // before every line that seems related to her attacks just to see what would happen. While she seems to have stopped attacking me altogether, she now spends most of her time following me around, occasionally reviving one enemy here and there.
Here is what her DECORATE file looks like:
Spoiler:
ACTOR Banshee { Health 800 Radius 15 Height 60 Mass 50 Speed 17 PainChance 100 //+QUICKTORETALIATE //+FLOORCLIP +NOTARGET SeeSound "Banshee/Sight" PainSound "Banshee/Pain" DeathSound "Banshee/Death" ActiveSound "Banshee/Active" MeleeSound "Banshee/Raise" MONSTER Obituary "%o Heard The Banshee's Wail" States { Spawn: BANS A 1 A_Look Loop See: //BANS A 1 A_TakeInventory("BansheePainToken",2) //BANS A 1 A_TakeInventory("BansheeMissile5Token",50) BANS A 1 A_UnSetInvulnerable BANS A 1 A_VileChase //BANS A 1 A_SpawnItem("BansheeTrail",0,0) BANS A 0 A_Jump(20,"BansheeTeleport") Loop //Missile: //BANS A 0 A_Jump(20,"Missile3") //BANS A 0 A_Jump(50,"Missile4") //BANS A 0 A_Jump(256,"Missile2", "Melee","Missile1", "Missile5", "Missile6") //Goto See //Missile1: //BANS B 0 A_FaceTarget //BANS BCD 2 //BANS B 0 A_DualPainAttack ("LostSoulHexenCompatible") //Goto See //Missile2: //BANS B 0 A_FaceTarget //BANS BCD 2 //BANS D 0 A_CustomMissile("BansheeFire", 50, 0, -8) //BANS D 0 A_CustomMissile("BansheeFire", 50, 0, 0) //BANS D 0 A_CustomMissile("BansheeFire", 50, 0, 8) //Goto See //Missile3: //BANS B 0 A_FaceTarget //BANS BCD 2 //BANS B 0 A_Jump(256,"BansheeTeleport") //Goto See //Missile4: //BANS B 0 A_FaceTarget //BANS BCD 2 //BANS D 0 A_CustomMissile("BansheeFire3") //Goto See //Missile5: //BANS B 0 A_FaceTarget //BANS BCD 1 //BANS D 0 A_CustomMissile("BansheeFire4") //BANS D 0 A_GiveInventory("BansheeMissile5Token",1) //BANS D 0 A_JumpIfInventory("BansheeMissile5Token",50,"See") //BANS D 1 A_CPosRefire //Goto Missile5+2 //Missile6: //BANS B 0 A_FaceTarget //BANS BCD 2 //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0,-160) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0,-128) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0,-96 ) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0,-64 ) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0,-32 ) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0, 0 ) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0, 32 ) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0, 64 ) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0, 96 ) //BANS D 0 A_CustomMissile("BansheeFire5", 50, 0, 128) //BANS D 4 A_CustomMissile("BansheeFire5", 50, 0, 160) //Goto See //Melee: BANS B 0 A_FaceTarget BANS BCD 1 BANS D 0 A_CustomMissile("BansheeFire2", 50, 0,-160) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0,-128) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0,-96 ) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0,-64 ) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0,-32 ) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0, 0 ) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0, 32 ) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0, 64 ) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0, 96 ) BANS D 0 A_CustomMissile("BansheeFire2", 50, 0, 128) BANS D 4 A_CustomMissile("BansheeFire2", 50, 0, 160) Goto See BansheeTeleport: BANS A 0 A_SetInvulnerable BANS A 1 A_SetTranslucent(0.90) BANS A 1 A_SetTranslucent(0.80) BANS A 1 A_SetTranslucent(0.70) BANS A 1 A_SetTranslucent(0.60) BANS A 1 A_SetTranslucent(0.50) BANS A 1 A_SetTranslucent(0.40) BANS A 1 A_SetTranslucent(0.30) BANS A 1 A_SetTranslucent(0.20) BANS A 1 A_SetTranslucent(0.10) BANS A 0 A_Jump(128,25) TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_ExtChase(0,0,1,1) TNT1 A 0 A_Jump(128,25) TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_ExtChase(0,0,1,1) BANS A 1 A_SetTranslucent(0.10) BANS A 1 A_SetTranslucent(0.20) BANS A 1 A_SetTranslucent(0.30) BANS A 1 A_SetTranslucent(0.40) BANS A 1 A_SetTranslucent(0.50) BANS A 1 A_SetTranslucent(0.60) BANS A 1 A_SetTranslucent(0.70) BANS A 1 A_SetTranslucent(0.80) BANS A 1 A_SetTranslucent(0.90) BANS A 1 A_SetTranslucent(1.0) BANS A 0 A_UnSetInvulnerable goto See Heal: BANS BCD 5 BRIGHT Goto See Pain: BANS A 5 A_GiveInventory("BansheePainToken",5) BANS A 5 A_Pain BANS A 5 A_JumpIfInventory("BansheePainToken",25,"Missile4") Goto See Death: BANS G 2 A_Scream BANS H 2 A_NoBlocking BANS I 2 A_CustomMissile("SpawnFire", 0, 0, 0) BANS I 2 A_CustomMissile("SpawnFire", 0, 0, 0) BANS IJKLMNOPQR 2 BANS R -1 Stop } }
actor BansheeFire { Game Doom SpawnID 51 Radius 13 Height 8 Speed 15 Damage 2 Projectile +RANDOMIZE +RIPPER +DEHEXPLOSION +ROCKETTRAIL SeeSound "Banshee/ASpawn" DeathSound "Banshee/ADeath" Obituary "%o Heard The Banshee's Wail." Decal "DoomImpScorch" DamageType Fire States { Spawn: BANB A 1 BRIGHT A_SpawnItem("BansheeFireTrail",0,0) BANB A 4 loop Death: BAL1 CDE 3 bright stop } }
actor BansheeFire2 { Game Doom SpawnID 51 Radius 13 Height 8 Speed 15 Damage 2 Projectile +RANDOMIZE +DEHEXPLOSION +ROCKETTRAIL SeeSound "Banshee/ASpawn" DeathSound "Banshee/ADeath" Obituary "%o Heard The Banshee's Wail." Decal "DoomImpScorch" DamageType Fire States { Spawn: BANB A 1 BRIGHT A_SpawnItem("BansheeFireTrail",0,0) BANB A 4 loop Death: BAL1 CDE 3 bright stop } }
actor BansheeFire3 { Game Doom SpawnID 51 Radius 24 Height 24 Speed 15 Damage 100 Projectile +NOGRAVITY +SPAWNCEILING +SEEKERMISSILE +RANDOMIZE +DEHEXPLOSION +ROCKETTRAIL Scale 3.0 SeeSound "Banshee/ASpawn" DeathSound "Banshee/ADeath" Obituary "%o Heard The Banshee's Wail." Decal "Scorch" DamageType Fire States { Spawn: BANB A 1 BRIGHT A_SeekerMissile (50,50) BANB A 0 BRIGHT A_SpawnItem("BansheeFireTrail",0,0) BANB A 1 BRIGHT A_GiveInventory("BansheeFire3Token",1) BANB A 1 BRIGHT A_JumpIfInventory("BansheeFire3Token",30,"Die") Goto Spawn Die: BANB A 0 A_Die Death: BAL1 CDE 3 bright stop } }
actor BansheeFire4 { Game Doom SpawnID 51 Radius 13 Height 8 Speed 25 Damage 2 Projectile +RANDOMIZE +DEHEXPLOSION +ROCKETTRAIL SeeSound "Banshee/ASpawn" DeathSound "Banshee/ADeath" Obituary "%o Heard The Banshee's Wail." DamageType Fire States { Spawn: BANF ABCDEFGH 3 BANF H 0 A_DIE Stop Death: BANF H 3 bright stop } }
actor BansheeFire5 { Game Doom SpawnID 51 Radius 13 Height 8 Speed 20 Damage 2 Projectile +SEEKERMISSILE +FLOORHUGGER +RIPPER +RANDOMIZE +DEHEXPLOSION +ROCKETTRAIL SeeSound "Banshee/ASpawn" DeathSound "Banshee/ADeath" Obituary "%o Heard The Banshee's Wail." DamageType Fire States { Spawn: BAFT A 1 BRIGHT A_SeekerMissile (50,50) BAFT A 2 A_SpawnItem("BansheeFireTrail2",0,0) BAFT A 1 BRIGHT A_GiveInventory("BansheeFire3Token",1) BAFT A 1 BRIGHT A_JumpIfInventory("BansheeFire3Token",30,"Die") Goto Spawn Die: BAFT A 0 A_Die Death: BAFT BCDEFGH 3 bright stop } }
ACTOR BansheeTrail { Radius 20 Height 56 Speed 0 PROJECTILE RENDERSTYLE Translucent ALPHA 0.90 States { Spawn: TNT1 A 3 BANS A 3 A_FadeOut(0.10) goto spawn+1 } }
ACTOR BansheeFireTrail { Radius 20 Height 56 Speed 0 PROJECTILE RENDERSTYLE Translucent Scale 0.50 ALPHA 0.90 States { Spawn: TNT1 A 3 BANF ABCDEFGH 3 Bright A_FadeOut(0.10) Stop } }
ACTOR BansheeFireTrail2 { Radius 20 Height 56 Speed 0 PROJECTILE RENDERSTYLE Translucent Scale 0.50 ALPHA 0.90 States { Spawn: TNT1 A 3 BAFT ABCDEFG 3 Bright A_FadeOut(0.10) Stop } }
actor BansheePainToken : Ammo { Inventory.MaxAmount 50 }
actor BansheeFire3Token : Ammo { Inventory.MaxAmount 50 }
actor BansheeMissile5Token : Ammo { Inventory.MaxAmount 50 }
ACTOR LostSoulHexenCompatible { Health 100 Radius 16 Height 56 Mass 50 Speed 8 Damage 3 PainChance 256 Monster +FLOAT +NOGRAVITY +MISSILEMORE +DONTFALL +NOICEDEATH AttackSound "skull/melee" PainSound "skull/pain" DeathSound "skull/death" ActiveSound "skull/active" RenderStyle SoulTrans Obituary "%o was spooked by a lost soul." States { Spawn: SKUL AB 10 BRIGHT A_Look Loop See: SKUL AB 6 BRIGHT A_Chase Loop Missile: SKUL C 10 BRIGHT A_FaceTarget SKUL D 4 BRIGHT A_SkullAttack SKUL CD 4 BRIGHT Goto Missile+2 Pain: SKUL E 3 BRIGHT SKUL E 3 BRIGHT A_Pain Goto See Death: SKUL F 6 BRIGHT SKUL G 6 BRIGHT A_Scream SKUL H 6 BRIGHT SKUL I 6 BRIGHT A_NoBlocking SKUL J 6 SKUL K 6 Stop } }
Sure did. I loaded up MAP01, typed "kill monsters" and then summoned her. She would revive a couple of enemies here and there, but then she would start wandering around aimlessly and only reviving enemies that are close to me. Maybe she is trying to do her melee attack but cannot because I have disabled it, I do not know.
With the help of Player701 in a different thread, I have been able to come to a satisfying result. Now that I have added the line "BANS A 1 A_Chase("", "", CHF_RESURRECT)", the Banshee seems a bit more proactive when it comes to resurrecting her comrades. I wish she could be made even better at it, but that might require some more advanced scripting and I do not think I am quite there yet.
However, after much testing, I must retract what I previously said: the Banshee may have more attacks than the Arch-Vile, but she ultimately does not feel as overpowered as I thought. She is still powerful, but until the Arch-Vile, all her attacks are projectile-based. Also, it helps that I changed the damage factor to 0.5 to make up for the increased number of hitscan enemies.