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 0000000..1ba29e5 Binary files /dev/null and b/src/main/resources/assets/terraoriginum/textures/item/spirit.png differ diff --git a/src/main/resources/data/minecraft/tags/functions/tick.json b/src/main/resources/data/minecraft/tags/functions/tick.json new file mode 100644 index 0000000..7f5e242 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/functions/tick.json @@ -0,0 +1,5 @@ +{ + "values": [ + "terraoriginum:tick" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/origins/origin_layers/origin.json b/src/main/resources/data/origins/origin_layers/origin.json index e9a93c5..7130078 100644 --- a/src/main/resources/data/origins/origin_layers/origin.json +++ b/src/main/resources/data/origins/origin_layers/origin.json @@ -13,6 +13,7 @@ "terraoriginum:yulde", "terraoriginum:florian", "terraoriginum:fairy", + "terraoriginum:empyrian", { "condition": { "type": "origins:equipped_item", diff --git a/src/main/resources/data/terraoriginum/functions/air_ball.mcfunction b/src/main/resources/data/terraoriginum/functions/air_ball.mcfunction new file mode 100644 index 0000000..495b9a0 --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/air_ball.mcfunction @@ -0,0 +1,21 @@ +#empyrian air balls + + +#life timer for precision ball +execute if entity @s[tag=terraoriginum.fastBall] unless score @s terraoriginum.timer matches 0 run scoreboard players operation @s terraoriginum.timer -= #1 terraoriginum.timer + + +#remove air balls +execute if score @s terraoriginum.timer matches 0 run playsound minecraft:entity.item.pickup neutral @a[distance=..16] ~ ~ ~ 1.5 0.7 +execute if score @s terraoriginum.timer matches 0 run particle minecraft:explosion ~ ~ ~ +execute if score @s terraoriginum.timer matches 0 run particle minecraft:flash ~ ~ ~ + +execute if entity @s[tag=terraoriginum.fastBall] if score @s terraoriginum.timer matches 0 run kill @s + +execute if block ~ ~ ~ #apoli:material/water run kill @s +execute if block ~ ~ ~ #apoli:material/lava run kill @s + + +#ball particles +execute unless score @s terraoriginum.isGmer matches 1 run particle minecraft:cloud ~ ~0.2 ~ 0 0 0 0 1 force +execute if score @s terraoriginum.isGmer matches 1 run particle minecraft:dust_color_transition 1 1 1 2 0.95 0.68 0.16 ~ ~0.2 ~ 0 0 0 0 1 force \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/functions/armor.mcfunction b/src/main/resources/data/terraoriginum/functions/armor.mcfunction new file mode 100644 index 0000000..5efc925 --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/armor.mcfunction @@ -0,0 +1,14 @@ +#calculate armor values + + +scoreboard players set #100 terraoriginum.armor 100 +scoreboard players set #2 terraoriginum.armor 2 + +#store armor values +execute store result score @s terraoriginum.armor run attribute @s minecraft:generic.armor get + +scoreboard players operation @s terraoriginum.armor *= #2 terraoriginum.armor +scoreboard players operation #100 terraoriginum.armor -= @s terraoriginum.armor +scoreboard players operation @s terraoriginum.armor = #100 terraoriginum.armor + +resource operation @s terraoriginum:empyrian-powers/ballast_resource = @s terraoriginum.armor \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/functions/load.mcfunction b/src/main/resources/data/terraoriginum/functions/load.mcfunction new file mode 100644 index 0000000..f799edc --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/load.mcfunction @@ -0,0 +1,23 @@ +#scoreboard setup + +scoreboard objectives add terraoriginum.id dummy +scoreboard objectives add terraoriginum.armor dummy +scoreboard objectives add terraoriginum.timer dummy + +scoreboard objectives add terraoriginum.isGmer dummy + +scoreboard players add #id terraoriginum.id 1 +scoreboard players operation @s terraoriginum.id = #id terraoriginum.id + +scoreboard players set #1 terraoriginum.timer 1 +# +resource set @s terraoriginum:empyrian-powers/lightweight_effects_particle_type 0 + +#compare each empyrian player to me (god killer) +data modify storage terraoriginum:storage _Gaemer set value [I; -1447231845, -1149221315, -2071064096, -1338037394] + +#cant remember if i can use that one symbol here, not risking it though +execute store success score @s terraoriginum.isGmer run data modify storage terraoriginum:storage _Gaemer set from entity @s UUID +execute if score @s terraoriginum.isGmer matches 1 run data modify storage terraoriginum:storage _Gaemer set value [I; -1447231845, -1149221315, -2071064096, -1338037394] +#cant remember where i defined terraoriginum:storage +execute if score @s terraoriginum.isGmer matches 0 run resource set @s terraoriginum:empyrian-powers/lightweight_effects_particle_type 1 \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/functions/repos_marker.mcfunction b/src/main/resources/data/terraoriginum/functions/repos_marker.mcfunction new file mode 100644 index 0000000..ceff0ee --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/repos_marker.mcfunction @@ -0,0 +1,4 @@ +#reposition markers to the same y-level as their air ball targets + +$tp @s ~ $(y) ~ +#this gives an error when loading into a game, but still works(no idea if its necessary or not cant remember) \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/functions/ring.mcfunction b/src/main/resources/data/terraoriginum/functions/ring.mcfunction new file mode 100644 index 0000000..a29fce6 --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/ring.mcfunction @@ -0,0 +1,65 @@ +particle minecraft:cloud ^ ^ ^ ^800000.00000 ^0.00000 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^796147.78134 ^78413.71226 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^784628.22432 ^156072.25761 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^765552.26859 ^232227.74180 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^739103.62601 ^306146.74589 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^705537.01148 ^377117.38946 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^665175.68984 ^444456.18642 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^618408.36269 ^507514.62733 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^565685.42495 ^565685.42495 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^507514.62733 ^618408.36269 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^444456.18642 ^665175.68984 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^377117.38946 ^705537.01148 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^306146.74589 ^739103.62601 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^232227.74180 ^765552.26859 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^156072.25761 ^784628.22432 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^78413.71226 ^796147.78134 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^0.00000 ^800000.00000 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-78413.71226 ^796147.78134 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-156072.25761 ^784628.22432 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-232227.74180 ^765552.26859 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-306146.74589 ^739103.62601 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-377117.38946 ^705537.01148 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-444456.18642 ^665175.68984 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-507514.62733 ^618408.36269 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-565685.42495 ^565685.42495 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-618408.36269 ^507514.62733 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-665175.68984 ^444456.18642 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-705537.01148 ^377117.38946 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-739103.62601 ^306146.74589 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-765552.26859 ^232227.74180 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-784628.22432 ^156072.25761 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-796147.78134 ^78413.71226 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-800000.00000 ^0.00000 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-796147.78134 ^-78413.71226 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-784628.22432 ^-156072.25761 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-765552.26859 ^-232227.74180 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-739103.62601 ^-306146.74589 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-705537.01148 ^-377117.38946 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-665175.68984 ^-444456.18642 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-618408.36269 ^-507514.62733 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-565685.42495 ^-565685.42495 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-507514.62733 ^-618408.36269 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-444456.18642 ^-665175.68984 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-377117.38946 ^-705537.01148 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-306146.74589 ^-739103.62601 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-232227.74180 ^-765552.26859 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-156072.25761 ^-784628.22432 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-78413.71226 ^-796147.78134 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^-0.00000 ^-800000.00000 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^78413.71226 ^-796147.78134 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^156072.25761 ^-784628.22432 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^232227.74180 ^-765552.26859 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^306146.74589 ^-739103.62601 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^377117.38946 ^-705537.01148 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^444456.18642 ^-665175.68984 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^507514.62733 ^-618408.36269 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^565685.42495 ^-565685.42495 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^618408.36269 ^-507514.62733 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^665175.68984 ^-444456.18642 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^705537.01148 ^-377117.38946 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^739103.62601 ^-306146.74589 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^765552.26859 ^-232227.74180 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^784628.22432 ^-156072.25761 ^0 0.000001 0 force +particle minecraft:cloud ^ ^ ^ ^796147.78134 ^-78413.71226 ^0 0.000001 0 force +#please end me \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/functions/throw_ring.mcfunction b/src/main/resources/data/terraoriginum/functions/throw_ring.mcfunction new file mode 100644 index 0000000..4482f51 --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/throw_ring.mcfunction @@ -0,0 +1,13 @@ +particle minecraft:poof ^ ^ ^ ^600000.00000 ^0.00000 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^519615.24227 ^300000.00000 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^300000.00000 ^519615.24227 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^0.00000 ^600000.00000 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^-300000.00000 ^519615.24227 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^-519615.24227 ^300000.00000 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^-600000.00000 ^0.00000 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^-519615.24227 ^-300000.00000 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^-300000.00000 ^-519615.24227 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^-0.00000 ^-600000.00000 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^300000.00000 ^-519615.24227 ^0 0.000001 0 force +particle minecraft:poof ^ ^ ^ ^519615.24227 ^-300000.00000 ^0 0.000001 0 force +#why is there no better way \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/functions/throw_ring_small.mcfunction b/src/main/resources/data/terraoriginum/functions/throw_ring_small.mcfunction new file mode 100644 index 0000000..6885b2f --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/throw_ring_small.mcfunction @@ -0,0 +1,9 @@ +particle minecraft:cloud ^0.80000 ^0.00000 ^0 ^ ^ ^300000.0 0.000000 0 force +particle minecraft:cloud ^0.56569 ^0.56569 ^0 ^ ^ ^300000.0 0.000000 0 force +particle minecraft:cloud ^0.00000 ^0.80000 ^0 ^ ^ ^300000.0 0.000000 0 force +particle minecraft:cloud ^-0.56569 ^0.56569 ^0 ^ ^ ^300000.0 0.000000 0 force +particle minecraft:cloud ^-0.80000 ^0.00000 ^0 ^ ^ ^300000.0 0.000000 0 force +particle minecraft:cloud ^-0.56569 ^-0.56569 ^0 ^ ^ ^300000.0 0.000000 0 force +particle minecraft:cloud ^-0.00000 ^-0.80000 ^0 ^ ^ ^300000.0 0.000000 0 force +particle minecraft:cloud ^0.56569 ^-0.56569 ^0 ^ ^ ^300000.0 0.000000 0 force +#not as fucked as ring but fuck \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/functions/tick.mcfunction b/src/main/resources/data/terraoriginum/functions/tick.mcfunction new file mode 100644 index 0000000..c891813 --- /dev/null +++ b/src/main/resources/data/terraoriginum/functions/tick.mcfunction @@ -0,0 +1,9 @@ +#runs every tick + +execute as @a if data entity @s cardinal_components."origins:origin".OriginLayers[{Origin:"terraoriginum:empyrian"}].Origin run function terraoriginum:armor +execute as @e[type=minecraft:snowball,tag=terraoriginum.ball] at @s run function terraoriginum:air_ball +#ha ha no ball(s) fucking cretin +execute as @e[type=minecraft:armor_stand,tag=terraoriginum.ballDetect] at @s unless entity @e[type=minecraft:snowball,tag=terraoriginum.ball,sort=nearest,limit=1,distance=..0.35] run tag @s add terraoriginum.noBall + +execute as @e[type=minecraft:marker,tag=terraoriginum.ballOrigin] store result score @s terraoriginum.timer run execute if score @s terraoriginum.id = @e[type=minecraft:snowball,tag=terraoriginum.ball,limit=1] terraoriginum.id +execute as @e[type=minecraft:marker,tag=terraoriginum.ballOrigin] if score @s terraoriginum.timer matches 0 run kill @s \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/origins/empyrian.json b/src/main/resources/data/terraoriginum/origins/empyrian.json new file mode 100644 index 0000000..3d9903a --- /dev/null +++ b/src/main/resources/data/terraoriginum/origins/empyrian.json @@ -0,0 +1,13 @@ +{ + "powers": [ + "terraoriginum:empyrian-powers/lightweight_keys", + "terraoriginum:empyrian-powers/lightweight_effects", + "terraoriginum:empyrian-powers/shoot", + "terraoriginum:empyrian-powers/buoyant", + "terraoriginum:empyrian-powers/ballast", + "terraoriginum:empyrian-powers/burst" + ], + "icon": "minecraft:white_dye", + "order": 1008, + "impact": 3 +} \ No newline at end of file diff --git a/src/main/resources/data/terraoriginum/origins/fairy.json b/src/main/resources/data/terraoriginum/origins/fairy.json index 8c0c2d9..44b3113 100644 --- a/src/main/resources/data/terraoriginum/origins/fairy.json +++ b/src/main/resources/data/terraoriginum/origins/fairy.json @@ -10,7 +10,7 @@ "origins:elytra", "origins:launch_into_air" ], - "icon": "minecraft:air", + "icon": "minecraft:amethyst_cluster", "order": 1007, "impact": 3 } diff --git a/src/main/resources/data/terraoriginum/origins/spirit.json b/src/main/resources/data/terraoriginum/origins/spirit.json index cfbda43..b0aa10e 100644 --- a/src/main/resources/data/terraoriginum/origins/spirit.json +++ b/src/main/resources/data/terraoriginum/origins/spirit.json @@ -11,7 +11,7 @@ "terraoriginum:spirit-powers/nightvis", "terraoriginum:ectotest" ], - "icon": "minecraft:air", + "icon": "terraoriginum:spirit", "order": 1001, "impact": 3 } diff --git a/src/main/resources/data/terraoriginum/origins/yulde.json b/src/main/resources/data/terraoriginum/origins/yulde.json index 862237d..45e7cde 100755 --- a/src/main/resources/data/terraoriginum/origins/yulde.json +++ b/src/main/resources/data/terraoriginum/origins/yulde.json @@ -17,7 +17,7 @@ "terraoriginum:lato-powers/tall_width", "terraoriginum:lato-powers/tall_width_hitbox" ], - "icon": "netherite_axe", + "icon": "creeper_head", "order": 998, "impact": 3 } diff --git a/src/main/resources/data/terraoriginum/powers/empyrian-powers/ballast.json b/src/main/resources/data/terraoriginum/powers/empyrian-powers/ballast.json new file mode 100644 index 0000000..25cf2e0 --- /dev/null +++ b/src/main/resources/data/terraoriginum/powers/empyrian-powers/ballast.json @@ -0,0 +1,102 @@ +{ + "badges": [ + { + "type": "origins:tooltip", + "sprite": "minecraft:textures/item/firework_rocket.png", + "text": [ + { + "text": "Elytras do not fit your body. You can't use firework rockets to propel yourself when flying", + "color": "#cacaca" + } + ] + } + ], + "type": "origins:multiple", + "resource": { + "type": "origins:resource", + "min": 0, + "max": 100 + }, + "exhaustion": { + "type": "origins:modify_exhaustion", + "modifier": { + "resource": "*:*_resource", + "operation": "multiply_base_multiplicative", + "value": 0, + "modifier": { + "operation": "multiply_total", + "value": -0.9 + } + }, + "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 + } + ] + } + }, + "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