Viewing Issue Simple Details Jump to Notes ] Wiki ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0009317 [DCSS] Bug Report minor have not tried 2014-12-10 07:40 2014-12-25 00:28
Reporter _jordan_ View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Branch 0.16 ancient branch
Summary 0009317: Lucy giveth, and Lucy taketh away
Description Just had the following eventful single turn:

_The hill giant shouts!
 Use which ability? (? or * to list)
 Aim: a hill giant, wielding a giant club
 The hill giant is devoured by a tear in reality.
 Lugonu claims a new guest. You can now gate yourself to the Abyss.
_You can no longer gate yourself to the Abyss.

Though I understand why that happened (Lugonu accepting a banish "kill" for piety pushing me over the threshold, and then apparently the cost of the banish ability is applied afterward, taking me under the threshold), it's a fairly odd interaction (and potentially confusing to the new player).
Additional Information
Tags No tags attached.
Attached Files

- Relationships

-  Notes
(0028048)
Reaver (developer)
2014-12-10 22:35

It could also be that your piety decayed the same turn.

I'm not sure switching the checks would be an improvement. Could result getting something like:

"You can no longer gate yourself to the Abyss."
"You can now gate yourself to the Abyss."

In a similar situation.
(0028049)
_jordan_ (reporter)
2014-12-10 22:52

I agree that just switching the checks is probably not any better. I was thinking more along the lines of psuedocode like:

bool gained_ability_this_turn = false;
if (you.would_gain_piety() && you.piety < ability_threshold
    && you.piety + piety_gained >= ability_threshold) {
  // Presumably currently this prints a message that you gained an ability
  // Instead, just note it...
  gained_ability_this_turn = true;
}
// Then in the "You lost piety/god ability" code:
if (gained_ability_this_turn) {
  // Don't print gain message or loss message
} else {
  // Print gain message or loss message like normal
}

Or maybe something different entirely :) Just throwing out an idea.
(0028050)
PleasingFungus (administrator)
2014-12-10 23:40
edited on: 2014-12-10 23:41

If we were going to do this, I would probably implement proper hysteresis: gain abilities at (piety breakpoint x), lose them at (piety breakpoint x - 10). Does require adding more state, but it's less spooky-action-at-a-distance than alternative proposals. (And I *think* it would allow us to replace the existing, inferior piety hysteresis system?)

That said, I'm not sure this is a big enough deal to require code changes.

(0028158)
neil (administrator)
2014-12-25 00:28
edited on: 2014-12-25 00:28

I think the existing hysteresis code could handle it if we just increase the PIETY_HYSTERESIS_LIMIT: it is currently 1, but the code supports larger values.


- Issue History
Date Modified Username Field Change
2014-12-10 07:40 _jordan_ New Issue
2014-12-10 22:35 Reaver Note Added: 0028048
2014-12-10 22:52 _jordan_ Note Added: 0028049
2014-12-10 23:40 PleasingFungus Note Added: 0028050
2014-12-10 23:41 PleasingFungus Note Edited: 0028050
2014-12-25 00:28 neil Note Added: 0028158
2014-12-25 00:28 neil Note Edited: 0028158


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