Skip to content

Commit

Permalink
Start equipment overhaul
Browse files Browse the repository at this point in the history
  • Loading branch information
IcarussOne committed May 23, 2024
1 parent 9daa02e commit e46e638
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.mobiusflip.crimsonrevelations.mixin;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ItemStack;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.world.World;
import thaumcraft.api.items.ItemsTC;
import thaumcraft.common.entities.monster.cult.EntityCultist;
import thaumcraft.common.entities.monster.cult.EntityCultistCleric;

@Mixin(value = EntityCultistCleric.class, remap = false)
public class EntityCultistClericMixin extends EntityCultist {
public EntityCultistClericMixin(World world) {
super(world);
this.setDropChance(EntityEquipmentSlot.CHEST, 0.025F);
this.setDropChance(EntityEquipmentSlot.FEET, 0.025F);
this.setDropChance(EntityEquipmentSlot.HEAD, 0.025F);
this.setDropChance(EntityEquipmentSlot.LEGS, 0.025F);
this.setDropChance(EntityEquipmentSlot.MAINHAND, -1.0F);
}

// Replaces the original equip event with ours
@Inject(method = "setLoot", at = @At(value = "HEAD"), cancellable = true)
public void crSetLoot(DifficultyInstance diff, CallbackInfo ci) {
ci.cancel();
this.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ItemsTC.crimsonRobeHelm));
this.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ItemsTC.crimsonRobeChest));
this.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ItemsTC.crimsonRobeLegs));
this.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ItemsTC.crimsonBoots));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.mobiusflip.crimsonrevelations.mixin;

import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import net.minecraft.init.Items;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.ItemStack;
import net.minecraft.world.DifficultyInstance;
import net.minecraft.world.World;
import thaumcraft.api.items.ItemsTC;
import thaumcraft.common.entities.monster.cult.EntityCultist;
import thaumcraft.common.entities.monster.cult.EntityCultistKnight;

@Mixin(value = EntityCultistKnight.class, remap = false)
public class EntityCultistKnightMixin extends EntityCultist {
public EntityCultistKnightMixin(World world) {
super(world);
this.setDropChance(EntityEquipmentSlot.CHEST, 0.025F);
this.setDropChance(EntityEquipmentSlot.FEET, 0.025F);
this.setDropChance(EntityEquipmentSlot.HEAD, 0.025F);
this.setDropChance(EntityEquipmentSlot.LEGS, 0.025F);
this.setDropChance(EntityEquipmentSlot.MAINHAND, -1.0F);
}

// Replaces the original equip event with ours
@Inject(method = "setLoot", at = @At(value = "HEAD"), cancellable = true)
public void crSetLoot(DifficultyInstance diff, CallbackInfo ci) {
ci.cancel();
this.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ItemsTC.crimsonPlateHelm));
this.setItemStackToSlot(EntityEquipmentSlot.CHEST, new ItemStack(ItemsTC.crimsonPlateChest));
this.setItemStackToSlot(EntityEquipmentSlot.LEGS, new ItemStack(ItemsTC.crimsonPlateLegs));
this.setItemStackToSlot(EntityEquipmentSlot.FEET, new ItemStack(ItemsTC.crimsonBoots));

if (this.rand.nextFloat() < 0.05F) {
int i = this.rand.nextInt(5);

if (i == 0) {
this.setHeldItem(this.getActiveHand(), new ItemStack(ItemsTC.voidSword));
this.setItemStackToSlot(EntityEquipmentSlot.HEAD, new ItemStack(ItemsTC.crimsonRobeHelm));
} else {
this.setHeldItem(this.getActiveHand(), new ItemStack(ItemsTC.thaumiumSword));
this.setItemStackToSlot(EntityEquipmentSlot.HEAD, ItemStack.EMPTY);
}
} else {
this.setHeldItem(this.getActiveHand(), new ItemStack(Items.IRON_SWORD));
}
}
}
2 changes: 2 additions & 0 deletions src/main/resources/mixins.crimsonrevelations.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"minVersion": "0.8",
"compatibilityLevel": "JAVA_8",
"mixins": [
"EntityCultistClericMixin",
"EntityCultistKnightMixin",
"EntityCultistPortalLesserMixin",
"TCEntityEventsMixin"
],
Expand Down

0 comments on commit e46e638

Please sign in to comment.