Nepsilon, Envoy of Emperor Nephisto in the land of Skover, doesn’t dislike humans personally. She’s just tasked with ensuring all areas previously inhabited by them are now inhabited by Nepsids.
Properties
Raw data
{
"gfx": {
"file": "UI/Portraits/Units/ManfishBossR1-R(Relic_Manfish_OysterShell_01).png",
"size": 256,
"x": 0,
"y": 0
},
"id": "Nepsilon",
"type": "Manfish",
"faction": "Manfish",
"inherit": [
{
"ref": "D_Base_Elite"
}
],
"texts": {
"desc": "Nepsilon, Envoy of Emperor Nephisto in the land of Skover, doesn’t dislike humans personally. She’s just tasked with ensuring all areas previously inhabited by them are now inhabited by Nepsids.",
"name": "Nepsilon"
},
"lvl": 5,
"models": [
{
"ref": "ManfishBossR1",
"template": 0,
"weapon": "Character/Weapon/Relic/Manfish/Relic_Manfish_OysterShell_01.prefab"
}
],
"parts": {},
"skills": [
{
"skill": "ManfishBoss_Auto",
"flags": 0,
"phaseBlacklist": [],
"props": {}
},
{
"skill": "ManfishBoss_Aoe",
"flags": 0,
"phaseBlacklist": [],
"props": {}
},
{
"skill": "ManfishBoss_WaterBreath",
"flags": 1,
"phaseBlacklist": [],
"props": {}
},
{
"skill": "ManfishBoss_WaterBreathStun",
"flags": 1,
"phaseBlacklist": [],
"props": {}
}
],
"talentTrees": [],
"moveSetBase": "ManFish",
"stats": [
{
"levelScaling": [],
"flags": 0,
"attribute": "Vitality",
"multiplier": 0.6
}
],
"props": {
"phases": {
"list": [
{
"props": {}
},
{
"healthThreshold": 0.7,
"entrySequence": "WaterBreath",
"props": {}
},
{
"healthThreshold": 0.4,
"entrySequence": "WaterBreath",
"props": {}
}
]
},
"bossLootTable": "Nepsilon",
"lootTable": "Nepsilon_LT2"
},
"sequences": [
{
"id": "WaterBreath",
"comment": "Moves to Point A and uses the Water Breath skill",
"animOverrides": []
}
],
"flags": [
"Boss"
],
"vars": {
"var1": 30,
"var2": 1
},
"script": "var waterBreathSkill = Skill.ManfishBoss_WaterBreath;\n\nvar nextCrabSpawn = 0.;\nvar crabPoints = [];\nvar activeCrabs = [];\n\nfunction initCrabPoints() {\n\tclear(crabPoints);\n\taddCrabSpawn(\"CrabA\");\n\taddCrabSpawn(\"CrabB\");\n\taddCrabSpawn(\"CrabC\");\n\taddCrabSpawn(\"CrabD\");\n\taddCrabSpawn(\"CrabE\");\n\taddCrabSpawn(\"CrabF\");\n\ttrace(\"Added \" + crabPoints.length + \" crab spawns\");\n}\n\nfunction canBlockRotation() {\n\treturn !isFree() && currentSequence != null;\n}\n\nfunction onEnterCombat() {\n\tinitCrabPoints();\n}\n\nfunction onLeaveCombat() {\n\tclearCrabs();\n}\n\nfunction onCombatUpdate(dt) {\n\tupdateCrabs(dt);\n}\n\nfunction onEnterSequence(seq) {\n\tswitch(seq) {\n\t\tcase Sequences.WaterBreath:\n\t\t\tmoveTo(\"A\");\n\t\tdefault:\n\t}\n}\n\nfunction onReachMoveTarget() {\n\tswitch(currentSequence) {\n\t\tcase Sequences.WaterBreath:\n\t\t\tlookTowards(\"B\", 0.5);\n\t\t\tforceCast(waterBreathSkill);\n\t\tdefault:\n\t}\n}\n\nfunction onSkillEnd(skill, cancel) {\n\tswitch(currentSequence) {\n\t\tcase Sequences.WaterBreath:\n\t\t\tif(isSkill(skill, waterBreathSkill))\n\t\t\t\tleaveSequence();\n\t\tdefault:\n\t}\n}\n\n\n\nfunction addCrabSpawn(name) {\n\tvar pt = getPoint(name);\n\tif(pt != null)\n\t\tcrabPoints.push(pt);\n}\n\nfunction updateCrabs(dt) {\n\tfilterOut(activeCrabs, c -> c.isDead());\n\tfor(c in activeCrabs) {\n\t\tif(unit.targetUnit != null && c.target == null)\n\t\t\tc.aggroUnit(unit.targetUnit);\n\t}\n}\n\nfunction clearCrabs() {\n\tfor(c in activeCrabs) {\n\t\tdisbandFoe(c);\n\t}\n\tclear(activeCrabs);\n}"
}