mirror of
https://github.com/Sollace/Unicopia.git
synced 2025-02-08 06:26:43 +01:00
Start moving pony diet information to data packs
This commit is contained in:
parent
094cf2383d
commit
d88c0d0755
39 changed files with 1261 additions and 169 deletions
|
@ -117,9 +117,10 @@ public class ZapAppleItem extends Item implements ChameleonItem, ToxicHolder, Mu
|
||||||
return hasAppearance(stack) ? getAppearanceStack(stack).getName() : super.getName(stack);
|
return hasAppearance(stack) ? getAppearanceStack(stack).getName() : super.getName(stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
public Toxic getToxic(ItemStack stack, LivingEntity entity) {
|
public Toxic getToxic(ItemStack stack, LivingEntity entity) {
|
||||||
return hasAppearance(stack) ? Toxics.SEVERE_INNERT : Toxics.FORAGE_EDIBLE;
|
return hasAppearance(stack) ? Toxic.SEVERE_INNERT : Toxics.FORAGE_EDIBLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,7 +4,6 @@ import java.util.*;
|
||||||
|
|
||||||
import com.minelittlepony.unicopia.Race;
|
import com.minelittlepony.unicopia.Race;
|
||||||
import com.minelittlepony.unicopia.entity.player.Pony;
|
import com.minelittlepony.unicopia.entity.player.Pony;
|
||||||
|
|
||||||
import net.minecraft.client.item.TooltipContext;
|
import net.minecraft.client.item.TooltipContext;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
@ -20,6 +19,7 @@ public record Ailment (
|
||||||
) {
|
) {
|
||||||
public static final Ailment INNERT = of(Toxicity.SAFE, Toxin.INNERT);
|
public static final Ailment INNERT = of(Toxicity.SAFE, Toxin.INNERT);
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public static Ailment of(Toxicity toxicity, Toxin effect) {
|
public static Ailment of(Toxicity toxicity, Toxin effect) {
|
||||||
return new Ailment(toxicity, effect);
|
return new Ailment(toxicity, effect);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
package com.minelittlepony.unicopia.item.toxin;
|
package com.minelittlepony.unicopia.item.toxin;
|
||||||
|
|
||||||
|
import static com.minelittlepony.unicopia.item.toxin.Toxicity.FAIR;
|
||||||
|
import static com.minelittlepony.unicopia.item.toxin.Toxicity.SEVERE;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import com.minelittlepony.unicopia.Race;
|
import com.minelittlepony.unicopia.Race;
|
||||||
import com.minelittlepony.unicopia.entity.player.Pony;
|
import com.minelittlepony.unicopia.entity.player.Pony;
|
||||||
|
|
||||||
import net.minecraft.client.item.TooltipContext;
|
import net.minecraft.client.item.TooltipContext;
|
||||||
import net.minecraft.entity.LivingEntity;
|
import net.minecraft.entity.LivingEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
@ -20,6 +21,18 @@ public record Toxic (
|
||||||
Function<LivingEntity, Optional<FoodComponent>> food,
|
Function<LivingEntity, Optional<FoodComponent>> food,
|
||||||
Ailment.Set ailment
|
Ailment.Set ailment
|
||||||
) {
|
) {
|
||||||
|
public static final Toxic EMPTY = new Toxic(Optional.empty(), entity -> Optional.empty(), Ailment.Set.EMPTY);
|
||||||
|
/**
|
||||||
|
* Default for all food that doesn't have a mapping
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static final Toxic DEFAULT = new Toxic.Builder(Ailment.INNERT)
|
||||||
|
.with(Race.CHANGELING, new Ailment(FAIR, Toxin.LOVE_SICKNESS))
|
||||||
|
.with(Race.SEAPONY, new Ailment(FAIR, Toxin.FOOD_POISONING))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
public static final Toxic SEVERE_INNERT = new Builder(new Ailment(SEVERE, Toxin.INNERT)).build();
|
||||||
|
|
||||||
public void appendTooltip(PlayerEntity player, List<Text> tooltip, TooltipContext context) {
|
public void appendTooltip(PlayerEntity player, List<Text> tooltip, TooltipContext context) {
|
||||||
ailment.get(player).ifPresent(ailment -> ailment.appendTooltip(tooltip, context));
|
ailment.get(player).ifPresent(ailment -> ailment.appendTooltip(tooltip, context));
|
||||||
}
|
}
|
||||||
|
@ -31,10 +44,7 @@ public record Toxic (
|
||||||
return stack;
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Toxic innert(Toxicity toxicity) {
|
@Deprecated
|
||||||
return new Builder(Ailment.of(toxicity, Toxin.INNERT)).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private final Ailment def;
|
private final Ailment def;
|
||||||
private final Map<Race, Ailment> overrides = new HashMap<>();
|
private final Map<Race, Ailment> overrides = new HashMap<>();
|
||||||
|
@ -66,6 +76,13 @@ public record Toxic (
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Builder with(Ailment ailment, Race... races) {
|
||||||
|
for (Race race : races) {
|
||||||
|
overrides.put(race, ailment);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public Toxic build() {
|
public Toxic build() {
|
||||||
return new Toxic(action, entity -> {
|
return new Toxic(action, entity -> {
|
||||||
if (entity instanceof PlayerEntity player) {
|
if (entity instanceof PlayerEntity player) {
|
||||||
|
@ -74,9 +91,5 @@ public record Toxic (
|
||||||
return component;
|
return component;
|
||||||
}, Ailment.Set.of(def, overrides));
|
}, Ailment.Set.of(def, overrides));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<Toxic> buildOptional() {
|
|
||||||
return Optional.of(build());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,14 +3,13 @@ package com.minelittlepony.unicopia.item.toxin;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.registry.tag.TagKey;
|
import net.minecraft.registry.tag.TagKey;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public record ToxicRegistryEntry (
|
public record ToxicRegistryEntry (
|
||||||
Toxic value,
|
Toxic value,
|
||||||
TagKey<Item> tag
|
TagKey<Item> tag
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public boolean matches(Item item) {
|
public boolean matches(Item item) {
|
||||||
return item.getRegistryEntry().isIn(tag);
|
return item.getRegistryEntry().isIn(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
package com.minelittlepony.unicopia.item.toxin;
|
package com.minelittlepony.unicopia.item.toxin;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.Formatting;
|
import net.minecraft.util.Formatting;
|
||||||
|
import net.minecraft.util.StringIdentifiable;
|
||||||
|
|
||||||
public enum Toxicity {
|
public enum Toxicity implements StringIdentifiable {
|
||||||
SAFE(Formatting.GRAY),
|
SAFE(Formatting.GRAY),
|
||||||
MILD(Formatting.DARK_AQUA),
|
MILD(Formatting.DARK_AQUA),
|
||||||
FAIR(Formatting.DARK_BLUE),
|
FAIR(Formatting.DARK_BLUE),
|
||||||
|
@ -16,8 +18,11 @@ public enum Toxicity {
|
||||||
LETHAL(Formatting.RED);
|
LETHAL(Formatting.RED);
|
||||||
|
|
||||||
private static final Map<String, Toxicity> REGISTRY = Arrays.stream(values()).collect(Collectors.toMap(Toxicity::name, Function.identity()));
|
private static final Map<String, Toxicity> REGISTRY = Arrays.stream(values()).collect(Collectors.toMap(Toxicity::name, Function.identity()));
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
public static final Codec<Toxicity> CODEC = StringIdentifiable.createCodec(Toxicity::values);
|
||||||
|
|
||||||
private final Formatting color;
|
private final Formatting color;
|
||||||
|
private final String name = name().toLowerCase(Locale.ROOT);
|
||||||
|
|
||||||
Toxicity(Formatting color) {
|
Toxicity(Formatting color) {
|
||||||
this.color = color;
|
this.color = color;
|
||||||
|
@ -34,4 +39,9 @@ public enum Toxicity {
|
||||||
public static Toxicity byName(String name) {
|
public static Toxicity byName(String name) {
|
||||||
return REGISTRY.get(name.toUpperCase());
|
return REGISTRY.get(name.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String asString() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,157 +11,40 @@ import static com.minelittlepony.unicopia.item.toxin.Toxicity.*;
|
||||||
import static com.minelittlepony.unicopia.item.toxin.Ailment.*;
|
import static com.minelittlepony.unicopia.item.toxin.Ailment.*;
|
||||||
import static com.minelittlepony.unicopia.item.toxin.Toxin.*;
|
import static com.minelittlepony.unicopia.item.toxin.Toxin.*;
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
public interface Toxics {
|
public interface Toxics {
|
||||||
Registry<ToxicRegistryEntry> REGISTRY = RegistryUtils.createSimple(Unicopia.id("toxic"));
|
Registry<ToxicRegistryEntry> REGISTRY = RegistryUtils.createSimple(Unicopia.id("toxic"));
|
||||||
|
Toxic FORAGE_EDIBLE = register("forage_edible", new Toxic.Builder(Ailment.INNERT).food(UFoodComponents.RANDOM_FOLIAGE).with(Race.HUMAN, of(LETHAL, FOOD_POISONING)).with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS)).with(Race.SEAPONY, of(FAIR, FOOD_POISONING)));
|
||||||
|
|
||||||
Toxic EMPTY = new Toxic(Optional.empty(), entity -> Optional.empty(), Ailment.Set.EMPTY);
|
static void bootstrap() {
|
||||||
|
register("forage_edible_filling", new Toxic.Builder(Ailment.INNERT).food(UFoodComponents.RANDOM_FOLIAGE_FILLING).with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS)).with(Race.SEAPONY, of(FAIR, FOOD_POISONING)));
|
||||||
Toxic SEVERE_INNERT = Toxic.innert(Toxicity.SEVERE);
|
register("forage_risky", new Toxic.Builder(of(FAIR, FOOD_POISONING.withChance(20))).food(UFoodComponents.RANDOM_FOLIAGE));
|
||||||
|
register("forage_moderate", new Toxic.Builder(of(MILD, FOOD_POISONING)).food(UFoodComponents.RANDOM_FOLIAGE));
|
||||||
Toxic EDIBLE = register("edible", new Toxic.Builder(Ailment.INNERT)
|
register("forage_dangerous", new Toxic.Builder(of(SEVERE, FOOD_POISONING)).food(UFoodComponents.RANDOM_FOLIAGE));
|
||||||
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
register("forage_nauseating", new Toxic.Builder(of(SAFE, FOOD_POISONING.and(WEAKNESS.withChance(30)))).food(UFoodComponents.RANDOM_FOLIAGE));
|
||||||
.with(Race.SEAPONY, of(FAIR, FOOD_POISONING))
|
register("forage_radioactive", new Toxic.Builder(of(SAFE, FOOD_POISONING.and(GLOWING.withChance(30)))).food(UFoodComponents.RANDOM_FOLIAGE));
|
||||||
);
|
register("forage_prickly", new Toxic.Builder(of(SAFE, INSTANT_DAMAGE.withChance(30))).food(UFoodComponents.RANDOM_FOLIAGE).with(Ailment.INNERT, Race.HIPPOGRIFF, Race.KIRIN));
|
||||||
|
register("forage_strengthening", new Toxic.Builder(of(SEVERE, STRENGTH.and(FOOD_POISONING))).food(UFoodComponents.RANDOM_FOLIAGE).with(Race.KIRIN, Ailment.INNERT));
|
||||||
Toxic FORAGE_EDIBLE = register("forage_edible", new Toxic.Builder(Ailment.INNERT)
|
register("forage_severely_nauseating", new Toxic.Builder(of(SEVERE, FOOD_POISONING.and(WEAKNESS))).food(UFoodComponents.RANDOM_FOLIAGE));
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
register("forage_blinding", new Toxic.Builder(of(SEVERE, BLINDNESS.and(FOOD_POISONING))).food(UFoodComponents.RANDOM_FOLIAGE).with(Race.KIRIN, Ailment.INNERT));
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
register("forage_severely_prickly", new Toxic.Builder(of(SEVERE, FOOD_POISONING.and(INSTANT_DAMAGE))).food(UFoodComponents.RANDOM_FOLIAGE).with(Race.KIRIN, Ailment.INNERT));
|
||||||
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
register("raw_meat", new Toxic.Builder(of(SEVERE, FOOD_POISONING.withChance(5).and(CHANCE_OF_POISON))).with(Ailment.INNERT, Race.HUMAN, Race.CHANGELING, Race.KIRIN).with(of(MILD, FOOD_POISONING), Race.BAT));
|
||||||
.with(Race.SEAPONY, of(FAIR, FOOD_POISONING))
|
register("rotten_meat", new Toxic.Builder(of(SEVERE, STRONG_FOOD_POISONING)).with(Ailment.INNERT, Race.HUMAN, Race.CHANGELING).with(of(MILD, FOOD_POISONING), Race.BAT));
|
||||||
);
|
register("cooked_meat", new Toxic.Builder(of(FAIR, FOOD_POISONING)).with(Ailment.INNERT, Race.HUMAN, Race.CHANGELING, Race.BAT, Race.KIRIN).with(of(MILD, FOOD_POISONING), Race.HIPPOGRIFF));
|
||||||
|
register("raw_fish", new Toxic.Builder(of(FAIR, FOOD_POISONING.and(CHANCE_OF_POISON))).with(Ailment.INNERT, Race.HUMAN, Race.HIPPOGRIFF, Race.SEAPONY, Race.ALICORN).with(of(MILD, FOOD_POISONING), Race.PEGASUS).with(of(FAIR, LOVE_SICKNESS), Race.CHANGELING));
|
||||||
Toxic FORAGE_EDIBLE_FILLING = register("forage_edible_filling", new Toxic.Builder(Ailment.INNERT)
|
register("cooked_fish", new Toxic.Builder(of(MILD, FOOD_POISONING)).with(Ailment.INNERT, Race.HUMAN, Race.PEGASUS, Race.HIPPOGRIFF, Race.SEAPONY, Race.ALICORN).with(of(FAIR, LOVE_SICKNESS), Race.CHANGELING));
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE_FILLING)
|
register("raw_insect", new Toxic.Builder(of(LETHAL, FOOD_POISONING)).food(UFoodComponents.INSECTS).with(Ailment.INNERT, Race.CHANGELING).with(of(MILD, WEAK_FOOD_POISONING), Race.BAT));
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
register("cooked_insect", new Toxic.Builder(of(LETHAL, FOOD_POISONING)).food(UFoodComponents.INSECTS).with(Ailment.INNERT, Race.CHANGELING, Race.KIRIN, Race.BAT));
|
||||||
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
register("love", new Toxic.Builder(Ailment.INNERT).with(of(Toxicity.SAFE, Toxin.LOVE_CONSUMPTION), Race.CHANGELING));
|
||||||
);
|
register("bat_ponys_delight", new Toxic.Builder(Ailment.INNERT).with(of(Toxicity.SAFE, Toxin.BAT_PONY_INTOXICATION), Race.BAT));
|
||||||
|
register("raw_sea_vegitable", new Toxic.Builder(Ailment.INNERT).food(Race.SEAPONY, UFoodComponents.RANDOM_FOLIAGE));
|
||||||
Toxic FORAGE_RISKY = register("forage_risky", new Toxic.Builder(of(FAIR, FOOD_POISONING.withChance(20)))
|
register("cooked_sea_vegitable", new Toxic.Builder(Ailment.INNERT).food(Race.SEAPONY, UFoodComponents.RANDOM_FOLIAGE_FILLING));
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
register("shells", new Toxic.Builder(Ailment.INNERT).food(Race.SEAPONY, UFoodComponents.SHELL));
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
register("shelly", new Toxic.Builder(Ailment.INNERT).food(Race.SEAPONY, UFoodComponents.SHELLY));
|
||||||
);
|
register("pinecone", new Toxic.Builder(of(Toxicity.SAFE, Toxin.healing(1))).with(Ailment.INNERT, Race.HUMAN).with(of(Toxicity.SAFE, Toxin.healing(3)), Race.HIPPOGRIFF));
|
||||||
Toxic FORAGE_MODERATE = register("forage_moderate", new Toxic.Builder(of(MILD, FOOD_POISONING))
|
}
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, STRONG_FOOD_POISONING))
|
|
||||||
);
|
|
||||||
Toxic FORAGE_DANGEROUS = register("forage_dangerous", new Toxic.Builder(of(SEVERE, FOOD_POISONING))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
|
||||||
);
|
|
||||||
Toxic FORAGE_NAUSEATING = register("forage_nauseating", new Toxic.Builder(of(SAFE, FOOD_POISONING.and(WEAKNESS.withChance(30))))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
|
||||||
);
|
|
||||||
Toxic FORAGE_RADIOACTIVE = register("forage_radioactive", new Toxic.Builder(of(SAFE, FOOD_POISONING.and(GLOWING.withChance(30))))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
|
||||||
);
|
|
||||||
Toxic FORAGE_PRICKLY = register("forage_prickly", new Toxic.Builder(of(SAFE, INSTANT_DAMAGE.withChance(30)))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
|
||||||
.with(Race.HIPPOGRIFF, Ailment.INNERT)
|
|
||||||
.with(Race.KIRIN, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
Toxic FORAGE_STRENGHTENING = register("forage_strengthening", new Toxic.Builder(of(SEVERE, STRENGTH.and(FOOD_POISONING)))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(WEAKNESS)))
|
|
||||||
.with(Race.KIRIN, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
Toxic FORAGE_SEVERELY_NAUSEATING = register("forage_severely_nauseating", new Toxic.Builder(of(SEVERE, FOOD_POISONING.and(WEAKNESS)))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING.and(WEAKNESS)))
|
|
||||||
);
|
|
||||||
Toxic FORAGE_BLINDING = register("forage_blinding", new Toxic.Builder(of(SEVERE, BLINDNESS.and(FOOD_POISONING)))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
|
||||||
.with(Race.KIRIN, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
Toxic FORAGE_SEVERELY_PRICKLY = register("forage_severely_prickly", new Toxic.Builder(of(SEVERE, FOOD_POISONING.and(INSTANT_DAMAGE)))
|
|
||||||
.food(UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
.with(Race.HUMAN, of(LETHAL, FOOD_POISONING))
|
|
||||||
.with(Race.KIRIN, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
Toxic RAW_MEAT = register("raw_meat", new Toxic.Builder(of(SEVERE, FOOD_POISONING.withChance(5).and(CHANCE_OF_POISON)))
|
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
|
||||||
.with(Race.CHANGELING, Ailment.INNERT)
|
|
||||||
.with(Race.BAT, of(MILD, FOOD_POISONING))
|
|
||||||
.with(Race.KIRIN, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
Toxic ROTTEN_MEAT = register("rotten_meat", new Toxic.Builder(of(SEVERE, STRONG_FOOD_POISONING))
|
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
|
||||||
.with(Race.BAT, of(MILD, FOOD_POISONING))
|
|
||||||
.with(Race.CHANGELING, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
Toxic COOKED_MEAT = register("cooked_meat", new Toxic.Builder(of(FAIR, FOOD_POISONING))
|
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
|
||||||
.with(Race.CHANGELING, Ailment.INNERT)
|
|
||||||
.with(Race.HIPPOGRIFF, of(MILD, FOOD_POISONING))
|
|
||||||
.with(Race.BAT, Ailment.INNERT)
|
|
||||||
.with(Race.KIRIN, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic RAW_FISH = register("raw_fish", new Toxic.Builder(of(FAIR, FOOD_POISONING.and(CHANCE_OF_POISON)))
|
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
|
||||||
.with(Race.PEGASUS, of(MILD, FOOD_POISONING))
|
|
||||||
.with(Race.HIPPOGRIFF, Ailment.INNERT)
|
|
||||||
.with(Race.SEAPONY, Ailment.INNERT)
|
|
||||||
.with(Race.ALICORN, Ailment.INNERT)
|
|
||||||
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
|
||||||
);
|
|
||||||
Toxic COOKED_FISH = register("cooked_fish", new Toxic.Builder(of(MILD, FOOD_POISONING))
|
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
|
||||||
.with(Race.PEGASUS, Ailment.INNERT)
|
|
||||||
.with(Race.HIPPOGRIFF, Ailment.INNERT)
|
|
||||||
.with(Race.SEAPONY, Ailment.INNERT)
|
|
||||||
.with(Race.ALICORN, Ailment.INNERT)
|
|
||||||
.with(Race.CHANGELING, of(FAIR, LOVE_SICKNESS))
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic RAW_INSECT = register("raw_insect", new Toxic.Builder(of(LETHAL, FOOD_POISONING))
|
|
||||||
.with(Race.BAT, of(MILD, WEAK_FOOD_POISONING))
|
|
||||||
.with(Race.CHANGELING, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic COOKED_INSECT = register("cooked_insect", new Toxic.Builder(of(LETHAL, FOOD_POISONING))
|
|
||||||
.food(UFoodComponents.INSECTS)
|
|
||||||
.with(Race.CHANGELING, Ailment.INNERT)
|
|
||||||
.with(Race.KIRIN, Ailment.INNERT)
|
|
||||||
.with(Race.BAT, Ailment.INNERT)
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic LOVE = register("love", new Toxic.Builder(Ailment.INNERT)
|
|
||||||
.with(Race.CHANGELING, of(Toxicity.SAFE, Toxin.LOVE_CONSUMPTION))
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic PINECONE = register("pinecone", new Toxic.Builder(of(Toxicity.SAFE, Toxin.healing(1)))
|
|
||||||
.with(Race.HUMAN, Ailment.INNERT)
|
|
||||||
.with(Race.HIPPOGRIFF, of(Toxicity.SAFE, Toxin.healing(3)))
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic BAT_PONYS_DELIGHT = register("bat_ponys_delight", new Toxic.Builder(Ailment.INNERT)
|
|
||||||
.with(Race.BAT, of(Toxicity.SAFE, Toxin.BAT_PONY_INTOXICATION))
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic RAW_SEA_VEGITABLES = register("raw_sea_vegitable", new Toxic.Builder(Ailment.INNERT)
|
|
||||||
.food(Race.SEAPONY, UFoodComponents.RANDOM_FOLIAGE)
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic COOKED_SEA_VEGITABLES = register("cooked_sea_vegitable", new Toxic.Builder(Ailment.INNERT)
|
|
||||||
.food(Race.SEAPONY, UFoodComponents.RANDOM_FOLIAGE_FILLING)
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic SHELLS = register("shells", new Toxic.Builder(Ailment.INNERT)
|
|
||||||
.food(Race.SEAPONY, UFoodComponents.SHELL)
|
|
||||||
);
|
|
||||||
|
|
||||||
Toxic SHELLY = register("shelly", new Toxic.Builder(Ailment.INNERT)
|
|
||||||
.food(Race.SEAPONY, UFoodComponents.SHELLY)
|
|
||||||
);
|
|
||||||
|
|
||||||
static void bootstrap() {}
|
|
||||||
|
|
||||||
static Toxic register(String name, Toxic.Builder builder) {
|
static Toxic register(String name, Toxic.Builder builder) {
|
||||||
return Registry.register(REGISTRY, Unicopia.id(name), new ToxicRegistryEntry(builder.build(), UTags.item("food_types/" + name))).value();
|
return Registry.register(REGISTRY, Unicopia.id(name), new ToxicRegistryEntry(builder.build(), UTags.item("food_types/" + name))).value();
|
||||||
|
@ -177,6 +60,6 @@ public interface Toxics {
|
||||||
t.food().apply(entity).ifPresent(item::setFoodComponent);
|
t.food().apply(entity).ifPresent(item::setFoodComponent);
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
}).findFirst().orElse(food == null ? Toxics.EMPTY : Toxics.EDIBLE);
|
}).findFirst().orElse(food == null ? Toxic.EMPTY : Toxic.DEFAULT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ package com.minelittlepony.unicopia.item.toxin;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.minelittlepony.unicopia.entity.effect.UEffects;
|
import com.minelittlepony.unicopia.entity.effect.UEffects;
|
||||||
|
|
||||||
import net.minecraft.entity.attribute.EntityAttributes;
|
import net.minecraft.entity.attribute.EntityAttributes;
|
||||||
import net.minecraft.entity.effect.StatusEffect;
|
import net.minecraft.entity.effect.StatusEffect;
|
||||||
import net.minecraft.entity.effect.StatusEffectInstance;
|
import net.minecraft.entity.effect.StatusEffectInstance;
|
||||||
|
@ -15,41 +14,48 @@ import net.minecraft.text.MutableText;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.util.StringHelper;
|
import net.minecraft.util.StringHelper;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.world.Difficulty;
|
|
||||||
|
|
||||||
public interface Toxin extends Affliction {
|
public interface Toxin extends Affliction {
|
||||||
Predicate IF_NOT_PEACEFUL = Predicate.of(Text.of("when not in peaceful "), (player, stack) -> player.getWorld().getDifficulty() != Difficulty.PEACEFUL);
|
|
||||||
|
|
||||||
Toxin INNERT = of(Text.of("No Effect"), (player, stack) -> {});
|
Toxin INNERT = of(Text.of("No Effect"), (player, stack) -> {});
|
||||||
|
@Deprecated
|
||||||
Toxin INSTANT_DAMAGE = of(StatusEffects.INSTANT_DAMAGE, 1, 0);
|
Toxin INSTANT_DAMAGE = of(StatusEffects.INSTANT_DAMAGE, 1, 0);
|
||||||
|
@Deprecated
|
||||||
Toxin GLOWING = of(StatusEffects.GLOWING, 15, 0);
|
Toxin GLOWING = of(StatusEffects.GLOWING, 15, 0);
|
||||||
|
@Deprecated
|
||||||
Toxin WEAKNESS = of(StatusEffects.WEAKNESS, 200, 1);
|
Toxin WEAKNESS = of(StatusEffects.WEAKNESS, 200, 1);
|
||||||
|
@Deprecated
|
||||||
Toxin STRENGTH = of(StatusEffects.STRENGTH, 30, 0);
|
Toxin STRENGTH = of(StatusEffects.STRENGTH, 30, 0);
|
||||||
|
@Deprecated
|
||||||
Toxin BLINDNESS = of(StatusEffects.BLINDNESS, 30, 0);
|
Toxin BLINDNESS = of(StatusEffects.BLINDNESS, 30, 0);
|
||||||
|
@Deprecated
|
||||||
Toxin CHANCE_OF_POISON = of(StatusEffects.POISON, 45, 2).withChance(80);
|
Toxin CHANCE_OF_POISON = of(StatusEffects.POISON, 45, 2).withChance(80);
|
||||||
|
@Deprecated
|
||||||
Toxin FOOD_POISONING = of(UEffects.FOOD_POISONING, 100, 2);
|
Toxin FOOD_POISONING = of(UEffects.FOOD_POISONING, 100, 2);
|
||||||
|
@Deprecated
|
||||||
Toxin WEAK_FOOD_POISONING = of(UEffects.FOOD_POISONING, 50, 1);
|
Toxin WEAK_FOOD_POISONING = of(UEffects.FOOD_POISONING, 50, 1);
|
||||||
|
@Deprecated
|
||||||
Toxin STRONG_FOOD_POISONING = of(UEffects.FOOD_POISONING, 400, 3);
|
Toxin STRONG_FOOD_POISONING = of(UEffects.FOOD_POISONING, 400, 3);
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
Toxin LOVE_SICKNESS = of(Text.of("Love Sickness "), (player, stack) -> {
|
Toxin LOVE_SICKNESS = of(Text.of("Love Sickness "), (player, stack) -> {
|
||||||
FoodComponent food = stack.getItem().getFoodComponent();
|
FoodComponent food = stack.getItem().getFoodComponent();
|
||||||
player.getHungerManager().add(-food.getHunger()/2, -food.getSaturationModifier()/2);
|
player.getHungerManager().add(-food.getHunger()/2, -food.getSaturationModifier()/2);
|
||||||
}).and(FOOD_POISONING).and(IF_NOT_PEACEFUL.then(WEAK_FOOD_POISONING.withChance(20))).and(WEAKNESS);
|
}).and(FOOD_POISONING).and(WEAKNESS);
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
Toxin LOVE_CONSUMPTION = of(Text.literal("Love"), (player, stack) -> {
|
Toxin LOVE_CONSUMPTION = of(Text.literal("Love"), (player, stack) -> {
|
||||||
player.heal(stack.isFood() ? stack.getItem().getFoodComponent().getHunger() : 1);
|
player.heal(stack.isFood() ? stack.getItem().getFoodComponent().getHunger() : 1);
|
||||||
player.removeStatusEffect(StatusEffects.NAUSEA);
|
player.removeStatusEffect(StatusEffects.NAUSEA);
|
||||||
player.removeStatusEffect(UEffects.FOOD_POISONING);
|
player.removeStatusEffect(UEffects.FOOD_POISONING);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
Toxin BAT_PONY_INTOXICATION = Toxin.of(StatusEffects.HEALTH_BOOST, 30, 60, 2, 6)
|
Toxin BAT_PONY_INTOXICATION = Toxin.of(StatusEffects.HEALTH_BOOST, 30, 60, 2, 6)
|
||||||
.and(Toxin.of(StatusEffects.JUMP_BOOST, 30, 60, 1, 6))
|
.and(Toxin.of(StatusEffects.JUMP_BOOST, 30, 60, 1, 6))
|
||||||
.and(Toxin.of(StatusEffects.SPEED, 30, 30, 1, 6))
|
.and(Toxin.of(StatusEffects.SPEED, 30, 30, 1, 6))
|
||||||
.and(Toxin.of(StatusEffects.REGENERATION, 3, 30, 3, 6));
|
.and(Toxin.of(StatusEffects.REGENERATION, 3, 30, 3, 6));
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
static Toxin healing(int hearts) {
|
static Toxin healing(int hearts) {
|
||||||
return of(Text.literal("Healing " + hearts + " Hearts"), (player, stack) -> player.heal(hearts));
|
return of(Text.literal("Healing " + hearts + " Hearts"), (player, stack) -> player.heal(hearts));
|
||||||
}
|
}
|
||||||
|
@ -58,12 +64,14 @@ public interface Toxin extends Affliction {
|
||||||
tooltip.add(getName());
|
tooltip.add(getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
default Toxin withChance(int max) {
|
default Toxin withChance(int max) {
|
||||||
return Predicate.of(Text.of("1 in " + max + " chance of "), (player, stack) -> player.getWorld().random.nextInt(max) == 0).then(this);
|
return Predicate.of(Text.of("1 in " + max + " chance of "), (player, stack) -> player.getWorld().random.nextInt(max) == 0).then(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Text getName();
|
Text getName();
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
default Toxin and(Toxin other) {
|
default Toxin and(Toxin other) {
|
||||||
Toxin self = this;
|
Toxin self = this;
|
||||||
return new Toxin() {
|
return new Toxin() {
|
||||||
|
@ -86,6 +94,7 @@ public interface Toxin extends Affliction {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
static Toxin of(Text name, Affliction affliction) {
|
static Toxin of(Text name, Affliction affliction) {
|
||||||
return new Toxin() {
|
return new Toxin() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -100,6 +109,7 @@ public interface Toxin extends Affliction {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
static Toxin of(StatusEffect effect, int seconds, int amplifier) {
|
static Toxin of(StatusEffect effect, int seconds, int amplifier) {
|
||||||
return of(effect, seconds, -1, amplifier, -1);
|
return of(effect, seconds, -1, amplifier, -1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,9 @@ public interface UFoodComponents {
|
||||||
FoodComponent JUICE = builder(2, 1.8F).alwaysEdible().build();
|
FoodComponent JUICE = builder(2, 1.8F).alwaysEdible().build();
|
||||||
FoodComponent BURNED_JUICE = builder(3, 1).build();
|
FoodComponent BURNED_JUICE = builder(3, 1).build();
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
FoodComponent RANDOM_FOLIAGE = builder(2, 1).build();
|
FoodComponent RANDOM_FOLIAGE = builder(2, 1).build();
|
||||||
|
@Deprecated
|
||||||
FoodComponent RANDOM_FOLIAGE_FILLING = builder(18, 1).build();
|
FoodComponent RANDOM_FOLIAGE_FILLING = builder(18, 1).build();
|
||||||
FoodComponent WORMS = builder(1, 1.5F).alwaysEdible().meat().build();
|
FoodComponent WORMS = builder(1, 1.5F).alwaysEdible().meat().build();
|
||||||
FoodComponent INSECTS = builder(1, 0).alwaysEdible().build();
|
FoodComponent INSECTS = builder(1, 0).alwaysEdible().build();
|
||||||
|
@ -51,7 +53,9 @@ public interface UFoodComponents {
|
||||||
FoodComponent CANDY = builder(7, 0.9F).alwaysEdible().build();
|
FoodComponent CANDY = builder(7, 0.9F).alwaysEdible().build();
|
||||||
FoodComponent SALT_CUBE = builder(0, 2.9F).alwaysEdible().build();
|
FoodComponent SALT_CUBE = builder(0, 2.9F).alwaysEdible().build();
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
FoodComponent SHELL = builder(3, 5).build();
|
FoodComponent SHELL = builder(3, 5).build();
|
||||||
|
@Deprecated
|
||||||
FoodComponent SHELLY = builder(6, 7).build();
|
FoodComponent SHELLY = builder(6, 7).build();
|
||||||
|
|
||||||
static FoodComponent.Builder builder(int hunger, float saturation) {
|
static FoodComponent.Builder builder(int hunger, float saturation) {
|
||||||
|
|
65
src/main/resources/data/unicopia/diets/alicorn.json
Normal file
65
src/main/resources/data/unicopia/diets/alicorn.json
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0.8,
|
||||||
|
"foraging_multiplier": 1,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_fish"
|
||||||
|
],
|
||||||
|
"hunger": 1.5,
|
||||||
|
"saturation": 1.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.5,
|
||||||
|
"saturation": 0.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/cooked_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.1,
|
||||||
|
"saturation": 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love",
|
||||||
|
"unicopia:food_types/raw_insect",
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"hunger": 0.9,
|
||||||
|
"saturation": 0.9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_fish",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
153
src/main/resources/data/unicopia/diets/bat.json
Normal file
153
src/main/resources/data/unicopia/diets/bat.json
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0.5,
|
||||||
|
"foraging_multiplier": 0.9,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.75,
|
||||||
|
"saturation": 0.75
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.5,
|
||||||
|
"saturation": 0.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect"
|
||||||
|
],
|
||||||
|
"hunger": 1.75,
|
||||||
|
"saturation": 1.75
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_meat"
|
||||||
|
],
|
||||||
|
"hunger": 1.15,
|
||||||
|
"saturation": 1.15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_insect"
|
||||||
|
],
|
||||||
|
"hunger": 1,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.25,
|
||||||
|
"saturation": 0.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.2,
|
||||||
|
"saturation": 0.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love"
|
||||||
|
],
|
||||||
|
"hunger": 0,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"hunger": 0.9,
|
||||||
|
"saturation": 0.9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/rotten_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "mild",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/cooked_meat"
|
||||||
|
],
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_insect",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "mild",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 50,
|
||||||
|
"amplifier": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "risky",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/bat_ponys_delight",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:health_boost",
|
||||||
|
"seconds": { "min": 30, "max": 60 },
|
||||||
|
"amplifier": { "min": 2, "max": 6 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "minecraft:jump_boost",
|
||||||
|
"seconds": { "min": 30, "max": 60 },
|
||||||
|
"amplifier": { "min": 1, "max": 6 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "minecraft:health_boost",
|
||||||
|
"seconds": 30,
|
||||||
|
"amplifier": { "min": 1, "max": 6 }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "minecraft:regeneration",
|
||||||
|
"seconds": { "min": 3, "max": 30 },
|
||||||
|
"amplifier": { "min": 3, "max": 6 }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
151
src/main/resources/data/unicopia/diets/changeling.json
Normal file
151
src/main/resources/data/unicopia/diets/changeling.json
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0.15,
|
||||||
|
"foraging_multiplier": 0,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect"
|
||||||
|
],
|
||||||
|
"hunger": 0.3,
|
||||||
|
"saturation": 0.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.1,
|
||||||
|
"saturation": 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_insect"
|
||||||
|
],
|
||||||
|
"hunger": 1,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.25,
|
||||||
|
"saturation": 0.25
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.6,
|
||||||
|
"saturation": 0.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love"
|
||||||
|
],
|
||||||
|
"hunger": 1,
|
||||||
|
"saturation": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_effects": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "minecraft:weakness",
|
||||||
|
"seconds": 200,
|
||||||
|
"amplifier": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "unicopia:multiply_hunger",
|
||||||
|
"multiplier": 0.5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love"
|
||||||
|
],
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"name": "Love Consumption",
|
||||||
|
"type": "unicopia:clear_love_sickness"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_fish",
|
||||||
|
"unicopia:food_types/raw_fish"
|
||||||
|
],
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 50,
|
||||||
|
"amplifier": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "unicopia.affliction.love_sickness",
|
||||||
|
"type": "unicopia:multiply_hunger",
|
||||||
|
"multiplier": 0.5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/rotten_fish",
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/raw_insect",
|
||||||
|
"unicopia:food_types/cooked_meat",
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/forage_edible",
|
||||||
|
"unicopia:food_types/forage_edible_filling",
|
||||||
|
],
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 18,
|
||||||
|
"saturation": 9
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "minecraft:weakness",
|
||||||
|
"seconds": 200,
|
||||||
|
"amplifier": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "unicopia:multiply_hunger",
|
||||||
|
"multiplier": 0.5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
39
src/main/resources/data/unicopia/diets/earth.json
Normal file
39
src/main/resources/data/unicopia/diets/earth.json
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0.3,
|
||||||
|
"foraging_multiplier": 1,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.2,
|
||||||
|
"saturation": 0.2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/cooked_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.1,
|
||||||
|
"saturation": 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love",
|
||||||
|
"unicopia:food_types/raw_fish",
|
||||||
|
"unicopia:food_types/raw_insect",
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"hunger": 1,
|
||||||
|
"saturation": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "risky",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:poison",
|
||||||
|
"seconds": 45,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/rotten_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:poison",
|
||||||
|
"seconds": 45,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 400,
|
||||||
|
"amplifier": 3,
|
||||||
|
"chance": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_blinding",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:blindness",
|
||||||
|
"seconds": 30,
|
||||||
|
"amplifier": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_dangerous",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "mild",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 250,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 4
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_edible",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": []
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_edible_filling",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 18,
|
||||||
|
"saturation": 9
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": []
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_moderate",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "mild",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 40
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_nauseating",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:weakness",
|
||||||
|
"seconds": 200,
|
||||||
|
"amplifier": 1,
|
||||||
|
"chance": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_prickly",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:instant_damage",
|
||||||
|
"seconds": 1,
|
||||||
|
"amplifier": 0,
|
||||||
|
"chance": 30
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_radioactive",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:glowing",
|
||||||
|
"seconds": 15,
|
||||||
|
"amplifier": 0,
|
||||||
|
"chance": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_risky",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 80
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_severely_nauseating",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:weakness",
|
||||||
|
"seconds": 200,
|
||||||
|
"amplifier": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_severely_prickly",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:instant_damage",
|
||||||
|
"seconds": 1,
|
||||||
|
"amplifier": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/forage_strengthening",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:strength",
|
||||||
|
"seconds": 30,
|
||||||
|
"amplifier": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_insect",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_insect",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "lethal",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_meat",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_meat",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "risky",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:poison",
|
||||||
|
"seconds": 45,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/rotten_meat",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "severe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "minecraft:poison",
|
||||||
|
"seconds": 45,
|
||||||
|
"amplifier": 2,
|
||||||
|
"chance": 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 400,
|
||||||
|
"amplifier": 3,
|
||||||
|
"chance": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/pinecone",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "unicopia:healing",
|
||||||
|
"health": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
91
src/main/resources/data/unicopia/diets/hippogriff.json
Normal file
91
src/main/resources/data/unicopia/diets/hippogriff.json
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0.3,
|
||||||
|
"foraging_multiplier": 0.8,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_meat",
|
||||||
|
"unicopia:food_types/cooked_fish"
|
||||||
|
],
|
||||||
|
"hunger": 1.6,
|
||||||
|
"saturation": 1.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/raw_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.6,
|
||||||
|
"saturation": 0.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.3,
|
||||||
|
"saturation": 0.3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love",
|
||||||
|
"unicopia:food_types/raw_insect",
|
||||||
|
"unicopia:food_types/cooked_insect"
|
||||||
|
],
|
||||||
|
"hunger": 0,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"hunger": 1,
|
||||||
|
"saturation": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_fish",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/forage_prickly",
|
||||||
|
"unicopia:food_types/forage_severely_prickly"
|
||||||
|
],
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/pinecone",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"type": "unicopia:healing",
|
||||||
|
"health": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
22
src/main/resources/data/unicopia/diets/human.json
Normal file
22
src/main/resources/data/unicopia/diets/human.json
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 1,
|
||||||
|
"foraging_multiplier": 0,
|
||||||
|
"multipliers": [ ],
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_fish",
|
||||||
|
"unicopia:food_types/raw_fish",
|
||||||
|
"unicopia:food_types/rotten_fish",
|
||||||
|
"unicopia:food_types/cooked_meat",
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/rotten_meat",
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
68
src/main/resources/data/unicopia/diets/kirin.json
Normal file
68
src/main/resources/data/unicopia/diets/kirin.json
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0,
|
||||||
|
"foraging_multiplier": 0.9,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_meat"
|
||||||
|
],
|
||||||
|
"hunger": 1.5,
|
||||||
|
"saturation": 1.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.5,
|
||||||
|
"saturation": 0.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/cooked_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.1,
|
||||||
|
"saturation": 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love",
|
||||||
|
"unicopia:food_types/raw_insect",
|
||||||
|
"unicopia:food_types/raw_fish",
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"hunger": 0.9,
|
||||||
|
"saturation": 0.9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/rotten_fish",
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/cooked_meat",
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/rotten_meat",
|
||||||
|
"unicopia:food_types/forage_blinding",
|
||||||
|
"unicopia:food_types/forage_prickly",
|
||||||
|
"unicopia:food_types/forage_severely_prickly",
|
||||||
|
"unicopia:food_types/forage_strengthening"
|
||||||
|
],
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
67
src/main/resources/data/unicopia/diets/pegasus.json
Normal file
67
src/main/resources/data/unicopia/diets/pegasus.json
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0,
|
||||||
|
"foraging_multiplier": 1,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_fish"
|
||||||
|
],
|
||||||
|
"hunger": 1.5,
|
||||||
|
"saturation": 1.5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.5,
|
||||||
|
"saturation": 0.6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/cooked_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0.1,
|
||||||
|
"saturation": 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love",
|
||||||
|
"unicopia:food_types/raw_insect",
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"hunger": 0.9,
|
||||||
|
"saturation": 0.9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "mild",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 50,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
111
src/main/resources/data/unicopia/diets/seapony.json
Normal file
111
src/main/resources/data/unicopia/diets/seapony.json
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0.5,
|
||||||
|
"foraging_multiplier": 0.7,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/raw_sea_vegitable"
|
||||||
|
],
|
||||||
|
"hunger": 1,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/shells",
|
||||||
|
"unicopia:food_types/shelly"
|
||||||
|
],
|
||||||
|
"hunger": 1,
|
||||||
|
"saturation": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_effects": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_fish",
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/forage_edible",
|
||||||
|
"unicopia:food_types/forage_edible_filling",
|
||||||
|
],
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 18,
|
||||||
|
"saturation": 9
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "fair",
|
||||||
|
"effects": [
|
||||||
|
{
|
||||||
|
"effect": "unicopia:food_poisoning",
|
||||||
|
"seconds": 100,
|
||||||
|
"amplifier": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/raw_sea_vegitable",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 2,
|
||||||
|
"saturation": 1
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/cooked_sea_vegitable",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 6,
|
||||||
|
"saturation": 2
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/shells",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 3,
|
||||||
|
"saturation": 5
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tag": "unicopia:food_types/shelly",
|
||||||
|
"food_component": {
|
||||||
|
"hunger": 6,
|
||||||
|
"saturation": 7
|
||||||
|
},
|
||||||
|
"ailment": {
|
||||||
|
"toxicity": "safe",
|
||||||
|
"effects": [ ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
33
src/main/resources/data/unicopia/diets/unicorn.json
Normal file
33
src/main/resources/data/unicopia/diets/unicorn.json
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"default_multiplier": 0.7,
|
||||||
|
"foraging_multiplier": 1,
|
||||||
|
"multipliers": [
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/cooked_insect",
|
||||||
|
"unicopia:food_types/cooked_meat",
|
||||||
|
"unicopia:food_types/cooked_fish"
|
||||||
|
],
|
||||||
|
"hunger": 0.1,
|
||||||
|
"saturation": 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/love",
|
||||||
|
"unicopia:food_types/raw_insect",
|
||||||
|
"unicopia:food_types/raw_meat",
|
||||||
|
"unicopia:food_types/raw_fish",
|
||||||
|
"unicopia:food_types/rotten_meat"
|
||||||
|
],
|
||||||
|
"hunger": 0,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"tags": [
|
||||||
|
"unicopia:food_types/pinecone"
|
||||||
|
],
|
||||||
|
"hunger": 0.9,
|
||||||
|
"saturation": 0.9
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in a new issue