FareverDB

Sharp Leaves

Mokshi_Leaves in Skills
id
Mokshi_Leaves
type
11
flags
0
nature
0
script
var spawnRadius = 6; var spawnDelay = 0.2; function onStep(s) { switch(s.kind) { case Steps.GenerateProjectiles: var projStep = getStepById(Steps.Projectile); var nb = vars.var1; if( owner.phase == 3 ) { nb = 6; } var count = round(nb); var interProgress = 1 / (count); var pos = projStep.getProjectileStart(); var targetsLeft = copyArray(getAITargets()); var rotProgress = owner.rotationZ / PI; if( targetsLeft.length > 0 ) { for(i in 0...count) { var tPos = p3DAdd(pos, getCircleFacingPos(rotProgress + interProgress * i, spawnRadius, owner.getUp())); var target = findMin(targetsLeft, (t) -> p3DDist(t.position, pos)); targetsLeft.remove(target); if( targetsLeft.length == 0 ) targetsLeft = copyArray(getAITargets()); wait(i * spawnDelay, function() { projStep.generateProjectile(target, tPos); }); } } default: } }
status
0
cooldown
25
duration
1
Raw data
{
  "id": "Mokshi_Leaves",
  "gfx": {
    "x": 36,
    "y": 38,
    "file": "UI/Placeholder/Icons_Resources.png",
    "size": 48,
    "width": 2,
    "height": 2
  },
  "anim": {
    "file": "Anim/Faerie/_Boss_Mokshi/Anim_Faerie_Mokshi_SharpLeaves.fbx",
    "speed": 0.6
  },
  "type": 11,
  "vars": {
    "var1": 3
  },
  "flags": 0,
  "props": {
    "needTarget": true
  },
  "steps": [
    {
      "on": 0,
      "type": 13,
      "props": {
        "rotation": {
          "limiter": 320
        }
      },
      "duration": 2
    },
    {
      "on": 0,
      "type": 3,
      "props": {
        "castFlags": 8
      },
      "duration": 2
    },
    {
      "id": "GenerateProjectiles",
      "on": 0,
      "type": 11,
      "delay": 0.2,
      "props": {}
    },
    {
      "id": "Projectile",
      "on": 8,
      "type": 7,
      "props": {
        "projectile": {
          "base": "MissileStraight",
          "fxSet": "Projectile_Honey_Shuriken_Spawn",
          "scale": 1,
          "speed": 25,
          "aimStyle": 0,
          "hitFilter": 1,
          "followTime": 0.1,
          "activationDelay": 2,
          "collisionRadius": 0.5
        }
      },
      "range": 500
    },
    {
      "on": 7,
      "type": 11,
      "delay": -0.4,
      "props": {},
      "visuals": {
        "playAnims": [
          {
            "anim": {
              "file": "Anim/Faerie/_Boss_Mokshi/Anim_Faerie_Mokshi_SharpLeaves.fbx",
              "blend": 0.2,
              "startFrame": 35
            }
          }
        ]
      }
    },
    {
      "on": 2,
      "type": 0,
      "props": {},
      "effects": [
        {
          "flags": 0,
          "effect": 0,
          "scaling": [
            {
              "atb": "FoePower",
              "ratio": 0.7
            }
          ],
          "affinity": "Physical"
        }
      ]
    }
  ],
  "texts": {
    "name": "Sharp Leaves"
  },
  "nature": 0,
  "script": "var spawnRadius = 6;\nvar spawnDelay = 0.2;\nfunction onStep(s) {\n    switch(s.kind) {\n        case Steps.GenerateProjectiles:\n            var projStep = getStepById(Steps.Projectile);\n\t\t\tvar nb = vars.var1;\n\t\t\tif( owner.phase == 3 ) {\n\t\t\t\tnb = 6;\n\t\t\t}\n\t\t\tvar count =  round(nb);\n            var interProgress = 1 / (count);\n            var pos = projStep.getProjectileStart();\n            var targetsLeft = copyArray(getAITargets());\n            var rotProgress = owner.rotationZ / PI;\n\t\t\tif( targetsLeft.length > 0 ) {\n\t\t\t\tfor(i in 0...count) {\n\t\t\t\t\tvar tPos = p3DAdd(pos, getCircleFacingPos(rotProgress + interProgress * i, spawnRadius, owner.getUp()));\n\t\t\t\t\tvar target = findMin(targetsLeft, (t) -> p3DDist(t.position, pos));\n\t\t\t\t\ttargetsLeft.remove(target);\n\t\t\t\t\tif( targetsLeft.length == 0 )\n\t\t\t\t\t\ttargetsLeft = copyArray(getAITargets());\n\n\t\t\t\t\twait(i * spawnDelay, function() {\n\t\t\t\t\t\tprojStep.generateProjectile(target, tPos);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n        default:\n    }\n}",
  "status": 0,
  "aiProps": {
    "pickPrio": 5,
    "targetCount": [
      0
    ],
    "castMaxRange": 30
  },
  "mastery": [],
  "cooldown": 25,
  "duration": 1
}