Paste #109019: 🍝 / 2

Date: 2023/04/19 17:21:13 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


check_percentage_drops:
  type: task
  definitions: fortune_check
  debug: false
  script:
    - define tool <player.item_in_hand.material.item>
    - define location <player.cursor_on>
    - define density 10000
    - if <[fortune_check].exists>:
      - define loops <[fortune_check]>
    - else:
      - define loops 6


    - define results <list>
    - repeat <[loops]> from:0 as:fortune_level:
      - define results <[results].include_single[<&2>Fortune level <&6><[fortune_level]><n>]>

      - 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 <list>
        - 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]>%<n>]>
        - 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]><n><n>]>

    - announce to_console <n><[results].unseparated>