check_percentage_drops: type: task definitions: fortune_check debug: false script: - define tool - define location - define density 10000 - if <[fortune_check].exists>: - define loops <[fortune_check]> - else: - define loops 6 - define results - repeat <[loops]> from:0 as:fortune_level: - define results <[results].include_single[<&2>Fortune level <&6><[fortune_level]>]> - repeat <[density]>: - foreach <[location].drops[<[tool].with[enchantments=[fortune=<[fortune_level]>]]>]> as:drop: - define item <[drop].material.name> - define quantity <[drop].quantity> - define fortune_<[fortune_level]>.<[item]>.<[quantity]>:++ - define fortune_<[fortune_level]>.<[item]>.total_quantity:+:<[quantity]> - foreach <[fortune_<[fortune_level]>]> key:item as:quantities: - define inner_results - foreach <[quantities].exclude[total_quantity]> key:quantity as:amount: - define this_quantity <[fortune_<[fortune_level]>.<[item]>.<[quantity]>]> - define this_percent <[this_quantity].div[<[density]>].round_to_precision[0.0001].mul[100]> - define fortune_<[fortune_level]>.<[item]>.<[quantity]>_percent:<[this_percent]> - define inner_results <[inner_results].include_single[<[quantity]>/<&e><[item]> <&a>drops <&e><[quantity]> <&a>a total of <&e><[this_quantity]> <&a>times, which is <&b><[this_percent]>%]> - define results <[results].include[<[inner_results].sort_by_value[before[/]].parse[after[/]]>].include_single[<&a>This gives a total quantity of <&e><[quantities].get[total_quantity]> <&a>of <&e><[item]>]> - announce to_console <[results].unseparated>