Skip to content

Commit

Permalink
re-balance icarae origin
Browse files Browse the repository at this point in the history
  • Loading branch information
UpcraftLP committed Apr 28, 2024
1 parent bb1f570 commit 84b23b0
Show file tree
Hide file tree
Showing 14 changed files with 166 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Common/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jetbrains_annotations = "24.1.0"
vanilla_gradle = "0.2.1-SNAPSHOT"

emi = "1.1.4+1.20.1"
icarus = "2.6.0"
icarus = "2.7.1"

[libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package dev.upcraft.origins.icarae.util;

import net.minecraft.world.entity.Entity;

public class IcaraeHelper {

public static boolean isWet(Entity entity) {
return entity.isInWaterRainOrBubble();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
"powers": [
"icarae_origin:wings",
"origins:aerial_combatant",
"icarae_origin:icarus",
"icarae_origin:hollow_bones",
"origins:no_shield",
"icarae_origin:flimsy",
"origins:carnivore"
],
"icon": "icarus:white_feathered_wings",
Expand Down
33 changes: 33 additions & 0 deletions Common/src/main/resources/data/icarae_origin/powers/flimsy.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"type": "origins:stacking_status_effect",
"min_stacks": 0,
"max_stacks": 1,
"duration_per_stack": 200,
"effect": {
"effect": "icarus:flightless",
"duration": 200,
"is_ambient": true,
"show_particles": false,
"show_icon": true
},
"condition": {
"type": "origins:or",
"conditions": [
{
"condition": {
"type": "origins:on_fire"
}
},
{
"condition": {
"type": "icarae_origin:wet"
}
},
{
"condition": {
"type": "origins:in_thunderstorm"
}
}
]
}
}
25 changes: 25 additions & 0 deletions Common/src/main/resources/data/icarae_origin/powers/icarus.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"type": "origins:burn",
"interval": 20,
"burn_duration": 120,
"condition": {
"type": "origins:and",
"conditions": [
{
"condition": {
"type": "origins:fall_flying"
}
},
{
"condition": {
"type": "origins:block_collision",
"block_condition": {
"type": "origins:height",
"comparison": ">",
"compare_to": 288
}
}
}
]
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package dev.upcraft.origins.icarae.fabric.entrypoints;

import dev.upcraft.origins.icarae.fabric.init.IcaraeEntityConditions;
import dev.upcraft.origins.icarae.fabric.init.IcaraePowers;
import dev.upcraft.origins.icarae.fabric.power.WingsPower;
import io.github.apace100.apoli.registry.ApoliRegistries;
import net.fabricmc.api.ModInitializer;
import net.minecraft.core.Registry;

public class Main implements ModInitializer {

@Override
public void onInitialize() {
Registry.register(ApoliRegistries.POWER_FACTORY, WingsPower.POWER_TYPE_ID, IcaraePowers.WINGS_POWER);
IcaraePowers.register();
IcaraeEntityConditions.register();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package dev.upcraft.origins.icarae.fabric.init;

import dev.upcraft.origins.icarae.IcaraeOrigin;
import io.github.apace100.apoli.power.factory.condition.ConditionFactory;
import io.github.apace100.apoli.registry.ApoliRegistries;
import io.github.apace100.calio.data.SerializableData;
import net.minecraft.core.Registry;
import net.minecraft.world.entity.Entity;

public class IcaraeEntityConditions {

public static final ConditionFactory<Entity> WET = new ConditionFactory<>(IcaraeOrigin.id("wet"), new SerializableData(), (instance, entity) -> entity.isInWaterRainOrBubble());

public static void register() {
Registry.register(ApoliRegistries.ENTITY_CONDITION, IcaraeOrigin.id("wet"), WET);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@

import dev.upcraft.origins.icarae.fabric.power.WingsPower;
import io.github.apace100.apoli.power.factory.PowerFactory;
import io.github.apace100.apoli.registry.ApoliRegistries;
import net.minecraft.core.Registry;

public class IcaraePowers {

public static final PowerFactory<WingsPower> WINGS_POWER = WingsPower.createFactory().allowCondition();

public static void register() {
Registry.register(ApoliRegistries.POWER_FACTORY, WingsPower.POWER_TYPE_ID, IcaraePowers.WINGS_POWER);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.upcraft.origins.icarae.neoforge.entrypoints;

import dev.upcraft.origins.icarae.IcaraeOrigin;
import dev.upcraft.origins.icarae.neoforge.init.IcaraeConditionTypes;
import dev.upcraft.origins.icarae.neoforge.init.IcaraePowers;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
Expand All @@ -11,5 +12,6 @@ public class Main {
public Main() {
var bus = FMLJavaModLoadingContext.get().getModEventBus();
IcaraePowers.POWER_FACTORIES.register(bus);
IcaraeConditionTypes.ENTITY_CONDITION_TYPES.register(bus);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package dev.upcraft.origins.icarae.neoforge.init;

import dev.upcraft.origins.icarae.IcaraeOrigin;
import dev.upcraft.origins.icarae.neoforge.power.condition.EntityIsWetCondition;
import io.github.edwinmindcraft.apoli.api.power.factory.EntityCondition;
import io.github.edwinmindcraft.apoli.api.registry.ApoliRegistries;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.RegistryObject;

public class IcaraeConditionTypes {

public static final DeferredRegister<EntityCondition<?>> ENTITY_CONDITION_TYPES = DeferredRegister.create(ApoliRegistries.ENTITY_CONDITION_KEY, IcaraeOrigin.MODID);

public static final RegistryObject<EntityIsWetCondition> WET = ENTITY_CONDITION_TYPES.register("wet", EntityIsWetCondition::new);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package dev.upcraft.origins.icarae.neoforge.power.condition;

import com.mojang.serialization.Codec;
import dev.upcraft.origins.icarae.util.IcaraeHelper;
import io.github.edwinmindcraft.apoli.api.IDynamicFeatureConfiguration;
import io.github.edwinmindcraft.apoli.api.power.factory.EntityCondition;
import net.minecraft.world.entity.Entity;

public class EntityIsWetCondition extends EntityCondition<EntityIsWetCondition.Configuration> {

public EntityIsWetCondition() {
super(Configuration.CODEC);
}

@Override
protected boolean check(Configuration configuration, Entity entity) {
return IcaraeHelper.isWet(entity);
}

public record Configuration() implements IDynamicFeatureConfiguration {

public static final Codec<Configuration> CODEC = Codec.unit(Configuration::new);

}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
package dev.upcraft.origins.icarae.quilt.entrypoints;

import dev.upcraft.origins.icarae.quilt.init.IcaraeEntityConditions;
import dev.upcraft.origins.icarae.quilt.init.IcaraePowers;
import dev.upcraft.origins.icarae.quilt.power.WingsPower;
import io.github.apace100.apoli.registry.ApoliRegistries;
import net.minecraft.core.Registry;
import org.quiltmc.loader.api.ModContainer;
import org.quiltmc.qsl.base.api.entrypoint.ModInitializer;

public class Main implements ModInitializer {

@Override
public void onInitialize(ModContainer mod) {
Registry.register(ApoliRegistries.POWER_FACTORY, WingsPower.POWER_TYPE_ID, IcaraePowers.WINGS_POWER);
IcaraePowers.register();
IcaraeEntityConditions.register();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package dev.upcraft.origins.icarae.quilt.init;

import dev.upcraft.origins.icarae.IcaraeOrigin;
import dev.upcraft.origins.icarae.util.IcaraeHelper;
import io.github.apace100.apoli.power.factory.condition.ConditionFactory;
import io.github.apace100.apoli.registry.ApoliRegistries;
import io.github.apace100.calio.data.SerializableData;
import net.minecraft.core.Registry;
import net.minecraft.world.entity.Entity;

public class IcaraeEntityConditions {

public static final ConditionFactory<Entity> WET = new ConditionFactory<>(IcaraeOrigin.id("wet"), new SerializableData(), (cfg, entity) -> IcaraeHelper.isWet(entity));

public static void register() {
Registry.register(ApoliRegistries.ENTITY_CONDITION, IcaraeOrigin.id("wet"), WET);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@

import dev.upcraft.origins.icarae.quilt.power.WingsPower;
import io.github.apace100.apoli.power.factory.PowerFactory;
import io.github.apace100.apoli.registry.ApoliRegistries;
import net.minecraft.core.Registry;

public class IcaraePowers {

public static final PowerFactory<WingsPower> WINGS_POWER = WingsPower.createFactory().allowCondition();

public static void register() {
Registry.register(ApoliRegistries.POWER_FACTORY, WingsPower.POWER_TYPE_ID, IcaraePowers.WINGS_POWER);
}
}

0 comments on commit 84b23b0

Please sign in to comment.