Teleports a short distance.
Properties
- status
- WIP
- type
- Class Skill
- nature
- Spell
- cooldown
- 15
- duration
- 0.3
- steps
- flags
- mastery
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"
}
]
}