diff options
Diffstat (limited to 'internal/game/look_target.go')
| -rw-r--r-- | internal/game/look_target.go | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/internal/game/look_target.go b/internal/game/look_target.go index 4819411..96dc174 100644 --- a/internal/game/look_target.go +++ b/internal/game/look_target.go @@ -57,33 +57,40 @@ func (g *Game) doLookTarget(sess *net.Session, input string) { if best.Protected { mobColor = "protected_mob" } - mobLevel := mobCombatLevel(best) - levelStr := g.levelColorize(sess, p.CombatLevel(), mobLevel, fmt.Sprintf("(level %d)", mobLevel)) + var levelStr string + if best.Protected { + levelStr = color.Render(g.colorMode(sess), color.Parse("223"), "(protected)") + } else { + mobLevel := mobCombatLevel(best) + levelStr = g.levelColorize(sess, p.CombatLevel(), mobLevel, fmt.Sprintf("(level %d)", mobLevel)) + } sess.WriteLines( "", fmt.Sprintf("%s %s", g.colorize(sess, mobColor, best.Name), levelStr), ) - if best.IdleDescription != "" { - sess.WriteLine(best.IdleDescription) + if best.Description != "" { + sess.WriteLine(color.ExpandTags(g.colorMode(sess), best.Description)) } - sess.WriteLines( - "", - fmt.Sprintf("Attack: %d", best.Attack), - fmt.Sprintf("Strength: %d", best.Strength), - fmt.Sprintf("Defense: %d", best.Defense), - fmt.Sprintf("HP: %d/%d", best.HP, best.MaxHP), - ) - if best.StabDefense != 0 || best.SlashDefense != 0 || best.CrushDefense != 0 || - best.ScienceDefense != 0 || best.RangedDefense != 0 { + if !best.Protected { sess.WriteLines( "", - "Defense bonuses:", - fmt.Sprintf(" Stab: %+d Slash: %+d Crush: %+d", best.StabDefense, best.SlashDefense, best.CrushDefense), - fmt.Sprintf(" Science: %+d Ranged: %+d", best.ScienceDefense, best.RangedDefense), + fmt.Sprintf("Attack: %d", best.Attack), + fmt.Sprintf("Strength: %d", best.Strength), + fmt.Sprintf("Defense: %d", best.Defense), + fmt.Sprintf("HP: %d/%d", best.HP, best.MaxHP), ) - } - if best.Weakness != "" { - sess.WriteLine(fmt.Sprintf("Weakness: %s", best.Weakness)) + if best.StabDefense != 0 || best.SlashDefense != 0 || best.CrushDefense != 0 || + best.ScienceDefense != 0 || best.RangedDefense != 0 { + sess.WriteLines( + "", + "Defense bonuses:", + fmt.Sprintf(" Stab: %+d Slash: %+d Crush: %+d", best.StabDefense, best.SlashDefense, best.CrushDefense), + fmt.Sprintf(" Science: %+d Ranged: %+d", best.ScienceDefense, best.RangedDefense), + ) + } + if best.Weakness != "" { + sess.WriteLine(fmt.Sprintf("Weakness: %s", best.Weakness)) + } } return } @@ -142,6 +149,10 @@ func (g *Game) doLookTarget(sess *net.Session, input string) { sess.WriteLine(color.ExpandTags(g.colorMode(sess), objDescText)) } + if def.OnLook != nil { + g.applyNodeAction(sess, def.OnLook) + } + if def.Safespot != nil { realSt := g.World.GetObjState(p.RoomID, st.DefID, st.Index) if realSt != nil { |
