Kyka Posted October 16, 2013 So just an interesting piece of archvile behavior I noticed while playtesting a TNT2 map. Here is what happened: 1)I was killed by an archvile. 2)The arch, moments after my death, was hit by a mancubus that was shooting at my until-recently-living ass, and did what all self respecting archs do, which is to go kill the (now stationary) manc. 3)Once it had completed bouncing the manc around a few times, the manc died. And I expected the arch to become docile after the manc's death, but instead it rezzed a nearby imp, and then went into its docile state. All this took place as my corpse watched events. I would have thought that the arch, once it had dealt with the manc, would take no further actions, but apparently this is not the case. Is this a common occurrence, is there stuff in the code that allows archs this extra move after everything is done? Could the arch potentially rezz more than one monster within reach even when it might usually go into its docile state? I was just curious as I had never seen this before. 0 Share this post Link to post
Maes Posted October 16, 2013 Probably the imp had done something at that exact moment, e.g. it could have thrown a fireball at the manc too, but got the archvile instead right after it had finished with the manc, and so paid the price. And no, there's nothing in the code which would allow such a behavior deliberately, not in vanilla Doom and Boom at least, except maybe by some extreme freaky pointer curruption, which could cause a dormant monster to go against a target out of the blue. 0 Share this post Link to post
darkreaver Posted October 16, 2013 Maes said:Probably the imp had done something at that exact moment, e.g. it could have thrown a fireball at the manc too, but got the archvile instead right after it had finished with the manc, and so paid the price. And no, there's nothing in the code which would allow such a behavior deliberately, not in vanilla Doom and Boom at least, except maybe by some extreme freaky pointer curruption, which could cause a dormant monster to go against a target out of the blue. But the vile resurrected the imp, it (the vile) didnt kill it (the imp) 0 Share this post Link to post
Krispy Posted October 16, 2013 The imp and the archvile made a pact in the wormhole on the way there: If either one of them should die, the other one would resurrect him after the marine was dead, under any circumstances. And damn it if he was going to back down on a promise to his friend. 1 Share this post Link to post
schwerpunk Posted October 16, 2013 The wormhole pact I can buy, but an imp resurrecting an Archvile? Seems a bit far fetched. Unless the imp lied, which they are known to do. 0 Share this post Link to post
fraggle Posted October 16, 2013 Interesting question, and I'm glad to provide an answer to it! Doom has an internal function called A_Chase. This is used by most monsters to control their behavior: it decides whether to do a melee attack, missile attack, whether to advance towards the target, etc. Here's an example of the frames associated with the zombiemen, see how most of them call A_Chase: {SPR_POSS,0,10,{A_Look},S_POSS_STND2,0,0}, // S_POSS_STND {SPR_POSS,1,10,{A_Look},S_POSS_STND,0,0}, // S_POSS_STND2 {SPR_POSS,0,4,{A_Chase},S_POSS_RUN2,0,0}, // S_POSS_RUN1 {SPR_POSS,0,4,{A_Chase},S_POSS_RUN3,0,0}, // S_POSS_RUN2 {SPR_POSS,1,4,{A_Chase},S_POSS_RUN4,0,0}, // S_POSS_RUN3 {SPR_POSS,1,4,{A_Chase},S_POSS_RUN5,0,0}, // S_POSS_RUN4 {SPR_POSS,2,4,{A_Chase},S_POSS_RUN6,0,0}, // S_POSS_RUN5 {SPR_POSS,2,4,{A_Chase},S_POSS_RUN7,0,0}, // S_POSS_RUN6 {SPR_POSS,3,4,{A_Chase},S_POSS_RUN8,0,0}, // S_POSS_RUN7 {SPR_POSS,3,4,{A_Chase},S_POSS_RUN1,0,0}, // S_POSS_RUN8 {SPR_POSS,4,10,{A_FaceTarget},S_POSS_ATK2,0,0}, // S_POSS_ATK1 {SPR_POSS,5,8,{A_PosAttack},S_POSS_ATK3,0,0}, // S_POSS_ATK2 {SPR_POSS,4,8,{NULL},S_POSS_RUN1,0,0}, // S_POSS_ATK3 Part of the logic of A_Chase is that if the monster doesn't have a target, it looks for a target, and if it can't find one it goes back into its original "spawn" state: if (!actor->target || !(actor->target->flags&MF_SHOOTABLE)) { // look for a new target if (P_LookForPlayers(actor,true)) return; // got a new target P_SetMobjState (actor, actor->info->spawnstate); return; } Here's what the Archvile's main frames look like instead: {SPR_VILE,0,10,{A_Look},S_VILE_STND2,0,0}, // S_VILE_STND {SPR_VILE,1,10,{A_Look},S_VILE_STND,0,0}, // S_VILE_STND2 {SPR_VILE,0,2,{A_VileChase},S_VILE_RUN2,0,0}, // S_VILE_RUN1 {SPR_VILE,0,2,{A_VileChase},S_VILE_RUN3,0,0}, // S_VILE_RUN2 {SPR_VILE,1,2,{A_VileChase},S_VILE_RUN4,0,0}, // S_VILE_RUN3 {SPR_VILE,1,2,{A_VileChase},S_VILE_RUN5,0,0}, // S_VILE_RUN4 {SPR_VILE,2,2,{A_VileChase},S_VILE_RUN6,0,0}, // S_VILE_RUN5 {SPR_VILE,2,2,{A_VileChase},S_VILE_RUN7,0,0}, // S_VILE_RUN6 {SPR_VILE,3,2,{A_VileChase},S_VILE_RUN8,0,0}, // S_VILE_RUN7 {SPR_VILE,3,2,{A_VileChase},S_VILE_RUN9,0,0}, // S_VILE_RUN8 {SPR_VILE,4,2,{A_VileChase},S_VILE_RUN10,0,0}, // S_VILE_RUN9 {SPR_VILE,4,2,{A_VileChase},S_VILE_RUN11,0,0}, // S_VILE_RUN10 {SPR_VILE,5,2,{A_VileChase},S_VILE_RUN12,0,0}, // S_VILE_RUN11 {SPR_VILE,5,2,{A_VileChase},S_VILE_RUN1,0,0}, // S_VILE_RUN12 A_VileChase is a "wrapper" around A_Chase: all it really does is look for nearby corpses to resurrect, resurrects them if it finds them, and otherwise just calls A_Chase like normal. So in your situation, the Archvile would have gone to sleep, but resurrecting nearby monsters takes precedence over sleeping. 1 Share this post Link to post
MFG38 Posted October 16, 2013 Krispy said:The imp and the archvile made a pact in the wormhole on the way there: If either one of them should die, the other one would resurrect him after the marine was dead, under any circumstances. And damn it if he was going to back down on a promise to his friend. I like this explanation. 0 Share this post Link to post
Maes Posted October 16, 2013 Heh I misintepretted "rezzed" as slang for "killed". My bad. As fraggle explained, the Archie constantly checks around if if there's anything to resurrect, even if it has nothing to hunt down. 0 Share this post Link to post
fraggle Posted October 16, 2013 Well, not constantly - only if it's already awake. Archviles won't wake up just to resurrect corpses, but if there are corpses left to raise, it's the last thing they'll do before going back to sleep. 0 Share this post Link to post
Zed Posted October 16, 2013 This is yet another example of weird shit in Doom. Just when I thought everything was already "discovered". Heh. 0 Share this post Link to post
Maes Posted October 16, 2013 Zed said:This is yet another example of weird shit in Doom. Just when I thought everything was already "discovered". Heh. And wait until you weap your head around the barrel detonation responsabilities ;-) 0 Share this post Link to post
Platinum Shell Posted October 17, 2013 fraggle said:but if there are corpses left to raise, it's the last thing they'll do before going back to sleep. Would be cool to have a comic of this done by that Asian lady. 0 Share this post Link to post
Avoozl Posted October 17, 2013 Doctors don't resurrect dead people so they're more like necromancers. 0 Share this post Link to post
Vermil Posted October 17, 2013 Question is, what is the link, if any between the Arch Vile resurrection and the Revenant. The Arch Vile resurrects dead demons, while the Revenant is a dead demon. Does that mean that every time the Arch Vile resurrects a demon, that a Revenant somewhere just vanishes. Or how come a resurrected Revenant doesn't change back into what it was originally. 0 Share this post Link to post
Maes Posted October 17, 2013 ^ I think the same concepts used in Dungeons and Dragons guides about the concepts of death/undeath and how healing/unhealing works apply (Libris Mortis). Something about positive energy healing living beings/damaging undead ones, and negative energy healing undead/damaging living beings or somesuch. Technically speaking, even zombies are dead, and yet they are "resurrected" by the archvile as well (unless they are not really zombies, but more like infested/mind controlled yet still alive). Most monsters however are obviously alive in a common biological sense, or use another kind of lifeforce, e.g. demonic or golem-like. I think the Revenant is halfway between undead and cybernetic being, and it might actually be animated more like a Golem, than a "true" undead, despite what the name might imply. In any case, Archviles seem to be flexible healers, being able to handle at least positive and negative life energy, and to a limited degree, demonic or animated constructs. However, it appears to be limited by large size and/or cybernetic biology, that's why it can't deal with cyberdemons or spider masterminds. Arachnotrons are smaller and/or their cybernetic parts get damaged less by their deaths. OTOH Masterminds literally crumble to junk and Cyberdemons are practically pulverized. The Archvile's own lifeforce must also be different, in order to be able to channel so many different ones, so it also cannot successfully heal its own kind. 0 Share this post Link to post
Terminus Posted October 17, 2013 Maes said:The Archvile's own lifeforce must also be different, in order to be able to channel so many different ones, so it also cannot successfully heal its own kind. In ZDoom, a Stealth Archvile can be resurrected by normal Archviles. Pretty silly, isn't it? Not like anyone uses stealth monsters anymore but it kinda reminded me of something funny I saw happen a bunch of years ago. 0 Share this post Link to post
Guest Posted October 17, 2013 @Fraggle. Thank you for the explanation. I am not much of a coder, but that all made sense to me. So in effect the archvile in the situation I described above would remain stationary once it killed the mancubus, but would resurrect any and all monsters within reach of its stationary position, as its check for corpses would loop until none remain in the vicinity. Vermil said:Question is, what is the link, if any between the Arch Vile resurrection and the Revenant. The Arch Vile resurrects dead demons, while the Revenant is a dead demon. Does that mean that every time the Arch Vile resurrects a demon, that a Revenant somewhere just vanishes. Or how come a resurrected Revenant doesn't change back into what it was originally. Or possibly the Revenant is just a rotting corpse possessed by a demon and the physical shell is not the demon itself. So the arch, in resurrecting the revenant is simply summoning another demon to take over the shell. 0 Share this post Link to post
Dragonsbrethren Posted October 17, 2013 I just want to know how the archie revives the shotgun and chaingun guys' guns after Doomguy steals them. 1 Share this post Link to post
Waffenak Posted October 17, 2013 Avoozl said:Doctors don't resurrect dead people so they're more like necromancers. Hell's concept of healing is to resurrect bodies 0 Share this post Link to post
40oz Posted October 17, 2013 I was hoping to find a really strange trick in here that I could exploit in a map :/ 0 Share this post Link to post
Maes Posted October 17, 2013 Well, if you have invulnerability and there are enough archviles around, you can use their attacks to literally fly and stay constantly airborne for large distances. That's one of the ways to complete NUTS.WAD, BTW. 0 Share this post Link to post
Gez Posted October 17, 2013 Maes said:Technically speaking, even zombies are dead, and yet they are "resurrected" by the archvile as well (unless they are not really zombies, but more like infested/mind controlled yet still alive). They're merely supposed to be possessed. Hence their code and sprite name (POSS, SPOS, CPOS). Those people who were asleep when the demon invasion started were possessed, those who were awake were killed. (So I guess the zombies are all in their jammies.) Yes, each of these grunts you kill just to grab some ammo still has a human consciousness inside, prisoner of a body controlled by a demonic spirit, helplessly watching as they attack -- and get killed by -- you. 0 Share this post Link to post
darkreaver Posted October 18, 2013 Actually when I think about it, Im pretty shure Ive encountered this many a time 0 Share this post Link to post
_bruce_ Posted October 18, 2013 Great to see that the Archvile is such a caring fellow - instead of calling it a day, or game cycle, he's handing out a second chance ticket. 0 Share this post Link to post
Guest Posted October 19, 2013 I actually think 'reanimate' is a better word for what the archvile does than 'resurrect.' Reanimate implies that the arch is pouring some sort of life force, (possibly its own,) into the monsters it brings back, which is possibly a better explanation than having to work out the details of how an arch resurrects demonic entities or undead zombies. 0 Share this post Link to post
SavageCorona Posted October 25, 2013 fraggle said:CODE EVERYWHERE. I can't believe I ACTUALLY understood that. Wow I really do learn new stuff at 12 in the morning when I have nothing better to do while I download 20GB games. Fraggle is probably the best dude on this forum ever. 0 Share this post Link to post
Fellowzdoomer Posted October 26, 2013 Easy answer!!! THE IMP WAS AN ASSASSIAN TO KILL ARCHIE. ARCHIE FINDS OUT AND KILLS IMP, ENDING THE ASSASSIANS LIFE... UNTIL YOU RESPAWN!! *The trial from CT begins...* 0 Share this post Link to post
BaronOfStuff Posted October 27, 2013 Fellowzdoomer said:some bullshit Did you even read the first post? 0 Share this post Link to post