Paste #305: slime friend

Date: 2013/11/16 18:17:00 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


"slime_pets":
  type: world
  debug: false
  events:
    on player chats:
    - if <context.message.contains[summon_slime]> == true && <player.flag[slimefriend]> == true {
      - execute as_op "npc create gooey --type slime --trait controllable"
      - execute as_op "npc size 1"
      - execute as_op "npc assign --set slime_pet"
"slime_pet":
  type: assignment
  debug: false
  interact scripts:
  - 1 slime_follower
  actions:
    on assignment:
    - flag player slime_follower:<npc>
    - flag npc exception:->:<player>
    - trigger name:proximity state:true radius:16
    - flag npc mobprox_range:16
    - flag npc mobprox_timer:6
    - trait mobprox
    on mob move proximity:
    - cast slow d:60 p:10 <npc.location.find.living_entities.within[12].exclude[<npc.flag[exception]>].exclude[<npc>].get[1]>
"slime_follower":
  type: interact
  debug: true
  steps:
    "1":
      proximity trigger:
        move:
          script:
          - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> speed:0.7
          - if <queue.exists[SLIME_IDLE]> == true {
            - queue queue:SLIME_IDLE stop
            }
          - ^flag player OLDLOCATION:<player.location>
          - ^if <player.location.distance[<player.flag[OLDLOCATION]>]> > 0.1 {
            }
            else wait 1 {
            - run slime_idle id:slime_idle delay:1s
            }
"slime_idle":
  type: task
  debug: false
  script:
   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1

   - ^fly <npc> origin:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,3,0]> destination:<player.location.add[<player.location.direction.vector.mul[-5]>].add[0,4,0]> speed:0.1
   - run slime_idle id:slime_idle