Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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))
Ejemplo n.º 3
0
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))