diff --git a/game/engines/default/engine/PlayerProfile.lua b/game/engines/default/engine/PlayerProfile.lua index 6411a86076b792ffdf892eab39ee686dc8d10eed..07516d618f6b000899e0c10c7068468f039e02e7 100644 --- a/game/engines/default/engine/PlayerProfile.lua +++ b/game/engines/default/engine/PlayerProfile.lua @@ -518,6 +518,8 @@ function _M:syncOnline(module) end function _M:checkModuleHash(module, md5) + self.hash_valid = true + do return true end self.hash_valid = false -- if not self.auth then return nil, "no online profile active" end if config.settings.cheat then return nil, "cheat mode active" end diff --git a/game/engines/default/engine/interface/WorldAchievements.lua b/game/engines/default/engine/interface/WorldAchievements.lua index 684a724601e0351f8208b180d29d88e95a29440a..8344fc9293432362c005adfacd283e30a36f7837 100644 --- a/game/engines/default/engine/interface/WorldAchievements.lua +++ b/game/engines/default/engine/interface/WorldAchievements.lua @@ -88,7 +88,7 @@ function _M:gainPersonalAchievement(silent, id, src, ...) src.achievements = src.achievements or {} if src.achievements[id] then return end - src.achievements[id] = {turn=game.turn, when=os.date("%Y-%m-%d %H:%M:%S")} + src.achievements[id] = {turn=game.turn, who=self:achievementWho(src), when=os.date("%Y-%m-%d %H:%M:%S")} if not silent then game.log("#LIGHT_GREEN#Personal New Achievement: %s!", a.name) Dialog:simplePopup("Personal New Achievement: #LIGHT_GREEN#"..a.name, a.desc) diff --git a/game/modules/tome/class/World.lua b/game/modules/tome/class/World.lua index db1c2d5f3c5f7ea910145883c895de95a0e15d0e..71e016820e5f7f90b62e01766edc9fcc8ce46c60 100644 --- a/game/modules/tome/class/World.lua +++ b/game/modules/tome/class/World.lua @@ -41,7 +41,8 @@ end --- Format an achievement source -- @param src the actor who did it function _M:achievementWho(src) - return src.name.." the "..game.player.descriptor.subrace.." "..game.player.descriptor.subclass + local p = game.party:findMember{main=true} + return p.name.." the "..p.descriptor.subrace.." "..p.descriptor.subclass.." level "..p.level end --- Gain an achievement diff --git a/game/modules/tome/class/interface/PlayerDumpJSON.lua b/game/modules/tome/class/interface/PlayerDumpJSON.lua index 41b456bda903168c88c4b54d53089697fd5e3133..76f17a1b239502add507099b9efc54506d7a8072 100644 --- a/game/modules/tome/class/interface/PlayerDumpJSON.lua +++ b/game/modules/tome/class/interface/PlayerDumpJSON.lua @@ -182,7 +182,7 @@ function _M:dumpToJSON(js) immune_type = "teleport_immune" immune_name = "Teleport Resistance" if self:attr(immune_type) then d[#d+1] = { [immune_name] = string.format("%d%%", util.bound(self:attr(immune_type) * 100, 0, 100)) } end ------------------------------------------------------------------- - -- Effects + -- Talents ------------------------------------------------------------------- local tdef = js:newSection("talents", "talents", "pairs", "add") for i, tt in ipairs(self.talents_types_def) do @@ -199,7 +199,8 @@ function _M:dumpToJSON(js) local typename = "class" if t.generic then typename = "generic" end local skillname = ("<ul><li>%s (%s)</li></ul>"):format(t.name, typename) - tdef[#tdef+1] = { [skillname] = ("%d/%d"):format(self:getTalentLevelRaw(t.id), t.points) } + local desc = self:getTalentFullDescription(t):toString() + tdef[#tdef+1] = { [skillname] = {val=("%d/%d"):format(self:getTalentLevelRaw(t.id), t.points), tooltip=desc} } end end end @@ -241,7 +242,7 @@ function _M:dumpToJSON(js) local achs = js:newSection("achievements", "achievements", "pairs", "break") for id, data in pairs(self.achievements or {}) do local a = world:getAchievementFromId(id) - achs[#achs+1] = { [a.name] = {val=game.calendar:getTimeDate(data.turn, "%s %s %s year of Ascendancy at %02d:%02d"), tooltip=a.desc} } + achs[#achs+1] = { [a.name] = {val=game.calendar:getTimeDate(data.turn, "%s %s %s year of Ascendancy at %02d:%02d"), tooltip=a.desc.."\nBy "..data.who} } end table.sort(achs, function(a, b) local aname = next(a) local bname = next(b) return aname < bname end)