Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0006210 [DCSS] Bug Report minor have not tried 2012-09-11 12:06 2013-04-04 23:54
Reporter KiloByte View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Branch 0.11 ancient branch
Summary 0006210: spurious "Okay, then." when fumbling reaching
Description Whenever you fumble a reaching attack when Ledaed (and I guess shallow water too, not tested), there's a message "Okay, then.", as if you cancelled the attack.
Additional Information
Tags No tags attached.
Attached Files ? file icon 0001-Don-t-display-action-cancelled-message-if-a-reaching.patch [^] (890 bytes) 2012-09-13 11:38 [Show Content]
? file icon 0001-Fumbling-a-melee-attack-with-a-weapon-of-reaching-co.patch [^] (1,748 bytes) 2013-04-04 22:41 [Show Content]
? file icon reach.patch [^] (1,756 bytes) 2013-04-04 22:49 [Show Content]

- Relationships

-  Notes
(0020140)
indspenceable (reporter)
2012-09-13 11:41

Added a patch. I'm not sure if this is a valid fix for the issue; there might still be some cases where it will display the message when it shouldn't; but it will at least fix this case.
(0020149)
KiloByte (manager)
2012-09-14 02:15

Uhm no, your patch only hides the message without fixing the real problem. The attack wasn't cancelled deliberately, and it needs to take some time.
(0020151)
indspenceable (reporter)
2012-09-14 02:25

Right; when you call fight_melee() it'll return false if the attack fails: something messing up your attack (like Leda) or if you cancelled the attack yourself (like, getting prompted about using a lightning weapon, and hitting cancel). If the reach attack is cancelled due to player choosing to cancel it, you're still going to have your turn and we want to acknowledge that you cancelled something, so display the message. Otherwise, just continue without displaying it. Without having fight_melee() return something more descriptive than a boolean I'm not sure how else to go about fixing this.
(0022135)
CommanderC (reporter)
2013-04-04 22:46

My patch fixes the most important issue here: the attack doesn't cost a turn (btw, all the other relevant calls to fight_melee(&you, ...) always set you.turn_is_over to true before the call).

There is still a cosmetic issue: attacks cancelled by misc.cc: stop_attack_prompt() will print MSG_OK twice.
(0022138)
DracoOmega (developer)
2013-04-04 23:54
edited on: 2013-04-04 23:55

Actually, I'm thinking it might be better to change the semantics of fight_melee's return value a little (which would fix this cosmetic issue, too), and have it return true for attacks which non-deterministically fail instead of false (since you DID take an attack action - it just was an ineffective one). Looking at the code, it looks like a similar 'free' attack could happen if Ely penance blocks your reaching attack (and you'd even get some free penance removal in the process!).


- Issue History
Date Modified Username Field Change
2012-09-11 12:06 KiloByte New Issue
2012-09-13 11:38 indspenceable File Added: 0001-Don-t-display-action-cancelled-message-if-a-reaching.patch
2012-09-13 11:41 indspenceable Note Added: 0020140
2012-09-14 02:15 KiloByte Note Added: 0020149
2012-09-14 02:25 indspenceable Note Added: 0020151
2013-04-04 22:41 CommanderC File Added: 0001-Fumbling-a-melee-attack-with-a-weapon-of-reaching-co.patch
2013-04-04 22:46 CommanderC Note Added: 0022135
2013-04-04 22:49 CommanderC File Added: reach.patch
2013-04-04 23:54 DracoOmega Note Added: 0022138
2013-04-04 23:55 DracoOmega Note Edited: 0022138


Mantis 1.1.8[^]
Copyright © 2000 - 2009 Mantis Group
Powered by Mantis Bugtracker