동족 학살자 모르윈
인간형
monster dropped item rarity +% [1600]
monster slain experience +% [0]
monster dropped item quantity +% [800]
monster dropped item rarity +% [1600]
monster map key of at least same tier as current map drop chance % [25]
monster slain experience +% [7500]
unique monster guarantee one rare [1]
Morwyn, the Kinslayer
SpectreN
Area아즈메리 산맥
Tagshuman, humanoid, red_blood, SpearWood_onhit_audio, very_slow_movement
생명력
250%
Energy Shield From Life
10%
회피
+40%
저항
30 30 30 0
Damage
250%
정확도
100%
Attack Distance
5 ~ 18
공격 속도
1.5 Second
Damage Spread
±20%
경험치
250%
Model Size
100%
Type
ViperNapuatziAzmeriMap
Metadata
ViperNapuatziAzmeriMap_
레벨
65
생명력
14,654
Damage
531
주문 피해
531
정확도
2,214
공격 속도
1.5
경험치
53,768
Minion Life
14,135
Minion Energy Shield
1,571
Minion Damage
2,072
Minion Armour
4,451
MeleeAtAnimationSpeedBoss
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 속도: 1.5 초
action attack or cast time uses animation length [1]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MPSViperNapuatziFastProjectile
Spell, Projectile, ProjectilesFromUser, Triggerable, Damage
치명타 명중 확률: 5%
시전 속도: 1 초
279.3~418.9 물리 피해
투사체 1개 추가 발사
명중 시 적 중독 유발
base is projectile [1]
distribute projectiles over contact points [1]
monster projectile variation [1038]
projectile uses contact position [1]
spell maximum action distance +% [-20]
use scaled contact offset [1]
GSViperNapuatziSpinSlam
Triggerable, Spell, Damage
치명타 명중 확률: 5%
시전 속도: 1 초
재사용 대기시간: 15 초
1047~1571 물리 피해
action attack or cast time uses animation length [1]
is area damage [1]
voll slam damage +% final at centre [25]
EGViperNapuatziSnakeSacrifice
Triggerable
재사용 대기시간: 30 초
ViperNapuatziSnakeSpark
Spell, Projectile, ProjectilesFromUser, Damage, Duration, Trappable, Totemable, Mineable, Multicastable, Triggerable, Lightning, Unleashable, Invokable
치명타 명중 확률: 5%
시전 속도: 0.7 초
453.8~680.7 물리 피해
투사체 속도 25% 감소
투사체 5개 추가 발사
명중 시 적 중독 유발
base is projectile [1]
base skill effect duration [10000]
check for targets between initiator and projectile source [1]
distribute projectiles over contact points [1]
projectile uses contact direction [1]
projectile uses contact position [1]
projectiles should collide with flying monsters [1]
spark pathing width bounds [15]
spark projectile absolute angle override deg [50]
spark projectile bounces off walls [1]
use scaled contact offset [1]
GSViperNapuatziFireRain
Triggerable, Spell, Damage
치명타 명중 확률: 5%
시전 속도: 1 초
872.7~1309 화염 피해
is area damage [1]
GSViperNapuatziChaosRain
Triggerable, Spell, Damage
치명타 명중 확률: 5%
시전 속도: 1 초
872.7~1309 카오스 피해
is area damage [1]
voll slam damage +% final at centre [25]
GTViperNapuatziFireRain
Triggerable
action attack or cast time uses animation length [1]
GTViperNapuatziChaosRain
Triggerable
action attack or cast time uses animation length [1]
EASViperNapuatziCrissCrossCascade
재사용 대기시간: 40 초
action attack or cast time uses animation length [1]
EAAViperNapuatziDashForward
action attack or cast time uses animation length [1]
EAAViperNapuatziDashBackward
action attack or cast time uses animation length [1]
EAAViperNapuatziDashLeft
action attack or cast time uses animation length [1]
EAAViperNapuatziDashRight
action attack or cast time uses animation length [1]
MAASViperNapuatziCombo
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 속도: 1.5 초
재사용 대기시간: 7 초
명중50%의 확률로 중독 유발
action attack or cast time uses animation length [1]
attack maximum action distance + [15]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MAASViperNapuatziSerpentStrike
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 피해: 80%
공격 속도: 1.5 초
재사용 대기시간: 40 초
주는 공격 피해 20% 감폭
action attack or cast time uses animation length [1]
attack maximum action distance + [40]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
ViperNapuatziLightningSpear
Attack, Projectile, Lightning
Base Damage: 425–637
치명타 명중 확률: 5%
공격 피해: 150%
공격 속도: 1.5 초
재사용 대기시간: 10 초
주는 공격 피해 50% 증폭
물리 피해의 60%를 번개 피해로 전환
10% 증폭된 피해를 준 것처럼 적에게 감전 유발
action attack or cast time uses animation length [1]
attack maximum action distance + [80]
base is projectile [1]
no additional projectiles [1]
projectile uses contact position [1]
use scaled contact offset [1]
GAViperNapuatziSnakeWave
Triggerable, Attack
Base Damage: 425–637
치명타 명중 확률: 5%
공격 피해: 250%
공격 속도: 1.5 초
주는 공격 피해 150% 증폭
명중 시 적 중독 유발
base cannot be blocked [1]
base skill can be avoided by dodge roll [1]
is area damage [1]
CGEViperNapuatziSpear
Spell, Area, Damage, Triggerable, Duration, AreaSpell
시전 속도: 1 초
1초마다 533.3의 기본 카오스 피해를 줌
active skill area of effect radius +% final [-5]
ground caustic art variation [1020]
infinite skill effect duration [1]
EASViperNapuatziCommandSoliders
action attack or cast time uses animation length [1]
EASViperNapuatziProjectileBarrage
재사용 대기시간: 17.5 초
action attack or cast time uses animation length [1]
spell maximum action distance +% [-40]
EASViperNapuatziSnakeRelease
재사용 대기시간: 15 초
action attack or cast time uses animation length [1]
spell maximum action distance +% [-70]
MAASViperNapuatziCombo2
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 피해: 80%
공격 속도: 1.5 초
재사용 대기시간: 7 초
주는 공격 피해 20% 감폭
명중50%의 확률로 중독 유발
action attack or cast time uses animation length [1]
attack maximum action distance + [15]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
GAViperComboEndSlam
Triggerable, Attack
Base Damage: 425–637
치명타 명중 확률: 5%
공격 피해: 120%
공격 속도: 1.5 초
주는 공격 피해 20% 증폭
명중50%의 확률로 중독 유발
is area damage [1]
voll slam damage +% final at centre [20]
MAASViperNapuatziStepThrust
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 속도: 1.5 초
재사용 대기시간: 5 초
공격 명중 시 20%의 확률로 중독 유발
action attack or cast time uses animation length [1]
attack maximum action distance + [10]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MAASViperNapuatziStepSwipes
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 속도: 1.5 초
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
attack maximum action distance + [10]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MAASViperNapuatziDashThrust
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 피해: 70%
공격 속도: 1.5 초
재사용 대기시간: 5 초
주는 공격 피해 30% 감폭
action attack or cast time uses animation length [1]
attack maximum action distance + [0]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MPSViperNapuatziPoisonSpray
Spell, Projectile, ProjectilesFromUser, Triggerable, Damage
치명타 명중 확률: 5%
시전 속도: 1 초
209.4~314.2 물리 피해
명중 시 적 중독 유발
base is projectile [1]
monster projectile variation [1357]
projectile ballistic angle from reference event [1]
projectile spread radius [4]
CGEViperNapuatziGasGround
Spell, Area, Damage, Triggerable, Duration, AreaSpell
시전 속도: 1 초
1초마다 363.6의 기본 카오스 피해를 줌
active skill area of effect radius +% final [-40]
base skill effect duration [6000]
ground caustic art variation [1023]
EASViperNapuatziDashForward
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
EASViperNapuatziDashBackward
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
EASViperNapuatziDashLeft
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
EASViperNapuatziDashRight
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
MAASViperNapuatziJumpStab
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 속도: 1.5 초
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
attack maximum action distance + [0]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MAASViperNapuatziJumpStabMoving
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 속도: 1.5 초
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
attack maximum action distance + [-10]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
EAAViperNapuatziCycloneEndNoTurn
action attack or cast time uses animation length [1]
action do not face target [1]
EAAViperNapuatziCycloneEndTurn
action attack or cast time uses animation length [1]
action do not face target [1]
MAASViperNapuatziStepSweep
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
기본 공격
Base Damage: 425–637
치명타 명중 확률: 5%
공격 속도: 1.5 초
재사용 대기시간: 5 초
action attack or cast time uses animation length [1]
attack maximum action distance + [10]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MPSViperNapuatziProjectileBarrage
Spell, Projectile, ProjectilesFromUser, Triggerable, Damage
치명타 명중 확률: 5%
시전 속도: 1 초
209.4~314.2 물리 피해
투사체 10개 추가 발사
명중 시 적 중독 유발
base is projectile [1]
distribute projectiles over contact points [1]
monster projectile variation [1038]
projectile uses contact position [1]
spell maximum action distance +% [-20]
use scaled contact offset [1]
SSMViperSummonWispPrimal
Spell, Multicastable, Triggerable
시전 속도: 1 초
alternate minion [1119]
monster no drops or experience [1]
number of monsters to summon [1]
summon specific monsters radius +% [-99]
summoned monsters are minions [1]
SSMViperSummonWispWild
Spell, Multicastable, Triggerable
시전 속도: 1 초
alternate minion [1120]
monster no drops or experience [1]
number of monsters to summon [1]
summon specific monsters radius +% [-99]
summoned monsters are minions [1]
SSMViperSummonWispVivid
Spell, Multicastable, Triggerable
시전 속도: 1 초
alternate minion [1121]
monster no drops or experience [1]
number of monsters to summon [1]
summon specific monsters radius +% [-99]
summoned monsters are minions [1]
MDAzmerianViperTornado
Multicastable, Triggerable
action attack or cast time uses animation length [1]
SOAzmerianViperWhirlingSlash
Triggerable
action attack or cast time uses animation length [1]
GSAzmerianViperWhirlingSlash
Triggerable, Spell, Damage
치명타 명중 확률: 6%
시전 속도: 1 초
65.45~196.4 번개 피해
번개 피해의 50%를 카오스 피해로 전환
action attack or cast time uses animation length [1]
is area damage [1]
skill can be active blocked from all directions [1]
GSAzmerianViperTornado
Triggerable, Spell, Damage
치명타 명중 확률: 6%
시전 속도: 1 초
65.45~196.4 번개 피해
번개 피해의 50%를 카오스 피해로 전환
action attack or cast time uses animation length [1]
is area damage [1]
skill can be active blocked from all directions [1]
GSAzmerianViperWhirlingSlashAppear
Triggerable, Spell, Damage
치명타 명중 확률: 6%
시전 속도: 1 초
584.7~1754 번개 피해
번개 피해의 50%를 카오스 피해로 전환
action attack or cast time uses animation length [1]
is area damage [1]
skill can be active blocked from all directions [1]

