From acf9f501a9d8b9de1e1f60c3f5c8fdad6125dead Mon Sep 17 00:00:00 2001 From: Ryan <78032176+BigGaemer@users.noreply.github.com> Date: Sun, 14 Apr 2024 15:35:02 +0200 Subject: [PATCH] fix some shit and add empyrian --- build.gradle | 1 + .../arcteam/terraoriginum/TerraOriginum.java | 4 +- .../items/{mync_eye.java => iconItems.java} | 4 +- .../assets/terraoriginum/lang/en_us.json | 27 +- .../terraoriginum/models/item/spirit.json | 6 + .../terraoriginum/textures/item/spirit.png | Bin 0 -> 1104 bytes .../data/minecraft/tags/functions/tick.json | 5 + .../data/origins/origin_layers/origin.json | 1 + .../functions/air_ball.mcfunction | 21 + .../terraoriginum/functions/armor.mcfunction | 14 + .../terraoriginum/functions/load.mcfunction | 23 + .../functions/repos_marker.mcfunction | 4 + .../terraoriginum/functions/ring.mcfunction | 65 ++ .../functions/throw_ring.mcfunction | 13 + .../functions/throw_ring_small.mcfunction | 9 + .../terraoriginum/functions/tick.mcfunction | 9 + .../data/terraoriginum/origins/empyrian.json | 13 + .../data/terraoriginum/origins/fairy.json | 2 +- .../data/terraoriginum/origins/spirit.json | 2 +- .../data/terraoriginum/origins/yulde.json | 2 +- .../powers/empyrian-powers/ballast.json | 102 +++ .../powers/empyrian-powers/buoyant.json | 63 ++ .../powers/empyrian-powers/burst.json | 79 +++ .../empyrian-powers/dropball_power.json | 80 +++ .../empyrian-powers/lightweight_effects.json | 542 +++++++++++++++ .../empyrian-powers/lightweight_keys.json | 395 +++++++++++ .../powers/empyrian-powers/shoot.json | 623 ++++++++++++++++++ 27 files changed, 2099 insertions(+), 10 deletions(-) rename src/main/java/net/arcmods/arcteam/terraoriginum/items/{mync_eye.java => iconItems.java} (70%) create mode 100644 src/main/resources/assets/terraoriginum/models/item/spirit.json create mode 100644 src/main/resources/assets/terraoriginum/textures/item/spirit.png create mode 100644 src/main/resources/data/minecraft/tags/functions/tick.json create mode 100644 src/main/resources/data/terraoriginum/functions/air_ball.mcfunction create mode 100644 src/main/resources/data/terraoriginum/functions/armor.mcfunction create mode 100644 src/main/resources/data/terraoriginum/functions/load.mcfunction create mode 100644 src/main/resources/data/terraoriginum/functions/repos_marker.mcfunction create mode 100644 src/main/resources/data/terraoriginum/functions/ring.mcfunction create mode 100644 src/main/resources/data/terraoriginum/functions/throw_ring.mcfunction create mode 100644 src/main/resources/data/terraoriginum/functions/throw_ring_small.mcfunction create mode 100644 src/main/resources/data/terraoriginum/functions/tick.mcfunction create mode 100644 src/main/resources/data/terraoriginum/origins/empyrian.json create mode 100644 src/main/resources/data/terraoriginum/powers/empyrian-powers/ballast.json create mode 100644 src/main/resources/data/terraoriginum/powers/empyrian-powers/buoyant.json create mode 100644 src/main/resources/data/terraoriginum/powers/empyrian-powers/burst.json create mode 100644 src/main/resources/data/terraoriginum/powers/empyrian-powers/dropball_power.json create mode 100644 src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_effects.json create mode 100644 src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_keys.json create mode 100644 src/main/resources/data/terraoriginum/powers/empyrian-powers/shoot.json diff --git a/build.gradle b/build.gradle index 9b58adc..a71990d 100644 --- a/build.gradle +++ b/build.gradle @@ -11,6 +11,7 @@ version = project.mod_version group = project.maven_group repositories { + mavenLocal() maven { name "cloth config" url "https://maven.shedaniel.me" diff --git a/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java b/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java index 5184bd1..0545e92 100644 --- a/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java +++ b/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java @@ -1,7 +1,7 @@ package net.arcmods.arcteam.terraoriginum; import net.arcmods.arcteam.terraoriginum.blocks.crucifix; -import net.arcmods.arcteam.terraoriginum.items.mync_eye; +import net.arcmods.arcteam.terraoriginum.items.iconItems; import net.arcmods.arcteam.terraoriginum.items.umbrella; import net.arcmods.arcteam.terraoriginum.registry.modEnchantments; import net.fabricmc.api.ModInitializer; @@ -19,7 +19,7 @@ public class TerraOriginum implements ModInitializer { @Override public void onInitialize() { umbrella.registerItems(); - mync_eye.register(); + iconItems.register(); modEnchantments.register(); crucifix.register(); diff --git a/src/main/java/net/arcmods/arcteam/terraoriginum/items/mync_eye.java b/src/main/java/net/arcmods/arcteam/terraoriginum/items/iconItems.java similarity index 70% rename from src/main/java/net/arcmods/arcteam/terraoriginum/items/mync_eye.java rename to src/main/java/net/arcmods/arcteam/terraoriginum/items/iconItems.java index 909b76b..8dec513 100644 --- a/src/main/java/net/arcmods/arcteam/terraoriginum/items/mync_eye.java +++ b/src/main/java/net/arcmods/arcteam/terraoriginum/items/iconItems.java @@ -7,12 +7,14 @@ import net.minecraft.util.Rarity; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; -public class mync_eye { +public class iconItems { public static final Item MYNC_EYE = new Item(new Item.Settings().maxCount(1).rarity(Rarity.EPIC)); + public static final Item SPIRIT = new Item(new Item.Settings().maxCount(1).rarity(Rarity.EPIC)); public static void register() { Registry.register(Registries.ITEM, new Identifier(TerraOriginum.MOD_ID, "mync_eye"), MYNC_EYE); + Registry.register(Registries.ITEM, new Identifier(TerraOriginum.MOD_ID, "spirit"), SPIRIT); } } diff --git a/src/main/resources/assets/terraoriginum/lang/en_us.json b/src/main/resources/assets/terraoriginum/lang/en_us.json index e6f92a6..c846080 100644 --- a/src/main/resources/assets/terraoriginum/lang/en_us.json +++ b/src/main/resources/assets/terraoriginum/lang/en_us.json @@ -1,14 +1,18 @@ { //-----Icon Items-----// - "item.terraoriginum.mync_eye": "you shouldnt have this", + "item.terraoriginum.mync_eye": "Mync Eye", + "item.terraoriginum.spirit": "Spirit", "item.terraoriginum.umbrella": "Umbrella", + //-----shit i cant be assed to categorise-----/ "death.attack.lack_of_ectoplasm": "%1$s faded away", "death.attack.lack_of_ectoplasm.player": "%1$s faded away whilst trying to escape %2$s", "death.attack.boiling": "%1$s boiled up", "death.attack.boiling.player": "%1$s boiled up whilst trying to fight off %2$s", + "enchantment.terraoriginum.sun_protection": "Sun Protection", + //-----Immortal Human-----// "origin.terraoriginum.immortal_human.name": "Immortal Human", "origin.terraoriginum.immortal_human.description": "You hate life, but out of spite, the gods cursed you with being immortal. How unfortunate.", @@ -163,12 +167,15 @@ "power.terraoriginum.kitsune-powers/run.description": "Whenever your health goes below 4 hearts, you gain a small speed boost", "power.terraoriginum.kitsune-powers/speed.name": "Small Frame", "power.terraoriginum.kitsune-powers/speed.description": "Your small frame gives little weight, making it easier to move at the cost of health.", - + //-----Yulde-----// "origin.terraoriginum.yulde.name": "Yulde", "origin.terraoriginum.yulde.description": "A Yulde is a Lato with the ability to change the tides of battle, at the cost of their lives.", "power.terraoriginum.yulde-powers/last_stand.name": "Last Stand", "power.terraoriginum.yulde-powers/last_stand.description": "You gain strength 4 and speed 2 for 60 seconds, after which you will, without fail, die.", + + "death.attack.terraoriginum:last_stand": "%1$s made their last stand.", + "death.attack.terraoriginum:last_stand.player": "%1$s made their last stand before dying to %2$s.", //-----florian-----// "origin.terraoriginum.florian.name": "Florian", @@ -194,7 +201,19 @@ "power.terraoriginum.florian-powers/weak.name": "Weak", "power.terraoriginum.florian-powers/weak.description": "Because you are a creature of nature, you cannot do much damage.", + //-----empyrian-----// + "origin.terraoriginum.empyrian.name": "Empyrian", + "origin.terraoriginum.empyrian.description": "Weightless floating creatures, adept at flight and forming pressurized air using their strange abilities.", + "power.terraoriginum.empyrian-powers/ballast.name": "Ballast", + "power.terraoriginum.empyrian-powers/ballast.description": "Wearing armor weighs you down, making it more difficult and exhausting to float.", + "power.terraoriginum.empyrian-powers/buoyant.name": "Buoyant", + "power.terraoriginum.empyrian-powers/buoyant.description": "You can't sink in water and will rise to its surface, even allowing you to walk on it.", + "power.terraoriginum.empyrian-powers/burst.name": "Burst", + "power.terraoriginum.empyrian-powers/burst.description": "Taking 5 or more damage when flying will burst you, piercing your armor and preventing you from flying until you've regenerated most of your health.", + "power.terraoriginum.empyrian-powers/lightweight_keys.name": "Lightweight", + "power.terraoriginum.empyrian-powers/lightweight_keys.description": "You can control the air surrounding you, allowing you to fall, fly and fall gracefully. Flying is exhausting and only possible when able to sprint.", + "power.terraoriginum.empyrian-powers/shoot.name": "Dual Strike", + "power.terraoriginum.empyrian-powers/shoot.description": "Lob a ball of compressed air, knocking back targets but dealing no damage." + // the tooltips have no lang def or i cant figure out how to set it (most likely the former) - "death.attack.terraoriginum:last_stand": "%1$s made their last stand.", - "death.attack.terraoriginum:last_stand.player": "%1$s made their last stand before dying to %2$s." } \ No newline at end of file diff --git a/src/main/resources/assets/terraoriginum/models/item/spirit.json b/src/main/resources/assets/terraoriginum/models/item/spirit.json new file mode 100644 index 0000000..5f693e2 --- /dev/null +++ b/src/main/resources/assets/terraoriginum/models/item/spirit.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "terraoriginum:item/spirit" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/terraoriginum/textures/item/spirit.png b/src/main/resources/assets/terraoriginum/textures/item/spirit.png new file mode 100644 index 0000000000000000000000000000000000000000..1ba29e590c5a390d7b33013ba4a88f30107a9382 GIT binary patch literal 1104 zcmV-W1h4yvP)l)OoVBr=pTBq>9A zAa620$ip?p{?6L$-MQ{L*Ktew_RHOO@3q(ex7S{4?<2quH{pl%;r|7QkB=u9JufdW z7#kb2dLz~>B*n$W(9zLBPw(R50zyMWv1^Sl^^3~O%SnHKKiu8j$)-(CP7X{=Onezc z6?IEX3rR^yf$;F~Pjj}WrUnKE22}Y~O`DvYOs1x$;Qs#JB7mc#BRoAlL0?}VG&MD; zf>2{bFziemMdTXJv$^i>ZZH@Osy3(^Kq@L12?oF*qN1YU;Naj>|J=Y}Xd*5yu5f#M z3vF#}biA{(lL&$Um6er12%%BH{|*ig^p`a@hyNKsbaXWA?d@@+uC6Xxw$IPc(Ae0> z$9YGu|3z9`|A3Q|6AxWvWF%QzTcctqLMPt)4-XG?jDesqvq8J7t1HOJ$bkL*eWAL# znp9O)fsc<5EH5uZdV0Dt04~ObOG`@v13)MicD7p-ltzI?1IN)8?bv1*fU~nRoJ!G2M0|O)8tQDS{fN29|w&_14g3} zv|6pK_rD+0?nwm;PLU4C?S1tUOnr}_&3?Xc6Y%GeK z(cnN)Q4z_^%mkfI#}|LLV}#HMzqvgjUHr{Jh@G7sh>3}jy%S^yhlhs=CSXrbk75q6 zFiYWtcL)Z6b7C3NWR}*xG`xy86_!p}SsD2G`6-_D#|f>rnGYF_Ewl_16BB7kD><ALIdYZ}3Y zg#|MRlK~W;n4AQs_s=dnJ3GEB>9#*Y;BG4_D$s=c69LHK;UVCAfVZKmtE", + "compare_to": 0 + }, + { + "type": "origins:on_block", + "inverted": true + } + ] + } + }, + "speed": { + "type": "origins:modify_velocity", + "axes": ["x","z"], + "modifiers": [ + { + "resource": "*:*_resource", + "operation": "multiply_base_multiplicative", + "value": 0, + "modifier": { + "operation": "add_base_early", + "value": -1 + } + }, + { + "operation": "multiply_total", + "value": -0.99 + } + ], + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:on_block", + "inverted": true + } + ] + } + }, + "prevent_firework": { + "type": "origins:prevent_item_use", + "item_condition": { + "type": "origins:ingredient", + "ingredient": { + "item": "minecraft:firework_rocket" + } + }, + "condition": { + "type": "origins:fall_flying" + } + }, + "prevent_elytra": { + "type": "origins:restrict_armor", + "chest": { + "type": "origins:ingredient", + "ingredient": { + "item": "minecraft:elytra" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/powers/empyrian-powers/buoyant.json b/src/main/resources/data/terraoriginum/powers/empyrian-powers/buoyant.json new file mode 100644 index 0000000..488d89b --- /dev/null +++ b/src/main/resources/data/terraoriginum/powers/empyrian-powers/buoyant.json @@ -0,0 +1,63 @@ +{ + "type": "origins:multiple", + "float": { + "type": "origins:modify_velocity", + "axes": ["y"], + "modifier": { + "operation": "add_base_late", + "value": 0.2 + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:fluid_height", + "fluid": "minecraft:water", + "comparison": ">=", + "compare_to": 0.4 + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "stand": { + "type": "origins:walk_on_fluid", + "fluid": "minecraft:water", + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:fluid_height", + "fluid": "minecraft:water", + "comparison": "<=", + "compare_to": 0.4 + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "stand_2": { + "type": "origins:ignore_water", + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:fluid_height", + "fluid": "minecraft:water", + "comparison": "<=", + "compare_to": 0.4 + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/powers/empyrian-powers/burst.json b/src/main/resources/data/terraoriginum/powers/empyrian-powers/burst.json new file mode 100644 index 0000000..1763521 --- /dev/null +++ b/src/main/resources/data/terraoriginum/powers/empyrian-powers/burst.json @@ -0,0 +1,79 @@ +{ + "type": "origins:multiple", + "cooldown": { + "type": "origins:resource", + "min": 0, + "max": 1 + }, + "trigger": { + "type": "origins:modify_damage_taken", + "self_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:change_resource", + "resource": "*:*_cooldown", + "change": 1 + }, + { + "type": "origins:set_fall_distance", + "fall_distance": 0 + }, + { + "type": "origins:change_resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "change": -2 + } + ] + }, + "apply_armor_condition": { + "type": "origins:constant", + "value": false + }, + "damage_condition": { + "type": "origins:amount", + "comparison": ">=", + "compare_to": 5 + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:on_block", + "inverted": true + } + ] + } + }, + "regen": { + "type": "origins:action_over_time", + "interval": 1, + "rising_action": { + "type": "origins:change_resource", + "resource": "*:*_cooldown", + "change": -1 + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "*:*_cooldown", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:relative_health", + "comparison": ">=", + "compare_to": 0.75 + } + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/powers/empyrian-powers/dropball_power.json b/src/main/resources/data/terraoriginum/powers/empyrian-powers/dropball_power.json new file mode 100644 index 0000000..cc808f3 --- /dev/null +++ b/src/main/resources/data/terraoriginum/powers/empyrian-powers/dropball_power.json @@ -0,0 +1,80 @@ +{ + "hidden": true, + "type": "origins:action_over_time", + "interval": 1, + "rising_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:poof ~ ~ ~ 0.2 0.2 0.2 0.3 20 force" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:explosion ~ ~ ~ 0 0 0 0 1 force" + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.dragon_fireball.explode", + "volume": 0.5, + "pitch": 2 + }, + { + "type": "origins:area_of_effect", + "radius": 3.6, + "bientity_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:target_action", + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "damage @s 0.01 minecraft:generic_kill by @e[tag=terraoriginum.noBall,limit=1]" + }, + { + "type": "origins:change_resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "change": -2 + } + ] + } + }, + { + "type": "origins:if_else", + "condition": { + "type": "origins:target_condition", + "condition": { + "type": "origins:command", + "command": "execute if score @s terraoriginum.id = @e[tag=terraoriginum.noBall,limit=1] terraoriginum.id", + "comparison": "==", + "compare_to": 1 + } + }, + "if_action": { + "type": "origins:add_velocity", + "y": 0.8, + "z": 0.2 + }, + "else_action": { + "type": "origins:add_velocity", + "y": 0.4, + "z": 0.3 + } + } + ] + } + }, + { + "type": "origins:execute_command", + "command": "kill @s" + } + ] + }, + "condition": { + "type": "origins:nbt", + "nbt": "{Tags:['terraoriginum.noBall']}" + } +} \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_effects.json b/src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_effects.json new file mode 100644 index 0000000..5b7c013 --- /dev/null +++ b/src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_effects.json @@ -0,0 +1,542 @@ +{ + "name": "Lightweight", + "hidden": true, + "type": "origins:multiple", + "particle_type": { + "type": "origins:resource", + "min": 0, + "max": 2 + }, + "callback": { + "type": "origins:action_on_callback", + "entity_action_added": { + "type": "origins:execute_command", + "command": "function terraoriginum:load" + } + }, + "vfx_cooldown": { + "type": "origins:cooldown", + "cooldown": 10 + }, + "disable": { + "type": "origins:action_over_time", + "interval": 1, + "rising_action": { + "type": "origins:change_resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "change": -2 + }, + "condition": { + "type": "origins:or", + "conditions": [ + { + "type": "origins:fluid_height", + "fluid": "minecraft:water", + "comparison": ">", + "compare_to": 0.3 + }, + { + "type": "origins:food_level", + "comparison": "<=", + "compare_to": 6 + } + ] + } + }, + "flight_sim": { + "type": "origins:elytra_flight", + "render_elytra": false, + "condition": { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_fly_check", + "comparison": ">", + "compare_to": 0 + } + }, + "float_exhaust": { + "type": "origins:action_over_time", + "interval": 1, + "entity_action": { + "type": "origins:exhaust", + "amount": 0.01 + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "fly_particles": { + "type": "origins:action_over_time", + "interval": 1, + "entity_action": { + "type": "origins:if_else", + "condition": { + "type": "origins:sneaking" + }, + "if_action": { + "type": "origins:if_else_list", + "actions": [ + { + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:scoreboard", + "objective": "terraoriginum.isGmer", + "comparison": "==", + "compare_to": 1 + } + ] + }, + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~-0.25 ~ run particle minecraft:poof ^ ^ ^-0.5 0 0 0 0.05 2 force" + }, + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~-0.25 ~ run particle minecraft:cloud ^ ^ ^-0.5 0 0 0 0.01 3 force" + } + ] + } + }, + { + "condition": { + "type": "origins:scoreboard", + "objective": "terraoriginum.isGmer", + "comparison": "==", + "compare_to": 0 + }, + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~-0.4 ~ run particle minecraft:dust_color_transition 1 1 1 4 0.95 0.68 0.16 ^ ^ ^-0.5 0.15 0.15 0.15 0 1 force" + }, + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~-0.4 ~ run particle minecraft:dust_color_transition 1 1 1 2 0.95 0.68 0.16 ^ ^ ^-0.5 0 0 0 0 3 force" + } + ] + } + } + ] + }, + "else_action": { + "type": "origins:if_else_list", + "actions": [ + { + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:scoreboard", + "objective": "terraoriginum.isGmer", + "comparison": "==", + "compare_to": 1 + } + ] + }, + "action": { + "type": "origins:execute_command", + "command": "particle minecraft:poof ^ ^ ^-0.5 0 0 0 0.03 3 force" + } + }, + { + "condition": { + "type": "origins:scoreboard", + "objective": "terraoriginum.isGmer", + "comparison": "==", + "compare_to": 0 + }, + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "particle minecraft:dust_color_transition 1 1 1 3 0.95 0.68 0.16 ^ ^ ^-0.5 0.2 0.2 0.2 0 1 force" + } + ] + } + } + ] + } + }, + "condition": { + "type": "origins:fall_flying" + } + }, + "boost_vfx": { + "type": "origins:action_over_time", + "interval": 1, + "rising_action": { + "type": "origins:if_else", + "condition": { + "type": "origins:resource", + "resource": "*:*_vfx_cooldown", + "comparison": "==", + "compare_to": 0 + }, + "if_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:play_sound", + "sound": "minecraft:entity.ender_dragon.hurt", + "volume": 0.15, + "pitch": 0.66 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.ender_dragon.hurt", + "volume": 0.1, + "pitch": 1.3 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.firework_rocket.blast", + "volume": 0.4, + "pitch": 0.75 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.item.pickup", + "volume": 0.03, + "pitch": 0 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.wither.shoot", + "volume": 0.06, + "pitch": 1.5 + }, + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~-0.5 ~ positioned ^ ^ ^-2 run function terraoriginum:ring" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:explosion ~ ~ ~ 0 0 0 0 1 force" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:flash ~ ~ ~ 0 0 0 0 1 force" + }, + { + "type": "origins:trigger_cooldown", + "power": "*:*_vfx_cooldown" + } + ] + } + }, + "falling_action": { + "type": "origins:if_else", + "condition": { + "type": "origins:resource", + "resource": "*:*_vfx_cooldown", + "comparison": "==", + "compare_to": 0 + }, + "if_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:play_sound", + "sound": "minecraft:item.armor.equip_generic", + "volume": 2, + "pitch": 0 + }, + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:poof ~ ~ ~ 0.2 0.2 0.2 0.2 30 force" + } + ] + } + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:fall_flying" + }, + { + "type": "origins:sneaking" + } + ] + } + }, + "float": { + "type": "origins:modify_velocity", + "axes": ["y"], + "modifier": { + "operation": "multiply_total", + "value": -1 + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "float_extra": { + "type": "origins:prevent_sprinting", + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "float_speed": { + "type": "origins:modify_velocity", + "axes": ["x","z"], + "modifier": { + "operation": "multiply_total", + "value": -0.2 + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "proj_correction": { + "type": "origins:modify_falling", + "take_fall_damage": false, + "velocity": 0, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "fall_speed": { + "type": "origins:modify_falling", + "take_fall_damage": false, + "velocity": 0.02, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:or", + "conditions": [ + { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:sneaking" + } + ] + }, + { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + ] + }, + { + "type": "origins:fall_flying", + "inverted": true + } + ] + } + }, + "float_end_rod": { + "type": "origins:particle", + "particle": "minecraft:end_rod", + "visible_while_invisible": true, + "visible_in_first_person": false, + "force": true, + "frequency": 1, + "count": 1, + "speed": 0.01, + "spread": {"x": 0.15, "y": 0.15, "z": 0.15}, + "offset_y": -0.3, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "float_particles_normal": { + "type": "origins:particle", + "particle": "minecraft:cloud", + "visible_while_invisible": true, + "visible_in_first_person": false, + "force": true, + "frequency": 2, + "count": 4, + "speed": 0, + "spread": {"x": 0.5, "y": 0.1, "z": 0.5}, + "offset_y": -0.3, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "*:*_particle_type", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + }, + "float_particles_shiny": { + "type": "origins:particle", + "particle": { + "type": "minecraft:dust_color_transition", + "params": "1 1 1 1.5 0.95 0.68 0.16" + }, + "visible_while_invisible": true, + "visible_in_first_person": false, + "force": true, + "frequency": 2, + "count": 10, + "speed": 0, + "spread": {"x": 0.5, "y": 0.1, "z": 0.5}, + "offset_y": -0.3, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "*:*_particle_type", + "comparison": "==", + "compare_to": 1 + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + }, + { + "type": "origins:sneaking", + "inverted": true + } + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_keys.json b/src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_keys.json new file mode 100644 index 0000000..151e828 --- /dev/null +++ b/src/main/resources/data/terraoriginum/powers/empyrian-powers/lightweight_keys.json @@ -0,0 +1,395 @@ +{ + "badges": [ + { + "type": "origins:tooltip", + "sprite": "minecraft:textures/mob_effect/levitation.png", + "text": [ + { + "text": "Trigger flight abilities by pressing ", + "color": "#cacaca" + }, + { + "keybind": "key.jump", + "color": "white" + }, + { + "text": " when in mid-air. Deactivate flight abilities by double tapping ", + "color": "#cacaca" + }, + { + "keybind": "key.sneak", + "color": "white" + }, + { + "text": " or landing.", + "color": "#cacaca" + } + ] + }, + { + "type": "origins:tooltip", + "sprite": "minecraft:textures/mob_effect/slow_falling.png", + "text": [ + { + "text": "Hold ", + "color": "#cacaca" + }, + { + "keybind": "key.jump", + "color": "white" + }, + { + "text": " to fly.", + "color": "#cacaca" + }, + { + "keybind": "key.sneak", + "color": "white" + }, + { + "text": " can be held while flying to increase flight speed and exhaustion rate.", + "color": "#cacaca" + } + ] + }, + { + "type": "origins:tooltip", + "sprite": "minecraft:textures/item/barrier.png", + "text": [ + { + "text": "Floating or flying is not possible when inside any fluid.", + "color": "#cacaca" + } + ] + } + ], + "type": "origins:multiple", + "fly_check": { + "type": "origins:resource", + "min": 0, + "max": 4, + "hud_render": { + "should_render": false + } + }, + "toggle_check": { + "type": "origins:resource", + "min": 0, + "max": 2, + "hud_render": { + "should_render": false + }, + "min_action": { + "type": "origins:change_resource", + "resource": "*:*_fly_check", + "change": -4 + } + }, + "toggle_timer": { + "type": "origins:cooldown", + "cooldown": 5 + }, + "toggle_decay": { + "type": "origins:action_over_time", + "interval": 1, + "entity_action": { + "type": "origins:change_resource", + "resource": "*:*_toggle_check", + "change": -1 + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:or", + "conditions": [ + { + "type": "origins:resource", + "resource": "*:*_toggle_check", + "comparison": "==", + "compare_to": 2 + }, + { + "type": "origins:block_collision", + "offset_y": -0.7 + }, + { + "type": "origins:on_block" + } + ] + }, + { + "type": "origins:resource", + "resource": "*:*_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:resource", + "resource": "*:*_toggle_timer", + "comparison": "==", + "compare_to": 0 + } + ] + } + }, + "toggle_jump": { + "type": "origins:active_self", + "entity_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:trigger_cooldown", + "power": "*:*_toggle_timer" + }, + { + "type": "origins:change_resource", + "resource": "*:*_toggle_check", + "change": 1 + }, + { + "type": "origins:change_resource", + "resource": "*:*_fly_check", + "change": 3 + }, + { + "type": "origins:set_fall_distance", + "fall_distance": 0.1 + } + ] + }, + "cooldown": 1, + "key": { + "key": "key.jump" + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:on_block", + "inverted": true + }, + { + "type": "origins:riding", + "inverted": true + }, + { + "type": "origins:raycast", + "distance": 3.5, + "block": true, + "entity": false, + "shape_type": "collider", + "inverted": true + }, + { + "type": "origins:resource", + "resource": "*:*_toggle_check", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:fluid_height", + "fluid": "minecraft:water", + "comparison": "<=", + "compare_to": 0.4 + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/burst_cooldown", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:food_level", + "comparison": ">", + "compare_to": 6 + } + ] + } + }, + "toggle_sneak": { + "type": "origins:active_self", + "entity_action": { + "type": "origins:if_else_list", + "actions": [ + { + "condition": { + "type": "origins:resource", + "resource": "*:*_toggle_check", + "comparison": "==", + "compare_to": 1 + }, + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:change_resource", + "resource": "*:*_toggle_check", + "change": 2 + }, + { + "type": "origins:set_fall_distance", + "fall_distance": 0.1 + }, + { + "type": "origins:trigger_cooldown", + "power": "*:*_toggle_timer" + } + ] + } + }, + { + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "*:*_toggle_check", + "comparison": "==", + "compare_to": 2 + }, + { + "type": "origins:resource", + "resource": "*:*_toggle_timer", + "comparison": ">", + "compare_to": 0 + } + ] + }, + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:trigger_cooldown", + "power": "*:*_toggle_timer" + }, + { + "type": "origins:change_resource", + "resource": "*:*_toggle_check", + "change": -2 + } + ] + } + } + ] + }, + "cooldown": 1, + "key": { + "key": "key.sneak" + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "*:*_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:fall_flying", + "inverted": true + } + ] + } + }, + "fly_trigger": { + "type": "origins:active_self", + "entity_action": { + "type": "origins:change_resource", + "resource": "*:*_fly_check", + "operation": "set", + "change": 4 + }, + "cooldown": 0, + "key": { + "key": "key.jump", + "continuous": true + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:resource", + "resource": "*:*_toggle_check", + "comparison": ">", + "compare_to": 0 + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/burst_cooldown", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:on_block", + "inverted": true + }, + { + "type": "origins:raycast", + "distance": 3.5, + "block": true, + "entity": false, + "shape_type": "collider", + "inverted": true + } + ] + } + }, + "fly_tick": { + "type": "origins:action_over_time", + "interval": 1, + "entity_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:if_else", + "condition": { + "type": "origins:fall_flying" + }, + "if_action": { + "type": "origins:if_else", + "condition": { + "type": "origins:sneaking" + }, + "if_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:add_velocity", + "space": "local", + "set": true, + "z": 1 + }, + { + "type": "origins:exhaust", + "amount": 0.04 + } + ] + }, + "else_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:add_velocity", + "space": "local", + "set": true, + "z": 0.55 + }, + { + "type": "origins:exhaust", + "amount": 0.02 + } + ] + } + } + }, + { + "type": "origins:change_resource", + "resource": "*:*_fly_check", + "change": -1 + } + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/powers/empyrian-powers/shoot.json b/src/main/resources/data/terraoriginum/powers/empyrian-powers/shoot.json new file mode 100644 index 0000000..176fe1d --- /dev/null +++ b/src/main/resources/data/terraoriginum/powers/empyrian-powers/shoot.json @@ -0,0 +1,623 @@ +{ + "badges": [ + { + "type": "origins:tooltip", + "sprite": "origins:textures/gui/badge/info.png", + "text": [ + { + "text": "Air balls behave differently depending on if they were thrown while on the ground, floating, or flying.", + "color": "#cacaca" + } + ] + }, + { + "type": "origins:tooltip", + "sprite": "minecraft:textures/mob_effect/glowing.png", + "text": [ + { + "text": "Radius Charge\nA low-velocity, heavy air ball which explodes upon contact with any physical object, knocking nearby entities away.\nActivate with ", + "color": "#cacaca" + }, + { + "keybind": "key.origins.primary_active", + "color": "white" + }, + { + "text": " when flying or in mid-air but not floating.", + "color": "#cacaca" + } + ] + }, + { + "type": "origins:tooltip", + "sprite": "minecraft:textures/item/spectral_arrow.png", + "text": [ + { + "text": "Precision Charge\nA high-velocity, weightless air ball which deals heavy knockback upon contact with an entity.\nActivate with ", + "color": "#cacaca" + }, + { + "keybind": "key.origins.primary_active", + "color": "white" + }, + { + "text": " when standing on a block or floating.", + "color": "#cacaca" + } + ] + } + ], + "type": "origins:multiple", + "cooldown_aoe": { + "type": "origins:cooldown", + "cooldown": 30, + "hud_render": { + "should_render": true, + "sprite_location": "origins:textures/gui/community/huang/resource_bar_01.png", + "bar_index": 8 + } + }, + "cooldown_precision": { + "type": "origins:cooldown", + "cooldown": 60, + "hud_render": { + "should_render": true, + "sprite_location": "origins:textures/gui/community/huang/resource_bar_01.png", + "bar_index": 8 + } + }, + "activate_aoe": { + "type": "origins:fire_projectile", + "entity_type": "minecraft:snowball", + "tag": "{Tags:['terraoriginum.ball','terraoriginum.dropBall'],Item:{id:\"minecraft:quartz_block\",Count:1b},Passengers:[{id:\"minecraft:armor_stand\",Small:1b,Invisible:1b,Marker:1b,Tags:['terraoriginum.ballDetect'],cardinal_components:{\"apoli:powers\":{Powers:[{Type:\"terraoriginum:empyrian-powers/dropball_power\",Data:{},Sources:[\"terraoriginum\"]}]}}}]}", + "count": 1, + "interval": 0, + "speed": 0.8, + "divergence": 0.7, + "shooter_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:swing_hand", + "hand": "MAIN_HAND" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run summon minecraft:marker ~ ~ ~ {Tags:['terraoriginum.ballOrigin']}" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run scoreboard players operation @e[type=minecraft:marker,tag=terraoriginum.ballOrigin,sort=nearest,limit=1] terraoriginum.id = @s terraoriginum.id" + }, + { + "type": "origins:if_else_list", + "actions": [ + { + "condition": { + "type": "origins:scoreboard", + "objective": "terraoriginum.isGmer", + "comparison": "==", + "compare_to": 0 + }, + "action": { + "type": "origins:execute_command", + "command": "scoreboard players set @e[type=minecraft:snowball,tag=terraoriginum.ball,sort=nearest,limit=1] terraoriginum.isGmer 1" + } + } + ] + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.witch.throw", + "volume": 1, + "pitch": 0.65 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.firework_rocket.large_blast_far", + "volume": 0.5, + "pitch": 2 + }, + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~1.5 ~ positioned ^ ^ ^1.5 run function terraoriginum:throw_ring_small" + }, + { + "type": "origins:exhaust", + "amount": 0.2 + }, + { + "type": "origins:trigger_cooldown", + "power": "*:*_cooldown_aoe" + } + ] + }, + "projectile_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s run scoreboard players operation @s terraoriginum.id = @p terraoriginum.id" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run scoreboard players operation @e[type=minecraft:armor_stand,tag=terraoriginum.ballDetect,sort=nearest,limit=1] terraoriginum.id = @p terraoriginum.id" + } + ] + }, + "cooldown": 1, + "key": { + "key": "key.origins.primary_active" + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:or", + "conditions": [ + { + "type": "origins:and", + "conditions": [ + { + "type": "origins:on_block", + "inverted": true + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": "==", + "compare_to": 0 + } + ] + }, + { + "type": "origins:and", + "conditions": [ + { + "type": "origins:sneaking" + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": ">", + "compare_to": 0 + } + ] + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_fly_check", + "comparison": ">", + "compare_to": 0 + } + ] + }, + { + "type": "origins:resource", + "resource": "*:*_cooldown_aoe", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:resource", + "resource": "*:*_cooldown_precision", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:food_level", + "comparison": ">", + "compare_to": 6 + } + ] + } + }, + "activate_precision": { + "type": "origins:fire_projectile", + "entity_type": "minecraft:snowball", + "tag": "{NoGravity:1b,Tags:['terraoriginum.ball','terraoriginum.fastBall'],Item:{id:\"minecraft:smooth_quartz\",Count:1b}}", + "count": 1, + "interval": 0, + "speed": 3, + "divergence": 0, + "shooter_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:swing_hand", + "hand": "MAIN_HAND" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run summon minecraft:marker ~ ~ ~ {Tags:['terraoriginum.ballOrigin']}" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run scoreboard players operation @e[type=minecraft:marker,tag=terraoriginum.ballOrigin,sort=nearest,limit=1] terraoriginum.id = @s terraoriginum.id" + }, + { + "type": "origins:if_else_list", + "actions": [ + { + "condition": { + "type": "origins:scoreboard", + "objective": "terraoriginum.isGmer", + "comparison": "==", + "compare_to": 0 + }, + "action": { + "type": "origins:execute_command", + "command": "scoreboard players set @e[type=minecraft:snowball,tag=terraoriginum.ball,sort=nearest,limit=1] terraoriginum.isGmer 1" + } + } + ] + }, + { + "type": "origins:play_sound", + "sound": "minecraft:item.trident.riptide_1", + "volume": 0.12, + "pitch": 2 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.witch.throw", + "volume": 1, + "pitch": 1.3 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.item.pickup", + "volume": 0.2, + "pitch": 0 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.firework_rocket.launch", + "volume": 2, + "pitch": 1.4 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.firework_rocket.large_blast_far", + "volume": 2, + "pitch": 2 + }, + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~1.5 ~ positioned ^ ^ ^0.5 run particle minecraft:flash ~ ~ ~ 0 0 0 0 1 force" + }, + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~1.5 ~ positioned ^ ^ ^1.5 run function terraoriginum:throw_ring" + }, + { + "type": "origins:execute_command", + "command": "execute at @s positioned ~ ~1.5 ~ positioned ^ ^ ^3 run function terraoriginum:throw_ring_small" + }, + { + "type": "origins:exhaust", + "amount": 0.4 + }, + { + "type": "origins:trigger_cooldown", + "power": "*:*_cooldown_precision" + } + ] + }, + "projectile_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s run scoreboard players operation @s terraoriginum.id = @p terraoriginum.id" + }, + { + "type": "origins:execute_command", + "command": "scoreboard players set @s terraoriginum.timer 100" + } + ] + }, + "cooldown": 1, + "key": { + "key": "key.origins.primary_active" + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:or", + "conditions": [ + { + "type": "origins:on_block" + }, + { + "type": "origins:and", + "conditions": [ + { + "type": "origins:sneaking", + "inverted": true + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "comparison": "==", + "compare_to": 1 + } + ] + } + ] + }, + { + "type": "origins:resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_fly_check", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:resource", + "resource": "*:*_cooldown_aoe", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:resource", + "resource": "*:*_cooldown_precision", + "comparison": "==", + "compare_to": 0 + }, + { + "type": "origins:food_level", + "comparison": ">", + "compare_to": 6 + } + ] + } + }, + "effect_aoe": { + "type": "origins:modify_projectile_damage", + "damage_condition": { + "type": "origins:projectile", + "projectile_condition": { + "type": "origins:nbt", + "nbt": "{Tags:['terraoriginum.dropBall']}" + } + }, + "self_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s as @e[type=minecraft:marker,tag=terraoriginum.ballOrigin] if score @s terraoriginum.id = @p terraoriginum.id run tag @s add terraoriginum.confirmedBallOrigin" + }, + { + "type": "origins:execute_command", + "command": "playsound minecraft:entity.arrow.hit_player neutral @s ~ ~ ~ 1 1" + } + ] + }, + "target_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "tag @s add terraoriginum.actor" + }, + { + "type": "origins:execute_command", + "command": "kill @e[type=minecraft:armor_stand,tag=terraoriginum.ballDetect,sort=nearest,limit=1]" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:poof ~ ~ ~ 0.2 0.2 0.2 0.3 20 force" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:explosion ~ ~ ~ 0 0 0 0 1 force" + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.dragon_fireball.explode", + "volume": 0.5, + "pitch": 2 + }, + { + "type": "origins:area_of_effect", + "radius": 3.6, + "bientity_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:target_action", + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "damage @s 0.01 minecraft:generic_kill by @e[tag=terraoriginum.actor,limit=1]" + }, + { + "type": "origins:change_resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "change": -2 + } + ] + } + }, + { + "type": "origins:if_else", + "condition": { + "type": "origins:target_condition", + "condition": { + "type": "origins:command", + "command": "execute if score @s terraoriginum.id = @e[tag=terraoriginum.noBall,limit=1] terraoriginum.id", + "comparison": "==", + "compare_to": 1 + } + }, + "if_action": { + "type": "origins:add_velocity", + "y": 0.8, + "z": 0.2 + }, + "else_action": { + "type": "origins:add_velocity", + "y": 0.4, + "z": 0.3 + } + } + ] + } + }, + { + "type": "origins:execute_command", + "command": "tag @s remove terraoriginum.actor" + }, + { + "type": "origins:execute_command", + "command": "execute store result storage terraoriginum:storage Position.y int 1 run data get entity @s Pos[1]" + }, + { + "type": "origins:execute_command", + "command": "execute as @e[type=minecraft:marker,tag=terraoriginum.confirmedBallOrigin] at @s run function terraoriginum:repos_marker with storage terraoriginum:storage Position" + }, + { + "type": "origins:execute_command", + "command": "damage @s 0.01 minecraft:generic_kill by @e[tag=terraoriginum.confirmedBallOrigin,limit=1]" + }, + { + "type": "origins:area_of_effect", + "include_actor": false, + "radius": 256, + "bientity_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:invert", + "action": { + "type": "origins:add_velocity", + "y": 0.3, + "z": 0.5 + } + }, + { + "type": "origins:target_action", + "action": { + "type": "origins:execute_command", + "command": "kill @s" + } + } + ] + }, + "bientity_condition": { + "type": "origins:target_condition", + "condition": { + "type": "origins:nbt", + "nbt": "{Tags:['terraoriginum.confirmedBallOrigin']}" + } + } + }, + { + "type": "origins:change_resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "change": -2 + } + ] + } + }, + "effect_precision": { + "type": "origins:modify_projectile_damage", + "damage_condition": { + "type": "origins:projectile", + "projectile_condition": { + "type": "origins:nbt", + "nbt": "{Tags:['terraoriginum.fastBall']}" + } + }, + "self_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s as @e[type=minecraft:marker,tag=terraoriginum.ballOrigin] if score @s terraoriginum.id = @p terraoriginum.id run tag @s add terraoriginum.confirmedBallOrigin" + }, + { + "type": "origins:execute_command", + "command": "playsound minecraft:entity.arrow.hit_player neutral @s ~ ~ ~ 1 1" + } + ] + }, + "target_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:explosion ~ ~ ~ 0 0 0 0 1 force" + }, + { + "type": "origins:execute_command", + "command": "execute at @s run particle minecraft:flash ~ ~ ~ 0 0 0 0 1 force" + }, + { + "type": "origins:play_sound", + "sound": "minecraft:entity.firework_rocket.blast", + "volume": 2, + "pitch": 0.7 + }, + { + "type": "origins:execute_command", + "command": "execute store result storage terraoriginum:storage Position.y int 1 run data get entity @s Pos[1]" + }, + { + "type": "origins:execute_command", + "command": "execute as @e[type=minecraft:marker,tag=terraoriginum.confirmedBallOrigin] at @s run function terraoriginum:repos_marker with storage terraoriginum:storage Position" + }, + { + "type": "origins:execute_command", + "command": "damage @s 0.01 minecraft:generic_kill by @e[tag=terraoriginum.confirmedBallOrigin,limit=1]" + }, + { + "type": "origins:area_of_effect", + "include_actor": false, + "radius": 256, + "bientity_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:invert", + "action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:add_velocity", + "y": 0.25, + "z": 2.5 + } + ] + } + }, + { + "type": "origins:target_action", + "action": { + "type": "origins:execute_command", + "command": "kill @s" + } + } + ] + }, + "bientity_condition": { + "type": "origins:target_condition", + "condition": { + "type": "origins:nbt", + "nbt": "{Tags:['terraoriginum.confirmedBallOrigin']}" + } + } + }, + { + "type": "origins:change_resource", + "resource": "terraoriginum:empyrian-powers/lightweight_keys_toggle_check", + "change": -2 + } + ] + } + } +} \ No newline at end of file