FareverDB

Abyssal Rise

Book_WaterOrbs_Skill1 in Skills

Spawns a <val>Water Sphere</val> and consumes all stacks of Tide to spawn as much as additional spheres, up to 8. Walking through a sphere consumes it to grant a [Shield] absorbing 40% Faith Water. During combat, generates a stack of Tide every 4.

id
Book_WaterOrbs_Skill1
type
7
flags
0
nature
3
script
var Orb = Skill.Book_WaterOrbs_Rise_Charge; function onSkillProc(ctx) { if (ctx.skillId == skill.kind) { } } var chargeTimer = 0.; function onRegUpdate(dt) { if (owner.isInCombat) { chargeTimer += dt; if (chargeTimer >= vars.time) { addStatus(owner, Orb); chargeTimer -= vars.time; } } else { chargeTimer = 0; } } var delayPerOrb = 0.015; function onStep(step) { if (step.kind == Steps.Trigger) { var stacks = owner.getStatusCount(Orb) + 1; for (i in 0...stacks) { delay(i * delayPerOrb, () -> { consumeStatus(owner, Orb, 1); playStep(Steps.WaterOrb, owner, owner.position); }); } } }
status
2
cooldown
10
duration
0.4
Raw data
{
  "id": "Book_WaterOrbs_Skill1",
  "gfx": {
    "x": 7,
    "y": 0,
    "file": "UI/icons/atlas_Book_96PX.png",
    "size": 96
  },
  "anim": {},
  "type": 7,
  "vars": {
    "time": 4,
    "var1": 8
  },
  "flags": 0,
  "props": {
    "rankOverride": [
      {
        "props": {
          "cooldown": 8
        },
        "minRank": 2
      }
    ]
  },
  "steps": [
    {
      "on": 0,
      "type": 3,
      "props": {},
      "visuals": {
        "playAnims": [
          {
            "anim": {
              "ref": "Conjure",
              "speed": 2
            }
          }
        ]
      },
      "duration": 0.25
    },
    {
      "on": 7,
      "type": 11,
      "delay": 0,
      "props": {}
    },
    {
      "id": "Trigger",
      "on": 7,
      "type": 0,
      "props": {}
    },
    {
      "id": "WaterOrb",
      "on": 13,
      "type": 26,
      "props": {
        "pickup": {
          "radius": 2,
          "spread": {
            "maxRange": 10,
            "minRange": 3
          },
          "travelTime": 0.5
        },
        "position": {
          "offsetZ": 1
        },
        "stepGlobal": {
          "globalId": "Book_WaterOrb_WaterOrb"
        }
      },
      "visuals": {
        "hitFx": "NoFX",
        "bellFx": {
          "set": "Projectile_Water"
        },
        "skillObj": [
          {
            "set": "Water_Bubble",
            "scale": 1.25
          }
        ]
      },
      "duration": 6
    },
    {
      "on": 16,
      "type": 1,
      "props": {
        "status": {
          "ref": "Book_WaterOrbs_Skill1_Shield"
        }
      }
    },
    {
      "on": 16,
      "cond": {
        "minRank": 3
      },
      "type": 1,
      "props": {
        "status": {
          "ref": "Book_WaterOrbs_Skill1_Buff"
        }
      },
      "duration": ""
    }
  ],
  "texts": {
    "desc": "Spawns a <val>Water Sphere</val> and consumes all stacks of ::ref_name:: to spawn as much as additional spheres, up to ::var1::. Walking through a sphere consumes it to grant a [Shield] absorbing ::ref3_shield::.\n\nDuring combat, generates a stack of ::ref_name:: every ::time::.",
    "name": "Abyssal Rise",
    "refs": {
      "ref": "Book_WaterOrbs_Rise_Charge",
      "ref2": "Book_WaterOrbs_Skill1_Buff",
      "ref3": "Book_WaterOrbs_Skill1_Shield"
    },
    "rankDescs": [
      {
        "desc": "Cooldown reduced to ::cooldown::.",
        "rank": 2,
        "flags": 1
      },
      {
        "desc": "Walking through the sphere increases [MoveSpeedFactor] by ::ref2_val1%:: for ::ref2_duration::.",
        "rank": 3,
        "flags": 0
      }
    ]
  },
  "nature": 3,
  "script": "var Orb = Skill.Book_WaterOrbs_Rise_Charge;\n\nfunction onSkillProc(ctx) {\n\tif (ctx.skillId == skill.kind) {\n\n\t}\n}\n\nvar chargeTimer = 0.;\nfunction onRegUpdate(dt) {\n\tif (owner.isInCombat) {\n\t\tchargeTimer += dt;\n\t\tif (chargeTimer >= vars.time) {\n\t\t\taddStatus(owner, Orb);\n\t\t\tchargeTimer -= vars.time;\n\t\t}\n\t} else {\n\t\tchargeTimer = 0;\n\t}\n}\n\nvar delayPerOrb = 0.015;\nfunction onStep(step) {\n\tif (step.kind == Steps.Trigger) {\n\t\tvar stacks = owner.getStatusCount(Orb) + 1;\n\t\tfor (i in 0...stacks) {\n\t\t\tdelay(i * delayPerOrb, () -> {\n\t\t\t\tconsumeStatus(owner, Orb, 1);\n\t\t\t\tplayStep(Steps.WaterOrb, owner, owner.position);\n\t\t\t});\n\t\t}\n\t}\n}",
  "status": 2,
  "mastery": [],
  "cooldown": 10,
  "duration": 0.4
}