Object Type

version 2
extends "Metadata/Monsters/Monster"
extends "Metadata/Monsters/BossBase"

StateMachine
{
	define_shared_state =
	"
		emerging;
		spear_visible = 1;
		invisible_after_death;
		commands_left;
		float_epk;
		skip_death;
		collidable = 1;
	"

	define_shared_timer = "combat_style_cooldown;"
	on_or_create_state_collidable_1 = "MakeCollidable();"
	on_or_create_state_collidable_0 = "RemoveCollidability();"
}

Functions
{
	fix_orientation =
	"
		AddOnActionEnd(
		{
			SetOrientation( GetOrientation() + arg1, false, true );
			PlayAnimationType( Idle, 1.0, 0, 0 );
		}, true );
	"
}

Stats
{
	set_monster_delay_item_drops_millis = 4800
}

Preload
{
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperAssembleAudio.ao"
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperShieldsUpAudio.ao"
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperChargeAudio.ao"
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperDeathAudio.ao"
}

Brackets {}

Object Type Codes

version 2
extends "Metadata/Monsters/Monster"
extends "Metadata/Monsters/BossBase"

/* ------------------------------------------------------------------------------------------------------------------- */
/* Generic */
/* ------------------------------------------------------------------------------------------------------------------- */

Render
{
	use_ao_lights = true
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Preload */
/* ------------------------------------------------------------------------------------------------------------------- */

Preload {}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Skill 1 */
/* ------------------------------------------------------------------------------------------------------------------- */

BaseEvents
{
	on_wake = "IfState( dead, 1, { DisableRendering(); } );"
}

Actor {}

Animated {}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Combat Dialogue */
/* ------------------------------------------------------------------------------------------------------------------- */
/*
Actor
{
	on_effect_start_SKILL1 = { Roll( 1, 1, (){ PlayTextAudio( IronCountFightStartTaunt, Metadata/Monsters/PrisonerMonsterBoss ); } ); }

	on_effect_start_SKILL2 = { Roll( 1, 4, (){ PlayTextAudio( PrisonerBoss_LeapSlam_Random, Metadata/Monsters/PrisonerMonsterBoss );} ); }

	on_effect_start_SKILL3 = { Roll( 1, 4, (){ PlayTextAudio( PrisonerBoss_CascadePunch_Random, Metadata/Monsters/PrisonerMonsterBoss );} ); }
}
*/

Brackets
{
	define_bracket =
	"
		player_engaged_dialogue;
		player_heavystun_dialogue;
	"

	player_engaged_dialogue_StrFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Marauder 
	player_engaged_dialogue_StrFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Warrior 
	player_engaged_dialogue_IntFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Witch 
	player_engaged_dialogue_IntFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Sorceress 
	player_engaged_dialogue_DexFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Ranger 
	player_engaged_dialogue_DexFourb = "PlayTextAudio( Lythara_Emerge_Alt_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Huntress 
	player_engaged_dialogue_StrDexFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Duelist 
	player_engaged_dialogue_StrDexFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Mercenary 
	player_engaged_dialogue_DexIntFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Shadow 
	player_engaged_dialogue_DexIntFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Monk 
	player_engaged_dialogue_StrIntFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Templar 
	player_engaged_dialogue_StrIntFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Druid 
	player_heavystun_dialogue_StrFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Marauder 
	player_heavystun_dialogue_StrFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Warrior 
	player_heavystun_dialogue_IntFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Witch 
	player_heavystun_dialogue_IntFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Sorceress 
	player_heavystun_dialogue_DexFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Ranger 
	player_heavystun_dialogue_DexFourb = "PlayTextAudio( Lythara_Knockdown_Huntress_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Huntress 
	player_heavystun_dialogue_StrDexFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Duelist 
	player_heavystun_dialogue_StrDexFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Mercenary 
	player_heavystun_dialogue_DexIntFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Shadow 
	player_heavystun_dialogue_DexIntFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Monk 
	player_heavystun_dialogue_StrIntFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Templar 
	player_heavystun_dialogue_StrIntFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_' );" //	Druid 
}

Functions
{
	emerge_dialogue = "TriggerClassBracket( player_engaged_dialogue, arg1 );"
	heavy_stun_dialogue = "TriggerClassBracket( player_heavystun_dialogue, arg1 );"
	//ALL CLASSES: Lythara_Knockdown_Random
	//HUNTRESS: Lythara_Knockdown_Huntress_Random
	//ALL CLASSES: Lythara_Emerge_Random
	//HUNTRESS: Lythara_Emerge_Alt_Random
	
}
-- src\Data\Spectres.lua
minions["Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriMap_"] = {
    name = "Morwyn, the Kinslayer",
    life = 2.5,
    energyShield = 0.1,
    fireResist = 0,
    coldResist = 0,
    lightningResist = 0,
    chaosResist = 0,
    damage = 2.5,
    damageSpread = 0.2,
    attackTime = 1.5,
    attackRange = 18,
    accuracy = 1,
    skillList = {
        "MeleeAtAnimationSpeedBoss",
        "MAASViperNapuatziCombo",
        "MAASViperNapuatziSerpentStrike",
        "MAASViperNapuatziCombo2",
        "MAASViperNapuatziStepThrust",
        "MAASViperNapuatziStepSwipes",
        "MAASViperNapuatziDashThrust",
        "MAASViperNapuatziJumpStab",
        "MAASViperNapuatziJumpStabMoving",
        "MAASViperNapuatziStepSweep",
        "SSMViperSummonWispPrimal",
        "SSMViperSummonWispWild",
        "SSMViperSummonWispVivid",
        "MPSViperNapuatziFastProjectile",
        "ViperNapuatziLightningSpear",
        "MPSViperNapuatziPoisonSpray",
        "MPSViperNapuatziProjectileBarrage",
        "CGEViperNapuatziSpear",
        "CGEViperNapuatziGasGround",
        "GSViperNapuatziSpinSlam",
        "GSViperNapuatziFireRain",
        "GSViperNapuatziChaosRain",
        "GAViperNapuatziSnakeWave",
        "GAViperComboEndSlam",
        "GSAzmerianViperWhirlingSlash",
        "GSAzmerianViperTornado",
        "GSAzmerianViperWhirlingSlashAppear",
        "EASViperNapuatziCrissCrossCascade",
        "EAAViperNapuatziDashForward",
        "EAAViperNapuatziDashBackward",
        "EAAViperNapuatziDashLeft",
        "EAAViperNapuatziDashRight",
        "EASViperNapuatziCommandSoliders",
        "EASViperNapuatziProjectileBarrage",
        "EASViperNapuatziSnakeRelease",
        "EASViperNapuatziDashForward",
        "EASViperNapuatziDashBackward",
        "EASViperNapuatziDashLeft",
        "EASViperNapuatziDashRight",
        "EAAViperNapuatziCycloneEndNoTurn",
        "EAAViperNapuatziCycloneEndTurn",
        "MDAzmerianViperTornado",
        "EGViperNapuatziSnakeSacrifice",
        "SOAzmerianViperWhirlingSlash",
        "GTViperNapuatziFireRain",
        "GTViperNapuatziChaosRain",
        "ViperNapuatziSnakeSpark",
    },
    modList = {
    },
}
-- src\Data\Skills\spectre.lua
skills["MeleeAtAnimationSpeedBoss"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziCombo"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "base_chance_to_poison_on_hit_%",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {15, 50, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziSerpentStrike"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {40, baseMultiplier = 0.8, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziCombo2"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "base_chance_to_poison_on_hit_%",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {15, 50, baseMultiplier = 0.8, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziStepThrust"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "chance_to_poison_on_hit_with_attacks_%",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {10, 20, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziStepSwipes"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {10, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziDashThrust"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {0, baseMultiplier = 0.7, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziJumpStab"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {0, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziJumpStabMoving"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {-10, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MAASViperNapuatziStepSweep"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {10, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["SSMViperSummonWispPrimal"] = {
    name = "SSMViperSummonWispPrimal",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "alternate_minion",
        "number_of_monsters_to_summon",
        "summon_specific_monsters_radius_+%",
        "summoned_monsters_are_minions",
        "monster_no_drops_or_experience",
    },
    levels = {
        [1] = {1119, 1, -99, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["SSMViperSummonWispWild"] = {
    name = "SSMViperSummonWispWild",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "alternate_minion",
        "number_of_monsters_to_summon",
        "summon_specific_monsters_radius_+%",
        "summoned_monsters_are_minions",
        "monster_no_drops_or_experience",
    },
    levels = {
        [1] = {1120, 1, -99, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["SSMViperSummonWispVivid"] = {
    name = "SSMViperSummonWispVivid",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "alternate_minion",
        "number_of_monsters_to_summon",
        "summon_specific_monsters_radius_+%",
        "summoned_monsters_are_minions",
        "monster_no_drops_or_experience",
    },
    levels = {
        [1] = {1121, 1, -99, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MPSViperNapuatziFastProjectile"] = {
    name = "MPSViperNapuatziFastProjectile",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "monster_projectile_variation",
        "number_of_additional_projectiles",
        "spell_maximum_action_distance_+%",
        "base_is_projectile",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
        "global_poison_on_hit",
        "distribute_projectiles_over_contact_points",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 1038, 1, -20, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["ViperNapuatziLightningSpear"] = {
    name = "ViperNapuatziLightningSpear",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.Projectile] = true,
        [SkillType.Lightning] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "active_skill_base_physical_damage_%_to_convert_to_lightning",
        "active_skill_shock_as_though_damage_+%_final",
        "attack_maximum_action_distance_+",
        "base_is_projectile",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
        "action_attack_or_cast_time_uses_animation_length",
        "no_additional_projectiles",
    },
    levels = {
        [1] = {60, 10, 80, baseMultiplier = 1.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MPSViperNapuatziPoisonSpray"] = {
    name = "MPSViperNapuatziPoisonSpray",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "monster_projectile_variation",
        "projectile_spread_radius",
        "base_is_projectile",
        "global_poison_on_hit",
        "projectile_ballistic_angle_from_reference_event",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 1357, 4, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MPSViperNapuatziProjectileBarrage"] = {
    name = "MPSViperNapuatziProjectileBarrage",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "monster_projectile_variation",
        "number_of_additional_projectiles",
        "spell_maximum_action_distance_+%",
        "base_is_projectile",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
        "global_poison_on_hit",
        "distribute_projectiles_over_contact_points",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 1038, 10, -20, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["CGEViperNapuatziSpear"] = {
    name = "CGEViperNapuatziSpear",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Area] = true,
        [SkillType.Damage] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Duration] = true,
        [SkillType.AreaSpell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        area = true,
        spell = true,
        duration = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "base_chaos_damage_to_deal_per_minute",
        "active_skill_area_of_effect_radius_+%_final",
        "ground_caustic_art_variation",
        "infinite_skill_effect_duration",
    },
    levels = {
        [1] = {1, -5, 1020, levelRequirement = 1, statInterpolation = {3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["CGEViperNapuatziGasGround"] = {
    name = "CGEViperNapuatziGasGround",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Area] = true,
        [SkillType.Damage] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Duration] = true,
        [SkillType.AreaSpell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        area = true,
        spell = true,
        duration = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "base_chaos_damage_to_deal_per_minute",
        "active_skill_area_of_effect_radius_+%_final",
        "ground_caustic_art_variation",
        "base_skill_effect_duration",
    },
    levels = {
        [1] = {1, -40, 1023, 6000, levelRequirement = 1, statInterpolation = {3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSViperNapuatziSpinSlam"] = {
    name = "GSViperNapuatziSpinSlam",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "geometry_spell",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "voll_slam_damage_+%_final_at_centre",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 25, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSViperNapuatziFireRain"] = {
    name = "GSViperNapuatziFireRain",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "geometry_spell",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_fire_damage",
        "spell_maximum_base_fire_damage",
        "is_area_damage",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSViperNapuatziChaosRain"] = {
    name = "GSViperNapuatziChaosRain",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "geometry_spell",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_chaos_damage",
        "spell_maximum_base_chaos_damage",
        "voll_slam_damage_+%_final_at_centre",
        "is_area_damage",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 25, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAViperNapuatziSnakeWave"] = {
    name = "GAViperNapuatziSnakeWave",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "is_area_damage",
        "global_poison_on_hit",
        "base_skill_can_be_avoided_by_dodge_roll",
        "base_cannot_be_blocked",
    },
    levels = {
        [1] = {baseMultiplier = 2.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAViperComboEndSlam"] = {
    name = "GAViperComboEndSlam",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "base_chance_to_poison_on_hit_%",
        "voll_slam_damage_+%_final_at_centre",
        "is_area_damage",
    },
    levels = {
        [1] = {50, 20, baseMultiplier = 1.2, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSAzmerianViperWhirlingSlash"] = {
    name = "GSAzmerianViperWhirlingSlash",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "geometry_spell",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_lightning_damage",
        "spell_maximum_base_lightning_damage",
        "active_skill_base_lightning_damage_%_to_convert_to_chaos",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "skill_can_be_active_blocked_from_all_directions",
    },
    levels = {
        [1] = {0.5, 1.5, 50, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSAzmerianViperTornado"] = {
    name = "GSAzmerianViperTornado",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "geometry_spell",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_lightning_damage",
        "spell_maximum_base_lightning_damage",
        "active_skill_base_lightning_damage_%_to_convert_to_chaos",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "skill_can_be_active_blocked_from_all_directions",
    },
    levels = {
        [1] = {0.5, 1.5, 50, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSAzmerianViperWhirlingSlashAppear"] = {
    name = "GSAzmerianViperWhirlingSlashAppear",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "geometry_spell",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_lightning_damage",
        "spell_maximum_base_lightning_damage",
        "active_skill_base_lightning_damage_%_to_convert_to_chaos",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "skill_can_be_active_blocked_from_all_directions",
    },
    levels = {
        [1] = {0.5, 1.5, 50, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziCrissCrossCascade"] = {
    name = "EASViperNapuatziCrissCrossCascade",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EAAViperNapuatziDashForward"] = {
    name = "EAAViperNapuatziDashForward",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EAAViperNapuatziDashBackward"] = {
    name = "EAAViperNapuatziDashBackward",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EAAViperNapuatziDashLeft"] = {
    name = "EAAViperNapuatziDashLeft",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EAAViperNapuatziDashRight"] = {
    name = "EAAViperNapuatziDashRight",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziCommandSoliders"] = {
    name = "EASViperNapuatziCommandSoliders",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziProjectileBarrage"] = {
    name = "EASViperNapuatziProjectileBarrage",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_maximum_action_distance_+%",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {-40, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziSnakeRelease"] = {
    name = "EASViperNapuatziSnakeRelease",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_maximum_action_distance_+%",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {-70, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziDashForward"] = {
    name = "EASViperNapuatziDashForward",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziDashBackward"] = {
    name = "EASViperNapuatziDashBackward",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziDashLeft"] = {
    name = "EASViperNapuatziDashLeft",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASViperNapuatziDashRight"] = {
    name = "EASViperNapuatziDashRight",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EAAViperNapuatziCycloneEndNoTurn"] = {
    name = "EAAViperNapuatziCycloneEndNoTurn",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
        "action_do_not_face_target",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EAAViperNapuatziCycloneEndTurn"] = {
    name = "EAAViperNapuatziCycloneEndTurn",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
        "action_do_not_face_target",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MDAzmerianViperTornado"] = {
    name = "MDAzmerianViperTornado",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EGViperNapuatziSnakeSacrifice"] = {
    name = "EGViperNapuatziSnakeSacrifice",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["SOAzmerianViperWhirlingSlash"] = {
    name = "SOAzmerianViperWhirlingSlash",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GTViperNapuatziFireRain"] = {
    name = "GTViperNapuatziFireRain",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GTViperNapuatziChaosRain"] = {
    name = "GTViperNapuatziChaosRain",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["ViperNapuatziSnakeSpark"] = {
    name = "ViperNapuatziSnakeSpark",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Damage] = true,
        [SkillType.Duration] = true,
        [SkillType.Trappable] = true,
        [SkillType.Totemable] = true,
        [SkillType.Mineable] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Lightning] = true,
        [SkillType.Unleashable] = true,
        [SkillType.Invokable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 0.7,
    baseFlags = {
        spell = true,
        projectile = true,
        duration = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "base_skill_effect_duration",
        "spark_pathing_width_bounds",
        "spark_projectile_absolute_angle_override_deg",
        "base_projectile_speed_+%",
        "number_of_additional_projectiles",
        "base_is_projectile",
        "projectiles_should_collide_with_flying_monsters",
        "projectile_uses_contact_position",
        "projectile_uses_contact_direction",
        "check_for_targets_between_initiator_and_projectile_source",
        "spark_projectile_bounces_off_walls",
        "global_poison_on_hit",
        "use_scaled_contact_offset",
        "distribute_projectiles_over_contact_points",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 10000, 15, 50, -25, 5, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
monster dropped item rarity +% [1600]
monster slain experience +% [0]
FamilyMonsterActBoss
DomainsMonster (3)
GenerationType고유 (3)
Req. level1
Stats
  • monster slain experience +% Min: 0 Max: 0 Global
  • monster dropped item rarity +% Min: 1600 Max: 1600 Global
  • monster dropped item quantity +% [800]
    monster dropped item rarity +% [1600]
    monster map key of at least same tier as current map drop chance % [25]
    monster slain experience +% [7500]
    unique monster guarantee one rare [1]
    FamilyMonsterMapBoss
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • monster slain experience +% Min: 7500 Max: 7500 Global
  • monster dropped item rarity +% Min: 1600 Max: 1600 Global
  • monster dropped item quantity +% Min: 800 Max: 800 Global
  • unique monster guarantee one rare Min: 1 Max: 1 Global
  • monster map key of at least same tier as current map drop chance % Min: 25 Max: 25 Global
  • 동족 학살자 모르윈
    인간형
    Morwyn, the Kinslayer
    SpectreN
    Tagshuman, humanoid, red_blood, SpearWood_onhit_audio, very_slow_movement
    생명력
    250%
    저항
    0 0 0 0
    Damage
    250%
    정확도
    100%
    Attack Distance
    5 ~ 15
    공격 속도
    1.5 Second
    Damage Spread
    ±20%
    경험치
    250%
    Model Size
    100%
    Type
    ViperNapuatziAzmeriStandalone
    Metadata
    ViperNapuatziAzmeriStandalone
    레벨
    68
    생명력
    19,393
    Damage
    583
    주문 피해
    583
    정확도
    2,464
    공격 속도
    1.5
    경험치
    71,585
    Minion Life
    17,325
    Minion Damage
    2,422
    Minion Armour
    2,413
    MeleeAtAnimationSpeedBoss
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
    기본 공격
    Base Damage: 466–699
    치명타 명중 확률: 5%
    공격 속도: 1.5 초
    action attack or cast time uses animation length [1]
    projectile uses contact position [1]
    skill can fire wand projectiles [1]
    use scaled contact offset [1]

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    extends "Metadata/Monsters/BossBase"
    
    StateMachine
    {
    	define_shared_state =
    	"
    		emerging;
    		spear_visible = 1;
    		invisible_after_death;
    		commands_left;
    		float_epk;
    		skip_death;
    		collidable = 1;
    	"
    
    	define_shared_timer = "combat_style_cooldown;"
    	on_or_create_state_collidable_1 = "MakeCollidable();"
    	on_or_create_state_collidable_0 = "RemoveCollidability();"
    }
    
    Functions
    {
    	fix_orientation =
    	"
    		AddOnActionEnd(
    		{
    			SetOrientation( GetOrientation() + arg1, false, true );
    			PlayAnimationType( Idle, 1.0, 0, 0 );
    		}, true );
    	"
    }
    
    Stats
    {
    	set_monster_delay_item_drops_millis = 4800
    }
    
    Preload
    {
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperAssembleAudio.ao"
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperShieldsUpAudio.ao"
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperChargeAudio.ao"
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperNapuatzi/ao/ViperDeathAudio.ao"
    }
    
    Brackets {}

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    extends "Metadata/Monsters/BossBase"
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Generic */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    Life
    {
    	on_spawned_alive = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperAzmeri/epk/idle_fx.epk' );"
    
    	on_death =
    	"
    		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperAzmeri/epk/idle_fx.epk' );
    		AddEffectPack( 'Metadata/Effects/Utility/EPKs/EmissiveChannel_FadeOut.epk' );
    	"
    
    	on_spawned_dead =
    	"
    		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act3_FOUR/ViperAzmeri/epk/idle_fx.epk' );
    	"
    }
    
    
    Render
    {
    	use_ao_lights = true
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Preload */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    Preload {}
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Skill 1 */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    BaseEvents
    {
    	on_wake = "IfState( dead, 1, { DisableRendering(); } );"
    }
    
    Actor {}
    
    Animated {}
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Combat Dialogue */
    /* ------------------------------------------------------------------------------------------------------------------- */
    /*
    Actor
    {
    	on_effect_start_SKILL1 = { Roll( 1, 1, (){ PlayTextAudio( IronCountFightStartTaunt, Metadata/Monsters/PrisonerMonsterBoss ); } ); }
    
    	on_effect_start_SKILL2 = { Roll( 1, 4, (){ PlayTextAudio( PrisonerBoss_LeapSlam_Random, Metadata/Monsters/PrisonerMonsterBoss );} ); }
    
    	on_effect_start_SKILL3 = { Roll( 1, 4, (){ PlayTextAudio( PrisonerBoss_CascadePunch_Random, Metadata/Monsters/PrisonerMonsterBoss );} ); }
    }
    */
    
    Brackets
    {
    	define_bracket =
    	"
    		player_engaged_dialogue;
    		player_heavystun_dialogue;
    	"
    
    	player_engaged_dialogue_StrFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Marauder 
    	player_engaged_dialogue_StrFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Warrior 
    	player_engaged_dialogue_IntFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Witch 
    	player_engaged_dialogue_IntFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Sorceress 
    	player_engaged_dialogue_DexFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Ranger 
    	player_engaged_dialogue_DexFourb = "PlayTextAudio( Lythara_Emerge_Alt_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Huntress 
    	player_engaged_dialogue_StrDexFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Duelist 
    	player_engaged_dialogue_StrDexFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Mercenary 
    	player_engaged_dialogue_DexIntFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Shadow 
    	player_engaged_dialogue_DexIntFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Monk 
    	player_engaged_dialogue_StrIntFour = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Templar 
    	player_engaged_dialogue_StrIntFourb = "PlayTextAudio( Lythara_Emerge_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Druid 
    	player_heavystun_dialogue_StrFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Marauder 
    	player_heavystun_dialogue_StrFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Warrior 
    	player_heavystun_dialogue_IntFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Witch 
    	player_heavystun_dialogue_IntFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Sorceress 
    	player_heavystun_dialogue_DexFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Ranger 
    	player_heavystun_dialogue_DexFourb = "PlayTextAudio( Lythara_Knockdown_Huntress_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Huntress 
    	player_heavystun_dialogue_StrDexFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Duelist 
    	player_heavystun_dialogue_StrDexFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Mercenary 
    	player_heavystun_dialogue_DexIntFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Shadow 
    	player_heavystun_dialogue_DexIntFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Monk 
    	player_heavystun_dialogue_StrIntFour = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Templar 
    	player_heavystun_dialogue_StrIntFourb = "PlayTextAudio( Lythara_Knockdown_Random, 'Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeri' );" //	Druid 
    }
    
    Functions
    {
    	emerge_dialogue = "TriggerClassBracket( player_engaged_dialogue, arg1 );"
    	heavy_stun_dialogue = "TriggerClassBracket( player_heavystun_dialogue, arg1 );"
    	//ALL CLASSES: Lythara_Knockdown_Random
    	//HUNTRESS: Lythara_Knockdown_Huntress_Random
    	//ALL CLASSES: Lythara_Emerge_Random
    	//HUNTRESS: Lythara_Emerge_Alt_Random
    	
    }
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/VaalMonsters/ViperNapuatzi/ViperNapuatziAzmeriStandalone"] = {
        name = "Morwyn, the Kinslayer",
        life = 2.5,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 2.5,
        damageSpread = 0.2,
        attackTime = 1.5,
        attackRange = 15,
        accuracy = 1,
        skillList = {
            "MeleeAtAnimationSpeedBoss",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MeleeAtAnimationSpeedBoss"] = {
        name = "Basic Attack",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.RangedAttack] = true,
            [SkillType.MirageArcherCanUse] = true,
            [SkillType.Projectile] = true,
            [SkillType.MeleeSingleTarget] = true,
            [SkillType.Melee] = true,
            [SkillType.ProjectilesFromUser] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            melee = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "skill_can_fire_arrows",
            "skill_can_fire_wand_projectiles",
            "action_attack_or_cast_time_uses_animation_length",
            "projectile_uses_contact_position",
            "use_scaled_contact_offset",
        },
        levels = {
            [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    
    keyval
    StateMachine./*,
    StateMachine.boss_life_bar - controls when to show the big life bar (also requires the checkbox in MonsterVarieties to be checked)
    StateMachine.0: Life bar is hidden
    StateMachine.1: Life bar is visible, will hide on death
    StateMachine.dont_hide_lifebar_on_unaggro - controls whether the boss life bar should be hidden when the boss unaggros
    StateMachine.0: Life bar is hidden after a short duration when the boss loses aggro
    StateMachine.1: Life bar remains visible the entire time, can still be controlled by setting the disable_life_bar state
    StateMachine.show_life_bar_when_in_range - delay the life bar from showing up, until the boss is on screen (for wild bosses)
    StateMachine.0: Life bar behaves as normal
    StateMachine.1: Life bar initially only shows up when a player can see the boss on screen, this doesn't make it get removed if the player goes off screen though
    StateMachine.hidden - replaces the Unaggro+hidden_monster combo, and optionally pauses delirium fog
    StateMachine.0: Make aggro and remove hidden monster buff
    StateMachine.1: Unaggro and add hidden monster buff
    StateMachine.2: Unaggro, add hidden monster buff and pause delirium fog
    StateMachine.light - controls the boss point light, attaches to head_light_attachment if it exists (otherwise uses the default)
    StateMachine.0: Light off, handles the fade out
    StateMachine.1: Light on, handles the fade in
    StateMachine.introsequence - for bosses that are doing something before you rudely interrupt them
    StateMachine.boss uses the ChangeToStance1BossFightStart granted effect for this, which is added through the actor component in here
    StateMachine.0: no intro sequence
    StateMachine.1: boss starts off in stance2, then does change to stance1 when a proximity trigger is triggered
    StateMachine.intro_zoom - for bosses that should have the camera zoom out during the intro
    StateMachine.0: no zoom
    StateMachine.1: zoom enabled, with default values. These can be overridden in the monsters ots.
    StateMachine.intro_pan - for bosses that should have the camera pan towards them during the intro
    StateMachine.0: no pan
    StateMachine.1: pan enabled, with default values. These can be overridden in the monsters ots.
    StateMachine.use_offset_camera_controller - if this is set to 1, the boss will spawn and use a specific object as the zoom/pan center point
    StateMachine.The location of this object needs to be set by the boss too, if it isn't you will get warning message
    StateMachine.See GreatWhiteOne (shark boss) as an example, but all you really need is to set the state to 1 and move the object after it spawns
    StateMachine.0: use self as zoom/pan origin
    StateMachine.1: use a new object as the zoom/pan origin
    StateMachine.door_type - defaults to 0 for no door (or no boss control over door), other values are related to specific door types
    StateMachine.When used, also need to do 'set_telepad_indexx' in the monsters ots (BaseEvents), where x is the telepad index
    StateMachine.0: disable telepad, but only if a telepad index has been set
    StateMachine.1: force field door, forcefield blocks entrance on boss aggro, is removed on boss death (requires Metadata/MiscellaneousObjects/BossForceFieldDoor.ot in arena)
    StateMachine.2: prisoner boss door, closed on fight start, doesn't reopen afterwards (Metadata/Terrain/Gallows/Act4/4_5_2/Objects/PrisonBossDoor.ot)
    StateMachine.roaming - State for disabling instant portals on roaming bosses vs arena bosses.
    StateMachine.0: Arena Boss
    StateMachine.1: Roaming Boss
    StateMachine.arena_sector_id - If there are multiple arena bosses in an instance, each boss needs a different arena_sector_id INCLUDING roaming bosses
    StateMachine.It defaults to 1 so most bosses wont need this to be changed
    StateMachine.Currently supports up to three different bosses, but its easy to add more
    StateMachine.This state value is used to decide which boss sectors to destroy, see the triggerbracket on death in the BossBase.ots for more detail
    StateMachine.use_custom_sector_removal_handling - Set to 1 if a boss needs to use its own custom handling for sector removal on death (eg Mastodon)
    StateMachine.0: default behaviour, arena sector is removed on boss death
    StateMachine.1: custom behaviour, this disables the on death sector removal in boss base, so will need to be handled in the bosses otc AND ots
    StateMachine.quick_death_enabled - Use this for bosses with long deaths that are visible when you resurrect at checkpoint after killing them
    StateMachine.DO NOT set the quick_death state manually, this will cause the monster to do its quick death anim when it first dies
    StateMachine.0: default behaviour, death will be played at regular speed
    StateMachine.1: death anim is sped up by 10000x, this should be used for bosses that have events in their death that need to trigger
    StateMachine.2: death anim is sped up by 1000x, deaths with move events dont like being super fast so they can use this slower one
    StateMachine.am_final_boss_in_fight - This is used for multi boss fights to handle resurrecting etc after killing a single boss from fight
    StateMachine.0: reaching this state toggles part_of_multiple_boss_fight to be true, and signifies that this boss is not the final boss
    StateMachine.1: default value, will remain here unless another boss turns flips it to 0
    StateMachine.part_of_multiple_boss_fight - helper state for the above, shouldn't be interacted with manually
    StateMachine.0: currently not part of a multi boss fight
    StateMachine.1: was part of a multi boss fight at some point
    StateMachine.*/,
    StateMachine.define_shared_state =
    StateMachine.",
    StateMachine.boss_life_bar;
    StateMachine.hidden;
    StateMachine.light;
    StateMachine.introsequence;
    StateMachine.disable_life_bar;
    StateMachine.intro_zoom;
    StateMachine.intro_pan;
    StateMachine.use_offset_camera_controller;
    StateMachine.door_type;
    StateMachine.roaming;
    StateMachine.first_aggro;
    StateMachine.room_marker;
    StateMachine.arena_sector_id1;
    StateMachine.use_custom_sector_removal_handling;
    StateMachine.quick_death_enabled;
    StateMachine.quick_death;
    StateMachine.am_final_boss_in_fight1;
    StateMachine.part_of_multiple_boss_fight;
    StateMachine.dead - Boss is dead. This state is saved to the character checkpoint, so if you respawn at checkpoint this state will be automatically set. In BossBase.ots, this also calls KillSelfNoDrops().
    StateMachine.if you DON'T want this state to save/load automatically, use StateMachine{ checkpoint_save_deadfalse }
    StateMachine.0: Boss is alive
    StateMachine.1: Boss is dead
    StateMachine.2: Boss is dead and corpse is hidden
    StateMachine.define_shared_checkpoint_statedead
    Actor.slow_animations_go_to_idlefalse
    Actor.leveled_starting_effectsCTS1BossFightStart
    Stats.corpse_cannot_be_destroyed1
    Stats.base_heavy_stun_duration_ms4000
    Stats.additional_life_scaling_index6
    Life.corpse_usablefalse
    Monster.is_bosstrue
    Edit

    Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.