Skip to content

Orb of Ankou 1.21.5 #1128

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 35 commits into from
May 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
6725ac7
fix attribute-based pneumas
BPR02 May 10, 2025
5a82789
fix blasting
BPR02 May 10, 2025
aabf756
fix dashing by using player motion library
BPR02 May 10, 2025
bdd533c
fix feigning jump
BPR02 May 10, 2025
40f1675
use attribute for agile
BPR02 May 10, 2025
083248b
fix typo in comment
BPR02 May 10, 2025
7ac8c78
fix pricking
BPR02 May 10, 2025
7fa574d
fix soaring
BPR02 May 10, 2025
ec00ea4
make shard and orb equippable into offhand
BPR02 May 10, 2025
af067dc
fix beet.yaml formatting
BPR02 May 11, 2025
c7293af
add loot tables for shards
BPR02 May 11, 2025
de76924
add smithed item ignore functionality
BPR02 May 11, 2025
0c96752
refactor some entity functions
BPR02 May 13, 2025
0339f55
fix spawn positions of entities
BPR02 May 14, 2025
16621c3
restore orb based on shard loot tables
BPR02 May 14, 2025
cfa4a97
set max stack size of shards and orb to 1
BPR02 May 14, 2025
79247dd
fix formatting
BPR02 May 14, 2025
0803577
fix function rename
BPR02 May 14, 2025
73243ae
fix weapon.mainhand slot call for loot command
BPR02 May 14, 2025
19ba211
keep pneuma order intact when restoring an orb
BPR02 May 14, 2025
1569383
fix congealed shard data
BPR02 May 15, 2025
8faeea8
implement lib_player_motion
BPR02 May 18, 2025
8460a2e
Merge branch 'update-1.21.5' into ooa-1.21.5
BPR02 May 18, 2025
a7a7451
implement custom version of player motion
BPR02 May 19, 2025
043e584
fix ooa to use proper player motion version
BPR02 May 20, 2025
8a45310
prevent wither rose particle from generating on obsidian
BPR02 May 20, 2025
f260674
update random position to use random command and macro
BPR02 May 20, 2025
f8862ea
Move original player motion license to main license
BPR02 May 20, 2025
b97a30c
properly remove rose particle markers
BPR02 May 20, 2025
ffcbc32
properly kill striding markers
BPR02 May 20, 2025
91a4b35
make items fire resistant
BPR02 May 20, 2025
bd97676
fix withering pneuma
BPR02 May 20, 2025
ef370f8
fix expeditious
BPR02 May 20, 2025
8f0341e
fix soaring
BPR02 May 20, 2025
3c6316e
actually fix soaring
BPR02 May 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions gm4/contributors.json
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,9 @@
{
"name": "Venomousbirds",
"links": ["https://venomousbirds.artstation.com/"]
},
{
"name": "MulverineX",
"links": ["https://modrinth.com/user/MulverineX"]
}
]
2 changes: 2 additions & 0 deletions gm4_orb_of_ankou/beet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ pipeline:
- gm4_metallurgy.shamir_model_template
- gm4.plugins.extend.module
- gm4.plugins.include.lib_custom_crafters
- gm4.plugins.include.lib_player_motion

