Paste #48201: Untitled Paste

Date: 2018/06/29 14:49:22 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


"Arcblade YAML Handler":
    type: world
    events:
        on server start:
        - yaml create id:arcblade
        on shutdown:
        - yaml unload id:arcblade

"Arcblade Task Runner":
    type: world
    events:
        on mm denizen mechanic:
            - if <context.skill> == "arcblade-task-runner"
            {
                - run "Arcblade Task" def:<context.target>|5|<context.caster>
                - announce to_console "Arcblade event fired"
            }

"Arcblade Task":
    type: task
    speed: 0
    script:
    - define origin-target %1%
    - define caster %3%
    - announce to_console "caster: <def[caster]>"
    - announce to_console "Origin target: <def[origin-target]>"
    - define targetlist-chain-1 <def[origin-target].location.find.entities.within[%2%].exclude[<def[origin-target]>].exclude[<def[caster]>]>
    - announce to_console "targetlist-chain-1: <def[targetlist-chain-1]>"
    - define targetlist-chain-2 li@
    - foreach <def[targetlist-chain-1]>
    {
        - define target <def[value]>
        - define targetlist-chain-1-<def[value].uuid> <def[targetlist-chain-2].include[<def[value].location.find.entities.within[%2%]>].exclude[<def[targetlist-chain-1]>].exclude[<def[origin-target]>].exclude[<def[caster]>]>
        - define targetlist-chain-2 <def[targetlist-chain-2].include[<def[value].location.find.entities.within[%2%]>].exclude[<def[targetlist-chain-2]>].exclude[<def[targetlist-chain-1]>].exclude[<def[origin-target]>].exclude[<def[caster]>]>
        - playeffect <def[value].location.add[0,1,0]> effect:redstone data:0 visibility:50 quantity:20 offset:0.05
    }
    - announce to_console "targetlist-chain-2: <def[targetlist-chain-2]>"
    - define targetlist-chain-3 li@
    - foreach <def[targetlist-chain-2]>
    {
        - define targetlist-chain-2-<def[value].uuid> <def[targetlist-chain-3].include[<def[value].location.find.entities.within[%2%]>].exclude[<def[targetlist-chain-2]>].exclude[<def[targetlist-chain-1]>].exclude[<def[origin-target]>].exclude[<def[caster]>]>
        - define targetlist-chain-3 <def[targetlist-chain-3].include[<def[value].location.find.entities.within[%2%]>].exclude[<def[targetlist-chain-3]>].exclude[<def[targetlist-chain-2]>].exclude[<def[targetlist-chain-1]>].exclude[<def[origin-target]>].exclude[<def[caster]>]>
        - if <def[targetlist-chain-3]> == li@<def[caster]>
        {
            - define targetlist-chain-3 li@
        }
        - playeffect <def[value].location.add[0,1,0]> effect:redstone data:0 visibility:50 quantity:20 offset:0.05
    }
    - announce to_console "targetlist-chain-3: <def[targetlist-chain-3]>"
    - foreach <def[targetlist-chain-3]>
    {
        - playeffect <def[value].location.add[0,1,0]> effect:redstone data:0 visibility:50 quantity:20 offset:0.05
    }
    - foreach <def[targetlist-chain-1]>
    {
        - playeffect <def[origin-target].location.add[0,1,0].points_between[<def[value].location>].distance[0.1]> effect:happy_villager visibility:50 quantity:4 offset:0.1
    }
    - foreach <def[targetlist-chain-2]>
    {
        - foreach <def[targetlist-chain-1]>
        {
            - define source-uuid <def[value].uuid>
            - define source <def[value]>
            - define targetlist <def[targetlist-chain-1-%source-uuid%]>
            - define target-uuid <def[value].uuid>
            - define loop <def[loop_index]>
            - announce to_console "targetlist: <def[targetlist]>"
            - define target <def[targetlist].get[%loop%]>
            - define location <def[target].location>
            - playeffect <%source%.location.add[0,1,0].points_between[%location%].distance[0.1]> effect:happy_villager visibility:50 quantity:4 offset:0.1
        }
    }
    - if <def[targetlist-chain-3]> == li@
    {
        - queue clear
    }
    - foreach <def[targetlist-chain-3]>
    {
        - foreach <def[targetlist-chain-2]>
        {
            - define source-uuid <def[value].uuid>
            - define source <def[value]>
            - define target-uuid <def[value].uuid>
            - define loop <def[loop_index]>
            - define targetlist <def[targetlist-chain-2-%source-uuid%]>
            - announce to_console "targetlist: <def[targetlist]>"
            - define target <def[targetlist].get[%loop%]>
            - define location <def[target].location>
            - playeffect <%source%.location.add[0,1,0].points_between[%location%].distance[0.1]> effect:happy_villager visibility:50 quantity:4 offset:0.1
        }
    }