check_percentage_drops: type: task definitions: efficiency_check debug: false script: - define tool - define location - define density 10000 - if <[efficiency_check].exists>: - define loops 6 - else: - define loops 1 - define total_drops - define total_results - repeat <[loops]> from:0 as:efficiency_level: - repeat <[density]>: - foreach <[location].drops[<[tool].with[enchantments=[fortune=<[efficiency_level]>]]>]> as:drop: - define efficiency_<[efficiency_level]>.<[drop].material.name>.<[drop].quantity>:++ - foreach <[efficiency_<[efficiency_level]>]> key:item: - define efficiency_<[efficiency_level]>.<[item]>_size:<[efficiency_0.<[item]>].size> - repeat <[efficiency_<[efficiency_level]>.<[item]>_size]> as:quantity: - define efficiency_<[efficiency_level]>.<[item]>_<[quantity]>:<[efficiency_<[efficiency_level]>.<[item]>].get[<[quantity]>].if_null[<[density]>]> - define items.<[item]>.<[quantity]>:<[efficiency_<[efficiency_level]>.<[item]>_<[quantity]>]> - define results - foreach <[items]> key:item as:data: - foreach <[data]> key:quantity as:frequency: - define results <[results].include_single[<&e><[item]> <&a>drops <&e><[quantity]> <&a>at a rate of <&e><[frequency]><&a>, which is <&b><[frequency].div[<[density]>].round_to_precision[0.0001].mul[100]>%]> #- narrate <[results].separated_by[]> #- announce to_console <[results].separated_by[]> - define total_results <[total_results].include_single[<&2>Fortune level <&6><[efficiency_level]><&2><&co><[results].unseparated>]> - narrate <[total_results].unseparated> - announce to_console <[total_results].unseparated>