meta:
gm4:
versioning:
required:
gm4_metallurgy: 1.5.0
lib_custom_crafters: 3.4.0
lib_player_motion: 1.0.0
schedule_loops:
- main
- tick
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,7 @@
"criteria": {
"crossbow_shot": {
"trigger": "minecraft:shot_crossbow",
"conditions": {
"item": {
"components": {
"minecraft:charged_projectiles": [
{
"id": "minecraft:arrow"
}
]
}
}
}
"conditions": {}
}
},
"rewards": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ scoreboard objectives add gm4_oa_snk_num dummy
scoreboard objectives add gm4_oa_marker dummy
scoreboard objectives add gm4_oa_feign_t dummy
scoreboard objectives add gm4_oa_sniff dummy
scoreboard objectives add gm4_oa_jump_stop dummy
scoreboard objectives add gm4_health health
scoreboard objectives add gm4_oa_sneak minecraft.custom:minecraft.sneak_time
scoreboard objectives add gm4_oa_swim minecraft.custom:minecraft.swim_one_cm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ effect give @a[gamemode=!spectator,tag=gm4_pneuma_gliding,scores={gm4_oa_swim=1.
scoreboard players reset @a gm4_oa_swim

# soaring
tag @a[tag=gm4_oa_soaring_off_ground,nbt={OnGround:1b}] remove gm4_oa_soaring_off_ground
effect give @a[gamemode=!spectator,tag=gm4_oa_soaring_off_ground] jump_boost 2 255 true
execute as @a[tag=gm4_oa_soaring_off_ground,nbt={OnGround:1b}] run function gm4_orb_of_ankou:pneumas/soaring/remove_fall_protection

# sniffing
scoreboard players remove @a[scores={gm4_oa_sniff=1..}] gm4_oa_sniff 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ execute at @s[tag=gm4_pneuma_synergetic] run function gm4_orb_of_ankou:pneumas/s
# soaring
execute at @s[tag=gm4_oa_soaring_active] run function gm4_orb_of_ankou:pneumas/soaring/apply

# disable jump revert
scoreboard players remove @a[scores={gm4_oa_jump_stop=1..}] gm4_oa_jump_stop 1
execute as @a[scores={gm4_oa_jump_stop=1}] run attribute @s minecraft:jump_strength modifier remove gm4_orb_of_ankou:prevent_jump
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,3 @@ effect give @s[tag=gm4_pneuma_aggressive] strength 3 1 true
execute if entity @s[tag=gm4_pneuma_volatile] run function gm4_orb_of_ankou:pneumas/volatile

execute if entity @s[tag=gm4_pneuma_feigning,scores={gm4_health=..10}] run function gm4_orb_of_ankou:pneumas/feigning/apply

execute if entity @s[tag=gm4_oa_soaring_off_ground] run function gm4_orb_of_ankou:pneumas/soaring/damaged
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# run from advancement "trigers/shoot_crossbow"

advancement revoke @s only gm4_orb_of_ankou:triggers/shoot_crossbow
execute if entity @s[tag=gm4_pneuma_blasting,nbt={Inventory:[{id:"minecraft:blaze_powder"}]}] run function gm4_orb_of_ankou:pneumas/blasting
execute if entity @s[tag=gm4_pneuma_blasting,nbt={Inventory:[{id:"minecraft:blaze_powder"}]}] if entity @e[type=minecraft:arrow,limit=1,distance=..2] run function gm4_orb_of_ankou:pneumas/blasting

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# run from advancement_triggers/shoot_crossbow

# summon fireball at player's location
summon minecraft:small_fireball ~ ~1 ~ {Tags:["gm4_oa_fireball"],power:[0.0,0.0,0.0],Motion:[0.0,0.0,0.0]}
summon minecraft:small_fireball ~ ~1 ~ {Tags:["gm4_oa_fireball"],Motion:[0.0,0.0,0.0]}

# copy motion of arrow to fireball
data modify entity @e[type=small_fireball,tag=gm4_oa_fireball,distance=..2,limit=1] power set from entity @e[type=minecraft:arrow,limit=1,distance=..2] Motion
data modify entity @e[type=small_fireball,tag=gm4_oa_fireball,distance=..2,limit=1] Motion set from entity @e[type=minecraft:arrow,limit=1,distance=..2] Motion
kill @e[type=arrow,distance=..2,limit=1]

# clear blaze powder from player
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,23 @@
# @s = player with dashing pneuma who stopped sneaking
# run from pneumas/sneak/stopped

execute rotated ~ 0 if block ^ ^0.9 ^.1 #gm4:no_collision if block ^ ^0.5 ^1.1 #gm4:no_collision run summon armor_stand ^ ^0.5 ^1 {Invisible:1b,Small:1b,Invulnerable:1b,CustomName:"Dashing Stand",Tags:["gm4_oa_dasher","gm4_oa_new_dasher","smithed.entity","smithed.strict"],attributes:[{id:"minecraft:max_health",base:1.0}]}
execute rotated ~ 0 if block ^ ^0.9 ^.1 #gm4:no_collision if block ^ ^0.5 ^1.1 #gm4:no_collision run summon marker ^ ^0.5 ^1 {CustomName:"Dashing Vector",Tags:["gm4_oa_dash_vector"]}
scoreboard players operation $current gm4_oa_id = @s gm4_oa_id

# store player pos
data modify storage gm4_oa_dashing:temp Pos set from entity @s Pos
execute store result score $target_x gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[0] 100
execute store result score $target_z gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[2] 100
execute store result score $target_x gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[0] 1000
execute store result score $target_z gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[2] 1000

# store sneak count
execute if score @s gm4_oa_snk_num matches 10..19 run scoreboard players set $multiplier gm4_pneuma_data 1
execute if score @s gm4_oa_snk_num matches 20..39 run scoreboard players set $multiplier gm4_pneuma_data 2
execute if score @s gm4_oa_snk_num matches 40..59 run scoreboard players set $multiplier gm4_pneuma_data 3
execute if score @s gm4_oa_snk_num matches 60.. run scoreboard players set $multiplier gm4_pneuma_data 4
execute if score @s gm4_oa_snk_num matches 10..19 run scoreboard players set $multiplier gm4_pneuma_data 8
execute if score @s gm4_oa_snk_num matches 20..39 run scoreboard players set $multiplier gm4_pneuma_data 14
execute if score @s gm4_oa_snk_num matches 40..59 run scoreboard players set $multiplier gm4_pneuma_data 18
execute if score @s gm4_oa_snk_num matches 60.. run scoreboard players set $multiplier gm4_pneuma_data 24

# give armor stand motion
ride @s mount @e[type=armor_stand,tag=gm4_oa_new_dasher,distance=..3,limit=1]
execute as @e[type=armor_stand,tag=gm4_oa_new_dasher,distance=..3,limit=1] at @s run function gm4_orb_of_ankou:pneumas/dashing/set_motion
tag @e[type=armor_stand,tag=gm4_oa_new_dasher,distance=..3,limit=1] remove gm4_oa_new_dasher
playsound minecraft:entity.player.small_fall player @a[distance=..8] ~ ~ ~ 0.7 0.6
# set motion
tag @s add gm4_oa_dasher
execute as @e[type=marker,tag=gm4_oa_dash_vector,distance=..3,limit=1] run function gm4_orb_of_ankou:pneumas/dashing/set_motion
tag @s remove gm4_oa_dasher

# keep player on dash trajectory
schedule function gm4_orb_of_ankou:pneumas/dashing/temp_tick 1t
playsound minecraft:entity.player.small_fall player @a[distance=..8] ~ ~ ~ 0.7 0.6
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@


# link armor stand to player
scoreboard players operation @s gm4_oa_id = $current gm4_oa_id
# @s = dash marker
# located at player who started dashing
# run from pneumas/dashing/prepare

# get vector
data modify storage gm4_oa_dashing:temp Pos set from entity @s Pos
execute store result score $motion_x gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[0] 100
execute store result score $motion_z gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[2] 100
execute store result score $motion_x gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[0] 1000
execute store result score $motion_z gm4_pneuma_data run data get storage gm4_oa_dashing:temp Pos[2] 1000

scoreboard players operation $motion_x gm4_pneuma_data -= $target_x gm4_pneuma_data
scoreboard players operation $motion_z gm4_pneuma_data -= $target_z gm4_pneuma_data
Expand All @@ -16,9 +15,11 @@ scoreboard players operation $motion_x gm4_pneuma_data *= $multiplier gm4_pneuma
scoreboard players operation $motion_z gm4_pneuma_data *= $multiplier gm4_pneuma_data

# set motion
execute store result entity @s Motion[0] double 0.0045 run scoreboard players get $motion_x gm4_pneuma_data
execute store result entity @s Motion[2] double 0.0045 run scoreboard players get $motion_z gm4_pneuma_data
data modify entity @s Motion[1] set value 0.4d
scoreboard players operation $x gm4_player_motion.api.launch = $motion_x gm4_pneuma_data
scoreboard players set $y gm4_player_motion.api.launch 5200
scoreboard players operation $z gm4_player_motion.api.launch = $motion_z gm4_pneuma_data
execute as @a[tag=gm4_oa_dasher,limit=1] run function #gm4_player_motion:launch_xyz

## clean up
data remove storage gm4_oa_dashing:temp Pos
kill @s

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,26 +1,6 @@
# @s = player with expeditious pneuma who stopped sneaking
# run from pneumas/sneak/stopped

summon marker ~ ~ ~ {CustomName:"Expeditious TP",Tags:["gm4_oa_expeditious"]}
tp @e[type=marker,tag=gm4_oa_expeditious,limit=1] @s

scoreboard players set @s gm4_pneuma_data 0
scoreboard players set @s[scores={gm4_oa_snk_num=10..19}] gm4_pneuma_data 9
scoreboard players set @s[scores={gm4_oa_snk_num=20..39}] gm4_pneuma_data 17
scoreboard players set @s[scores={gm4_oa_snk_num=40..59}] gm4_pneuma_data 25
scoreboard players set @s[scores={gm4_oa_snk_num=60..}] gm4_pneuma_data 33

execute if score @s gm4_pneuma_data matches 9 run tp @e[type=marker,tag=gm4_oa_expeditious,limit=1] ~-4 ~ ~-4
execute if score @s gm4_pneuma_data matches 17 run tp @e[type=marker,tag=gm4_oa_expeditious,limit=1] ~-8 ~ ~-8
execute if score @s gm4_pneuma_data matches 25 run tp @e[type=marker,tag=gm4_oa_expeditious,limit=1] ~-12 ~ ~-12
execute if score @s gm4_pneuma_data matches 33 run tp @e[type=marker,tag=gm4_oa_expeditious,limit=1] ~-16 ~ ~-16

execute store result score y_pos gm4_pneuma_data run data get entity @s Pos[1]
execute store result score randomX gm4_pneuma_data run data get entity @e[type=marker,tag=gm4_oa_expeditious,limit=1] UUID[0]
execute if score @s gm4_oa_snk_num matches ..9 run return fail
scoreboard players set expeditious_attempt gm4_pneuma_data 0
tag @s add gm4_expeditious_player
function gm4_orb_of_ankou:pneumas/expeditious/randomize
tag @s remove gm4_expeditious_player

execute if score expeditious_safe gm4_pneuma_data matches 1 run function gm4_orb_of_ankou:pneumas/expeditious/tp_player
kill @e[type=marker,tag=gm4_oa_expeditious]
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# @s = player with expeditious pneuma who stopped sneaking
# run from pneumas/expeditious/randomize

# check column for safe location
scoreboard players set set_y gm4_pneuma_data 0
$execute positioned ~$(x) ~5 ~$(z) run function gm4_orb_of_ankou:pneumas/expeditious/set_ypos

# try another column (at most 12 times) if entire column was not safe
scoreboard players add expeditious_attempt gm4_pneuma_data 1
execute unless score expeditious_attempt gm4_pneuma_data matches 12.. run function gm4_orb_of_ankou:pneumas/expeditious/randomize
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
# @s = player with expeditious pneuma who stopped sneaking
# run from pneumas/expeditious/attempt

scoreboard players operation randomZ gm4_pneuma_data = randomX gm4_pneuma_data
scoreboard players set #10 gm4_pneuma_data 10
scoreboard players operation randomZ gm4_pneuma_data %= #10 gm4_pneuma_data
# get sneak-number-based distance
execute if score @s gm4_oa_snk_num matches 10..19 store result storage gm4_orb_of_ankou:temp pos.x int 1 run random value -4..4
execute if score @s gm4_oa_snk_num matches 10..19 store result storage gm4_orb_of_ankou:temp pos.z int 1 run random value -4..4
execute if score @s gm4_oa_snk_num matches 20..39 store result storage gm4_orb_of_ankou:temp pos.x int 1 run random value -8..8
execute if score @s gm4_oa_snk_num matches 20..39 store result storage gm4_orb_of_ankou:temp pos.z int 1 run random value -8..8
execute if score @s gm4_oa_snk_num matches 40..59 store result storage gm4_orb_of_ankou:temp pos.x int 1 run random value -12..12
execute if score @s gm4_oa_snk_num matches 40..59 store result storage gm4_orb_of_ankou:temp pos.z int 1 run random value -12..12
execute if score @s gm4_oa_snk_num matches 60.. store result storage gm4_orb_of_ankou:temp pos.x int 1 run random value -16..16
execute if score @s gm4_oa_snk_num matches 60.. store result storage gm4_orb_of_ankou:temp pos.z int 1 run random value -16..16

scoreboard players operation randomX gm4_pneuma_data %= @a[tag=gm4_expeditious_player,limit=1] gm4_pneuma_data
scoreboard players operation randomZ gm4_pneuma_data %= @a[tag=gm4_expeditious_player,limit=1] gm4_pneuma_data

execute as @e[type=marker,tag=gm4_oa_expeditious,limit=1] at @s run function gm4_orb_of_ankou:pneumas/expeditious/tp_aec
function gm4_orb_of_ankou:pneumas/expeditious/get_pos with storage gm4_orb_of_ankou:temp pos
data remove storage gm4_orb_of_ankou:temp pos
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# @s = expeditious tp AEC
# @s = player with expeditious pneuma who stopped sneaking
# located at a random distance from player
# run from pneumas/expeditious/tp_aec

execute at @s run tp @s ~ ~-1 ~
# tp if block is safe
execute if block ~ ~ ~ #gm4:no_collision unless block ~ ~-1 ~ #gm4:no_collision run function gm4_orb_of_ankou:pneumas/expeditious/tp_player

# check 1 block down
scoreboard players add set_y gm4_pneuma_data 1
scoreboard players set expeditious_safe gm4_pneuma_data 0
execute at @s if block ~ ~ ~ #gm4:no_collision unless block ~ ~-1 ~ #gm4:no_collision run scoreboard players set expeditious_safe gm4_pneuma_data 1
execute if score expeditious_safe gm4_pneuma_data matches 1 run scoreboard players set expeditious_attempt gm4_pneuma_data 12
execute unless score set_y gm4_pneuma_data matches 11.. at @s unless score expeditious_safe gm4_pneuma_data matches 1 run function gm4_orb_of_ankou:pneumas/expeditious/set_ypos
execute unless score set_y gm4_pneuma_data matches 11.. positioned ~ ~-1 ~ run function gm4_orb_of_ankou:pneumas/expeditious/set_ypos

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
# @s = player with expeditious pneuma who stopped sneaking
# run from pneumas/expeditious/attempt
# located at a safe block, random distance from player
# run from pneumas/expeditious/set_ypos

particle minecraft:explosion ~ ~.3 ~ .3 .4 .3 2 0
tp @s @e[type=marker,tag=gm4_oa_expeditious,limit=1]
playsound minecraft:item.chorus_fruit.teleport player @a[distance=..15] ~ ~ ~ 1 1
execute at @s run particle minecraft:portal ~ ~.2 ~ 0 -1 0 3 20
# prevent reroll
scoreboard players set set_y gm4_pneuma_data 11
scoreboard players set expeditious_attempt gm4_pneuma_data 12

# move player
execute at @s run playsound minecraft:item.chorus_fruit.teleport player @a[distance=..15] ~ ~ ~ 1 1
execute at @s run particle minecraft:explosion ~ ~.3 ~ .3 .4 .3 2 0
tp @s ~ ~ ~
particle minecraft:portal ~ ~.2 ~ 0 -1 0 3 20

# compatibility with other modules
function #gm4_orb_of_ankou:pneumas/expeditious/tp_player
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ effect give @s invisibility 10 255 true
effect give @s resistance 10 255 true
effect give @s slowness 10 255 true
effect give @s weakness 10 255 true
effect give @s jump_boost 10 128 true
effect give @s regeneration 10 0 false
attribute @s minecraft:jump_strength modifier add gm4_orb_of_ankou:prevent_jump -1024 add_multiplied_total
scoreboard players set @s gm4_oa_jump_stop 13

# set data of hostile mobs
tag @e[type=#gm4_orb_of_ankou:feigning_affected,distance=..50] add gm4_oa_feigning
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# @s = player with soaring pneuma
# @s = player with soaring pneuma activated
# run from main

execute if entity @s[x_rotation=-79.99..79.99] run function gm4_orb_of_ankou:pneumas/soaring/idle
execute if entity @s[tag=!gm4_oa_soaring_idle] run function gm4_orb_of_ankou:pneumas/soaring/idle

execute if entity @s[x_rotation=-90..-80] run function gm4_orb_of_ankou:pneumas/soaring/ascend

execute if entity @s[x_rotation=80..90] run effect clear @s levitation
execute if entity @s[x_rotation=80..90] run function gm4_orb_of_ankou:pneumas/soaring/descend

effect give @s slow_falling 3 0 true
tag @s add gm4_oa_soaring_off_ground
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# @s = player with soaring pneuma looking up
# run from pneumas/soaring/apply

effect clear @s levitation
tag @s remove gm4_oa_soaring_idle
effect give @s levitation 2 3 true
Loading
Loading