From 3c46d500b05538299a6c5b78fd7dd931c34c2a5a Mon Sep 17 00:00:00 2001 From: Pandro Date: Thu, 9 Oct 2025 13:49:16 +0200 Subject: [PATCH] Added fox, gato Edits to Avian & Bat Added power "flammable" to take extra damage by fire (with special effect) Added power "fall_immunity_or_death" which negates fall damage completely until it doesn't (>20 block drop) Added power "fox_jump_height" which boosts jump height by a bit, by now unnecessary though thanks to pehkui commands not using base. Added power "blinding_lights" which will make you blind when exposed to bright lights but only if you're not wearing a helmet. Added power "night_vision" which is toggle-able, drains hunger when used. Could use a rewrite into an "origins:multiple" but good enough for now. Added power "pumpkin_hate" which makes pumpkins and pumpkin wearers invisible to the viewer. Added power "dark_sleep" which allows sleep only within a certain darkness. Added power "standing_invisibility" which is currently unused due to being quite OP. Could use a timer before it activates. Added power "reverse_logic" which is still buggy and needs work. --- datapack/data/feathermc/origins/avian.json | 5 +- datapack/data/feathermc/origins/bat.json | 5 +- datapack/data/feathermc/origins/fox.json | 13 ++++ datapack/data/feathermc/origins/gato.json | 16 +++++ datapack/data/feathermc/origins/protogen.json | 10 ++++ .../feathermc/powers/blinding_lights.json | 37 ++++++++++++ .../data/feathermc/powers/dark_sleep.json | 10 ++++ .../powers/fall_immunity_or_death.json | 14 +++++ datapack/data/feathermc/powers/flammable.json | 59 +++++++++++++++++++ .../feathermc/powers/fox_jump_height.json | 10 ++++ datapack/data/feathermc/powers/fox_size.json | 23 ++++++++ .../hunger_when_night_vision_drain.json | 11 ++++ .../data/feathermc/powers/night_vision.json | 11 ++++ .../powers/night_vision_concentrate.json | 15 +++++ .../night_vision_concentrate_callback.json | 17 ++++++ .../feathermc/powers/night_vision_drain.json | 29 +++++++++ .../data/feathermc/powers/pumpkin_hate.json | 40 +++++++++++++ .../data/feathermc/powers/reverse_logic.json | 27 +++++++++ .../powers/standing_invisibility.json | 11 ++++ .../data/origins/origin_layers/origin.json | 5 +- 20 files changed, 365 insertions(+), 3 deletions(-) create mode 100644 datapack/data/feathermc/origins/fox.json create mode 100644 datapack/data/feathermc/origins/gato.json create mode 100644 datapack/data/feathermc/origins/protogen.json create mode 100644 datapack/data/feathermc/powers/blinding_lights.json create mode 100644 datapack/data/feathermc/powers/dark_sleep.json create mode 100644 datapack/data/feathermc/powers/fall_immunity_or_death.json create mode 100644 datapack/data/feathermc/powers/flammable.json create mode 100644 datapack/data/feathermc/powers/fox_jump_height.json create mode 100644 datapack/data/feathermc/powers/fox_size.json create mode 100644 datapack/data/feathermc/powers/hunger_when_night_vision_drain.json create mode 100644 datapack/data/feathermc/powers/night_vision.json create mode 100644 datapack/data/feathermc/powers/night_vision_concentrate.json create mode 100644 datapack/data/feathermc/powers/night_vision_concentrate_callback.json create mode 100644 datapack/data/feathermc/powers/night_vision_drain.json create mode 100644 datapack/data/feathermc/powers/pumpkin_hate.json create mode 100644 datapack/data/feathermc/powers/reverse_logic.json create mode 100644 datapack/data/feathermc/powers/standing_invisibility.json diff --git a/datapack/data/feathermc/origins/avian.json b/datapack/data/feathermc/origins/avian.json index 5bca6fb..5d79ca9 100644 --- a/datapack/data/feathermc/origins/avian.json +++ b/datapack/data/feathermc/origins/avian.json @@ -3,7 +3,10 @@ "description": "A feathered creature that prefers to live up high, is lightweight and can glide.", "powers": [ "feathermc:frail_flight", - "feathermc:armor_slow" + "feathermc:armor_slow", + "origins:lay_eggs", + "origins:fresh_air", + "origins:sprint_jump" ], "order": 0, "impact": 2 diff --git a/datapack/data/feathermc/origins/bat.json b/datapack/data/feathermc/origins/bat.json index 9d3984c..0681b3e 100644 --- a/datapack/data/feathermc/origins/bat.json +++ b/datapack/data/feathermc/origins/bat.json @@ -3,7 +3,10 @@ "description": "A winged creature that prefers to stay in caves during the day. Adapted to low or nolight it can have difficulties dealing with day light.", "powers": [ "feathermc:frail_flight", - "feathermc:armor_slow" + "feathermc:armor_slow", + "feathermc:dark_sleep", + "feathermc:blinding_lights", + "feathermc:night_vision" ], "order": 1, "impact": 2 diff --git a/datapack/data/feathermc/origins/fox.json b/datapack/data/feathermc/origins/fox.json new file mode 100644 index 0000000..d20e915 --- /dev/null +++ b/datapack/data/feathermc/origins/fox.json @@ -0,0 +1,13 @@ +{ + "name": "Fox", + "description": "A vulpine creature with high-energy and a talent for mischief. Tiny and speedy!", + "powers": [ + "origins:sprint_jump", + "origins:nine_lives", + "origins:more_exhaustion", + "feathermc:fox_size", + "feathermc:flammable" + ], + "order": 3, + "impact": 2 +} diff --git a/datapack/data/feathermc/origins/gato.json b/datapack/data/feathermc/origins/gato.json new file mode 100644 index 0000000..09f2891 --- /dev/null +++ b/datapack/data/feathermc/origins/gato.json @@ -0,0 +1,16 @@ +{ + "name": "El Gato", + "description": "A feline creature that excells in sneaking, jumps and agility.", + "powers": [ + "origins:sprint_jump", + "origins:nine_lives", + "feathermc:fall_immunity_or_death", + "feathermc:night_vision_drain", + "feathermc:night_vision_concentrate", + "feathermc:hunger_when_night_vision_drain", + "origins:velvet_paws", + "origins:scare_creepers" + ], + "order": 3, + "impact": 2 +} diff --git a/datapack/data/feathermc/origins/protogen.json b/datapack/data/feathermc/origins/protogen.json new file mode 100644 index 0000000..92c66c8 --- /dev/null +++ b/datapack/data/feathermc/origins/protogen.json @@ -0,0 +1,10 @@ +{ + "name": "Protogen", + "description": "An artificial creature designed to adapt to its surroundings.", + "powers": [ + "feathermc:pumpkin_hate", + "feathermc:reverse_logic" + ], + "order": 9, + "impact": 2 +} diff --git a/datapack/data/feathermc/powers/blinding_lights.json b/datapack/data/feathermc/powers/blinding_lights.json new file mode 100644 index 0000000..eaf8dfa --- /dev/null +++ b/datapack/data/feathermc/powers/blinding_lights.json @@ -0,0 +1,37 @@ +{ + "type": "origins:stacking_status_effect", + "min_stacks": 0, + "max_stacks": 8, + "duration_per_stack": 35, + "tick_rate": 100, + "effects": [ + { + "id": "minecraft:blindness", + "is_ambient": true, + "show_particles": false, + "show_icon": false + } + ], + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:brightness", + "comparison": ">=", + "compare_to": 0.5 + }, + { + "type": "origins:equipped_item", + "inverted": true, + "equipment_slot": "head", + "item_condition": { + "type": "origins:armor_value", + "comparison": ">", + "compare_to": 0 + } + } + ] + }, + "name": "Blinded by the Lights", + "description": "Being in too much light blinds you. Consider wearing something on your head." +} diff --git a/datapack/data/feathermc/powers/dark_sleep.json b/datapack/data/feathermc/powers/dark_sleep.json new file mode 100644 index 0000000..80886d3 --- /dev/null +++ b/datapack/data/feathermc/powers/dark_sleep.json @@ -0,0 +1,10 @@ +{ + "type": "origins:prevent_sleep", + "condition": { + "type": "origins:brightness", + "comparison": ">=", + "compare_to": 0.1 + }, + "name": "Dark Slumber", + "description": "Adapted to dark environments you're uncomfortable in the light. You can only sleep in dark environments." +} diff --git a/datapack/data/feathermc/powers/fall_immunity_or_death.json b/datapack/data/feathermc/powers/fall_immunity_or_death.json new file mode 100644 index 0000000..4c9a1f9 --- /dev/null +++ b/datapack/data/feathermc/powers/fall_immunity_or_death.json @@ -0,0 +1,14 @@ +{ + "type": "origins:invulnerability", + "name": "Falling on your paws", + "description": "You always land on your paws. That can't save you from too much height though.", + "condition": { + "type": "origins:fall_distance", + "comparison": "<=", + "compare_to": 10 + }, + "damage_condition": { + "type": "origins:in_tag", + "tag": "minecraft:is_fall" + } +} diff --git a/datapack/data/feathermc/powers/flammable.json b/datapack/data/feathermc/powers/flammable.json new file mode 100644 index 0000000..ce2f03f --- /dev/null +++ b/datapack/data/feathermc/powers/flammable.json @@ -0,0 +1,59 @@ +{ + "type": "origins:multiple", + "name": "Flammable", + "description": "Your fluffy fur turns out to be very flammable! Better not catch fire!", + "flammable_effect": { + "type": "origins:action_when_damage_taken", + "cooldown": 20, + "damage_condition": { + "type": "origins:fire" + }, + "entity_action": { + "type": "origins:if_else", + "condition": { + "type": "origins:on_fire", + "inverted": true + }, + "if_action": { + "type": "origins:and", + "actions": [ + { + "type": "origins:set_on_fire", + "duration": 10 + }, + { + "type": "origins:play_sound", + "sound": "minecraft:block.fire.extinguish", + "category": "players", + "pitch": 0.6, + "volume": 0.6 + }, + { + "type": "origins:spawn_particles", + "particle": "minecraft:smoke", + "count": 25, + "offset_y": 0.5, + "speed": 0.2, + "spread": { + "x": 0.35, + "y": 0.45, + "z": 0.35 + } + } + ] + } + } + }, + "extra_fire_dmg": { + "type": "origins:action_when_damage_taken", + "damage_condition": { + "type": "origins:in_tag", + "tag": "minecraft:is_fire" + }, + "entity_action": { + "type": "origins:damage", + "damage_type": "minecraft:on_fire", + "amount": 4 + } + } +} diff --git a/datapack/data/feathermc/powers/fox_jump_height.json b/datapack/data/feathermc/powers/fox_jump_height.json new file mode 100644 index 0000000..89089a5 --- /dev/null +++ b/datapack/data/feathermc/powers/fox_jump_height.json @@ -0,0 +1,10 @@ +{ + "type": "origins:attribute", + "hidden": true, + "modifier": { + "id": "small_size_compensation", + "attribute": "minecraft:generic.jump_strength", + "amount": 0.1, + "operation": "add_value" + } +} diff --git a/datapack/data/feathermc/powers/fox_size.json b/datapack/data/feathermc/powers/fox_size.json new file mode 100644 index 0000000..99fc9ef --- /dev/null +++ b/datapack/data/feathermc/powers/fox_size.json @@ -0,0 +1,23 @@ +{ + "type": "origins:action_on_callback", + "name": "Fox sized", + "description": "You're small!", + "entity_chosen_when_orb": true, + "entity_action_chosen": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "scale set pehkui:height 0.75 @s" + }, + { + "type": "origins:execute_command", + "command": "scale set pehkui:width 0.75 @s" + } + ] + }, + "entity_action_lost": { + "type": "origins:execute_command", + "command": "scale reset @s" + } +} diff --git a/datapack/data/feathermc/powers/hunger_when_night_vision_drain.json b/datapack/data/feathermc/powers/hunger_when_night_vision_drain.json new file mode 100644 index 0000000..fce2c8b --- /dev/null +++ b/datapack/data/feathermc/powers/hunger_when_night_vision_drain.json @@ -0,0 +1,11 @@ +{ + "type": "origins:exhaust", + "hidden": true, + "interval": 20, + "exhaustion": 0.812, + "condition": { + "type": "origins:power_active", + "power": "feathermc:night_vision_drain" + } +} + diff --git a/datapack/data/feathermc/powers/night_vision.json b/datapack/data/feathermc/powers/night_vision.json new file mode 100644 index 0000000..678ecbc --- /dev/null +++ b/datapack/data/feathermc/powers/night_vision.json @@ -0,0 +1,11 @@ +{ + "type": "origins:night_vision", + "strength": 0.5, + "name": "Darkvision", + "description": "You can see in the dark. Somewhat.", + "condition": { + "type": "origins:brightness", + "comparison": "<=", + "compare_to": 0.3 + } +} diff --git a/datapack/data/feathermc/powers/night_vision_concentrate.json b/datapack/data/feathermc/powers/night_vision_concentrate.json new file mode 100644 index 0000000..cfd180a --- /dev/null +++ b/datapack/data/feathermc/powers/night_vision_concentrate.json @@ -0,0 +1,15 @@ +{ + "name": "Night Vision", + "description": "Able to see in the dark at will. The effort does make you hungry more quickly though and requires certain level of hunger to be used!", + "type": "origins:toggle", + "key": { + "key": "key.origins.primary_active", + "continuous": false + }, + "retain_state": false, + "condition": { + "type": "apoli:food_level", + "comparison": ">", + "compare_to": 6 + } +} diff --git a/datapack/data/feathermc/powers/night_vision_concentrate_callback.json b/datapack/data/feathermc/powers/night_vision_concentrate_callback.json new file mode 100644 index 0000000..3282e1d --- /dev/null +++ b/datapack/data/feathermc/powers/night_vision_concentrate_callback.json @@ -0,0 +1,17 @@ +{ + "type": "origins:action_on_callback", + "entity_action_respawned": { + "type": "origins:if_else", + "condition": { + "type": "origins:power_active", + "power": "feathermc:night_vision_concentrate", + "inverted": true + }, + "if_action": { + "type": "origins:toggle", + "power": "feathermc:night_vision_concentrate" + } + }, + "hidden": true +} + diff --git a/datapack/data/feathermc/powers/night_vision_drain.json b/datapack/data/feathermc/powers/night_vision_drain.json new file mode 100644 index 0000000..4a6f6d6 --- /dev/null +++ b/datapack/data/feathermc/powers/night_vision_drain.json @@ -0,0 +1,29 @@ +{ + "hidden": true, + "type": "origins:night_vision", + "retain_state": false, + "strength": 1.0, + "key": { + "key": "key.origins.primary_active", + "continuous": false + }, + "condition": { + "type": "origins:and", + "conditions": [ + { + "type": "origins:submerged_in", + "fluid": "minecraft:water", + "inverted": true + }, + { + "type": "apoli:food_level", + "comparison": ">", + "compare_to": 6 + }, + { + "type": "origins:power_active", + "power": "feathermc:night_vision_concentrate" + } + ] + } +} diff --git a/datapack/data/feathermc/powers/pumpkin_hate.json b/datapack/data/feathermc/powers/pumpkin_hate.json new file mode 100644 index 0000000..12ad9b4 --- /dev/null +++ b/datapack/data/feathermc/powers/pumpkin_hate.json @@ -0,0 +1,40 @@ +{ + "type": "origins:multiple", + "name": "G-g-glitchy", + "description": "Your visual processor is a prototype. Some objects are just beyond your comprehension", + "prevent_eating": { + "type": "origins:prevent_item_use", + "item_condition": { + "type": "origins:all_of", + "conditions": [ + { + "type": "origins:food" + }, + { + "type": "origins:ingredient", + "ingredient": { + "tag": "origins:pumpkin_like/food" + } + } + ] + } + }, + "prevent_seeing": { + "type": "origins:prevent_entity_render", + "bientity_condition": { + "type": "apoli:equal", + "inverted": true + }, + "entity_condition": { + "type": "origins:equipped_item", + "equipment_slot": "head", + "item_condition": { + "type": "origins:ingredient", + "ingredient": { + "tag": "origins:pumpkin_like/equipment" + } + } + } + } +} + diff --git a/datapack/data/feathermc/powers/reverse_logic.json b/datapack/data/feathermc/powers/reverse_logic.json new file mode 100644 index 0000000..bd6ee19 --- /dev/null +++ b/datapack/data/feathermc/powers/reverse_logic.json @@ -0,0 +1,27 @@ +{ + "type": "origins:multiple", + "toggle": { + "type": "origins:toggle", + "active_by_default": false, + "key": { + "key": "key.origins.primary_active" + } + }, + "reversed_velocity": { + "type": "origins:modify_velocity", + "modifier": { + "id": "reverse_logic_mod", + "amount": -2, + "operation": "multiply_base_multiplicative" + }, + "axes": [ + "x", + "y", + "z" + ], + "condition": { + "type": "origins:power_active", + "power": "*:toggle" + } + } +} diff --git a/datapack/data/feathermc/powers/standing_invisibility.json b/datapack/data/feathermc/powers/standing_invisibility.json new file mode 100644 index 0000000..8d5d602 --- /dev/null +++ b/datapack/data/feathermc/powers/standing_invisibility.json @@ -0,0 +1,11 @@ +{ + "type": "origins:invisibility", + "name": "Blends in easily", + "description": "Standing still for a prolonged amount of time allows you to blend into your surroundings and evade prying eyes.", + "render_armor": true, + "render_outline": true, + "condition": { + "type": "origins:moving", + "inverted": true + } +} diff --git a/datapack/data/origins/origin_layers/origin.json b/datapack/data/origins/origin_layers/origin.json index 599a4be..2f3b39d 100644 --- a/datapack/data/origins/origin_layers/origin.json +++ b/datapack/data/origins/origin_layers/origin.json @@ -2,6 +2,9 @@ "replace": false, "origins": [ "feathermc:avian", - "feathermc:bat" + "feathermc:bat", + "feathermc:gato", + "feathermc:fox", + "feathermc:protogen" ] }