Anonymous | Login | 2024-04-19 13:07 CEST |
Main | My View | View Issues | Change Log | Wiki | Tavern | News |
Viewing Issue Simple Details [ Jump to Notes ] [ Wiki ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||
0011171 | [DCSS] Bug Report | minor | have not tried | 2017-08-04 00:30 | 2018-12-30 17:23 | ||
Reporter | damerell | View Status | public | ||||
Assigned To | ebering | ||||||
Priority | normal | Resolution | done | ||||
Status | closed | Product Branch | 0.21 ancient branch | ||||
Summary | 0011171: Friendly OCS creates travel exclusion. | ||||||
Description |
"Marking area around the orange crystal statue as unsafe for travelling." The OCS was friendly; created by an Enslave Soul-ed Mara. I'm afraid I don't know if this is a bug or by design (eg because the area around it is dangerous even though it is is nominally allied). |
||||||
Additional Information | |||||||
Tags | newbie friendly | ||||||
Attached Files | |||||||
|
Notes | |
(0031750) neil (administrator) 2017-08-04 23:50 edited on: 2017-08-04 23:56 |
Investigated this a bit, and it turns out that the exclusion is actually around the *original* (hostile) OCS. When Mara clones a monster (_mons_summon_monster_illusion), the target's attitude is temporarily changed to Mara's attitude, then the monster is cloned, then its original attitude is restored. The problem is that clone_mons does a viewwindow(), which results in the exclusion around the original monster being deleted (because it is not hostile). The exclusion is then restored when the monster's attitude is changed back to hostile: That is what causes the message. The "temporarily change attitude then restore" is done so that the new monster is created with the correct attitude, to keep Arena mode bookkeeping in sync. It doesn't happen with phantom mirror, because phantom mirror changes the clone's attitude after it is created. The Arena thing is not relevant in that case, since monsters can't use phantom mirrors. I see a few possible solutions: 1. Create the monster with the wrong attitude, then change it after creation and fix up the arena bookkeeping at that time. 2. Add a flag parameter to clone_mons that says not to do viewwindow(). Then do the viewwindow() in _mons_summon_monster_illusion. 3. Add a parameter to clone_mons for the attitude of the new monster. I suspect 3 is the simplest solution. The difficulty is that there is not really a good way to provide a default for that parameter, unless we either use an int instead of the enum (ugh), or add a new enumerator ATT_SAME to mon_attitude_type. |
(0031811) johnstein (reporter) 2017-09-02 18:29 |
I've started working this one but I'm not ready with a PR quite yet. |
(0031812) johnstein (reporter) 2017-09-04 09:59 |
PR at: https://github.com/crawl/crawl/pull/608 [^] |
(0031936) mibe420 (reporter) 2017-11-22 07:29 |
Hi! I have just experienced the same bug with Gozag's bribe branch and an obsidian statue. The obsidian statue stares, then turns away, jangling a coin purse. Here: an obsidian statue (peaceful) I manually remove the exclusion, and the game automatically recreates it as soon as i exit the 'X' screen. |
(0032704) RoGGa (reporter) 2018-10-20 19:56 |
fixed in: https://github.com/crawl/crawl/commit/6ff198fc0bf70f33718c861d507e8fefa423a4d7 [^] |
Mantis 1.1.8[^] Copyright © 2000 - 2009 Mantis Group |