Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 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
5 changes: 4 additions & 1 deletion gm4_orb_of_ankou/beet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ name: Orb of Ankou
version: 1.7.X

data_pack:
load: .
load: [
.,
https://cdn.modrinth.com/data/oDhxdGVZ/versions/aW4ph2OC/player_motion.zip
]
Comment thread
misode marked this conversation as resolved.
Outdated

resource_pack:
load:
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,15 @@ 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
# 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 player_motion.api.launch = $motion_x gm4_pneuma_data
scoreboard players set $y player_motion.api.launch 5200
scoreboard players operation $z player_motion.api.launch = $motion_z gm4_pneuma_data
execute as @a[tag=gm4_oa_dasher,limit=1] run function player_motion:api/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
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,x_rotation=-79.99..79.99] 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

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# @s = player with soaring pneuma looking down
# run from pneumas/soaring/apply

tag @s remove gm4_oa_soaring_idle
attribute @s minecraft:gravity modifier remove gm4_orb_of_ankou:soaring_gravity
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@
# run from pneumas/soaring/apply

effect clear @s levitation
effect give @s levitation 3 255 true
tp @s
attribute @s minecraft:gravity modifier add gm4_orb_of_ankou:soaring_gravity -0.08 add_value
tag @s add gm4_oa_soaring_idle
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# @s = player that was previously soaring, and has landed
# run from main

tag @s remove gm4_oa_soaring_off_ground
attribute @s minecraft:fall_damage_multiplier modifier remove gm4_orb_of_ankou:soaring_fall_protection
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ tag @s[tag=!gm4_oa_no_soaring] add gm4_oa_soaring_active
tag @s remove gm4_oa_no_soaring
playsound minecraft:entity.ender_dragon.flap player @s[tag=gm4_oa_soaring_active] ~ ~ ~ 0.4 1.6
playsound minecraft:entity.player.small_fall player @s[tag=!gm4_oa_soaring_active] ~ ~ ~ 0.4 1.6
effect clear @s[tag=!gm4_oa_soaring_active] levitation
attribute @s[tag=gm4_oa_soaring_active] minecraft:fall_damage_multiplier modifier add gm4_orb_of_ankou:soaring_fall_protection -1024 add_value
attribute @s[tag=!gm4_oa_soaring_active] minecraft:gravity modifier remove gm4_orb_of_ankou:soaring_gravity

tag @s add gm4_oa_soaring_toggled

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# run from soul_forge/destroy

# spawn bat
summon minecraft:bat ~ ~ ~ {CustomName:{"translate":"entity.gm4.possessed_shard","fallback":"Possessed Soul Shard§"},CustomNameVisible:0b,Team:"gm4_hide_name",DeathLootTable:"gm4:empty",PersistenceRequired:1b,Health:2.0f,Tags:["gm4_oa_unset","gm4_oa_possessed_soul_shard","gm4_oa_ignore","gm4_defused_bat"],active_effects:[{id:'minecraft:fire_resistance',amplifier:0b,duration:1000000,show_particles:0b}],drop_chances:{head:2F},equipment:{head:{id:"minecraft:flint",count:1,components:{"minecraft:enchantment_glint_override":true,"minecraft:custom_name":{"translate":"item.gm4.soul_shard","fallback":"Soul Shard","italic":false,"color":"white"},"minecraft:attribute_modifiers":[{type:"minecraft:attack_damage",id:"gm4_orb_of_ankou:attack_damage",slot:"offhand",amount:-0.2,operation:"add_multiplied_base"}],"minecraft:custom_data":{gm4_orb_of_ankou:{item:"soul_shard"}}}}}}
summon minecraft:bat ~ ~ ~ {CustomName:{"translate":"entity.gm4.possessed_shard","fallback":"Possessed Soul Shard§"},CustomNameVisible:0b,Team:"gm4_hide_name",DeathLootTable:"gm4:empty",PersistenceRequired:1b,Health:2.0f,Tags:["gm4_oa_unset","gm4_oa_possessed_soul_shard","gm4_oa_ignore","gm4_defused_bat"],active_effects:[{id:'minecraft:fire_resistance',amplifier:0b,duration:1000000,show_particles:0b}],drop_chances:{head:2F},equipment:{head:{id:"minecraft:flint",count:1,components:{"minecraft:equippable":{slot:"offhand"},"minecraft:enchantment_glint_override":true,"minecraft:custom_name":{"translate":"item.gm4.soul_shard","fallback":"Soul Shard","italic":false,"color":"white"},"minecraft:attribute_modifiers":[{type:"minecraft:attack_damage",id:"gm4_orb_of_ankou:attack_damage",slot:"offhand",amount:-0.2,operation:"add_multiplied_base"}],"minecraft:custom_data":{gm4_orb_of_ankou:{item:"soul_shard"}}}}}}

