summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-04-12 17:13:59 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-04-12 17:13:59 +0200
commita634de05add8e61aad17acd82d121e09afc92edc (patch)
treee98b15e3d269264dfbc4608916e2f8058b18cd74 /src/main/java/at/hannibal2/skyhanni/features
parent6a4663673cb244fb265bb08f96165d4929e72f0c (diff)
downloadskyhanni-a634de05add8e61aad17acd82d121e09afc92edc.tar.gz
skyhanni-a634de05add8e61aad17acd82d121e09afc92edc.tar.bz2
skyhanni-a634de05add8e61aad17acd82d121e09afc92edc.zip
Added Arachne to damage indicator
Added Arachne Minis Hider - Hides the nametag above arachne minis Added Arachne Boss Highlighter - Highlight the arachne boss in red and mini bosses and orange
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/damageindicator/BossType.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/damageindicator/MobFinder.kt75
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/mobs/AshfangMinisNametagHider.kt27
3 files changed, 95 insertions, 11 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/BossType.kt b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/BossType.kt
index c0b282e18..0b8563937 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/BossType.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/BossType.kt
@@ -70,7 +70,9 @@ enum class BossType(val fullName: String, val bossTypeToggle: Int, val shortName
THUNDER("§cThunder", 19),
LORD_JAWBUS("§cLord Jawbus", 19),
- DUMMY("Dummy", 21),
+ DUMMY("Dummy", 20),
+ ARACHNE_SMALL("§cSmall Arachne", 21),
+ ARACHNE_BIG("§4Big Arachne", 21),
//TODO arachne
diff --git a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/MobFinder.kt b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/MobFinder.kt
index 543949cce..9f52781b3 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/damageindicator/MobFinder.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/damageindicator/MobFinder.kt
@@ -1,14 +1,15 @@
package at.hannibal2.skyhanni.features.damageindicator
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.withAlpha
import at.hannibal2.skyhanni.features.dungeon.DungeonData
+import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper
+import at.hannibal2.skyhanni.utils.*
import at.hannibal2.skyhanni.utils.EntityUtils.hasBossHealth
import at.hannibal2.skyhanni.utils.EntityUtils.hasMaxHealth
import at.hannibal2.skyhanni.utils.EntityUtils.hasNameTagWith
-import at.hannibal2.skyhanni.utils.LocationUtils
-import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.LorenzVec
+import at.hannibal2.skyhanni.utils.LorenzUtils.baseMaxHealth
import at.hannibal2.skyhanni.utils.StringUtils.matchRegex
-import at.hannibal2.skyhanni.utils.getLorenzVec
import net.minecraft.client.Minecraft
import net.minecraft.client.entity.EntityOtherPlayerMP
import net.minecraft.entity.Entity
@@ -295,13 +296,16 @@ class MobFinder {
}
}
- if (entity is EntitySpider && entity.hasNameTagWith(1, "§5☠ §4Tarantula Broodfather ")) {
- when {
- entity.hasMaxHealth(740) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_1)
- entity.hasMaxHealth(30_000) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_2)
- entity.hasMaxHealth(900_000) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_3)
- entity.hasMaxHealth(2_400_000) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_4)
+ if (entity is EntitySpider) {
+ if (entity.hasNameTagWith(1, "§5☠ §4Tarantula Broodfather ")) {
+ when {
+ entity.hasMaxHealth(740) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_1)
+ entity.hasMaxHealth(30_000) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_2)
+ entity.hasMaxHealth(900_000) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_3)
+ entity.hasMaxHealth(2_400_000) -> return EntityResult(bossType = BossType.SLAYER_SPIDER_4)
+ }
}
+ checkArachne(entity)?.let { return it }
}
if (entity is EntityWolf) {
if (entity.hasNameTagWith(1, "§c☠ §fSven Packmaster ")) {
@@ -339,6 +343,57 @@ class MobFinder {
return null
}
+ private fun checkArachne(entity: EntitySpider): EntityResult? {
+ if (entity.hasNameTagWith(1, "[§7Lv300§8] §cArachne") ||
+ entity.hasNameTagWith(1, "[§7Lv300§8] §lArachne")
+ ) {
+ val maxHealth = entity.baseMaxHealth
+ if (maxHealth == 12) {
+ markArachneMinis(entity)
+ return null
+ }
+ if (maxHealth == 4000) {
+ markArachneMinis(entity)
+ return null
+ }
+ markArachne(entity)
+ return EntityResult(bossType = BossType.ARACHNE_SMALL)
+ }
+ if (entity.hasNameTagWith(1, "[§7Lv500§8] §cArachne") ||
+ entity.hasNameTagWith(1, "[§7Lv500§8] §lArachne")
+ ) {
+ val maxHealth = entity.baseMaxHealth
+ if (maxHealth == 12) {
+ markArachneMinis(entity)
+ return null
+ }
+ if (maxHealth == 20000) {
+ markArachneMinis(entity)
+ return null
+ }
+ markArachne(entity)
+ return EntityResult(bossType = BossType.ARACHNE_BIG)
+ }
+
+ return null
+ }
+
+ private fun markArachneMinis(entity: EntityLivingBase) {
+ if (SkyHanniMod.feature.mobs.arachneBossHighlighter) {
+ RenderLivingEntityHelper.setEntityColor(entity, LorenzColor.GOLD.toColor().withAlpha(50))
+ { SkyHanniMod.feature.slayer.slayerMinibossHighlight }
+ RenderLivingEntityHelper.setNoHurtTime(entity) { SkyHanniMod.feature.slayer.slayerMinibossHighlight }
+ }
+ }
+
+ private fun markArachne(entity: EntityLivingBase) {
+ if (SkyHanniMod.feature.mobs.arachneBossHighlighter) {
+ RenderLivingEntityHelper.setEntityColor(entity, LorenzColor.RED.toColor().withAlpha(50))
+ { SkyHanniMod.feature.slayer.slayerMinibossHighlight }
+ RenderLivingEntityHelper.setNoHurtTime(entity) { SkyHanniMod.feature.slayer.slayerMinibossHighlight }
+ }
+ }
+
private fun checkExtraF6GiantsDelay(entity: EntityGiantZombie): Long {
val uuid = entity.uniqueID
diff --git a/src/main/java/at/hannibal2/skyhanni/features/mobs/AshfangMinisNametagHider.kt b/src/main/java/at/hannibal2/skyhanni/features/mobs/AshfangMinisNametagHider.kt
new file mode 100644
index 000000000..f3709b317
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/mobs/AshfangMinisNametagHider.kt
@@ -0,0 +1,27 @@
+package at.hannibal2.skyhanni.features.mobs
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import net.minecraft.entity.EntityLivingBase
+import net.minecraft.entity.item.EntityArmorStand
+import net.minecraftforge.client.event.RenderLivingEvent
+import net.minecraftforge.fml.common.eventhandler.EventPriority
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class AshfangMinisNametagHider {
+
+ @SubscribeEvent(priority = EventPriority.HIGH)
+ fun onRenderLiving(event: RenderLivingEvent.Specials.Pre<EntityLivingBase>) {
+ if (!LorenzUtils.inSkyBlock) return
+ if (!SkyHanniMod.feature.mobs.hideNameTagArachneMinis) return
+
+ val entity = event.entity
+ if (entity !is EntityArmorStand) return
+ if (!entity.hasCustomName()) return
+
+ val name = entity.name
+ if (name.contains("§cArachne's Brood§r")) {
+ event.isCanceled = true
+ }
+ }
+} \ No newline at end of file