Announcement: Be excellent to each other.


Caravel Forum : DROD Boards : Bugs : Obscure issue involving eyes, decoys, brains, and invisibility
New Topic New Poll Post Reply
Poster Message
Watcher
Level: Smitemaster
Avatar
Rank Points: 902
Registered: 02-04-2003
IP: Logged
icon Obscure issue involving eyes, decoys, brains, and invisibility (+2)  
This is a bit complicated, so I'll explain it in two stages. This is all in 2.0.14.1, but I didn't see anything in the 2.0.15 fixes list related to this.

Have Beethro pick up an invisibility potion. Now pick up a decoy and place it in the line of sight of a sleeping eye, but far enough away that the eye is outside the decoy's range. The eye will not wake up immediately. If Beethro walks closer to the eye, so that it comes within the invisibility range, the eye wakes up and moves towards Beethro.

This is not the bug. The bug is this:

Set up the same situation as before. Now, instead of walking closer to the sleeping eye, walk closer to a brain so that it comes within invisibility range. The eye will not wake up. This seems to be the only exception to an otherwise general rule: If Beethro is invisible, but there's a brain within range, everything behaves as though Beethro is visible.

This could be fixed by allowing sleeping eyes to wake up when they see a decoy, irrespective of whether Beethro is invisible. Note that this won't change the behavior of the first situation: The eye would appear to wake up earlier, but since it won't move until Beethro comes within range, its behavior is effectively the same.

I haven't seen this situation used in any published hold. I came across the first situation in Blue Rooms : 2 - Blue Rooms : 4 North, 3 West, and did a bit of testing on my own.

Looking through the source code, it appears that this is in fact the intended behavior. The code in CEvilEye::Process() that checks whether an evil eye should wake up allows for decoys at any distance, regardless of invisibility. The problem is that this code has been put inside an if clause reading

if (!this->isActive && CanFindSwordsman())
{
  //...
}


and CanFindSwordsman() returns false when Beethro is invisible and outside range, and no decoys are within range. As far as I can tell, there's no reason to call this method, as invisibility is already handled in the check itself. So the if clause could simply be changed to

if (!this->isActive)
{
  //...
}


____________________________
Today the refrigerator, tomorrow the world!
10-27-2006 at 09:25 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
Tahnan
Level: Smitemaster
Avatar
Rank Points: 2460
Registered: 11-14-2005
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
Watcher wrote:
Have Beethro pick up an invisibility potion. Now pick up a decoy and place it in the line of sight of a sleeping eye, but far enough away that the eye is outside the decoy's range. The eye will not wake up immediately. If Beethro walks closer to the eye, so that it comes within the invisibility range, the eye wakes up and moves towards Beethro.

Hold on, really? I thought the eye did wake up immediately when a decoy was placed in its line of sight, whether or not Beethro was invisible.
10-28-2006 at 05:57 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
coppro
Level: Smitemaster
Rank Points: 1309
Registered: 11-24-2005
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
That would be the problem.

Although it does make sense that they eye itself has to see Beethro if the brain can smell him.
10-28-2006 at 11:45 PM
View Profile Show all user's posts Quote Reply
Banjooie
Level: Smitemaster
Avatar
Rank Points: 1645
Registered: 12-12-2004
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
Not especially: The eye wakes up if it sees a decoy of Beethro, even if it doesn't see Beethro.

10-29-2006 at 01:12 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
eytanz
Level: Smitemaster
Avatar
Rank Points: 2708
Registered: 02-05-2003
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
Since it seems to me that everyone who posted here makes a different claim, and it's not clear to me who is talking about how they think eyes *should* work, and who is talking about how eyes *actually* work, I found this thread pretty confusing. So, I tested it myself.

As a result, I now know that Watcher's description is an 100% accurate description of how eyes currently work (2.0.15). I don't have a particularly strong opinion about what (if anything) should be done here.



____________________________
I got my avatar back! Yay!
10-29-2006 at 01:48 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Tahnan
Level: Smitemaster
Avatar
Rank Points: 2460
Registered: 11-14-2005
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
Ah--I stand corrected. My memory of the solution for this room was that it involved eyes activated by decoys, but looking at some of the specific hints, they do say that Beethro has to be within a visible radius.
10-29-2006 at 03:57 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Jacob
Level: Smitemaster
Rank Points: 3749
Registered: 10-01-2004
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
I guess a decoy should wake an eye whether Beethro's invisible or not since the logic seems to be that the eye thinks the decoy is Beethro. I'd say this was the flaw, if anything, and that the question of brained/unbrained doesn't enter into it.

____________________________
New to DROD? You may want to read this.
My Holds and Levels:
Click here to view the secret text

10-29-2006 at 06:16 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Watcher
Level: Smitemaster
Avatar
Rank Points: 902
Registered: 02-04-2003
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
Jacob wrote:
I guess a decoy should wake an eye whether Beethro's invisible or not since the logic seems to be that the eye thinks the decoy is Beethro. I'd say this was the flaw, if anything, and that the question of brained/unbrained doesn't enter into it.

That's also my suggested fix for this. The reason I mentioned the brain was that if there's no brain around, it doesn't make any difference whether the eye wakes up immediately, since it wouldn't move until Beethro comes close anyway.

____________________________
Today the refrigerator, tomorrow the world!
10-29-2006 at 06:30 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
eytanz
Level: Smitemaster
Avatar
Rank Points: 2708
Registered: 02-05-2003
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
Whether a far away eye is awake would make a difference if Beethro steps on a second invis potion.

____________________________
I got my avatar back! Yay!
10-29-2006 at 08:23 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Watcher
Level: Smitemaster
Avatar
Rank Points: 902
Registered: 02-04-2003
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
eytanz wrote:
Whether a far away eye is awake would make a difference if Beethro steps on a second invis potion.

Somehow, I managed not to think of this possibility at all. In any case, I fully agree with Jacob: an eye should wake up when it sees a decoy, regardless of invisibility.

____________________________
Today the refrigerator, tomorrow the world!
10-29-2006 at 08:47 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5106
Registered: 02-04-2003
IP: Logged
icon Re: Obscure issue involving eyes, decoys, brains, and invisibility (0)  
Watcher wrote:
The problem is that this code has been put inside an if clause reading

if (!this->isActive && CanFindSwordsman())
{
  //...
}


and CanFindSwordsman() returns false when Beethro is invisible and outside range, and no decoys are within range. As far as I can tell, there's no reason to call this method, as invisibility is already handled in the check itself. So the if clause could simply be changed to

if (!this->isActive)
{
  //...
}
Thanks for performing this code combing. We agree that evil eyes should spot decoys even if the player is invisible and far away. This will be fixed in 2.0.15.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.
01-09-2007 at 04:12 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Bugs : Obscure issue involving eyes, decoys, brains, and invisibility
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.