# set data of soul essence into soul shard
data modify storage gm4_orb_of_ankou:temp Drop set from entity @e[type=bat,tag=gm4_oa_unset,limit=1] equipment.head
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
tag @s add gm4_has_pneuma

tag @s[predicate=gm4_orb_of_ankou:pneuma_equipped/aggressive] add gm4_pneuma_aggressive
tag @s[predicate=gm4_orb_of_ankou:pneuma_equipped/agile] add gm4_pneuma_agile
tag @s[predicate=gm4_orb_of_ankou:pneuma_equipped/bargaining] add gm4_pneuma_bargaining
tag @s[predicate=gm4_orb_of_ankou:pneuma_equipped/blasting] add gm4_pneuma_blasting
tag @s[predicate=gm4_orb_of_ankou:pneuma_equipped/blinding] add gm4_pneuma_blinding
Expand Down Expand Up @@ -50,7 +49,6 @@ scoreboard players reset @s gm4_oa_bow_freezing
scoreboard players reset @s gm4_oa_bow_tranquilizing

# run tick functions
execute if entity @a[gamemode=!spectator,tag=gm4_pneuma_agile,limit=1] run schedule function gm4_orb_of_ankou:pneumas/temp_tick/agile 1t
execute if entity @a[gamemode=!spectator,tag=gm4_pneuma_hawkeye,limit=1] run schedule function gm4_orb_of_ankou:pneumas/temp_tick/hawkeye 1t
execute if entity @a[gamemode=!spectator,tag=gm4_pneuma_freezing,limit=1] run schedule function gm4_orb_of_ankou:pneumas/temp_tick/freezing 1t
execute if entity @a[gamemode=!spectator,tag=gm4_pneuma_tranquilizing,limit=1] run schedule function gm4_orb_of_ankou:pneumas/temp_tick/tranquilizing 1t
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,12 @@
]
},
"minecraft:tooltip_display": {
"hidden_components": [
"minecraft:firework_explosion"
]
"hidden_components": [
"minecraft:firework_explosion"
]
},
"minecraft:equippable": {
"slot": "offhand"
}
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
},
{
"function": "minecraft:set_custom_data",
"tag": "{gm4_orb_of_ankou:{item:'soul_essence',stored_pneuma:{id:'agile'},stored_color:[16769574]}}"
"tag": "{gm4_orb_of_ankou:{item:'soul_essence',stored_pneuma:{id:'agile'},stored_attributes:[{type:'minecraft:fall_damage_multiplier',amount:-1024,id:'gm4_orb_of_ankou:agile_fall_damage_multiplier',operation:'add_value',slot:'offhand'}],stored_color:[16769574]}}"
}
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
},
{
"function": "minecraft:set_custom_data",
"tag": "{gm4_orb_of_ankou:{item:'soul_essence',stored_pneuma:{id:'anchoring'},stored_attributes:[{AttributeName:'minecraft:knockback_resistance',Name:'minecraft:knockback_resistance',Amount:0.9d,Operation:0,UUID:[0,959327,0,859402],Slot:'offhand'}],stored_color:[1648550]}}"
"tag": "{gm4_orb_of_ankou:{item:'soul_essence',stored_pneuma:{id:'anchoring'},stored_attributes:[{type:'minecraft:knockback_resistance',amount:0.9,id:'gm4_orb_of_ankou:anchoring_knockback_resistance',operation:'add_value',slot:'offhand'}],stored_color:[1648550]}}"
}
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
},
{
"function": "minecraft:set_custom_data",
"tag": "{gm4_orb_of_ankou:{item:'soul_essence',stored_pneuma:{id:'bashing'},stored_attributes:[{AttributeName:'minecraft:attack_speed',Name:'minecraft:attack_speed',Amount:-0.4d,Operation:1,UUID:[0,399214,0,360169],Slot:'offhand'},{AttributeName:'minecraft:attack_damage',Name:'minecraft:attack_damage',Amount:0.7d,Operation:1,UUID:[0,787852,0,423204],Slot:'offhand'}],stored_color:[13181000]}}"
"tag": "{gm4_orb_of_ankou:{item:'soul_essence',stored_pneuma:{id:'bashing'},stored_attributes:[{type:'minecraft:attack_speed',amount:-0.4d,operation:'add_multiplied_base',id:'gm4_orb_of_ankou:bashing_attack_speed',slot:'offhand'},{type:'minecraft:attack_damage',amount:0.7,operation:'add_multiplied_base',id:'gm4_orb_of_ankou:bashing_attack_damage',slot:'offhand'}],stored_color:[13181000]}}"
}
]
}
Expand Down
Loading
Loading