Skip to content

Commit

Permalink
Added mayorenum & perksenum
Browse files Browse the repository at this point in the history
  • Loading branch information
j10a1n15 committed Jan 30, 2024
1 parent 8e17b8d commit 4c0c974
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 25 deletions.
35 changes: 10 additions & 25 deletions src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package at.hannibal2.skyhanni.data

import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigManager
import at.hannibal2.skyhanni.data.Mayors.Companion.getMayorFromName
import at.hannibal2.skyhanni.data.jsonobjects.local.MayorJson
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.utils.APIUtil
Expand All @@ -21,44 +22,24 @@ object MayorAPI {
private var lastUpdate = SimpleTimeMark.farPast()
private var dispatcher = Dispatchers.IO

var rawMayorData: MayorJson? = null
private set
private var rawMayorData: MayorJson? = null
var candidates = mapOf<Int, MayorJson.Candidate>()
private set
var currentMayor: MayorJson.Candidate? = null
var currentMayor: Mayors? = null
private set
var timeTillNextMayor = Duration.ZERO
private set

private const val LATE_SPRING = 3

fun isPerkActive(mayor: String, perk: String) = currentMayor?.let { currentCandidate ->
currentCandidate.name == mayor && currentCandidate.perks.any { it.name == perk }
} ?: false
fun isPerkActive(mayor: Mayors, perk: Perks) = mayor.perk.contains(perk)

/**
* @param input: The name of the mayor
* @return: The neu color of the mayor; If no mayor was found, it will return "§cUnknown: §7"
*/
fun mayorNameToColorCode(input: String): String {
return when (input) {
// Normal Mayors
"Aatrox" -> "§3"
"Cole" -> "§e"
"Diana" -> "§2"
"Diaz" -> "§6"
"Finnegan" -> "§c"
"Foxy" -> "§d"
"Marina" -> "§b"
"Paul" -> "§c"

// Special Mayors
"Scorpius" -> "§d"
"Jerry" -> "§d"
"Derpy" -> "§d"
"Dante" -> "§d"
else -> "§cUnknown: §7"
}
return Mayors.getMayorFromName(input).color
}

/**
Expand Down Expand Up @@ -98,10 +79,14 @@ object MayorAPI {
val nextMayorTime = calculateNextMayorTime()

// Check if it is still the mayor from the old SkyBlock year
currentMayor = if (nextMayorTime > System.currentTimeMillis().asTimeMark()) {
currentMayor = (if (nextMayorTime > System.currentTimeMillis().asTimeMark()) {
candidates[SkyBlockTime.now().year - 1]
} else {
candidates[SkyBlockTime.now().year]
})?.let {
getMayorFromName(
it.name
)
}
}

Expand Down
82 changes: 82 additions & 0 deletions src/main/java/at/hannibal2/skyhanni/data/Mayors.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
package at.hannibal2.skyhanni.data

enum class Mayors(val mayorName: String, val color: String, val perk: List<Perks>) {
Aatrox("Aatrox", "§3", listOf(Perks.SLASHED_PRICING, Perks.SLAYER_XP_BUFF, Perks.PATHFINDER)),
Cole("Cole", "§e", listOf(Perks.PROSPECTION, Perks.MINING_XP_BUFF, Perks.MINING_FIESTA)),
Diana("Diana", "§2", listOf(Perks.LUCKY, Perks.MYTHOLOGICAL_RITUAL, Perks.PET_XP_BUFF)),
Diaz("Diaz", "§6", listOf(Perks.BARRIER_STREET, Perks.SHOPPING_SPREE)),
Finnegan("Finnegan", "§c", listOf(Perks.FARMING_SIMULATOR, Perks.PELT_POCALYPSE, Perks.GOATED)),
Foxy("Foxy", "§d", listOf(Perks.SWEET_TOOTH, Perks.BENEVOLENCE, Perks.EXTRA_EVENT)),
Marina("Marina", "§b", listOf(Perks.FISHING_XP_BUFF, Perks.LUCK_OF_THE_SEA, Perks.FISHING_FESTIVAL)),
Paul("Paul", "§c", listOf(Perks.MARAUDER, Perks.EZPZ, Perks.BENEDICTION)),

Scorpius("Scorpius", "§d", listOf(Perks.BRIBE, Perks.DARKER_AUCTIONS)),
Jerry("Jerry", "§d", listOf(Perks.PERKPOCALYPSE, Perks.STATSPOCALYPSE, Perks.JERRYPOCALYPSE)),
Derpy("Derpy", "§d", listOf(Perks.TURBO_MINIONS, Perks.AH_CLOSED, Perks.DOUBLE_MOBS_HP, Perks.MOAR_SKILLZ)),

Unknown("Unknown", "§c", listOf()),
;


companion object {
fun getMayorFromName(name: String) = entries.firstOrNull { it.mayorName == name } ?: Unknown
}
}

enum class Perks(val perkName: String) {
// Aatrox
SLASHED_PRICING("SLASHED Pricing"),
SLAYER_XP_BUFF("Slayer XP Buff"),
PATHFINDER("Pathfinder"),

// Cole
PROSPECTION("Prospection"),
MINING_XP_BUFF("Mining XP Buff"),
MINING_FIESTA("Mining Fiesta"),

// Diana
LUCKY("Lucky!"),
MYTHOLOGICAL_RITUAL("Mythological Ritual"),
PET_XP_BUFF("Pet XP Buff"),

// Diaz
BARRIER_STREET("Barrier Street"),
SHOPPING_SPREE("Shopping Spree"),

// Finnegan
FARMING_SIMULATOR("Farming Simulator"),
PELT_POCALYPSE("Pelt-pocalypse"),
GOATED("GOATed"),

// Foxy
SWEET_TOOTH("Sweet Tooth"),
BENEVOLENCE("Benevolence"),
EXTRA_EVENT("Extra Event"),

// Marina
FISHING_XP_BUFF("Fishing XP Buff"),
LUCK_OF_THE_SEA("Luck of the Sea 2.0"),
FISHING_FESTIVAL("Fishing Festival"),

// Paul
MARAUDER("Marauder"),
EZPZ("EZPZ"),
BENEDICTION("Benediction"),


// Scorpius
BRIBE("Bribe"),
DARKER_AUCTIONS("Darker Auctions"),

// Jerry
PERKPOCALYPSE("Perkpocalypse"),
STATSPOCALYPSE("Statspocalypse"),
JERRYPOCALYPSE("Jerrypocalypse"),

// Derpy
TURBO_MINIONS("TURBO MINIONS!!!"),
AH_CLOSED("AH CLOSED!!!"),
DOUBLE_MOBS_HP("DOUBLE MOBS HP!!!"),
MOAR_SKILLZ("MOAR SKILLZ!!!"),
;
}

0 comments on commit 4c0c974

Please sign in to comment.