getItem→promptPackItem now returns (obj, ok) instead of a nil-signaling pointer; invName→inventoryName; doPot→applyPotionFuse. C breadcrumbs kept. Behavior unchanged; suite green.
83 lines
1.4 KiB
Go
83 lines
1.4 KiB
Go
package game
|
|
|
|
// armor.c — misc functions for dealing with armor.
|
|
|
|
// wear lets the player put armor on (armor.c wear).
|
|
func (g *RogueGame) wear() {
|
|
p := &g.Player
|
|
|
|
obj, ok := g.promptPackItem("wear", KindArmor)
|
|
if !ok {
|
|
return
|
|
}
|
|
|
|
if p.CurArmor != nil {
|
|
g.addmsgf("you are already wearing some")
|
|
|
|
if !g.Options.Terse {
|
|
g.addmsgf(". You'll have to take it off first")
|
|
}
|
|
|
|
g.endmsg()
|
|
g.After = false
|
|
|
|
return
|
|
}
|
|
|
|
if obj.Kind != KindArmor {
|
|
g.msg("you can't wear that")
|
|
|
|
return
|
|
}
|
|
|
|
g.wasteTime()
|
|
obj.Flags.Set(Known)
|
|
sp := g.inventoryName(obj, true)
|
|
p.CurArmor = obj
|
|
|
|
if !g.Options.Terse {
|
|
g.addmsgf("you are now ")
|
|
}
|
|
|
|
g.msg("wearing %s", sp)
|
|
}
|
|
|
|
// takeOff gets the armor off of the player's back (armor.c take_off).
|
|
func (g *RogueGame) takeOff() {
|
|
p := &g.Player
|
|
|
|
obj := p.CurArmor
|
|
if obj == nil {
|
|
g.After = false
|
|
if g.Options.Terse {
|
|
g.msg("not wearing armor")
|
|
} else {
|
|
g.msg("you aren't wearing any armor")
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
if !g.dropCheck(p.CurArmor) {
|
|
return
|
|
}
|
|
|
|
p.CurArmor = nil
|
|
|
|
if g.Options.Terse {
|
|
g.addmsgf("was")
|
|
} else {
|
|
g.addmsgf("you used to be")
|
|
}
|
|
|
|
g.msg(" wearing %c) %s", obj.PackCh, g.inventoryName(obj, true))
|
|
}
|
|
|
|
// wasteTime does nothing but let other things happen (armor.c waste_time).
|
|
func (g *RogueGame) wasteTime() {
|
|
g.DoDaemons(Before)
|
|
g.DoFuses(Before)
|
|
g.DoDaemons(After)
|
|
g.DoFuses(After)
|
|
}
|