Decompose ringOn and totalWinner (refactor step 7)
ringOn gains pickRingHand and chooseTerse messages; totalWinner's appraisal switch becomes objectWorth with loreWorth/ringWorth/ wandWorth. Behavior unchanged.
This commit is contained in:
@@ -14,11 +14,8 @@ func (g *RogueGame) ringOn() {
|
||||
}
|
||||
|
||||
if obj.Kind != KindRing {
|
||||
if !g.Options.Terse {
|
||||
g.msg("it would be difficult to wrap that around a finger")
|
||||
} else {
|
||||
g.msg("not a ring")
|
||||
}
|
||||
g.msg("%s", g.chooseTerse("not a ring",
|
||||
"it would be difficult to wrap that around a finger"))
|
||||
|
||||
return
|
||||
}
|
||||
@@ -28,24 +25,8 @@ func (g *RogueGame) ringOn() {
|
||||
return
|
||||
}
|
||||
|
||||
var ring int
|
||||
|
||||
switch {
|
||||
case p.CurRing[Left] == nil && p.CurRing[Right] == nil:
|
||||
if ring = g.gethand(); ring < 0 {
|
||||
return
|
||||
}
|
||||
case p.CurRing[Left] == nil:
|
||||
ring = Left
|
||||
case p.CurRing[Right] == nil:
|
||||
ring = Right
|
||||
default:
|
||||
if !g.Options.Terse {
|
||||
g.msg("you already have a ring on each hand")
|
||||
} else {
|
||||
g.msg("wearing two")
|
||||
}
|
||||
|
||||
ring := g.pickRingHand()
|
||||
if ring < 0 {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -68,6 +49,26 @@ func (g *RogueGame) ringOn() {
|
||||
g.msg("%s (%c)", g.inventoryName(obj, true), obj.PackCh)
|
||||
}
|
||||
|
||||
// pickRingHand chooses the hand for a new ring, asking when both are
|
||||
// free; negative aborts (rings.c ring_on).
|
||||
func (g *RogueGame) pickRingHand() int {
|
||||
p := &g.Player
|
||||
|
||||
switch {
|
||||
case p.CurRing[Left] == nil && p.CurRing[Right] == nil:
|
||||
return g.gethand()
|
||||
case p.CurRing[Left] == nil:
|
||||
return Left
|
||||
case p.CurRing[Right] == nil:
|
||||
return Right
|
||||
default:
|
||||
g.msg("%s", g.chooseTerse("wearing two",
|
||||
"you already have a ring on each hand"))
|
||||
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
// ringOff takes off a ring (rings.c ring_off).
|
||||
func (g *RogueGame) ringOff() {
|
||||
p := &g.Player
|
||||
|
||||
Reference in New Issue
Block a user