fix commit

This commit is contained in:
sainagh
2026-07-25 16:20:42 -05:00
parent 9396611ce0
commit c6df59caf7
3226 changed files with 209810 additions and 0 deletions
@@ -0,0 +1,143 @@
#modloaded astralsorcery
#loader mixin
#sideonly client
import native.hellfirepvp.astralsorcery.client.ClientScheduler;
import native.net.minecraft.client.renderer.BufferBuilder;
import native.net.minecraft.client.renderer.GlStateManager;
import native.net.minecraft.client.renderer.Tessellator;
import native.net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import native.net.minecraft.item.ItemStack;
import native.net.minecraft.util.math.MathHelper;
import native.org.lwjgl.opengl.GL11;
import mixin.CallbackInfo;
import native.java.lang.Math;
// Render a translucent golden halo around the relay for the next item to place in an Iridescent Altar's craft
#mixin {targets: "hellfirepvp.astralsorcery.common.crafting.altar.recipes.TraitRecipe"}
zenClass AstralRelayHalo_RenderTranslucentItem {
// Simple smoothstep
function smoothstep(e0 as double, e1 as double, x as double) as double {
val t as double = MathHelper.clamp((x - e0) / (e1 - e0), 0.0, 1.0);
return t * t * (3.0 - 2.0 * t);
}
// Piecewise gold gradient: center (c0) -> mid (c1) -> rim (c2) by normalized radius u∈[0,1]
function goldAt(
u as double,
c0r as float, c0g as float, c0b as float, c0a as float,
c1r as float, c1g as float, c1b as float, c1a as float,
c2r as float, c2g as float, c2b as float, c2a as float
) as float[] {
val k as float = 0.45F; // where inner band transitions to outer
val m as float = smoothstep(0.0F, 1.0F, u) as float;
if (m < k) {
val t as float = m / k;
return [
c0r * (1.0F - t) + c1r * t,
c0g * (1.0F - t) + c1g * t,
c0b * (1.0F - t) + c1b * t,
c0a * (1.0F - t) + c1a * t
];
} else {
val t as float = (m - k) / (1.0F - k);
return [
c1r * (1.0F - t) + c2r * t,
c1g * (1.0F - t) + c2g * t,
c1b * (1.0F - t) + c2b * t,
c1a * (1.0F - t) + c2a * t
];
}
}
function waveBandEdge(j as double, bands as double) as double {
// < 1 for middle expansion
// = 1 for no expansion
// > 1 for edge contraction
// the farther from 1, the stronger the effect
val strength as double = 4.0;
return Math.pow(Math.sin((j / bands) * Math.PI / 2.0), strength);
}
#mixin Inject
#{
# method: "renderTranslucentItem",
# at: { value: "HEAD" },
# cancellable: true
#}
function renderTranslucentItem(stack as ItemStack, x as double, y as double, z as double, partialTicks as float, ci as CallbackInfo) as void {
// Tunables
val segments as int = 64; // arc tessellation
val bands as int = 12; // radial tessellation
val baseRadius as double = 0.6;
val radiusVar as double = 0.08;
// Gold palette
val c0r as float = 1.00F; val c0g as float = 0.92F; val c0b as float = 0.50F; val c0a as float = 0.95F; // center
val c1r as float = 1.00F; val c1g as float = 0.84F; val c1b as float = 0.25F; val c1a as float = 0.45F; // mid
val c2r as float = 1.00F; val c2g as float = 0.78F; val c2b as float = 0.12F; val c2a as float = 0.12F; // rim
val t as double = (ClientScheduler.getClientTick() as double + partialTicks as double);
val PI2 as double = 2.0 * Math.PI;
GlStateManager.pushMatrix();
GlStateManager.translate(x + 0.5, y, z + 0.5);
GlStateManager.disableTexture2D();
GlStateManager.disableLighting();
GlStateManager.enableBlend();
// Additive for luminous halo; switch to ONE_MINUS_SRC_ALPHA for a softer look
GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE, 1, 0);
GlStateManager.disableCull();
GlStateManager.depthMask(false);
GlStateManager.disableDepth();
val tess as Tessellator = Tessellator.getInstance();
val buffer as BufferBuilder = tess.getBuffer();
val radius as double = baseRadius + Math.sin(t / 10.0) * radiusVar; // smooth pulse
val outerRadius as double = radius;
for j in 0 .. (bands - 1) {
val eased0 as double = waveBandEdge(j as double, bands as double);
val eased1 as double = waveBandEdge((j + 1) as double, bands as double);
val r0 as double = outerRadius * eased0;
val r1 as double = outerRadius * eased1;
val u as double = ((r0 + r1) / (2.0 * outerRadius)) as double;
val col as float[] = goldAt(u, c0r, c0g, c0b, c0a, c1r, c1g, c1b, c1a, c2r, c2g, c2b, c2a);
var cr as float = col[0];
var cg as float = col[1];
var cb as float = col[2];
var ca as float = col[3];
buffer.begin(GL11.GL_TRIANGLE_STRIP, DefaultVertexFormats.POSITION_COLOR);
for i in 0 .. segments {
val angle as double = PI2 * (i as double) / (segments as double);
val cos as double = Math.cos(angle);
val sin as double = Math.sin(angle);
buffer.pos(cos * r1, 0.0, sin * r1).color(cr, cg, cb, ca).endVertex();
buffer.pos(cos * r0, 0.0, sin * r0).color(cr, cg, cb, ca).endVertex();
}
buffer.pos(1.0 * r1, 0.0, 0.0 * r1).color(cr, cg, cb, ca).endVertex();
buffer.pos(1.0 * r0, 0.0, 0.0 * r0).color(cr, cg, cb, ca).endVertex();
tess.draw();
}
GlStateManager.depthMask(true);
GlStateManager.enableDepth();
GlStateManager.enableCull();
GlStateManager.disableBlend();
GlStateManager.enableLighting();
GlStateManager.enableTexture2D();
GlStateManager.popMatrix();
}
}
@@ -0,0 +1,60 @@
#modloaded astralsorcery
#loader mixin
#sideonly client
import native.hellfirepvp.astralsorcery.common.tile.TileAttunementRelay;
import native.net.minecraft.client.Minecraft;
import native.net.minecraft.client.renderer.GlStateManager;
import native.net.minecraft.client.renderer.RenderHelper;
import native.net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import native.net.minecraft.item.ItemStack;
import native.net.minecraft.util.math.MathHelper;
import mixin.CallbackInfo;
// Replace TESRAttunementRelay's item rendering so TEISR items (e.g., DivineRPG statues) render correctly
#mixin {targets: "hellfirepvp.astralsorcery.client.render.tile.TESRAttunementRelay"}
zenClass MixinTESRAttunementRelay_RenderFix {
#mixin Inject
#{
# method: "render",
# at: { value: "HEAD" },
# cancellable: true
#}
function replaceRender(te as TileAttunementRelay, x as double, y as double, z as double, partialTicks as float, destroyStage as int, alpha as float, ci as CallbackInfo) as void {
// Replicate original slot checks; if empty, suppress original render too
val inv = te.getInventoryHandler();
if (inv == null) {
ci.cancel();
return;
}
val stack as ItemStack = inv.getStackInSlot(0);
if (stack.isEmpty()) {
ci.cancel();
return;
}
GlStateManager.pushMatrix();
// Slow spin based on ticks + partialTicks
val PI as double = 3.1415927; // Math.PI
val t as double = (te.getTicksExisted() as double + partialTicks) % 360.0;
val angle as float = ((t * 2.0) % 360.0) as float;
val bob as float = MathHelper.sin((t / 10.0) % (2 * PI)) * 0.03;
GlStateManager.translate(x + 0.5, y + 0.6, z + 0.5);
GlStateManager.rotate(angle, 0.0, 1.0, 0.0);
GlStateManager.scale(0.625, 0.625, 0.625);
RenderHelper.enableStandardItemLighting();
Minecraft.getMinecraft().getRenderItem().renderItem(stack, ItemCameraTransforms.TransformType.FIXED);
RenderHelper.disableStandardItemLighting();
GlStateManager.popMatrix();
// Fully replace original method body
ci.cancel();
}
}
@@ -0,0 +1,49 @@
#modloaded astralsorcery
#loader mixin
import native.hellfirepvp.astralsorcery.common.tile.TileAttunementRelay;
import native.net.minecraft.block.state.IBlockState;
import native.net.minecraft.entity.player.EntityPlayer;
import native.net.minecraft.item.ItemStack;
import native.net.minecraft.tileentity.TileEntity;
import native.net.minecraft.util.math.BlockPos;
import native.net.minecraft.util.EnumHand;
import native.net.minecraft.util.EnumFacing;
import native.net.minecraft.world.World;
import mixin.CallbackInfoReturnable;
/*
Early-return in BlockAttunementRelay#onBlockActivated when the held item equals the current slot item (including NBT),
avoiding the eject-then-insert flow that appears as duplication.
This behavior is due to how we short-circuit the normal rendering path in TESRAttunementRelay.
*/
#mixin {targets: "hellfirepvp.astralsorcery.common.block.BlockAttunementRelay"}
zenClass MixinBlockAttunementRelay_OnActivateGuard {
// SRG HEAD: Block#onBlockActivated -> func_180639_a
#mixin Inject
#{
# method: "func_180639_a",
# at: { value: "HEAD" },
# cancellable: true
#}
function sameItemNoOp(world as World, pos as BlockPos, state as IBlockState, player as EntityPlayer, hand as EnumHand, facing as EnumFacing, hitX as float, hitY as float, hitZ as float, cir as CallbackInfoReturnable) as void {
if (world.isRemote) return;
val held as ItemStack = player.getHeldItem(hand);
if (held.isEmpty()) return;
val te as TileEntity = world.getTileEntity(pos);
if (!(te instanceof TileAttunementRelay)) return;
val tar as TileAttunementRelay = te as TileAttunementRelay;
val inv = tar.getInventoryHandler();
if (inv == null) return;
val current as ItemStack = inv.getStackInSlot(0);
if (!current.isEmpty() && ItemStack.areItemsEqual(current, held) && ItemStack.areItemStackTagsEqual(current, held))
cir.setReturnValue(true);
}
}
@@ -0,0 +1,33 @@
#modloaded bewitchment
#loader mixin
#sideonly client
import native.mezz.jei.api.IModRegistry;
import native.mezz.jei.api.recipe.transfer.IRecipeTransferRegistry;
import native.com.bewitchment.client.gui.GuiSigilTable;
import native.com.bewitchment.common.block.tile.container.ContainerSigilTable;
import native.com.bewitchment.client.integration.jei.category.SigilCategory;
import mixin.CallbackInfo;
#mixin Mixin
#{targets: "com.bewitchment.client.integration.jei.BewitchmentJEI"}
zenClass MixinBewitchmentJEITransferSigilTable {
#mixin Inject
#{
# method: "register",
# at: {value: "TAIL"}
#}
function registerSigilTableTransferHandler(registry as IModRegistry, ci as CallbackInfo) as void {
// JEI transfer (+ button) and click area for Sigil Table
var transfer as IRecipeTransferRegistry = registry.getRecipeTransferRegistry();
// ContainerSigilTable slot layout:
// 0..24 = 5x5 matrix (recipe inputs)
// 25..51 = player inventory, 52..60 = hotbar (total 36)
// 61 = output slot (ignored by transfer)
transfer.addRecipeTransferHandler(ContainerSigilTable.class, SigilCategory.UID, 0, 25, 25, 36);
// 134,45,18,18 is the output slot area in the GUI; place a narrow arrow-only region to the left (120..128).
registry.addRecipeClickArea(GuiSigilTable.class, 120, 45, 8, 18, SigilCategory.UID);
}
}
+25
View File
@@ -0,0 +1,25 @@
#modloaded aether_legacy
#loader mixin
import native.net.minecraftforge.fml.common.gameevent.TickEvent;
import mixin.CallbackInfo;
/*
Disable event handler checking item entities every tick.
Created by ChaosStrikez for Aether v1.5.4.0.
*/
#mixin Mixin
#{targets: "com.gildedgames.the_aether.AetherEventHandler"}
zenClass MixinAetherEventHandler {
#mixin Inject
#{
# method: "onWorldTick",
# at: {value: "HEAD"},
# cancellable: true
#}
function mbc_disableWorldTick(event as TickEvent.WorldTickEvent, ci as CallbackInfo) as void {
ci.cancel();
}
}
+58
View File
@@ -0,0 +1,58 @@
#modloaded gendustry
#loader mixin
import native.net.minecraft.item.ItemStack;
import native.net.minecraft.nbt.NBTTagCompound;
import native.forestry.api.genetics.AlleleManager;
import native.forestry.api.apiculture.BeeManager;
import native.forestry.api.apiculture.EnumBeeType;
import native.net.bdew.gendustry.machines.imprinter.TileImprinter;
import native.net.bdew.gendustry.items.GeneTemplate;
import mixin.CallbackInfo;
import mixin.CallbackInfoReturnable;
// Allow putting a Queen into the Genetic Imprinter, instead of only Princess or Drone
#mixin {targets: "net.bdew.gendustry.machines.imprinter.TileImprinter"}
zenClass AllowQueenImprinting {
// Overrides the slot validation, to allow queens to be inserted into the imprinter
// SRG HEAD: TileEntity#isItemValidForSlot -> func_94041_b)
#mixin Inject
#{
# method: "func_94041_b",
# at: { value: "HEAD" },
# cancellable: true
#}
function allowQueenImprinting(index as int, stack as ItemStack, cir as CallbackInfoReturnable) as void {
val self as TileImprinter = this as TileImprinter;
val isValid as bool = AlleleManager.alleleRegistry.getIndividual(stack) != null;
val template as ItemStack = self.inv()[0]; // 0 is input template slot
val templateEmpty as bool = template.isEmpty();
val templateMatches as bool = GeneTemplate.getSpecies(template) == AlleleManager.alleleRegistry.getSpeciesRoot(stack);
if (index == 2 && isValid && (templateEmpty || templateMatches)) { // 2 is input bee slot
cir.setReturnValue(true);
}
}
// The imprinter only overwrites 1 genome, but queens need both genomes set.
#mixin Inject
#{
# method: "doStart",
# at: { value: "HEAD" },
# cancellable: true
#}
function ensureBothGenomes(bee as ItemStack, ci as CallbackInfo) as void {
val self as TileImprinter = this as TileImprinter;
val individual = AlleleManager.alleleRegistry.getIndividual(bee);
// getType(ItemStack) fails because of ZS, so we use isMated and isDrone as Queen detection
if (individual != null && BeeManager.beeRoot.isMated(bee) && !BeeManager.beeRoot.isDrone(bee)) {
val tag as NBTTagCompound = bee.getTagCompound();
tag.setTag("Mate", tag.getCompoundTag("Genome"));
}
}
}
+36
View File
@@ -0,0 +1,36 @@
#modloaded gendustry
#loader mixin
import native.net.bdew.gendustry.machines.apiary.BlockApiary;
import native.net.bdew.gendustry.machines.apiary.TileApiary;
import native.forestry.api.apiculture.IBeekeepingLogic;
import native.net.minecraft.entity.player.EntityPlayer;
import native.net.minecraft.item.ItemStack;
import native.net.minecraft.util.EnumHand;
import native.net.minecraft.util.text.TextComponentString;
import native.net.minecraft.util.math.BlockPos;
import native.net.minecraft.world.World;
// I hate Scala jars
#mixin {targets: "net.bdew.gendustry.machines.apiary.BlockApiary$"}
zenClass ApiaryBonkMixin {
// SRG HEAD: Block#onBlockClicked -> func_180649_a (not mixin, as inherited)
function func_180649_a(worldIn as World, pos as BlockPos, playerIn as EntityPlayer) as void {
val heldItem as ItemStack = playerIn.getHeldItem(EnumHand.MAIN_HAND);
if (!worldIn.isRemote && heldItem.getItem().getRegistryName().toString() == "minecraft:stick") {
// Bonk action: refresh apiary
val tile as TileApiary = worldIn.getTileEntity(pos) as TileApiary;
val logic as IBeekeepingLogic = tile.getBeekeepingLogic();
logic.clearCachedValues();
// Chat message
val message as TextComponentString = TextComponentString("§aBonk! Apiary flowers refreshed.");
playerIn.sendStatusMessage(message, true);
}
}
}
+5
View File
@@ -0,0 +1,5 @@
#modloaded gendustry crafttweaker
#loader crafttweaker
// we were supposed to use mixin List getTooltip(ItemStack, World, ITooltipFlag), but Scala is just cursed
<item:gendustry:industrial_apiary>.addTooltip("§3Bonk the apiary with a stick to refresh the flowers!");
+65
View File
@@ -0,0 +1,65 @@
#loader mixin
import native.java.util.UUID;
import native.net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import native.net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import native.com.projecturanus.betterp2p.network.ModNetwork;
import native.com.projecturanus.betterp2p.network.PlayerRequest;
import native.com.projecturanus.betterp2p.network.packet.C2SLinkP2P;
import native.com.projecturanus.betterp2p.network.packet.C2SUnlinkP2P;
import native.com.projecturanus.betterp2p.network.packet.S2COpenGui;
#mixin {value: "com.projecturanus.betterp2p.network.packet.ServerLinkP2PHandler"}
zenClass MixinServerLinkP2PHandler {
#mixin Overwrite
function onMessage(message as C2SLinkP2P, ctx as MessageContext) as IMessage {
if (isNull(message.input) || isNull(message.output)) {
return null;
}
var player = ctx.serverHandler.player;
var states as PlayerRequest[UUID] = ModNetwork.INSTANCE.getPlayerState();
var state = states[player.uniqueID];
if (isNull(state)) {
return null;
}
if (!isNull(player.server)) {
player.server.addScheduledTask(function() {
var result = state.gridCache.linkP2P(message.input, message.output);
if (!isNull(result)) {
ModNetwork.INSTANCE.requestP2PUpdate(player);
}
});
}
return null;
}
}
#mixin {value: "com.projecturanus.betterp2p.network.packet.ServerUnlinkP2PHandler"}
zenClass MixinServerUnlinkP2PHandler {
#mixin Overwrite
function onMessage(message as C2SUnlinkP2P, ctx as MessageContext) as S2COpenGui {
if (isNull(message.p2p)) {
return null;
}
var player = ctx.serverHandler.player;
var states as PlayerRequest[UUID] = ModNetwork.INSTANCE.getPlayerState();
var state = states[player.uniqueID];
if (isNull(state)) {
return null;
}
if (!isNull(player.server)) {
player.server.addScheduledTask(function() {
state.gridCache.unlinkP2P(message.p2p);
ModNetwork.INSTANCE.requestP2PUpdate(player);
});
}
return null;
}
}
@@ -0,0 +1,24 @@
#loader mixin
import mixin.CallbackInfo;
import native.thebetweenlands.common.item.BLMaterialRegistry;
#mixin Mixin
#{targets: "thebetweenlands.common.item.BLMaterialRegistry"}
zenClass MixinBLMaterialRegistry {
#mixin Static
#mixin ModifyConstant
#{
# method: "<clinit>",
# constant: {floatValue: 3.0F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=valonite"},
# to: {value: "CONSTANT", args: "stringValue=loot"}
# }
#}
function modifyValoniteShockwaveDamage(original as float) as float {
return 22.0F;
}
}
+21
View File
@@ -0,0 +1,21 @@
#modloaded astralsorcery
#loader mixin
/*
See StatsConfig.zs in this folder for values.
*/
#mixin {value: "crazypants.enderio.base.capacitor.CapacitorHelper"}
zenClass MixinCapacitorHelper {
#mixin Static
#mixin ModifyConstant
#{
# method: "getNBTCapacitorDataFromItemStack",
# constant: {intValue: 10}
#}
function change_capacitor_cap(original as int) as int {
return 45;
}
}
@@ -0,0 +1,17 @@
#modloaded extrabotany
#loader mixin
import native.com.meteor.extrabotany.common.item.relic.ItemExcaliber;
#mixin {value: "com.meteor.extrabotany.common.item.relic.ItemExcaliber"}
zenClass MixinItemExcaliber {
#mixin Static
#mixin ModifyConstant
#{
# method: "updateBurst",
# constant: {floatValue: 3F}
#}
function buffExcaliber(original as float) as float {
return 30.0F;
}
}
@@ -0,0 +1,17 @@
#modloaded extrabotany
#loader mixin
import native.com.meteor.extrabotany.common.item.relic.ItemSpearSubspace;
#mixin {value: "com.meteor.extrabotany.common.item.relic.ItemSpearSubspace"}
zenClass MixinItemSpearSubspace {
#mixin Static
#mixin ModifyConstant
#{
# method: "getAttributeModifiers",
# constant: {doubleValue: 8.0}
#}
function buffSubspaceSpearMelee(original as double) as double {
return 1500.0d;
}
}
+25
View File
@@ -0,0 +1,25 @@
#modloaded extrabotany
#loader mixin
import native.com.meteor.extrabotany.common.item.relic.ItemFirstFractal;
#mixin {value: "com.meteor.extrabotany.common.item.relic.ItemFirstFractal"}
zenClass MixinItemFirstFractal {
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('B_FIRSTFRACTAL', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function buffExcaliber(original as float) as float {
return 500.0F;
}
}
+25
View File
@@ -0,0 +1,25 @@
#loader mixin
import native.net.minecraft.util.math.BlockPos;
import native.net.minecraft.world.World;
import native.net.minecraft.block.state.IBlockState;
import native.forestry.api.apiculture.IBeeGenome;
import native.forestry.api.apiculture.IBeeHousing;
import mixin.CallbackInfoReturnable;
#mixin Mixin
#{targets: "com.rwtema.careerbees.effects.EffectAssassin"}
zenClass MixinAssassinBee {
#mixin Inject
#{
# method: "performPosEffect",
# at: {value: "HEAD"},
# cancellable: true
#}
function fixAssBeeCrash(world as World, blockPos as BlockPos, state as IBlockState, genome as IBeeGenome, housing as IBeeHousing, cir as CallbackInfoReturnable) as void {
if (!(world.getTileEntity(blockPos) instanceof IBeeHousing)) {
cir.setReturnValue(false);
}
}
}
+30
View File
@@ -0,0 +1,30 @@
#modloaded aether_legacy
#loader mixin
import native.net.minecraft.entity.Entity;
import native.net.minecraft.entity.item.EntityItem;
import native.net.minecraft.item.ItemStack;
import native.net.minecraft.world.World;
/*
Make dungeon key invulnerable without costly event handler.
Methods here are technically @Override.
Created by ChaosStrikez for Aether v1.5.4.0.
*/
#mixin Mixin
#{targets: "com.gildedgames.the_aether.items.dungeon.ItemDungeonKey"}
zenClass MixinItemDungeonKey {
function hasCustomEntity(stack as ItemStack) as bool {
return true;
}
function createEntity(world as World, location as Entity, itemstack as ItemStack) as Entity {
location.setEntityInvulnerable(true);
if (location instanceof EntityItem) {
# This is only 2x despawn time, but still better than Aether not doing it.
(location as EntityItem).setNoDespawn();
}
return null;
}
}
@@ -0,0 +1,17 @@
#modloaded openblocks
#loader mixin
#mixin {value: "openblocks.enchantments.LastStandEnchantmentsHandler"}
zenClass MixinLastStandEnchantmentsHandler {
#mixin Static
#mixin ModifyConstant
#{
# method: "lambda$onHurt$1",
# constant: {floatValue: 50.0}
#}
function mbc_modify_xpRequiredFlat(original as float) as float {
return 400.0f;
}
}
+20
View File
@@ -0,0 +1,20 @@
#modloaded threng
#loader mixin
import mixin.CallbackInfo;
#mixin {value: "io.github.phantamanta44.threng.tile.TileLevelMaintainer"}
zenClass MixinTileLevelMaintainer {
#mixin ModifyArg
#{
# method: "lambda$tick$1",
# at: {
# value: "INVOKE",
# target: "Lio/github/phantamanta44/threng/tile/TileLevelMaintainer$InventoryRequest;computeDelta(IJ)J"
# },
# index: 1
#}
function allowOvercraft(existing as long) as long {
return 0 as long;
}
}
+61
View File
@@ -0,0 +1,61 @@
#modloaded astralsorcery
#loader mixin
import native.net.minecraft.world.World;
import native.net.minecraft.entity.Entity;
import native.net.minecraft.entity.item.EntityItem;
import native.net.minecraft.entity.player.EntityPlayer;
import native.net.minecraft.item.ItemStack;
import native.net.minecraft.util.EnumHand;
import native.net.minecraft.util.ActionResult;
import native.net.minecraft.util.EnumActionResult;
import native.hellfirepvp.astralsorcery.common.item.gem.ItemPerkGem;
import native.hellfirepvp.astralsorcery.common.item.gem.GemAttributeHelper;
import mixin.CallbackInfo;
// Disable automatic gem rolling on tick; we'll roll on right-click instead
#mixin {targets: "hellfirepvp.astralsorcery.common.item.gem.ItemPerkGem"}
zenClass PerkGemDelayedRollMixin {
// SRG: Item#onUpdate -> func_77663_a
#mixin Inject
#{
# method: "func_77663_a",
# at: { value: "HEAD" },
# cancellable: true
#}
function cancelOnUpdate(stack as ItemStack, worldIn as World, entityIn as Entity, itemSlot as int, isSelected as bool, ci as CallbackInfo) as void {
ci.cancel();
}
// SRG: Item#onItemRightClick -> func_77659_a (not mixin, as inherited)
function func_77659_a(world as World, player as EntityPlayer, hand as EnumHand) as ActionResult {
val stack as ItemStack = player.getHeldItem(hand);
if (world.isRemote) return ActionResult(EnumActionResult.PASS, stack);
if (stack.isEmpty()) return ActionResult(EnumActionResult.PASS, stack);
// If a server-side roll hasn't happened yet for this stack, consume one and roll into a new single gem
if (ItemPerkGem.getModifiers(stack).isEmpty()) {
val gem as ItemStack = stack.copy();
gem.setCount(1);
GemAttributeHelper.rollGem(gem);
// Decrease the held stack size by 1 and update player's held item
stack.shrink(1);
player.setHeldItem(hand, stack.isEmpty() || stack.getCount() <= 0 ? ItemStack.EMPTY : stack);
// Try to give the rolled gem to the player. If inventory full, spawn it in the world
val added as bool = player.inventory.addItemStackToInventory(gem);
if (!added) {
val ei = EntityItem(world, player.posX, player.posY + 0.5, player.posZ, gem);
world.spawnEntity(ei);
}
return ActionResult(EnumActionResult.SUCCESS, player.getHeldItem(hand));
}
return ActionResult(EnumActionResult.PASS, stack);
}
}
@@ -0,0 +1,31 @@
#modloaded techreborn
#loader mixin
import native.net.minecraft.item.ItemStack;
import native.techreborn.tiles.tier1.TileRollingMachine;
import mixin.CallbackInfoReturnable;
// Prevent inserting items into empty slots of a locked Rolling Machine, to avoid overflow into non-recipe slots
#mixin {targets: "reborncore.common.tile.RebornMachineTile"}
zenClass RollingMachinePreventLockedOverflowMixin {
// SRG HEAD: TileEntity#isItemValidForSlot -> func_94041_b)
#mixin Inject
#{
# method: "func_94041_b",
# at: { value: "HEAD" },
# cancellable: true
#}
function forbidEmptySlotInsertion(index as int, stack as ItemStack, cir as CallbackInfoReturnable) as void {
// Injected into RebornMachineTile as isItemValidForSlot is inherited from there
// Not overwritten, as the delegated logic is a bit heavy
if (!(this instanceof TileRollingMachine)) return;
val self as TileRollingMachine = this as TileRollingMachine;
if (!self.locked) return; // not locked -> leave behavior unchanged
// If slot is empty, disallow insertion while locked, as it's a non-recipe slot
val slotStack as ItemStack = self.inventory.getStackInSlot(index);
if (slotStack.isEmpty()) cir.setReturnValue(false);
}
}
+13
View File
@@ -0,0 +1,13 @@
#loader mixin
import native.blusunrize.immersiveengineering.common.EventHandler;
import native.net.minecraftforge.event.entity.living.LivingDropsEvent;
#mixin {value: "blusunrize.immersiveengineering.common.EventHandler"}
zenClass MixinEventHandler {
#mixin Overwrite
function onLivingDrops(event as LivingDropsEvent) as void {
return;
}
}
+35
View File
@@ -0,0 +1,35 @@
#modloaded aoa3
#loader mixin
import scripts.mixin.aoa3.StatsConfig as CFG;
/*
See StatsConfig.zs in this folder for values.
*/
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.boss.kingshroomus.EntityKingShroomus"}
zenClass MixinEntityKingShroomus {
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 1800.0}
#}
function mbc_modify_hp_KingShroomus(original as double) as double {
return CFG.hp_KingShroomus;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.boss.shadowlord.EntityShadowlord"}
zenClass MixinEntityShadowlord {
#mixin ModifyConstant
#{
# method: "func_110147_ax",
# constant: {doubleValue: 2000.0}
#}
function mbc_modify_hp_Shadowlord(original as double) as double {
return CFG.hp_Shadowlord;
}
}
+425
View File
@@ -0,0 +1,425 @@
#modloaded aoa3
#loader mixin
import scripts.mixin.aoa3.StatsConfig as CFG;
/*
See StatsConfig.zs in this folder for values.
*/
#mixin {value: "net.tslat.aoa3.common.registration.MaterialsRegister"}
zenClass MixinWeaponRegister {
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOABARON', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_BaronSword(original as float) as float {
return CFG.dmg_BaronSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOABLOODFURY', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_Bloodfury(original as float) as float {
return CFG.dmg_Bloodfury;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOABLOODSTONE', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_BloodstoneSword(original as float) as float {
return CFG.dmg_BloodstoneSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOACARAMELCARVER', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_CaramelCarver(original as float) as float {
return CFG.dmg_CaramelCarver;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOACHAINSAWTOOL', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_Chainsaw(original as float) as float {
return CFG.dmg_Chainsaw;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOACORALSTORM', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_CoralstormSword(original as float) as float {
return CFG.dmg_CoralstormSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOACREEPIFIED', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_CreepifiedSword(original as float) as float {
return CFG.dmg_CreepifiedSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOACRYSTALLITE', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_CrystalliteSword(original as float) as float {
return CFG.dmg_CrystalliteSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAEXPLOCHRON', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_ExplochronSword(original as float) as float {
return CFG.dmg_ExplochronSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAGUARDIAN', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_GuardianSword(original as float) as float {
return CFG.dmg_GuardianSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAHARVESTER', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_HarvesterSword(original as float) as float {
return CFG.dmg_HarvesterSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAHOLY', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_HolySword(original as float) as float {
return CFG.dmg_HolySword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAILLUSION', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_IllusionSword(original as float) as float {
return CFG.dmg_IllusionSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOALIGHTSWAY', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_LightsWaySword(original as float) as float {
return CFG.dmg_LightsWaySword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAPRIMAL', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_PrimalSword(original as float) as float {
return CFG.dmg_PrimalSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAROCKBASHER', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_RockbasherSword(original as float) as float {
return CFG.dmg_RockbasherSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOAROSIDIAN', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_RosidianSword(original as float) as float {
return CFG.dmg_RosidianSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOARUNIC', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_RunicSword(original as float) as float {
return CFG.dmg_RunicSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOASHADOW', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_ShadowSword(original as float) as float {
return CFG.dmg_ShadowSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOASHROOMUS', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_ShroomusSword(original as float) as float {
return CFG.dmg_ShroomusSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOASKELETAL', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_SkeletalSword(original as float) as float {
return CFG.dmg_SkeletalSword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOASUPREMACY', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_SupremacySword(original as float) as float {
return CFG.dmg_SupremacySword;
}
#mixin Definition
#{
# id: "addToolMaterial", method: "Lnet/minecraftforge/common/util/EnumHelper;addToolMaterial(Ljava/lang/String;IIFFI)Lnet/minecraft/item/Item$ToolMaterial;"
#}
#mixin Expression
#{
# value: "addToolMaterial('AOASWEET', ?, ?, ?, @(?), ?)"
#}
#mixin Static
#mixin ModifyExpressionValue
#{
# method: "<clinit>",
# at: {value: "MIXINEXTRAS:EXPRESSION"}
#}
function mbc_modify_dmg_SweetSword(original as float) as float {
return CFG.dmg_SweetSword;
}
}
+522
View File
@@ -0,0 +1,522 @@
#modloaded aoa3
#loader mixin
import scripts.mixin.aoa3.StatsConfig as CFG;
/*
See StatsConfig.zs in this folder for values.
*/
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityMechaSkellox"}
zenClass MixinEntityMechaSkelloxHP {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 160.0d}
#}
function mbc_modify_hp_MechaSkellox(original as double) as double {
return CFG.hp_MechaSkellox;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 15.0d}
#}
function mbc_modify_dmg_MechaSkellox(original as double) as double {
return CFG.dmg_MechaSkellox;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityCompeer"}
zenClass MixinEntityCompeer {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 20}
#}
function mbc_modify_hp_Compeer(original as double) as double {
return CFG.hp_Compeer;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 5.0d}
#}
function mbc_modify_dmg_Compeer(original as double) as double {
return CFG.dmg_Compeer;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityWaggy"}
zenClass MixinEntityWaggy {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 110.0d}
#}
function mbc_modify_hp_Waggy(original as double) as double {
return CFG.hp_Waggy;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 10.0d}
#}
function mbc_modify_dmg_Waggy(original as double) as double {
return CFG.dmg_Waggy;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntitySpikeback"}
zenClass MixinEntitySpikeback {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 60.0d}
#}
function mbc_modify_hp_Spikeback(original as double) as double {
return CFG.hp_Spikeback;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 23.0d}
#}
function mbc_modify_dmg_Spikeback(original as double) as double {
return CFG.dmg_Spikeback;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityRammerhorn"}
zenClass MixinEntityRammerhorn {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 210.0d}
#}
function mbc_modify_hp_Rammerhorn(original as double) as double {
return CFG.hp_Rammerhorn;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 11.0d}
#}
function mbc_modify_dmg_Rammerhorn(original as double) as double {
return CFG.dmg_Rammerhorn;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntitySpraggy"}
zenClass MixinEntitySpraggy {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 130.0d}
#}
function mbc_modify_hp_Spraggy(original as double) as double {
return CFG.hp_Spraggy;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 10.0d}
#}
function mbc_modify_dmg_Spraggy(original as double) as double {
return CFG.dmg_Spraggy;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityPlateosaur"}
zenClass MixinEntityPlateosaur {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 320.0d}
#}
function mbc_modify_hp_Plateosaur(original as double) as double {
return CFG.hp_Plateosaur;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 5.0d}
#}
function mbc_modify_dmg_Plateosaur(original as double) as double {
return CFG.dmg_Plateosaur;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityHellquin"}
zenClass MixinEntityHellquin {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 120}
#}
function mbc_modify_hp_Hellquin(original as double) as double {
return CFG.hp_Hellquin;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 10.0d}
#}
function mbc_modify_dmg_Hellquin(original as double) as double {
return CFG.dmg_Hellquin;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityCraggy"}
zenClass MixinEntityCraggy {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 180}
#}
function mbc_modify_hp_Craggy(original as double) as double {
return CFG.hp_Craggy;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 10.0d}
#}
function mbc_modify_dmg_Craggy(original as double) as double {
return CFG.dmg_Craggy;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityShaddy"}
zenClass MixinEntityShaddy {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 200.0d}
#}
function mbc_modify_hp_Shaddy(original as double) as double {
return CFG.hp_Shaddy;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 10.0d}
#}
function mbc_modify_dmg_Shaddy(original as double) as double {
return CFG.dmg_Shaddy;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityCorby"}
zenClass MixinEntityCorby {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 200}
#}
function mbc_modify_hp_Corby(original as double) as double {
return CFG.hp_Corby;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 11.0d}
#}
function mbc_modify_dmg_Corby(original as double) as double {
return CFG.dmg_Corby;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityHorntail"}
zenClass MixinEntityHorntail {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 270.0d}
#}
function mbc_modify_hp_Horntail(original as double) as double {
return CFG.hp_Horntail;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 18.0d}
#}
function mbc_modify_dmg_Horntail(original as double) as double {
return CFG.dmg_Horntail;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityGnawer"}
zenClass MixinEntityGnawer {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 430.0d}
#}
function mbc_modify_hp_Gnawer(original as double) as double {
return CFG.hp_Gnawer;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 9.0d}
#}
function mbc_modify_dmg_Gnawer(original as double) as double {
return CFG.dmg_Gnawer;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityBlissard"}
zenClass MixinEntityBlissard {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 100}
#}
function mbc_modify_hp_Blissard(original as double) as double {
return CFG.hp_Blissard;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 11.0d}
#}
function mbc_modify_dmg_Blissard(original as double) as double {
return CFG.dmg_Blissard;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityGoofer"}
zenClass MixinEntityGoofer {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 270.0d}
#}
function mbc_modify_hp_Goofer(original as double) as double {
return CFG.hp_Goofer;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 10.0d}
#}
function mbc_modify_dmg_Goofer(original as double) as double {
return CFG.dmg_Goofer;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityMechaCyclops"}
zenClass MixinEntityMechaCyclops {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 100}
#}
function mbc_modify_hp_MechaCyclops(original as double) as double {
return CFG.hp_MechaCyclops;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 30.0d}
#}
function mbc_modify_dmg_MechaCyclops(original as double) as double {
return CFG.dmg_MechaCyclops;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityAlluricorn"}
zenClass MixinEntityAlluricorns {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 200}
#}
function mbc_modify_hp_Alluricorn(original as double) as double {
return CFG.hp_Alluricorn;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 13.0d}
#}
function mbc_modify_dmg_Alluricorn(original as double) as double {
return CFG.dmg_Alluricorn;
}
}
#mixin Mixin
#{targets: "net.tslat.aoa3.entity.minions.EntityConstructOfServility"}
zenClass MixinEntityConstructOfServility {
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMaxHealth",
# constant: {doubleValue: 260}
#}
function mbc_modify_hp_ConstructOfServility(original as double) as double {
return CFG.hp_ConstructOfServility;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "getBaseMeleeDamage",
# constant: {doubleValue: 15.0d}
#}
function mbc_modify_dmg_ConstructOfServility(original as double) as double {
return CFG.dmg_ConstructOfServility;
}
}
+22
View File
@@ -0,0 +1,22 @@
#modloaded aoa3
#loader mixin
import scripts.mixin.aoa3.StatsConfig as CFG;
#mixin Mixin
#{targets: "net.tslat.aoa3.item.weapon.staff.WaterStaff"}
zenClass MixinWaterStaff {
#mixin ModifyConstant
#{
# method: "<init>",
# constant: {floatValue: 5}
#}
function mbc_modify_dmg_waterStaff(original as float) as float {
return CFG.dmg_waterStaff;
}
}
+175
View File
@@ -0,0 +1,175 @@
#modloaded aoa3
#priority 10
#loader mixin
// Mob HP
static hp_KingShroomus as double = 3000.0d;
static hp_Shadowlord as double = 5000.0d;
static hp_MechaSkellox as double = 1000000.0d;
static dmg_MechaSkellox as double = 50000.0d;
static hp_Compeer as double = 200.0d;
static dmg_Compeer as double = 20.0d;
static hp_Waggy as double = 300.0d;
static dmg_Waggy as double = 10.5d;
static hp_Spikeback as double = 650.0d;
static dmg_Spikeback as double = 100.0d;
static hp_Rammerhorn as double = 400.0d;
static dmg_Rammerhorn as double = 55.0d;
static hp_Spraggy as double = 2000.0d;
static dmg_Spraggy as double = 50.0d;
static hp_Plateosaur as double = 1200.0d;
static dmg_Plateosaur as double = 30.0d;
static hp_Hellquin as double = 500.0d;
static dmg_Hellquin as double = 60.0d;
static hp_Craggy as double = 5000.0d;
static dmg_Craggy as double = 150.0d;
static hp_Shaddy as double = 50000.0d;
static dmg_Shaddy as double = 250.0d;
static hp_Corby as double = 2000.0d;
static dmg_Corby as double = 160.0d;
static hp_Horntail as double = 200.0d;
static dmg_Horntail as double = 150.0d;
static hp_Gnawer as double = 1000.0d;
static dmg_Gnawer as double = 180.0d;
static hp_Blissard as double = 10000.0d;
static dmg_Blissard as double = 400.0d;
static hp_Goofer as double = 1000.0d;
static dmg_Goofer as double = 80.0d;
static hp_MechaCyclops as double = 4000.0d;
static dmg_MechaCyclops as double = 300.0d;
static hp_Alluricorn as double = 100000.0d;
static dmg_Alluricorn as double = 600.0d;
static hp_ConstructOfServility as double = 10000.0d;
static dmg_ConstructOfServility as double = 400.0d;
// Melee Weapons
static dmg_BaronSword as float = 99.0f;
static dmg_Bloodfury as float = 35.0f;
static dmg_BloodstoneSword as float = 29.0f;
static dmg_CaramelCarver as float = 49.0f;
static dmg_Chainsaw as float = 799.0f;
static dmg_CoralstormSword as float = 13.0f;
static dmg_CreepifiedSword as float = 33.0f;
static dmg_CrystalliteSword as float = 54.0f;
static dmg_ExplochronSword as float = 59.0f;
static dmg_GuardianSword as float = 59.0f;
static dmg_HarvesterSword as float = 249.0f;
static dmg_HolySword as float = 19.0f;
static dmg_IllusionSword as float = 37.5f;
static dmg_LightsWaySword as float = 999.0f;
static dmg_PrimalSword as float = 35.0f;
static dmg_RockbasherSword as float = 119.0f;
static dmg_RosidianSword as float = 54.0f;
static dmg_RunicSword as float = 499.0f;
static dmg_ShadowSword as float = 399.0f;
static dmg_ShroomusSword as float = 61.0f;
static dmg_SkeletalSword as float = 37.0f;
static dmg_SupremacySword as float = 54.0f;
static dmg_SweetSword as float = 54.0f;
static dmg_Bloodlurker as double = 56.0d;
static dmg_TidalGreatblade as double = 30.0d;
static dmg_BaronGreatblade as double = 199.0d;
static dmg_CreepoidGreatblade as double = 79.0d;
static dmg_LelyetianGreatblade as double = 219.0d;
static dmg_RoyalGreatblade as double = 74.0d;
static dmg_SubterraneanGreatblade as double = 194.0d;
static dmg_ShyreSword as double = 1799.0d;
static dmg_GodsGreatblade as double = 3999.0d;
static dmg_CrystalGreatblade as double = 120.0d;
static dmg_GoofyGreatblade as double = 159.0d;
static dmg_LyonicGreatblade as double = 189.0d;
static dmg_NoxiousGreatblade as double = 169.0d;
static dmg_RosidianGreatblade as double = 129.0d;
static dmg_ShroomicGreatblade as double = 110.0d;
static dmg_UnderworldGreatblade as double = 79.0d;
static dmg_RunicGreatblade as double = 1110.0d;
static dmg_CoralGreatblade as double = 302.0d;
static dmg_PrimordialGreatblade as double = 849.0d;
static dmg_HauntedGreatblade as double = 554.0d;
static dmg_VulcammerMaul as float = 60.0f;
static dmg_CoralstoneMaul as float = 1249.0f;
static dmg_CrystalMaul as float = 149.0f;
static dmg_ElectronMaul as float = 699.0f;
static dmg_HorizonMaul as float = 149.0f;
// staffs
static dmg_waterStaff as float = 300.0d;
// guns and co
static dmg_ChilliChugger as double = 40.0d;
static dmg_DartGun as double = 100.0d;
static dmg_FlamingFury as double = 200.0d;
static dmg_GoldenFury as double = 204.0d;
static dmg_NethengeicSlugger as double = 240.0d;
static dmg_WithersWrath as double = 100.0d;
static dmg_BayonetteRifle as double = 300.0d;
static dmg_GigaCannon as double = 400.0d;
static dmg_Baronator as double = 300.0d;
static dmg_CarrotCannon as double = 260.0d;
static dmg_BoulderBomber as double = 400.0d;
static dmg_GolderBomber as double = 500.0d;
static dmg_BloodIron as double = 420.0d;
static dmg_CoreRifle as double = 350.0d;
static dmg_DischargeRifle as double = 380.0d;
static dmg_EchoGull as double = 400.0d;
static dmg_NethenetteRifle as double = 350.0d;
static dmg_Gardener as double = 140.0d;
static dmg_GaugeRifle as double = 460.0d;
static dmg_HotShot as double = 70.0d;
static dmg_HeatWave as double = 130.0d;
static dmg_LightIron as double = 450.0d;
static dmg_Minigun as double = 120.0d;
static dmg_Megagun as double = 200.0d;
static dmg_PrecasianSlugger as double = 420.0d;
static dmg_Predigun as double = 200.0d;
static dmg_RockerRifle as double = 320.0d;
static dmg_JackRocker as double = 350.0d;
static dmg_Stampede as double = 60.0d;
static dmg_Roulette as double = 380.0d;
static dmg_Skullette as double = 420.0d;
static dmg_SquadGun as double = 340.0d;
static dmg_SpineGun as double = 400.0d;
static dmg_Tommy as double = 50.0d;
static dmg_TigerTommy as double = 300.0d;
static dmg_WartGun as double = 60.0d;
static dmg_Stormer as double = 400.0d;
static dmg_Artifact as double = 420.0d;
static dmg_Skullifact as double = 460.0d;
static dmg_ApocoRifle as double = 420.0d;
static dmg_ApocoAssaultRifle as double = 480.0d;
static dmg_MechanicalAssaultRifle as double = 420.0d;
static dmg_MintMagnum as double = 250.0d;
static dmg_AquaMagnum as double = 440.0d;
static dmg_BigTop as double = 380.0d;
static dmg_ChainWrecker as double = 280.0d;
static dmg_FlameWrecker as double = 420.0d;
static dmg_Overshot as double = 500.0d;
static dmg_Clownershot as double = 520.0d;
static dmg_CrystalCarver as double = 380.0d;
static dmg_Cyclone as double = 480.0d;
static dmg_Wrecker as double = 350.0d;
static dmg_Darkener as double = 490.0d;
static dmg_DestructionRifle as double = 350.0d;
static dmg_Dragilator as double = 500.0d;
static dmg_Electinator as double = 500.0d;
static dmg_Frosticator as double = 500.0d;
static dmg_Germinator as double = 500.0d;
static dmg_CoralClogger as double = 1200.0d;
static dmg_Draco as double = 800.0d;
static dmg_MK as double = 500.0d;
static dmg_MKFung as double = 600.0d;
static dmg_Pulsator as double = 500.0d;
static dmg_Predator as double = 1000.0d;
static dmg_PurityRifle as double = 550.0d;
static dmg_HaunterRifle as double = 850.0d;
static dmg_Dustometer as double = 380.0d;
static dmg_Sublimus as double = 1000.0d;
static dmg_HuntersRifle as double = 444.0d;
static energyCost_WithersWrath as float = 8.0f;
static energyCost_DoomBringer as float = 0.1f;
static energyCost_GoldBringer as float = 0.1f;
File diff suppressed because it is too large Load Diff
+728
View File
@@ -0,0 +1,728 @@
#modloaded astralsorcery
#loader mixin
import scripts.mixin.astralsorcery.StatsConfig as CFG;
/*
See StatsConfig.zs in this folder for values.
*/
#mixin {value: "hellfirepvp.astralsorcery.common.registry.RegistryPerks"}
zenClass MixinRegistryPerks {
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeMinorConstellationPerks",
# constant: {floatValue: 1.04F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=alcara_more_perkeff"},
# to: {value: "CONSTANT", args: "stringValue=alcara_more_perkeff_1"}
# }
#}
function mbc_modify_alcara_focus0(original as float) as float {
return CFG.perkEff_AlcaraFocus0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeMinorConstellationPerks",
# constant: {floatValue: 1.04F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=alcara_more_perkeff_1"},
# to: {value: "CONSTANT", args: "stringValue=outer_s_inc_mine_2"}
# }
#}
function mbc_modify_alcara_focus1(original as float) as float {
return CFG.perkEff_AlcaraFocus1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterArmaraPerks",
# constant: {floatValue: 0.02F}
#}
function mbc_modify_armaraOuter(original as float) as float {
return CFG.armor_ArmaraOuter;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.08F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=inc_cull_crit"},
# to: {value: "CONSTANT", args: "stringValue=key_cull_attack"}
# }
#}
function mbc_modify_crit_cull(original as float) as float {
return CFG.crit_Cull;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 2F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_proj"},
# to: {value: "CONSTANT", args: "stringValue=crit_inc_chance_proj_1"}
# }
#}
function mbc_modify_crit_draw0(original as float) as float {
return CFG.crit_Draw0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.2F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_proj"},
# to: {value: "CONSTANT", args: "stringValue=crit_inc_chance_proj_1"}
# }
#}
function mbc_modify_damage_draw0(original as float) as float {
return CFG.damage_Draw0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 2F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_proj_1"},
# to: {value: "CONSTANT", args: "stringValue=major_crit_proj"}
# }
#}
function mbc_modify_crit_draw1(original as float) as float {
return CFG.crit_Draw1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.2F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_proj_1"},
# to: {value: "CONSTANT", args: "stringValue=major_crit_proj"}
# }
#}
function mbc_modify_damage_draw1(original as float) as float {
return CFG.damage_Draw1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.15F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_crit_proj"},
# to: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee"}
# }
#}
function mbc_modify_crit_draw2(original as float) as float {
return CFG.crit_Draw2;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.3F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_crit_proj"},
# to: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee"}
# }
#}
function mbc_modify_damage_draw2(original as float) as float {
return CFG.damage_Draw2;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 3F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee"},
# to: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee_1"}
# }
#}
function mbc_modify_crit_finesse0(original as float) as float {
return CFG.crit_Finesse0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.1F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee"},
# to: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee_1"}
# }
#}
function mbc_modify_damage_finesse0(original as float) as float {
return CFG.damage_Finesse0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 3F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee_1"},
# to: {value: "CONSTANT", args: "stringValue=major_crit_melee"}
# }
#}
function mbc_modify_crit_finesse1(original as float) as float {
return CFG.crit_Finesse1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.1F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=crit_inc_chance_melee_1"},
# to: {value: "CONSTANT", args: "stringValue=major_crit_melee"}
# }
#}
function mbc_modify_damage_finesse1(original as float) as float {
return CFG.damage_Finesse1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.25F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_crit_melee"}
# }
#}
function mbc_modify_crit_finesse2(original as float) as float {
return CFG.crit_Finesse2;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.2F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_crit_melee"}
# }
#}
function mbc_modify_damage_finesse2(original as float) as float {
return CFG.damage_Finesse2;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaKeyPerks",
# constant: {floatValue: 3},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=key_rampage_path_node_crit"},
# to: {value: "CONSTANT", args: "stringValue=key_rampage_path_node_dmg"}
# }
#}
function mbc_modify_crit_rampage(original as float) as float {
return CFG.crit_Rampage;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 2F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=not_dsc_proj_crit"},
# to: {value: "CONSTANT", args: "stringValue=med_inc_melee_damage"}
# }
#}
function mbc_modify_crit_sniper(original as float) as float {
return CFG.crit_Sniper;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaRoot",
# constant: {floatValue: 2F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_inc_damage"}
# }
#}
function mbc_modify_crit_precision(original as float) as float {
return CFG.crit_Precision;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeRoot",
# constant: {floatValue: 10F}
#}
function mbc_modify_critDiscidiaRoot(original as float) as float {
return CFG.crit_DiscidiaRoot;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterDiscidiaPerks",
# constant: {floatValue: 0.02F}
#}
function mbc_modify_discidiaOuter(original as float) as float {
return CFG.damage_DiscidiaOuter;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializePerkEffectPerks",
# constant: {floatValue: 0.15F},
# slice: {
# to: {value: "CONSTANT", args: "stringValue=major_perk_eff_nt"}
# }
#}
function mbc_modify_perkEff_major(original as float) as float {
return CFG.perkEff_major;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializePerkCore",
# constant: {floatValue: 0.07F}
#}
function mbc_modify_perkEff_t1(original as float) as float {
return CFG.perkEff_t1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializePerkInteriorTravelWheel",
# constant: {floatValue: 0.05F}
#}
function mbc_modify_perkEff_t2(original as float) as float {
return CFG.perkEff_t2;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeRootPerkWheel",
# constant: {floatValue: 0.04F}
#}
function mbc_modify_perkEff_t3(original as float) as float {
return CFG.perkEff_t3;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializePerkExteriorTravelWheel",
# constant: {floatValue: 0.03F}
#}
function mbc_modify_perkEff_t4(original as float) as float {
return CFG.perkEff_t4;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeMinorConstellationPerks",
# constant: {floatValue: 0.04F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=vorux_inc_perkeff"},
# to: {value: "CONSTANT", args: "stringValue=vorux_inc_perkeff_1"}
# }
#}
function mbc_modify_vorux_focus0(original as float) as float {
return CFG.perkEff_VoruxFocus0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeMinorConstellationPerks",
# constant: {floatValue: 0.04F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=vorux_inc_perkeff_1"},
# to: {value: "CONSTANT", args: "stringValue=outer_s_inc_dmg_2"}
# }
#}
function mbc_modify_vorux_focus1(original as float) as float {
return CFG.perkEff_VoruxFocus1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaKeyPerks",
# constant: {floatValue: 0.9F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=key_dst_less_dmg"},
# to: {value: "CONSTANT", args: "stringValue=key_dst_less_dmg_2"}
# }
#}
function mbc_modify_dst_damage0(original as float) as float {
return CFG.crit_dst_damage0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaKeyPerks",
# constant: {floatValue: 0.9F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=key_dst_less_dmg_2"},
# to: {value: "CONSTANT", args: "stringValue=key_projectile_proximity"}
# }
#}
function mbc_modify_dst_damage1(original as float) as float {
return CFG.crit_dst_damage1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaKeyPerks",
# constant: {floatValue: 0.9F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=key_dst_less_dmg_3"},
# to: {value: "CONSTANT", args: "stringValue=key_dst_less_dmg_4"}
# }
#}
function mbc_modify_dst_damage2(original as float) as float {
return CFG.crit_dst_damage2;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaKeyPerks",
# constant: {floatValue: 0.9F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=key_dst_less_dmg_4"},
# to: {value: "CONSTANT", args: "stringValue=key_projectile_distance"}
# }
#}
function mbc_modify_dst_damage3(original as float) as float {
return CFG.crit_dst_damage3;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaKeyPerks",
# constant: {floatValue: 0.08F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=key_rampage_path_node_dmg"},
# to: {value: "CONSTANT", args: "stringValue=key_rampage_path_node_dmg_1"}
# }
#}
function mbc_modify_damage_rampage0(original as float) as float {
return CFG.damage_Rampage0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaKeyPerks",
# constant: {floatValue: 0.08F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=key_rampage_path_node_dmg_1"},
# to: {value: "CONSTANT", args: "stringValue=key_rampage"}
# }
#}
function mbc_modify_damage_rampage0(original as float) as float {
return CFG.damage_Rampage1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaRoot",
# constant: {floatValue: 0.05F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=base_inc__melee_damage"},
# to: {value: "CONSTANT", args: "stringValue=base_inc_proj_damage"}
# }
#}
function mbc_modify_damage_rootDiscidia0(original as float) as float {
return CFG.damage_rootDiscidia0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaRoot",
# constant: {floatValue: 0.05F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=base_inc_proj_damage"},
# to: {value: "CONSTANT", args: "stringValue=major_inc_damage"}
# }
#}
function mbc_modify_damage_rootDiscidia1(original as float) as float {
return CFG.damage_rootDiscidia1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeEvorsioRoot",
# constant: {floatValue: 0.1F}
#}
function mbc_modify_rootEvorsio_damage(original as float) as float {
return CFG.damage_rootEvorsio;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 1.05F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=not_dsc_melee_multi"},
# to: {value: "CONSTANT", args: "stringValue=med_reach_arrowspeed"}
# }
#}
function mbc_modify_damage_meleeMulti(original as float) as float {
return CFG.damage_meleeMulti;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 0.3F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=not_dsc_melee_multi"},
# to: {value: "CONSTANT", args: "stringValue=med_reach_arrowspeed"}
# }
#}
function mbc_modify_crit_meleeMulti(original as float) as float {
return CFG.crit_meleeMulti;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 0.1F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=med_inc_melee_damage"},
# to: {value: "CONSTANT", args: "stringValue=med_inc_melee_damage_1"}
# }
#}
function mbc_modify_damage_medDiscidia0(original as float) as float {
return CFG.damage_medDiscidia0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 0.1F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=med_inc_melee_damage_1"},
# to: {value: "CONSTANT", args: "stringValue=not_dsc_melee_multi"}
# }
#}
function mbc_modify_damage_medDiscidia1(original as float) as float {
return CFG.damage_medDiscidia1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterEvorsioPerks",
# constant: {floatValue: 1.02F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=ev_gem_path"},
# to: {value: "CONSTANT", args: "stringValue=ev_gem_path_1"}
# }
#}
function mbc_modify_perkEff_EvorsioOuter0(original as float) as float {
return CFG.perkEff_EvorsioOuter0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterEvorsioPerks",
# constant: {floatValue: 1.02F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=ev_gem_path_1"},
# to: {value: "CONSTANT", args: "stringValue=ev_gem_slot"}
# }
#}
function mbc_modify_perkEff_EvorsioOuter1(original as float) as float {
return CFG.perkEff_EvorsioOuter1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterAevitasPerks",
# constant: {floatValue: 1.02F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=life_gem_path"},
# to: {value: "CONSTANT", args: "stringValue=life_gem_path_1"}
# }
#}
function mbc_modify_perkEff_AevitasOuter0(original as float) as float {
return CFG.perkEff_AevitasOuter0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeOuterAevitasPerks",
# constant: {floatValue: 1.02F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=life_gem_path_1"},
# to: {value: "CONSTANT", args: "stringValue=life_gem_slot"}
# }
#}
function mbc_modify_perkEff_AevitasOuter1(original as float) as float {
return CFG.perkEff_AevitasOuter1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeVicioKeyPerks",
# constant: {floatValue: 0.05F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_ats_inc_ats"},
# to: {value: "CONSTANT", args: "stringValue=major_ats_inc_ats_1"}
# }
#}
function mbc_modify_atkSpeed_VicioKey0(original as float) as float {
return CFG.atkSpeed_VicioKey0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeVicioKeyPerks",
# constant: {floatValue: 0.05F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_ats_inc_ats_1"},
# to: {value: "CONSTANT", args: "stringValue=major_increased_ats_zeal"}
# }
#}
function mbc_modify_atkSpeed_VicioKey1(original as float) as float {
return CFG.atkSpeed_VicioKey1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeVicioKeyPerks",
# constant: {floatValue: 0.15F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_increased_ats_zeal"},
# to: {value: "CONSTANT", args: "stringValue=base_inc_perkeffect_t3_7"}
# }
#}
function mbc_modify_atkSpeed_VicioKey2(original as float) as float {
return CFG.atkSpeed_VicioKey2;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeEvorsioBranch",
# constant: {floatValue: 1.1F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=not_evo_hrv_ats"},
# to: {value: "CONSTANT", args: "stringValue=med_inc_hrv_speed_2"}
# }
#}
function mbc_modify_atkSpeed_EvorsioBranch0(original as float) as float {
return CFG.atkSpeed_EvorsioBranch0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 0.1F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=med_inc_proj_damage"},
# to: {value: "CONSTANT", args: "stringValue=med_inc_proj_damage_1"}
# }
#}
function mbc_modify_damage_DiscidiaBranch0(original as float) as float {
return CFG.damage_DiscidiaBranch0;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 0.1F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=med_inc_proj_damage_1"},
# to: {value: "CONSTANT", args: "stringValue=not_dsc_proj_crit"}
# }
#}
function mbc_modify_damage_DiscidiaBranch1(original as float) as float {
return CFG.damage_DiscidiaBranch1;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaBranch",
# constant: {floatValue: 1.05F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=not_dsc_proj_crit"},
# to: {value: "CONSTANT", args: "stringValue=med_inc_melee_damage"}
# }
#}
function mbc_modify_damage_Sniper(original as float) as float {
return CFG.damage_Sniper;
}
#mixin Static
#mixin ModifyConstant
#{
# method: "initializeDiscidiaRoot",
# constant: {floatValue: 1.05F},
# slice: {
# from: {value: "CONSTANT", args: "stringValue=major_inc_damage"}
# }
#}
function mbc_modify_damage_precision(original as float) as float {
return CFG.damage_Precision;
}
}
@@ -0,0 +1,15 @@
#modloaded astralsorcery
#loader mixin
#mixin {value: "hellfirepvp.astralsorcery.common.constellation.perk.tree.nodes.key.KeyCullAttack"}
zenClass MixinKeyCullAttack {
#mixin ModifyConstant
#{
# method: "onDmg",
# constant: {floatValue: 0.15F}
#}
function mbc_modify_health_cullingstrike(original as float) as float {
return 0.05F;
}
}
+103
View File
@@ -0,0 +1,103 @@
#modloaded astralsorcery
#priority 10
#loader mixin
// Perk effectiveness (Alcara, focus)
static perkEff_AlcaraFocus0 as float = 1.03f;
static perkEff_AlcaraFocus1 as float = 1.03f;
// Armor (Armara, outer-most ring)
static armor_ArmaraOuter as float = 0.01f;
// Crit chance
// Near Culling Strike
static crit_Cull as float = 0.04f;
// Near Lethal Draw
static crit_Draw0 as float = 1.2f;
static damage_Draw0 as float = 0.1f;
static crit_Draw1 as float = 1.2f;
static damage_Draw1 as float = 0.1f;
static crit_Draw2 as float = 0.1f;
static damage_Draw2 as float = 0.2f;
// Near Blade Finesse
static crit_Finesse0 as float = 1.6f;
static damage_Finesse0 as float = 0.05f;
static crit_Finesse1 as float = 1.6f;
static damage_Finesse1 as float = 0.05f;
static crit_Finesse2 as float = 0.15f;
static damage_Finesse2 as float = 0.1f;
// Near Rampage
static crit_Rampage as float = 1.7f;
static damage_Rampage0 as float = 0.06f;
static damage_Rampage1 as float = 0.06f;
// Near Sniper
static crit_Sniper as float = 1.2f;
static damage_Sniper as float = 1.02f;
// Precision
static crit_Precision as float = 1.2f;
static damage_Precision as float = 1.02f;
// Discidia root
static crit_DiscidiaRoot as float = 4.0f;
static damage_rootDiscidia0 as float = 0.03f;
static damage_rootDiscidia1 as float = 0.03f;
// Evorsio root
static damage_rootEvorsio as float = 0.07f;
// Evorsio Outer
static perkEff_EvorsioOuter0 as float = 1.01f;
static perkEff_EvorsioOuter1 as float = 1.01f;
// Evorsio Branch
static atkSpeed_EvorsioBranch0 as float = 1.05f;
// Damage, Discidia Key
static crit_dst_damage0 as float = 0.6f;
static crit_dst_damage1 as float = 0.6f;
static crit_dst_damage2 as float = 0.6f;
static crit_dst_damage3 as float = 0.6f;
// Discidia Branch
static damage_DiscidiaBranch0 as float = 0.05f;
static damage_DiscidiaBranch1 as float = 0.07f;
// Damage (Discidia, outer-most ring)
static damage_DiscidiaOuter as float = 0.01f;
static crit_cullDiscidiaOuter as float = 0.05f;
// Perk effectiveness (tiered)
static perkEff_major as float = 0.08f;
static perkEff_t1 as float = 0.035f;
static perkEff_t2 as float = 0.025f;
static perkEff_t3 as float = 0.02f;
static perkEff_t4 as float = 0.015f;
// Perk effectiveness (Vorux, focus)
static perkEff_VoruxFocus0 as float = 0.1f;
static perkEff_VoruxFocus1 as float = 0.1f;
// non-Discidia melee multiplier
static damage_meleeMulti as float = 1.03f;
static crit_meleeMulti as float = 0.2f;
// Discidia damage medium
static damage_medDiscidia0 as float = 0.03f;
static damage_medDiscidia1 as float = 0.03f;
// Aevitas outer
static perkEff_AevitasOuter0 as float = 1.01f;
static perkEff_AevitasOuter1 as float = 1.01f;
// Vicio key
static atkSpeed_VicioKey0 as float = 0.03f;
static atkSpeed_VicioKey1 as float = 0.04f;
static atkSpeed_VicioKey2 as float = 0.10f;
@@ -0,0 +1,14 @@
#modloaded iceandfire
#loader mixin
#mixin {value: "com.github.alexthe666.iceandfire.entity.EntityTideTrident"}
zenClass MixinEntityTideTrident {
#mixin ModifyConstant
#{
# method: "<init>",
# constant: {doubleValue: 6.0D}
#}
function mbc_modify_dmg_TideTrident(original as double) as double {
return 35.0d;
}
}
+14
View File
@@ -0,0 +1,14 @@
#modloaded astralsorcery
#loader mixin
import mixin.CallbackInfoReturnable;
import native.net.minecraft.item.ItemStack;
#mixin {targets: "appeng.core.features.registries.P2PTunnelRegistry"}
zenClass MixinP2PTunnelRegistry {
#mixin Inject {method: "getTunnelTypeByItem", at: {value: "HEAD"}}
function ignoreStack(trigger as ItemStack, cir as mixin.CallbackInfoReturnable) as void {
cir.setReturnValue(null);
}
}
+28
View File
@@ -0,0 +1,28 @@
#modloaded thaumcraft techreborn
#loader mixin
import native.net.minecraft.item.Item;
import native.net.minecraft.item.ItemStack;
import native.techreborn.items.ingredients.ItemPlates as TRPlates;
/*
Unify plate drops for arcane bore.
Created by ChaosStrikez for Thaumcraft v6.1.BETA-26.
*/
#mixin {targets: "thaumcraft.common.entities.construct.EntityArcaneBore"}
zenClass mixinEntityArcaneBore {
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;)Lnet/minecraft/item/ItemStack;",
# ordinal: 5
# }
#}
function mbc_unifyBrassPlate(original as Item) as ItemStack {
return TRPlates.getPlateByName("brass");
}
}
@@ -0,0 +1,55 @@
#modloaded thaumcraft techreborn thermalfoundation
#loader mixin
import native.net.minecraft.item.Item;
import native.net.minecraft.item.ItemStack;
import native.cofh.thermalfoundation.item.ItemMaterial as ThermalPlates;
import native.techreborn.items.ingredients.ItemPlates as TRPlates;
/*
Unify plate drops for advanced crossbow turret.
Created by ChaosStrikez for Thaumcraft v6.1.BETA-26.
*/
#mixin {targets: "thaumcraft.common.entities.construct.EntityTurretCrossbowAdvanced"}
zenClass MixinEntityTurretCrossbowAdvanced {
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;II)Lnet/minecraft/item/ItemStack;",
# ordinal: 4
# }
#}
function mbc_unifyBrassPlate(original as Item, amount as int, meta as int) as ItemStack {
return TRPlates.getPlateByName("brass");
}
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;II)Lnet/minecraft/item/ItemStack;",
# ordinal: 5
# }
#}
function mbc_unifyIronPlate1(original as Item, amount as int, meta as int) as ItemStack {
return ThermalPlates.plateIron.copy();
}
#mixin Redirect
#{
# method: "func_70628_a",
# at: {
# value: "NEW",
# target: "(Lnet/minecraft/item/Item;II)Lnet/minecraft/item/ItemStack;",
# ordinal: 6
# }
#}
function mbc_unifyIronPlate2(original as Item, amount as int, meta as int) as ItemStack {
return ThermalPlates.plateIron.copy();
}
}
+28
View File
@@ -0,0 +1,28 @@
#loader mixin
import native.net.minecraft.item.Item;
import native.net.minecraft.item.ItemStack;
import native.org.zeith.thaumicadditions.events.LivingEventsTAR;
/*
Fix Mithminite Hood trying to mend unrepairable items.
Specifically fixes issue where it would downgrade CoFH Fluxbores.
Created by ChaosStrikez for Thaumic Additions 12.7.9.
*/
#mixin Mixin
#{targets: "org.zeith.thaumicadditions.events.LivingEventsTAR"}
zenClass MixinLivingEventsTAR {
#mixin Redirect
#{
# method: "pickupXP",
# at: {
# value: "INVOKE",
# target: "Lnet/minecraft/item/Item;isDamaged(Lnet/minecraft/item/ItemStack;)Z"
# }
#}
function mbc_checkRepairable(instance as Item, stack as ItemStack) as bool {
return instance.isRepairable() && !stack.getHasSubtypes() && stack.isItemDamaged();
}
}