mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-24 05:47:59 +01:00
Integrate changeling love sickness into the toxics system so we can have more nuanced control over what makes changelings sick
This commit is contained in:
parent
5fff677f79
commit
aa724f56b0
4 changed files with 43 additions and 49 deletions
|
@ -17,6 +17,7 @@ public interface UTags {
|
||||||
TagKey<Item> MAGIC_FEATHERS = item("magic_feathers");
|
TagKey<Item> MAGIC_FEATHERS = item("magic_feathers");
|
||||||
|
|
||||||
TagKey<Item> SHADES = item("shades");
|
TagKey<Item> SHADES = item("shades");
|
||||||
|
TagKey<Item> CHANGELING_EDIBLE = item("food_types/changeling_edible");
|
||||||
|
|
||||||
TagKey<Item> POLEARMS = item("polearms");
|
TagKey<Item> POLEARMS = item("polearms");
|
||||||
TagKey<Item> APPLE_SEEDS = item("apple_seeds");
|
TagKey<Item> APPLE_SEEDS = item("apple_seeds");
|
||||||
|
|
|
@ -25,7 +25,6 @@ import com.minelittlepony.unicopia.entity.effect.SunBlindnessStatusEffect;
|
||||||
import com.minelittlepony.unicopia.entity.effect.UEffects;
|
import com.minelittlepony.unicopia.entity.effect.UEffects;
|
||||||
import com.minelittlepony.unicopia.item.FriendshipBraceletItem;
|
import com.minelittlepony.unicopia.item.FriendshipBraceletItem;
|
||||||
import com.minelittlepony.unicopia.item.UItems;
|
import com.minelittlepony.unicopia.item.UItems;
|
||||||
import com.minelittlepony.unicopia.item.toxin.Toxin;
|
|
||||||
import com.minelittlepony.unicopia.network.Channel;
|
import com.minelittlepony.unicopia.network.Channel;
|
||||||
import com.minelittlepony.unicopia.network.MsgOtherPlayerCapabilities;
|
import com.minelittlepony.unicopia.network.MsgOtherPlayerCapabilities;
|
||||||
import com.minelittlepony.unicopia.network.MsgPlayerAnimationChange;
|
import com.minelittlepony.unicopia.network.MsgPlayerAnimationChange;
|
||||||
|
@ -543,12 +542,6 @@ public class Pony extends Living<PlayerEntity> implements Transmittable, Copieab
|
||||||
return getCharms().getArmour().contains(UItems.ALICORN_AMULET) || super.isEnemy(other);
|
return getCharms().getArmour().contains(UItems.ALICORN_AMULET) || super.isEnemy(other);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEat(ItemStack stack) {
|
|
||||||
if (getSpecies() == Race.CHANGELING) {
|
|
||||||
Toxin.LOVE_SICKNESS.afflict(getMaster(), stack);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toNBT(NbtCompound compound) {
|
public void toNBT(NbtCompound compound) {
|
||||||
super.toNBT(compound);
|
super.toNBT(compound);
|
||||||
|
|
|
@ -7,85 +7,94 @@ import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
|
|
||||||
import static com.minelittlepony.unicopia.item.toxin.Toxicity.*;
|
import static com.minelittlepony.unicopia.item.toxin.Toxicity.*;
|
||||||
|
import static com.minelittlepony.unicopia.item.toxin.Ailment.*;
|
||||||
import static com.minelittlepony.unicopia.item.toxin.Toxin.*;
|
import static com.minelittlepony.unicopia.item.toxin.Toxin.*;
|
||||||
|
|
||||||
public interface Toxics {
|
public interface Toxics {
|
||||||
Registry<Toxic> REGISTRY = Registries.createSimple(new Identifier("unicopia:toxic"));
|
Registry<Toxic> REGISTRY = Registries.createSimple(new Identifier("unicopia:toxic"));
|
||||||
|
|
||||||
Toxic EDIBLE = register("forage_edible", new Toxic.Builder(Ailment.of(SAFE, INNERT))
|
Toxic EDIBLE = register("forage_edible", new Toxic.Builder(Ailment.INNERT)
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
||||||
|
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
||||||
);
|
);
|
||||||
Toxic RISKY = register("forage_risky", new Toxic.Builder(Ailment.of(FAIR, WEAK_NAUSEA.withChance(20)))
|
Toxic RISKY = register("forage_risky", new Toxic.Builder(of(FAIR, WEAK_NAUSEA.withChance(20)))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
||||||
);
|
);
|
||||||
Toxic MODERATE = register("forage_moderate", new Toxic.Builder(Ailment.of(MILD, POISON.and(WEAK_NAUSEA)))
|
Toxic MODERATE = register("forage_moderate", new Toxic.Builder(of(MILD, POISON.and(WEAK_NAUSEA)))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
||||||
);
|
);
|
||||||
Toxic DANGEROUS = register("forage_dangerous", new Toxic.Builder(Ailment.of(SEVERE, FOOD_POISONING))
|
Toxic DANGEROUS = register("forage_dangerous", new Toxic.Builder(of(SEVERE, FOOD_POISONING))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
||||||
);
|
);
|
||||||
Toxic NAUSEATING = register("forage_nauseating", new Toxic.Builder(Ailment.of(SAFE, NAUSEA.and(WEAKNESS.withChance(30))))
|
Toxic NAUSEATING = register("forage_nauseating", new Toxic.Builder(of(SAFE, NAUSEA.and(WEAKNESS.withChance(30))))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
||||||
);
|
);
|
||||||
Toxic RADIOACTIVE = register("forage_radioactive", new Toxic.Builder(Ailment.of(SAFE, NAUSEA.and(RADIOACTIVITY.withChance(30))))
|
Toxic RADIOACTIVE = register("forage_radioactive", new Toxic.Builder(of(SAFE, NAUSEA.and(RADIOACTIVITY.withChance(30))))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
||||||
);
|
);
|
||||||
Toxic PRICKLY = register("forage_prickly", new Toxic.Builder(Ailment.of(SAFE, PRICKLING.withChance(30)))
|
Toxic PRICKLY = register("forage_prickly", new Toxic.Builder(of(SAFE, PRICKLING.withChance(30)))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(NAUSEA)))
|
||||||
);
|
);
|
||||||
Toxic STRENGHTENING = register("forage_strengthening", new Toxic.Builder(Ailment.of(SEVERE, STRENGTH.and(WEAK_NAUSEA)))
|
Toxic STRENGHTENING = register("forage_strengthening", new Toxic.Builder(of(SEVERE, STRENGTH.and(WEAK_NAUSEA)))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING.and(WEAKNESS)))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(WEAKNESS)))
|
||||||
);
|
);
|
||||||
Toxic SEVERELY_NAUSEATING = register("forage_severely_nauseating", new Toxic.Builder(Ailment.of(SEVERE, STRONG_NAUSEA.and(WEAKNESS)))
|
Toxic SEVERELY_NAUSEATING = register("forage_severely_nauseating", new Toxic.Builder(of(SEVERE, STRONG_NAUSEA.and(WEAKNESS)))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING.and(WEAKNESS)))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(WEAKNESS)))
|
||||||
);
|
);
|
||||||
Toxic BLINDING = register("forage_blinding", new Toxic.Builder(Ailment.of(SEVERE, BLINDNESS.and(WEAK_NAUSEA)))
|
Toxic BLINDING = register("forage_blinding", new Toxic.Builder(of(SEVERE, BLINDNESS.and(WEAK_NAUSEA)))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
||||||
);
|
);
|
||||||
Toxic SEVERELY_PRICKLY = register("forage_severely_prickly", new Toxic.Builder(Ailment.of(SEVERE, PRICKLING.and(NAUSEA)))
|
Toxic SEVERELY_PRICKLY = register("forage_severely_prickly", new Toxic.Builder(of(SEVERE, PRICKLING.and(NAUSEA)))
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
.food(UFoodComponents.RANDOM_FOLIAGE)
|
||||||
.with(Race.HUMAN, Ailment.of(LETHAL, FOOD_POISONING))
|
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
||||||
);
|
);
|
||||||
Toxic RAW_MEAT = register("raw_meat", new Toxic.Builder(Ailment.of(SEVERE, FOOD_POISONING.withChance(5).and(POISON.withChance(20))))
|
Toxic RAW_MEAT = register("raw_meat", new Toxic.Builder(of(SEVERE, FOOD_POISONING.withChance(5).and(POISON.withChance(20))))
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
.with(Race.HUMAN, Ailment.INNERT)
|
||||||
.with(Race.BAT, Ailment.of(MILD, WEAK_NAUSEA))
|
.with(Race.CHANGELING, Ailment.INNERT)
|
||||||
|
.with(Race.BAT, of(MILD, WEAK_NAUSEA))
|
||||||
);
|
);
|
||||||
Toxic ROTTEN_MEAT = register("rotten_meat", new Toxic.Builder(Ailment.of(SEVERE, FOOD_POISONING.and(POISON)))
|
Toxic ROTTEN_MEAT = register("rotten_meat", new Toxic.Builder(of(SEVERE, FOOD_POISONING.and(POISON)))
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
.with(Race.HUMAN, Ailment.INNERT)
|
||||||
.with(Race.BAT, Ailment.of(MILD, STRONG_NAUSEA))
|
.with(Race.BAT, of(MILD, STRONG_NAUSEA))
|
||||||
|
.with(Race.CHANGELING, Ailment.INNERT)
|
||||||
);
|
);
|
||||||
Toxic COOKED_MEAT = register("cooked_meat", new Toxic.Builder(Ailment.of(FAIR, FOOD_POISONING))
|
Toxic COOKED_MEAT = register("cooked_meat", new Toxic.Builder(of(FAIR, FOOD_POISONING))
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
.with(Race.HUMAN, Ailment.INNERT)
|
||||||
|
.with(Race.CHANGELING, Ailment.INNERT)
|
||||||
.with(Race.BAT, Ailment.INNERT)
|
.with(Race.BAT, Ailment.INNERT)
|
||||||
);
|
);
|
||||||
|
|
||||||
Toxic RAW_FISH = register("raw_fish", new Toxic.Builder(Ailment.of(FAIR, FOOD_POISONING.and(POISON)))
|
Toxic RAW_FISH = register("raw_fish", new Toxic.Builder(of(FAIR, FOOD_POISONING.and(POISON)))
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
.with(Race.HUMAN, Ailment.INNERT)
|
||||||
.with(Race.PEGASUS, Ailment.of(MILD, POISON.and(WEAK_NAUSEA)))
|
.with(Race.PEGASUS, of(MILD, POISON.and(WEAK_NAUSEA)))
|
||||||
.with(Race.ALICORN, Ailment.INNERT)
|
.with(Race.ALICORN, Ailment.INNERT)
|
||||||
|
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
||||||
);
|
);
|
||||||
Toxic COOKED_FISH = register("cooked_fish", new Toxic.Builder(Ailment.of(MILD, FOOD_POISONING))
|
Toxic COOKED_FISH = register("cooked_fish", new Toxic.Builder(of(MILD, FOOD_POISONING))
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
.with(Race.HUMAN, Ailment.INNERT)
|
||||||
.with(Race.PEGASUS, Ailment.INNERT)
|
.with(Race.PEGASUS, Ailment.INNERT)
|
||||||
.with(Race.ALICORN, Ailment.INNERT)
|
.with(Race.ALICORN, Ailment.INNERT)
|
||||||
|
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
||||||
);
|
);
|
||||||
|
|
||||||
Toxic RAW_INSECT = register("raw_insect", new Toxic.Builder(Ailment.of(LETHAL, FOOD_POISONING))
|
Toxic RAW_INSECT = register("raw_insect", new Toxic.Builder(of(LETHAL, FOOD_POISONING))
|
||||||
.with(Race.BAT, Ailment.of(MILD, WEAK_NAUSEA))
|
.with(Race.BAT, of(MILD, WEAK_NAUSEA))
|
||||||
|
.with(Race.CHANGELING, Ailment.INNERT)
|
||||||
);
|
);
|
||||||
|
|
||||||
Toxic COOKED_INSECT = register("cooked_insect", new Toxic.Builder(Ailment.of(LETHAL, FOOD_POISONING))
|
Toxic COOKED_INSECT = register("cooked_insect", new Toxic.Builder(of(LETHAL, FOOD_POISONING))
|
||||||
.food(UFoodComponents.INSECTS)
|
.food(UFoodComponents.INSECTS)
|
||||||
|
.with(Race.CHANGELING, Ailment.INNERT)
|
||||||
.with(Race.BAT, Ailment.INNERT)
|
.with(Race.BAT, Ailment.INNERT)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.stat.Stats;
|
import net.minecraft.stat.Stats;
|
||||||
import net.minecraft.util.Unit;
|
import net.minecraft.util.Unit;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
@Mixin(PlayerEntity.class)
|
@Mixin(PlayerEntity.class)
|
||||||
abstract class MixinPlayerEntity extends LivingEntity implements PonyContainer<Pony>, PlayerEntityDuck {
|
abstract class MixinPlayerEntity extends LivingEntity implements PonyContainer<Pony>, PlayerEntityDuck {
|
||||||
|
@ -62,14 +61,6 @@ abstract class MixinPlayerEntity extends LivingEntity implements PonyContainer<P
|
||||||
Pony.registerAttributes(info.getReturnValue());
|
Pony.registerAttributes(info.getReturnValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "eatFood(Lnet/minecraft/world/World;Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;",
|
|
||||||
at = @At("HEAD"))
|
|
||||||
private void onEatFood(World world, ItemStack stack, CallbackInfoReturnable<ItemStack> info) {
|
|
||||||
if (stack.isFood()) {
|
|
||||||
get().onEat(stack);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject(method = "trySleep(Lnet/minecraft/util/math/BlockPos;)Lcom/mojang/datafixers/util/Either;",
|
@Inject(method = "trySleep(Lnet/minecraft/util/math/BlockPos;)Lcom/mojang/datafixers/util/Either;",
|
||||||
at = @At("HEAD"),
|
at = @At("HEAD"),
|
||||||
cancellable = true)
|
cancellable = true)
|
||||||
|
|
Loading…
Reference in a new issue