Home · skill · Mage_Blink

Teleports a short distance.

Properties

status
WIP
type
Class Skill
nature
Spell
cooldown
15
duration
0.3
steps
on=0visuals={"fxs":[{"set":"Spark_Blink_Disappear_Fast","space":1,"props":{},"flags":64}]}props={}type=11id=Starton=0props={}delay=0id=Triggertype=0on=0props={"rotation":{"limiter":0},"move":{"dashSmoothing":4}}type=8duration=0.3range=5on=13type=17props={"position":{"flags":1,"directionalOffset":{"x":15,"z":0,"y":0},"origin":0},"teleport":{"checkGround":true}}id=Teleportdelay=0on=13props={"position":{"flags":0,"origin":4}}id=TeleportBacktype=17on=0visuals={"fxs":[{"set":"Spark_Blink_Appear","space":0,"props":{"offset":{"x":0,"y":0,"z":0,"height":0.5}},"flags":0,"scale":0.9}]}props={}type=11delay=0
flags
CanOffLedgesCanSprintCanMoveIsMovementNoAirQueueIgnoreCC
mastery
id=Mage_Blink_M1 vars={}gfx={"file":"UI/Portraits/Items/Masteries/Mage_Blink/Mage_Blink_M1.png","size":256,"x":0,"y":0}text={"name":"Echo Step","desc":"::name:: has ::charges:: charges."}props={"charges":2}id=Mage_Blink_M2gfx={"file":"UI/Portraits/Items/Masteries/Mage_Blink/Mage_Blink_M2.png","size":256,"x":0,"y":0}text={"name":"Timewalking","desc":"You can teleport back within ::dur1:: after you use ::name::."}id=Mage_Blink_M3gfx={"file":"UI/Portraits/Items/Masteries/Mage_Blink/Mage_Blink_M3.png","size":256,"x":0,"y":0}text={"name":"Phase Strike","desc":"After using ::name::, your next [WeaponSkill] deals ::ref1_damage%:: increased direct damage."}

Referenced by

unit (1)

