本文整理汇总了Golang中github.com/Cristofori/kmud/types.Room.GetDescription方法的典型用法代码示例。如果您正苦于以下问题:Golang Room.GetDescription方法的具体用法?Golang Room.GetDescription怎么用?Golang Room.GetDescription使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/Cristofori/kmud/types.Room
的用法示例。
在下文中一共展示了Room.GetDescription方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: printRoom
func (self *Session) printRoom(room types.Room) {
pcs := model.PlayerCharactersIn(self.pc.GetRoomId(), self.pc.GetId())
npcs := model.NpcsIn(room.GetId())
items := model.ItemsIn(room.GetId())
store := model.StoreIn(room.GetId())
var area types.Area
if room.GetAreaId() != nil {
area = model.GetArea(room.GetAreaId())
}
var str string
areaStr := ""
if area != nil {
areaStr = fmt.Sprintf("%s - ", area.GetName())
}
str = fmt.Sprintf("\r\n %v>>> %v%s%s %v<<< %v(%v %v %v)\r\n\r\n %v%s\r\n\r\n",
types.ColorWhite, types.ColorBlue,
areaStr, room.GetTitle(),
types.ColorWhite, types.ColorBlue,
room.GetLocation().X, room.GetLocation().Y, room.GetLocation().Z,
types.ColorWhite,
room.GetDescription())
if store != nil {
str = fmt.Sprintf("%s Store: %s\r\n\r\n", str, types.Colorize(types.ColorBlue, store.GetName()))
}
extraNewLine := ""
if len(pcs) > 0 {
str = fmt.Sprintf("%s %sAlso here:", str, types.ColorBlue)
names := make([]string, len(pcs))
for i, char := range pcs {
names[i] = types.Colorize(types.ColorWhite, char.GetName())
}
str = fmt.Sprintf("%s %s \r\n", str, strings.Join(names, types.Colorize(types.ColorBlue, ", ")))
extraNewLine = "\r\n"
}
if len(npcs) > 0 {
str = fmt.Sprintf("%s %s", str, types.Colorize(types.ColorBlue, "NPCs: "))
names := make([]string, len(npcs))
for i, npc := range npcs {
names[i] = types.Colorize(types.ColorWhite, npc.GetName())
}
str = fmt.Sprintf("%s %s \r\n", str, strings.Join(names, types.Colorize(types.ColorBlue, ", ")))
extraNewLine = "\r\n"
}
if len(items) > 0 {
itemMap := make(map[string]int)
var nameList []string
for _, item := range items {
if item == nil {
continue
}
_, found := itemMap[item.GetName()]
if !found {
nameList = append(nameList, item.GetName())
}
itemMap[item.GetName()]++
}
sort.Strings(nameList)
str = str + " " + types.Colorize(types.ColorBlue, "Items: ")
var names []string
for _, name := range nameList {
if itemMap[name] > 1 {
name = fmt.Sprintf("%s x%v", name, itemMap[name])
}
names = append(names, types.Colorize(types.ColorWhite, name))
}
str = str + strings.Join(names, types.Colorize(types.ColorBlue, ", ")) + "\r\n"
extraNewLine = "\r\n"
}
str = str + extraNewLine + " " + types.Colorize(types.ColorBlue, "Exits: ")
var exitList []string
for _, direction := range room.GetExits() {
exitList = append(exitList, utils.DirectionToExitString(direction))
}
if len(exitList) == 0 {
str = str + types.Colorize(types.ColorWhite, "None")
} else {
str = str + strings.Join(exitList, " ")
}
//.........这里部分代码省略.........