Date: 2023/04/19 09:59:52 UTC-07:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
check_percentage_drops:
type: task
definitions: efficiency_check
debug: false
script:
- define tool <player.item_in_hand.material.item>
- define location <player.cursor_on>
- define density 10000
- if <[efficiency_check].exists>:
- define loops 6
- else:
- define loops 1
- define total_drops <list>
- define total_results <list>
- 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 <list>
- 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]>%<n>]>
#- narrate <[results].separated_by[<n>]>
#- announce to_console <[results].separated_by[<n>]>
- define total_results <[total_results].include_single[<bold><&2>Fortune level <&6><[efficiency_level]><&2><&co><n><[results].unseparated><n>]>
- narrate <[total_results].unseparated>
- announce to_console <n><[total_results].unseparated>