Raw data
{
  "status": "WIP",
  "gfx": {
    "file": "UI/icons/atlas_class_Mage_96PX.png",
    "size": 96,
    "x": 1,
    "y": 0
  },
  "id": "Mage_Blink",
  "type": "ClassSkill",
  "nature": "Spell",
  "texts": {
    "name": "Blink",
    "desc": "Teleports a short distance.",
    "refs": {
      "ref": "Mage_Blink_Mastery3"
    }
  },
  "anim": {
    "ref": "Blink",
    "blend": 0,
    "startFrame": 1
  },
  "cooldown": 15,
  "duration": 0.3,
  "steps": [
    {
      "on": 0,
      "visuals": {
        "fxs": [
          {
            "set": "Spark_Blink_Disappear_Fast",
            "space": 1,
            "props": {},
            "flags": 64
          }
        ]
      },
      "props": {},
      "type": 11,
      "id": "Start"
    },
    {
      "on": 0,
      "props": {},
      "delay": 0,
      "id": "Trigger",
      "type": 0
    },
    {
      "on": 0,
      "props": {
        "rotation": {
          "limiter": 0
        },
        "move": {
          "dashSmoothing": 4
        }
      },
      "type": 8,
      "duration": 0.3,
      "range": 5
    },
    {
      "on": 13,
      "type": 17,
      "props": {
        "position": {
          "flags": 1,
          "directionalOffset": {
            "x": 15,
            "z": 0,
            "y": 0
          },
          "origin": 0
        },
        "teleport": {
          "checkGround": true
        }
      },
      "id": "Teleport",
      "delay": 0
    },
    {
      "on": 13,
      "props": {
        "position": {
          "flags": 0,
          "origin": 4
        }
      },
      "id": "TeleportBack",
      "type": 17
    },
    {
      "on": 0,
      "visuals": {
        "fxs": [
          {
            "set": "Spark_Blink_Appear",
            "space": 0,
            "props": {
              "offset": {
                "x": 0,
                "y": 0,
                "z": 0,
                "height": 0.5
              }
            },
            "flags": 0,
            "scale": 0.9
          }
        ]
      },
      "props": {},
      "type": 11,
      "delay": 0
    }
  ],
  "flags": [
    "CanOffLedges",
    "CanSprint",
    "CanMove",
    "IsMovement",
    "NoAirQueue",
    "IgnoreCC"
  ],
  "mastery": [
    {
      "id": "Mage_Blink_M1",
      " vars": {},
      "gfx": {
        "file": "UI/Portraits/Items/Masteries/Mage_Blink/Mage_Blink_M1.png",
        "size": 256,
        "x": 0,
        "y": 0
      },
      "text": {
        "name": "Echo Step",
        "desc": "::name:: has ::charges:: charges."
      },
      "props": {
        "charges": 2
      }
    },
    {
      "id": "Mage_Blink_M2",
      "gfx": {
        "file": "UI/Portraits/Items/Masteries/Mage_Blink/Mage_Blink_M2.png",
        "size": 256,
        "x": 0,
        "y": 0
      },
      "text": {
        "name": "Timewalking",
        "desc": "You can teleport back within ::dur1:: after you use ::name::."
      }
    },
    {
      "id": "Mage_Blink_M3",
      "gfx": {
        "file": "UI/Portraits/Items/Masteries/Mage_Blink/Mage_Blink_M3.png",
        "size": 256,
        "x": 0,
        "y": 0
      },
      "text": {
        "name": "Phase Strike",
        "desc": "After using ::name::, your next [WeaponSkill] deals ::ref1_damage%:: increased direct damage."
      }
    }
  ],
  "props": {
    "interruptStyle": 0,
    "aimStyle": 2
  },
  "vars": {
    "var1": 3,
    "dur1": 3
  },
  "script": "var returnPosition:h3d.col.Point = null;\nvar canReblink:Bool = false;\n\nfunction onStart(ctx) {\n\tif (hasMastery(Mastery.Mage_Blink_M3) ) {\n\t\taddStatus(owner, Skill.Mage_Blink_Mastery3);\n\t}\n}\n\nfunction canBlinkBack() : Bool {\n\treturn haveReblinkStatus();\n}\n\nfunction haveReblinkStatus() {\n\treturn owner.getStatusCount(Skill.Mage_Blink_Mastery2_Position) > 0;\n}\n\n\nfunction removeSkillStatus(s) {\n\tvar status = owner.getStatus(s);\n\towner.tryRemoveStatus(status);\n}\n\nfunction onStep(step) {\n\tif (step.kind == Steps.Trigger) {\n\t\tif (canBlinkBack() && canReblink) {\n\t\t\tremoveSkillStatus(Skill.Mage_Blink_Mastery2_Position);\n\t\t\tcanReblink = false;\n\t\t}\n\t}\n\tif (hasMastery(Mastery.Mage_Blink_M2) ) {\n\t\tif (step.kind == Steps.Start) {\n\t\t\tif (!haveReblinkStatus()) {\n\t\t\t\taddStatusDuration(owner, Skill.Mage_Blink_Mastery2_Position, skill.vars.dur1);\n\t\t\t} else {\n\t\t\t\tcanReblink = true;\n\t\t\t}\n\t\t}\n\t}\n\n}\n\nfunction onClientUpdate(dt) {\n\tif (returnPosition != null) {\n\t\towner.layer.debug.clientsDebugCross(returnPosition, 0xffff00, 0.1);\n\t\tsetVFXPosition(returnPosition, Skill.Mage_Blink_Mastery2_Position);\n\t}\n}\n\nfunction onClientStep(step) {\n\tif (step.kind == Steps.Trigger) {\n\t\tif (canBlinkBack() && canReblink) {\n\t\t\tlocalPlayStep(Steps.TeleportBack, null, returnPosition);\n\t\t\tcanReblink = false;\n\t\t} else {\n\t\t\tlocalPlayStep(Steps.Teleport);\n\t\t}\n\t}\n\tif (step.kind == Steps.Start) {\n\t\tif (!haveReblinkStatus()) {\n\t\t\treturnPosition = skill.ownerUnit.position.clone();\n\n\t\t} else {\n\t\t\tcanReblink = true;\n\t\t}\n\t}\n\n}\n\nfunction checkForceRecast() : Bool {\n\treturn canBlinkBack();\n}\n\n\nfunction shouldHighlightSkill() : Bool{\n\treturn canBlinkBack();\n}",
  "_xrefs": [
    {
      "from_sheet": "unit",
      "from_id": "Mage",
      "via_field": "skills"
    }
  ]
}