Paste #109003: 🍝

Date: 2023/04/19 09:59:52 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


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>