Paste #45592: Untitled Paste

Date: 2017/11/17 09:20:05 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


on player clicks with BlackHoleCannon:
    - determine passively cancelled
    - if <player.has_flag[blackholecannon]> {
      - narrate "<&c>This weapon is on cooldown!"
      - queue clear
      }
    - define points <player.location.points_between[<player.location.add[<player.eye_location.direction.vector.mul[20]>]>].distance[0.4]>
    - define cleanuplist li@
    - foreach <def[points]>:
      - define currentpoint <def[value]>
      - playsound <def[currentpoint]> sound:entity_elder_guardian_ambient volume:0.7 pitch:0.5
      - particleprojectile <def[currentpoint]> effect:red_dust vector:0,0,0 qty:0 data:1 offset:0.001,0.001,0.001 frequency:1 loops:1 realquantity:50 realoffset:0.7
      - foreach <def[currentpoint].find.players.within[5].exclude[<player>]>:
        - flag <def[value]> sucked.<player>
      - foreach <def[currentpoint].find.blocks.within[4].filter[material.contains_any[air|bedrock|quartz_block|quartz_ore].not]>:
        - define block <def[value].material.id>,<def[value].material.data>
        - define cleanuplist <def[cleanuplist].include[<def[value]>/<def[block]>]>
        - modifyblock <def[value]> air no_physics
        - run s@BlackHoleShoot d:<def[block]>|<def[value]>|<def[currentpoint]> instantly
        - shoot falling_block,<def[block]> o:<def[value]> d:<def[currentpoint]> speed:0.5 save:block
        - ^remove <entry[block].shot_entities.get[1]>
      - remove <def[currentpoint].find.entities[dropped_item].within[7]>:
      - if <def[loop_index].mod[5].is[==].to[0]> {
        - foreach <server.get_online_players_flagged[sucked.<player>].exclude[<player>]> {
          - shoot <def[value]> d:<def[currentpoint]> speed:1 no_rotate
          }
        }
      - wait 1t
    - foreach <server.get_online_players_flagged[sucked.<player>]>:
      - flag <def[value]> pvp:<player> duration:7s
      - flag <player> pvp:<def[value]> duration:7s
      - hurt 10 <def[value]>
      - flag <def[value]> sucked:!
    - define cleanuplist <def[cleanuplist].deduplicate>
    - wait 15s
    - foreach <def[cleanuplist]>:
      - modifyblock <def[cleanuplist].get_sub_items[1].get[<def[loop_index]>]> <def[cleanuplist].get_sub_items[2].get[<def[loop_index]>]> no_physics
      - playsound <def[cleanuplist].get_sub_items[1].get[<def[loop_index]>]> sound:entity_chicken_egg volume:0.1
      - if <def[loop_index].mod[7]> == 0 {
        - wait 1t
        }