diff --git a/src/main/java/com/smithy/faithful/registry/ModPowers.java b/src/main/java/com/smithy/faithful/registry/ModPowers.java index 84392bd..bfec38e 100644 --- a/src/main/java/com/smithy/faithful/registry/ModPowers.java +++ b/src/main/java/com/smithy/faithful/registry/ModPowers.java @@ -13,14 +13,19 @@ import net.minecraft.util.Identifier; public class ModPowers { - public static final PowerFactory CAN_WALK_ON_POWDER_SNOW = new PowerFactory<>( new Identifier(Faithful.MOD_ID, "can_walk_on_powder_snow"), new SerializableData(), data -> (type, entity) -> new CanStandOnPowderSnow(type, entity)).allowCondition(); - public static final PowerFactory PREVENT_BLOCK_SLOWNESS = new PowerFactory<>(new Identifier(Faithful.MOD_ID, "prevent_block_slowness"), new SerializableData(), data -> (type, entity) -> new PreventBlockSlowness(type, entity)).allowCondition(); + public static final PowerFactory CAN_WALK_ON_POWDER_SNOW = new PowerFactory<>( + new Identifier(Faithful.MOD_ID, "can_walk_on_powder_snow"), new SerializableData(), + data -> (type, entity) -> new CanStandOnPowderSnow(type, entity)).allowCondition(); + public static final PowerFactory PREVENT_BLOCK_SLOWNESS = new PowerFactory<>( + new Identifier(Faithful.MOD_ID, "prevent_block_slowness"), new SerializableData(), + data -> (type, entity) -> new PreventBlockSlowness(type, entity)).allowCondition(); public static final PowerFactory WINGS_POWER = WingsPower.createFactory().allowCondition(); - public static void register() { - Registry.register(ApoliRegistries.POWER_FACTORY, CAN_WALK_ON_POWDER_SNOW.getSerializerId(), CAN_WALK_ON_POWDER_SNOW); - Registry.register(ApoliRegistries.POWER_FACTORY, PREVENT_BLOCK_SLOWNESS.getSerializerId(), PREVENT_BLOCK_SLOWNESS); + Registry.register(ApoliRegistries.POWER_FACTORY, CAN_WALK_ON_POWDER_SNOW.getSerializerId(), + CAN_WALK_ON_POWDER_SNOW); + Registry.register(ApoliRegistries.POWER_FACTORY, PREVENT_BLOCK_SLOWNESS.getSerializerId(), + PREVENT_BLOCK_SLOWNESS); Registry.register(ApoliRegistries.POWER_FACTORY, WingsPower.POWER_TYPE_ID, WINGS_POWER); } diff --git a/src/main/resources/assets/faithful/lang/en_us.json b/src/main/resources/assets/faithful/lang/en_us.json index 060f7e4..0134bac 100644 --- a/src/main/resources/assets/faithful/lang/en_us.json +++ b/src/main/resources/assets/faithful/lang/en_us.json @@ -35,7 +35,7 @@ "origin.faithful.kitsune.name": "Kitsune", "origin.faithful.kitsune.description": "Kitsune are small creatures, due to their foxlike origins.", "power.faithful.kitsune-powers/light.name": "Light", - "power.faithful.kitsune-powers/light.description": "Kitsune do not sink in powder snow, and do not alert skulk", + "power.faithful.kitsune-powers/light.description": "Kitsune do not sink in powder snow, and do not alert skulk.", "power.faithful.kitsune-powers/small.name": "Small", "power.faithful.kitsune-powers/small.description": "Kitsune are small creatures, due to their foxlike origins.", "power.faithful.kitsune-powers/swift.name": "Swift", @@ -49,5 +49,31 @@ "power.faithful.orc-powers/strength.name": "Orcish Strength", "power.faithful.orc-powers/strength.description": "Orcs do extra damage when attacking.", "power.faithful.orc-powers/orc_skin.name": "Orc Skin", - "power.faithful.orc-powers/orc_skin.description": "Orcs skin grants them a bit of armour." + "power.faithful.orc-powers/orc_skin.description": "Orcs skin grants them a bit of armour.", + + //-----goblin-----// + "origin.faithful.goblin.name": "Goblin", + "origin.faithful.goblin.description": "A diminutive and grotesque creature of mischief.", + "power.faithful.goblin-powers/quick.name": "Quick", + "power.faithful.goblin-powers/quick.description": "Goblins are quite fleet-footed for their short stature.", + "power.faithful.goblin-powers/short.name": "Short", + "power.faithful.goblin-powers/short.description": "Goblins are quite short.", + "power.faithful.goblin-powers/persuasive.name": "Persuasive", + "power.faithful.goblin-powers/persuasive.description": "Goblins are surprisingly good at.", + + //-----harpy-----// + "origin.faithful.harpy.name": "Harpy", + "origin.faithful.harpy.description": "Strange half-bird half-human creatures of spiritual origin.", + "power.faithful.harpy-powers/birdlike.name": "Birdlike Steps", + "power.faithful.harpy-powers/birdlike.description": "Like birds, harpies somehow do not sink in snow.", + "power.faithful.harpy-powers/claws.name": "Claws", + "power.faithful.harpy-powers/claws.description": "Harpies do extra damage thanks to their claws.", + "power.faithful.harpy-powers/winged.name": "Winged", + "power.faithful.harpy-powers/winged.description": "Harpies have wings due to their half-bird nature.", + + //-----merfolk-----// + "origin.faithful.merfolk.name": "Merfolk", + "origin.faithful.merfolk.description": "Mythical creatures of the ocean.", + "power.faithful.merfolk-powers/gills.name": "Gills", + "power.faithful.merfolk-powers/gills.description": "Merfolk can breathe underwater, but are slowed on land." } \ No newline at end of file diff --git a/src/main/resources/data/faithful/loot_tables/dwarf_mining.json b/src/main/resources/data/faithful/loot_tables/dwarf_mining.json index 04297ce..957d0f8 100644 --- a/src/main/resources/data/faithful/loot_tables/dwarf_mining.json +++ b/src/main/resources/data/faithful/loot_tables/dwarf_mining.json @@ -16,7 +16,7 @@ "conditions": [ { "condition": "minecraft:random_chance", - "chance": 0.05 + "chance": 0.00125 } ] }, @@ -28,7 +28,7 @@ "conditions": [ { "condition": "minecraft:random_chance", - "chance": 0.05 + "chance": 0.00125 } ] } diff --git a/src/main/resources/data/faithful/origins/goblin.json b/src/main/resources/data/faithful/origins/goblin.json new file mode 100644 index 0000000..4d55612 --- /dev/null +++ b/src/main/resources/data/faithful/origins/goblin.json @@ -0,0 +1,10 @@ +{ + "powers": [ + "faithful:goblin-powers/persuasive", + "faithful:goblin-powers/quick", + "faithful:goblin-powers/short" + ], + "icon": "minecraft:dirt", + "order": 1006, + "impact": 1 +} diff --git a/src/main/resources/data/faithful/origins/harpy.json b/src/main/resources/data/faithful/origins/harpy.json new file mode 100644 index 0000000..9525996 --- /dev/null +++ b/src/main/resources/data/faithful/origins/harpy.json @@ -0,0 +1,10 @@ +{ + "powers": [ + "faithful:harpy-powers/winged", + "faithful:harpy-powers/claws", + "faithful:harpy-powers/birdlike" + ], + "icon": "minecraft:dirt", + "order": 1007, + "impact": 1 +} diff --git a/src/main/resources/data/faithful/origins/merfolk.json b/src/main/resources/data/faithful/origins/merfolk.json new file mode 100644 index 0000000..79f8b89 --- /dev/null +++ b/src/main/resources/data/faithful/origins/merfolk.json @@ -0,0 +1,13 @@ +{ + "powers": [ + "faithful:merfolk-powers/gills", + "origins:aqua_affinity", + "origins:water_vision", + "origins:like_water", + "origins:swim_speed", + "origins:aquatic" + ], + "icon": "minecraft:dirt", + "order": 1008, + "impact": 3 +} diff --git a/src/main/resources/data/faithful/powers/goblin-powers/persuasive.json b/src/main/resources/data/faithful/powers/goblin-powers/persuasive.json new file mode 100644 index 0000000..46d66e5 --- /dev/null +++ b/src/main/resources/data/faithful/powers/goblin-powers/persuasive.json @@ -0,0 +1,15 @@ +{ + "type": "origins:action_over_time", + "interval": 5, + "entity_action": { + "type": "origins:apply_effect", + "effects": [ + { + "effect": "minecraft:hero_of_the_village", + "duration": 35, + "show_particles": false, + "show_icon": false + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/goblin-powers/quick.json b/src/main/resources/data/faithful/powers/goblin-powers/quick.json new file mode 100644 index 0000000..9fccc0a --- /dev/null +++ b/src/main/resources/data/faithful/powers/goblin-powers/quick.json @@ -0,0 +1,9 @@ +{ + "type": "origins:attribute", + "modifier": { + "name": "swift", + "attribute": "minecraft:generic.movement_speed", + "value": 0.06, + "operation": "multiply_base" + } +} \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/goblin-powers/short.json b/src/main/resources/data/faithful/powers/goblin-powers/short.json new file mode 100644 index 0000000..e66be35 --- /dev/null +++ b/src/main/resources/data/faithful/powers/goblin-powers/short.json @@ -0,0 +1,24 @@ +{ + "type": "origins:action_on_callback", + "entity_action_gained": { + "type": "origins:and", + "actions": [ + { + "type": "origins:execute_command", + "command": "scale set pehkui:height .80 @s", + "permission_level": 4 + }, + { + "type": "origins:execute_command", + "command": "scale set pehkui:width .80 @s", + "permission_level": 4 + }, + { + "type": "origins:execute_command", + "command": "scale persist set true", + "permission_level": 4 + } + ] + }, + "when_orb": true +} \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/harpy-powers/birdlike.json b/src/main/resources/data/faithful/powers/harpy-powers/birdlike.json new file mode 100644 index 0000000..5fc1a5a --- /dev/null +++ b/src/main/resources/data/faithful/powers/harpy-powers/birdlike.json @@ -0,0 +1,13 @@ +{ + "type": "origins:multiple", + "no_skulk": { + "type": "origins:prevent_game_event", + "event": "minecraft:step", + "events": [ + "minecraft:hit_ground" + ] + }, + "snow": { + "type": "faithful:can_walk_on_powder_snow" + } +} \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/harpy-powers/claws.json b/src/main/resources/data/faithful/powers/harpy-powers/claws.json new file mode 100644 index 0000000..164ec6c --- /dev/null +++ b/src/main/resources/data/faithful/powers/harpy-powers/claws.json @@ -0,0 +1,13 @@ +{ + "type": "origins:attribute", + "modifiers": + [ + { + "name": "wings damage", + "attribute": "generic.attack_damage", + "value": 3.0, + "operation": "addition" + } + ] + +} \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/harpy-powers/winged.json b/src/main/resources/data/faithful/powers/harpy-powers/winged.json new file mode 100644 index 0000000..1462579 --- /dev/null +++ b/src/main/resources/data/faithful/powers/harpy-powers/winged.json @@ -0,0 +1,6 @@ +{ + "type": "faithful:wings", + "wings_type": "icarus:white_feathered_wings", + "armor_slows": false, + "exhaustion_amount": 0.1 +} \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/kitsune-powers/light.json b/src/main/resources/data/faithful/powers/kitsune-powers/light.json index 5fc1a5a..54c1fc2 100644 --- a/src/main/resources/data/faithful/powers/kitsune-powers/light.json +++ b/src/main/resources/data/faithful/powers/kitsune-powers/light.json @@ -9,5 +9,8 @@ }, "snow": { "type": "faithful:can_walk_on_powder_snow" + }, + "prevent_block_slowness": { + "type": "faithful:prevent_block_slowness" } } \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/kitsune-powers/small.json b/src/main/resources/data/faithful/powers/kitsune-powers/small.json index e66be35..da64874 100644 --- a/src/main/resources/data/faithful/powers/kitsune-powers/small.json +++ b/src/main/resources/data/faithful/powers/kitsune-powers/small.json @@ -5,12 +5,12 @@ "actions": [ { "type": "origins:execute_command", - "command": "scale set pehkui:height .80 @s", + "command": "scale set pehkui:height .75 @s", "permission_level": 4 }, { "type": "origins:execute_command", - "command": "scale set pehkui:width .80 @s", + "command": "scale set pehkui:width .75 @s", "permission_level": 4 }, { diff --git a/src/main/resources/data/faithful/powers/kitsune-powers/swift.json b/src/main/resources/data/faithful/powers/kitsune-powers/swift.json index bd8e9ad..b8ae539 100644 --- a/src/main/resources/data/faithful/powers/kitsune-powers/swift.json +++ b/src/main/resources/data/faithful/powers/kitsune-powers/swift.json @@ -3,7 +3,7 @@ "modifier": { "name": "swift", "attribute": "minecraft:generic.movement_speed", - "value": 0.05, + "value": 0.1, "operation": "multiply_base" } } \ No newline at end of file diff --git a/src/main/resources/data/faithful/powers/merfolk-powers/gills.json b/src/main/resources/data/faithful/powers/merfolk-powers/gills.json new file mode 100644 index 0000000..ed861e0 --- /dev/null +++ b/src/main/resources/data/faithful/powers/merfolk-powers/gills.json @@ -0,0 +1,38 @@ +{ + "type": "origins:action_over_time", + "interval": 5, + "entity_action": { + "type": "origins:if_else_list", + "actions": [ + { + "condition": { + "type": "origins:submerged_in", + "fluid": "minecraft:water" + }, + "action": { + "type": "origins:gain_air", + "value": 20 + } + }, + { + "condition": { + "type": "origins:submerged_in", + "fluid": "minecraft:water", + "inverted": true + }, + "action": { + "type": "origins:apply_effect", + "effects": [ + { + "effect": "minecraft:slowness", + "duration": 35, + "amplifier": 1, + "show_particles": false, + "show_icon": false + } + ] + } + } + ] + } +} \ 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 f00ac0a..ca44260 100644 --- a/src/main/resources/data/origins/origin_layers/origin.json +++ b/src/main/resources/data/origins/origin_layers/origin.json @@ -6,6 +6,9 @@ "faithful:pixie", "faithful:kitsune", "faithful:orc", + "faithful:goblin", + "faithful:harpy", + "faithful:merfolk", { "condition": { "type": "origins:equipped_item", diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6c165b3..3837cb8 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -8,8 +8,7 @@ "name": "Faithful Origins", "description": "Origins for Celestia SMP", "authors": [ - "Gæmer", - "CosmoOrSth(or sth)" + "Gæmer" ], "contact": { "issues": "https://git.bigsmithy.org/Smithy/faithful-origins/issues",