def getInTheCage(context, **kwargs): bot = kwargs["bot"] chat = kwargs["chat"] #Ensure that the host is not using hobopolis r = ClanRaidLogRequest(bot.session) data = r.doRequest() if "hostUserId" in data["userId"]: bot.sendChatMessage("/w %s Can't get in the cage, my host is already using hobopolis." % (chat["userId"])) else: bot.sendChatMessage("/w %s Do not enter Hobopolis, I am currently the cagebait." % (hostUserId)) #Adventure Handling r = AdventureRequest(bot.session, 166) response = r.doRequest() while response["choiceId"] not in [211, 212]: r.doRequest()
def reportHobopolisStatus(context, **kwargs): bot = kwargs["bot"] chat = kwargs["chat"] state = bot.states["global"] r = ClanRaidLogRequest(bot.session) data = r.doRequest() whitespacePattern = PatternManager.getOrCompilePattern('whitespace') numGrates = 0 numValves = 0 totalTurns = 0 areas = {} for area in HOBOPOLIS_AREAS: areas[area] = {"turns" : 0} for event in data["events"]: event["event"] = whitespacePattern.sub(' ', event["event"]) if "turns" in event: totalTurns += event["turns"] if event["category"] == "Sewers": if event["event"].find("lowered the water level") >= 0: numValves += event["turns"] elif event["event"].find("sewer grate") >= 0: numGrates += event["turns"] elif event["category"] in HOBOPOLIS_AREAS: areaName = event["category"] areas[areaName]["turns"] += event["turns"] bossName = HOBOPOLIS_BOSSES[areaName] if event["event"].find("defeated %s" % bossName) >= 0: areas[areaName]["completed"] = True elif event["category"] == "Miscellaneous": bossName = HOBOPOLIS_BOSSES["Town Square"] if event["event"].find("defeated %s" % bossName) >= 0: areas["Town Square"]["completed"] = True areas["Town Square"]["turns"] += event["turns"] resp = "[Sewer: valves=%s/20, grates=%s/20" % (numValves, numGrates) if "hobo:sewerTrapped" in state: resp += ", trapped=%s" % state["hobo:sewerTrapped"] resp += ']' for areaName in HOBOPOLIS_AREAS: areaData = areas[areaName] completed = ("completed" in areaData) turns = areaData["turns"] if completed: resp += " [%s: DONE]" % HOBOPOLIS_AREA_SHORT_NAMES[areaName] else: if turns == 1: resp += " [%s: %s turn" % (HOBOPOLIS_AREA_SHORT_NAMES[areaName], turns) else: turnsStr = NumberUtils.formatNumberWithCommas(turns) resp += " [%s: %s turns" % (HOBOPOLIS_AREA_SHORT_NAMES[areaName], turnsStr) if turns > 0: if areaName == "Burnbarrel Blvd.": numTires = 0 if "hobo:tiresStacked" in state: numTires = state["hobo:tiresStacked"] resp += ", %s tires" % numTires resp += ']' resp += ' [TOTAL: %s turns]' % totalTurns bot.sendChatMessage("/w %s %s" % (chat["userId"], resp))
def reportHobopolisStatus(context, **kwargs): bot = kwargs["bot"] chat = kwargs["chat"] state = bot.states["global"] r = ClanRaidLogRequest(bot.session) data = r.doRequest() whitespacePattern = PatternManager.getOrCompilePattern('whitespace') numGrates = 0 numValves = 0 totalTurns = 0 areas = {} for area in HOBOPOLIS_AREAS: areas[area] = {"turns": 0} for event in data["events"]: event["event"] = whitespacePattern.sub(' ', event["event"]) if "turns" in event: totalTurns += event["turns"] if event["category"] == "Sewers": if event["event"].find("lowered the water level") >= 0: numValves += event["turns"] elif event["event"].find("sewer grate") >= 0: numGrates += event["turns"] elif event["category"] in HOBOPOLIS_AREAS: areaName = event["category"] areas[areaName]["turns"] += event["turns"] bossName = HOBOPOLIS_BOSSES[areaName] if event["event"].find("defeated %s" % bossName) >= 0: areas[areaName]["completed"] = True elif event["category"] == "Miscellaneous": bossName = HOBOPOLIS_BOSSES["Town Square"] if event["event"].find("defeated %s" % bossName) >= 0: areas["Town Square"]["completed"] = True areas["Town Square"]["turns"] += event["turns"] resp = "[Sewer: valves=%s/20, grates=%s/20" % (numValves, numGrates) if "hobo:sewerTrapped" in state: resp += ", trapped=%s" % state["hobo:sewerTrapped"] resp += ']' for areaName in HOBOPOLIS_AREAS: areaData = areas[areaName] completed = ("completed" in areaData) turns = areaData["turns"] if completed: resp += " [%s: DONE]" % HOBOPOLIS_AREA_SHORT_NAMES[areaName] else: if turns == 1: resp += " [%s: %s turn" % ( HOBOPOLIS_AREA_SHORT_NAMES[areaName], turns) else: turnsStr = NumberUtils.formatNumberWithCommas(turns) resp += " [%s: %s turns" % ( HOBOPOLIS_AREA_SHORT_NAMES[areaName], turnsStr) if turns > 0: if areaName == "Burnbarrel Blvd.": numTires = 0 if "hobo:tiresStacked" in state: numTires = state["hobo:tiresStacked"] resp += ", %s tires" % numTires resp += ']' resp += ' [TOTAL: %s turns]' % totalTurns bot.sendChatMessage("/w %s %s" % (chat["userId"], resp))