Яманра, Чудовище
Гуманоид
monster dropped item rarity +% [14700]
monster slain experience +% [0]
unique monster guarantee one rare [1]
Jamanra, the Abomination
SpectreN
AreaАвангард Дредноута, Авангард Дредноута
Tags2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement
Здоровье
717%
Броня
+50%
Сопротивление
30 -30 30 0
Damage
200%
Меткость
100%
Критические попадания Chance
5%
Бонус к критическому урону
+30%
Attack Distance
6 ~ 18
Время атаки
1.5 Second
Damage Spread
±20%
Опыт
300%
Model Size
100%
Type
PerennialKing
Metadata
PerennialKing
Уровень
57
Здоровье
28,694
Броня
1,875
Уклонение
353
Damage
328
Урон от чар
328
Меткость
1,504
Время атаки
1.5
Опыт
40,179
Minion Life
34,294
Minion Damage
1,083
Minion Armour
3,125
GSPerennialKingBasicLightningZap
Triggerable, Spell, Damage
Шанс крит. попадания: 6%
Время применения: 1 сек.
Наносит от 106.7 до 320.1 урона от молнии
action attack or cast time uses animation length [1]
base skill can be blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
spell maximum action distance +% [-85]
MASPerennialKingSandWhip
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
Обычная атака
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 75%
Время атаки: 1.5 сек.
Перезарядка: 6 сек.
Наносит на 25% меньше урона атаками
action attack or cast time uses animation length [1]
attack maximum action distance + [8]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
CTS5PerennialKingSandstorm
action attack or cast time uses animation length [1]
CTS1PerennialKingEndSandstorm
action attack or cast time uses animation length [1]
EASPerennialKingBeaconToss
action attack or cast time uses animation length [1]
spell maximum action distance +% [-35]
EASPerennialKingBeaconBolts
Перезарядка: 15 сек.
action attack or cast time uses animation length [1]
EASPerennialKingLightningSpray
Перезарядка: 22.5 сек.
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitStart
Перезарядка: 30 сек.
action attack or cast time uses animation length [1]
EASPerennialKingBeaconOrbitRecall
action attack or cast time uses animation length [1]
CTS3PerennialKingMultistab
Перезарядка: 25 сек.
action attack or cast time uses animation length [1]
CTS1PerennialKingEndMultistab
action attack or cast time uses animation length [1]
MPWPerennialKingGlassSpearToss
Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
Base Damage: 263–394
Шанс крит. попадания: 5%
Время атаки: 1.5 сек.
Перезарядка: 18 сек.
25% физического урона становится уроном от молнии
Пронзает все цели
action attack or cast time uses animation length [1]
base is projectile [1]
monster projectile variation [1125]
projectile uses contact position [1]
GPAPerennialKingGlassSpearMultiToss
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Время атаки: 1.5 сек.
Перезарядка: 17 сек.
Пронзает все цели
action attack or cast time uses animation length [1]
active skill projectile speed +% variation final [0]
attack maximum action distance + [70]
base is projectile [1]
projectile spread radius [5]
projectile uses contact position [1]
use scaled contact offset [1]
GAPerennialKingGlassSwordSlam
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 450%
Время атаки: 1.5 сек.
Перезарядка: 18 сек.
Наносит на 350% больше урона атаками
35% физического урона становится уроном от молнии
action attack or cast time uses animation length [1]
attack maximum action distance + [25]
base skill cannot be blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
EAAPerennialKingGlassSwordFence
Перезарядка: 17 сек.
action attack or cast time uses animation length [1]
attack maximum action distance + [30]
GAPerennialKingAxeCleave
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 400%
Время атаки: 1.5 сек.
Перезарядка: 26 сек.
Наносит на 300% больше урона атаками
25% физического урона становится уроном от молнии
action attack or cast time uses animation length [1]
attack maximum action distance + [12]
base skill can be avoided by dodge roll [1]
base skill cannot be blocked [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MDPerennialKingObsidianStorm
Multicastable, Triggerable
Перезарядка: 40 сек.
action attack or cast time uses animation length [1]
MDPerennialKingTornado
Multicastable, Triggerable
Перезарядка: 42 сек.
action attack or cast time uses animation length [1]
EASPerennialKingOrbitTornado
action attack or cast time uses animation length [1]
SOPerennialKingObsidianMinigun
Triggerable
Перезарядка: 17 сек.
action attack or cast time uses animation length [1]
EASAbsoluteCartnage
action attack or cast time uses animation length [1]
GSPerennialKingBeaconSpray
Triggerable, Spell, Damage
Шанс крит. попадания: 6%
Время применения: 1 сек.
Наносит от 50.81 до 152.4 урона от молнии
На 25% больше шанса наложения шока
action attack or cast time uses animation length [1]
base skill can be blocked [1]
base skill cannot be parried [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingBeaconSpearStab
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 70%
Время атаки: 1.5 сек.
Наносит на 30% меньше урона атаками
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingBeaconSpearImpact
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 90%
Время атаки: 1.5 сек.
Наносит на 10% меньше урона атаками
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingBeaconOrbitLightningBeam
Triggerable, Spell, Damage
Время применения: 1 сек.
Наносит от 108.4 до 325.2 урона от молнии
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
EDSPerennialKingBeaconLightningBolt
Triggerable, Spell, Damage
Шанс крит. попадания: 6%
Время применения: 1 сек.
Наносит от 525 до 1575 урона от молнии
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [150]
GTPerennialKingGlassSpearToss
Triggerable
action attack or cast time uses animation length [1]
GAPerennialKingGlassSpearTossImpact
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 180%
Время атаки: 1.5 сек.
Наносит на 80% больше урона атаками
25% физического урона становится уроном от молнии
action attack or cast time uses animation length [1]
base is projectile [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingGlassSpearTossImpactMulti
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 150%
Время атаки: 1.5 сек.
Наносит на 50% больше урона атаками
25% физического урона становится уроном от молнии
action attack or cast time uses animation length [1]
base is projectile [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
SOPerennialKingGlassSpearMultiRock
Triggerable
action attack or cast time uses animation length [1]
SOPerennialKingGlassSwordFence
Triggerable
action attack or cast time uses animation length [1]
GSPerennialKingGlassSwordFenceZap
Triggerable, Spell, Damage
Шанс крит. попадания: 6%
Время применения: 1 сек.
Наносит от 18.33 до 55 урона от молнии
На 90% больше скорости накопления шкалы электризации
Урон от молнии от этого умения влияет
на накопление шкалы электризации
action attack or cast time uses animation length [1]
base skill can be avoided by dodge roll [1]
base skill effect duration [4000]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GAPerennialKingObsidianStormImpact
Triggerable, Attack
Base Damage: 263–394
Шанс крит. попадания: 5%
Время атаки: 1.5 сек.
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoPhysDamage
Triggerable, Spell, Damage
Время применения: 1 сек.
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
GSPerennialKingSandnadoLightningDamage
Triggerable, Spell, Damage
Время применения: 1 сек.
Наносит от 203.2 до 609.7 урона от молнии
action attack or cast time uses animation length [1]
is area damage [1]
monster penalty against minions damage +% final vs player minions [200]
MPWPerennialKingObsidianMinigun
Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
Base Damage: 263–394
Шанс крит. попадания: 5%
Урон от атаки: 50%
Время атаки: 1.5 сек.
Наносит на 50% меньше урона атаками
25% физического урона становится уроном от молнии
action attack or cast time uses animation length [1]
active skill projectile speed +% variation final [20]
base is projectile [1]
monster projectile variation [1127]
projectile ballistic angle from target distance [1]
projectile ballistic gravity override [400]
projectile maximum range override [250]
projectile spread radius [0]

Object Type

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

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

BaseEvents
{
	on_construction_complete = { globals.pen_king = this; AddToPlayerWakeGroup( true ); }
	set_is_act_boss = true
}

Preload
{
	preload_character_animation = "KnockdownLoop"
	preload_animated_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingStage2OnlyCorpses.ao"
	preload_environment = "G2_12_2"
}

Actor
{
	basic_action = "MoveForced"
	basic_action = "StrafeLeftNoFlee"
	basic_action = "StrafeRightNoFlee"
	leveled_starting_effects = "DoLiterallyNothing"
}

StateMachine
{
	// the fake PK sets this to 0 when the emerge sequence begins, so it can swap to the correct skin
	define_shared_state =
	"
		invis = 1;
		lock_on;
		tornados;
	"

	define_shared_checkpoint_state = "seen_intro;"
	on_state_lock_on_0 = "SetUsesDirectionalRunAnimations( false );"
	on_state_lock_on_1 = "SetUsesDirectionalRunAnimations( true );"
	on_or_create_state_invis_0 = "MakeCollidable();"
	on_or_create_state_invis_1 = "RemoveCollidability();"
}

Stats
{
	set_monster_delay_item_drops_millis = 11000
	strafe_distance_+% = -60
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Beacon Shared */
/* ------------------------------------------------------------------------------------------------------------------- */

StateMachine
{
	// these states are used for ALL the beacon skills and keep track of the beacons, so the boss knows if it can use the other beacon skills
	define_shared_state =
	"
		has_left_beacon = 1;
		has_right_beacon = 1;
	"
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Phase change to second arena */
/* ------------------------------------------------------------------------------------------------------------------- */

StateMachine
{
	define_shared_state = "first_arena_complete;"
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Obsidian Spear Toss (multi) */
/* ------------------------------------------------------------------------------------------------------------------- */

Animated
{
	// this event fires a bit before the projectiles do, so they target a location that is a bit behind to prevent them from always hitting the target
	// the target points are generated around a circle, so they need to be reshuffled to minimise projectile crossover
	on_event_prepare_proj_center =
	"
		this.spear_count = 0;
		this.multi_spear_target_center = target.GetLocation();
		Call( generate_spear_target_points, multi_spear_target_center, 20.0, 8 );
		this.target_points = null;
		this.target_points += target_points2[2];
		this.target_points += target_points2[1];
		this.target_points += target_points2[3];
		this.target_points += target_points2[0];
		this.target_points += target_points2[4];
		this.target_points += target_points2[7];
		this.target_points += target_points2[5];
		this.target_points += target_points2[6];
	"

	on_event_prepare_proj =
	"
		SetTargetLocation( GetVariablesFromGroup( target_points, spear_count, Index ), 0, 0, true );
		this.spear_count = spear_count + 1;
	"
}

Functions
{
	// arg1: center (location)
	// arg2: radius (float)
	// arg3: num points (float)
	generate_spear_target_points =
	"
		this.target_points2 = null;
		this.angle = 0.0;
		local angle_increment = 360.0 / arg3;
		local pi = 3.14159265359;
		Repeat( 8, ()
		{
			local new_loc = MakeLocation( arg1.x + Eval( arg2 * Cos( angle ) ), arg1.y + Eval( arg2 * Sin( angle ) ) );
			this.target_points2 += new_loc;
			this.angle = angle + angle_increment;
		} );
	"
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Death */
/* ------------------------------------------------------------------------------------------------------------------- */

StateMachine
{
	define_shared_state = "lost_head;"
}

Object Type Codes

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

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

StateMachine
{
	// this state is set by the 'fake' perennial king that exists pre-emerge, so when it does emerge it can swap skins
	// fake PK: Metadata/Terrain/Gallows/Act2/2_12_2/Objects/PerennialKingHuman
	on_or_create_state_invis_0 = "EnableRendering();"
	on_or_create_state_invis_1 = "DisableRendering();"

	on_state_dead_1 =
	{
		globals.destructable_arena_core.PlayAnimation( crash_01 );
		globals.destructable_arena_core.GoToAnimationEnd();
	}
}

Render
{
	use_ao_lights = true
	allow_attached_arrows = false
}

Preload
{
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/sand_storm_arena.ao"
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/big_zap_01.ao"
	preload_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingBeacon"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend1"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend2"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend3"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend4_"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend5"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend6"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend7"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend8"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend9"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend10__"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend11"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend12"
	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend13"
	preload_environment = "G2_12_2_boss"
	preload_misc_beam = "PerennialKingBeaconSprayBeam"
	preload_misc_beam = "PerennialKingHandsprayBeam"
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Movement/Turning */
/* ------------------------------------------------------------------------------------------------------------------- */

// whenever PK turns need to also play an additive turn animation, using the correct animation for the turn direction (left or right)
// can do this by constantly checking the monsters orientation (GetOrientation() and comparing it with its bearing (GetAnimatedBearing()))
// orientation is the server orientation, so this value will always be the actual direction the monster is facing
// bearing is the clients current facing direction, and this one does visually match with the monsters facing direction
// so whenever those two aren't the same, you can assume the monster is turning
// also, when the monster is moving don't do any of this cause it messes with the additive n-directional anims
Positioned
{
	on_initial_position_set = "StartStateTimer( check_bearing );"

	on_movement_started =
	"
		If( GetState( current_rotate_dir ) > 0, (){ SetStateTo( current_rotate_dir, 0 ); } );
	"
}

StateMachine
{
	define_state = "current_rotate_dir;"
	define_timer = "check_bearing = 0.033;"

	// compare the bearing and orientation here, and then set the current_rotate_dir state to 1/2/11/12 (if its not already set)
	// that state being set to one of those values causes the additive turn anim to play, then the state is reset after that anim is finished
	// 1 and 2 are for the right turns, 1 being used for shorter turns (based on the angle_diff value), and 11/12 are for left with 11 being the short one
	// there is a 10 degree no-turn forward angle, to prevent tiny turns that aren't needed
	on_timer_check_bearing =
	"
		this.orientation = GetOrientation();
		this.bearing = GetAnimatedBearing();
		this.angle_diff = bearing - orientation;
		this.angle_diff = Round( EvalIf( angle_diff > 180.0, angle_diff - 360.0, EvalIf( angle_diff < -180, angle_diff + 360.0, angle_diff ) ), 2 );
		// If( angle_diff == 0.0, (){ FadeAnimations( 9, 0.666 ); } );
		If( And( angle_diff > 5.0, angle_diff <= 45.0 ), ()
		{
			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 1 ); } );
		} );
		If( angle_diff > 45.0, ()
		{
			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 2 ); } );
		} );
		If( And( angle_diff < -5.0, angle_diff >= -45.0 ), ()
		{
			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 11 ); } );
		} );
		If( angle_diff < -45.0, ()
		{
			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 12 ); } );
		} );
		StartStateTimer( check_bearing );
	"

	// play a different additive turn anim for different turn directions and velocity
	on_state_current_rotate_dir_1 =
	"
		If( GetCurrentMoveSpeed() < 1.0, ()
		{
			PlayAdditiveAnimation( turn_02_right, 9 );
			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
	"

	on_state_current_rotate_dir_2 =
	"
		If( GetCurrentMoveSpeed() < 1.0, ()
		{
			PlayAdditiveAnimation( turn_01_right, 9 );
			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
	"

	on_state_current_rotate_dir_11 =
	"
		If( GetCurrentMoveSpeed() < 1.0, ()
		{
			PlayAdditiveAnimation( turn_02_left, 9 );
			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
	"

	on_state_current_rotate_dir_12 =
	"
		If( GetCurrentMoveSpeed() < 1.0, ()
		{
			PlayAdditiveAnimation( turn_01_left, 9 );
			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
	"
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Phase change to second arena */
/* ------------------------------------------------------------------------------------------------------------------- */

Functions
{
	fade_out = "FadeToBlack( 0, 3000, 6000 );"
	destroy_cart_core = "globals.destructable_arena_core.PlayAnimationAtSpeed( crash_01, 1.0 );"

	destroy_cart_core_instant =
	"
		globals.destructable_arena_core.PlayAnimation( crash_01 );
		globals.destructable_arena_core.GoToAnimationEnd();
	"

	hide_player_weapons = "arg1.HideWeapons();"
	show_player_weapons = "arg1.ShowWeapons();"
}

StateMachine
{
	on_or_create_state_first_arena_complete_1 = "TriggerBracket( arena_sector_destruction, 1 );"
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Death */
/* ------------------------------------------------------------------------------------------------------------------- */

StateMachine
{
	on_or_create_state_lost_head_1 =
	"
		HideMeshSegment( PerennialKing_headShape );
		DetachAllOfType( 'Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.fmt;Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.ao' );
	"
}

Functions
{
	get_up_asala = { PlayCharacterAudioEvent( AfterPerennialKingSeeAsala ); }
}

/* ------------------------------------------------------------------------------------------------------------------- */
/* Audio */
/* ------------------------------------------------------------------------------------------------------------------- */

GlobalAudioParamEvents
{
	player_in_range_param = "PerennialKing2InRange"
	life_percent_param = "PerennialKing2LifePercentage"
	range = 130
}

Life
{
	on_life_percent_reaches_1 = "PlayTextAudio( PerennialKing_Dreadnought_DeathMisc_7, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 1500 );"
}

Actor
{
	on_effect_start_CTS1BossFightStart = "QueueTextAudio( PerennialKing_Dreadnought_Intro_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 3500 );"

	on_effect_start_GSPerennialKingBasicLightningZap =
	"
		Roll( 1, 6, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_MASPerennialKingSandWhip =
	"
		Roll( 1, 5, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_CTS5PerennialKingSandstorm =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_SummonSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_EASPerennialKingBeaconToss =
	"
		Roll( 1, 5, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_EASPerennialKingBeaconBolts =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_BeaconLightning_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_EASPerennialKingLightningSpray =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_BeaconLightningSpray_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_EASPerennialKingBeaconOrbitStart =
	"
		Roll( 1, 1, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_BeaconSend_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_CTS3PerennialKingMultistab =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_BeaconStab_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_MPWPerennialKingGlassSpearToss =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_GPAPerennialKingGlassSpearMultiToss =
	"
		Roll( 1, 1, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_SpearThrow_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_GAPerennialKingGlassSwordSlam =
	"
		Roll( 1, 1, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_2hSword_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_EAAPerennialKingGlassSwordFence =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_Lacerate_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_GAPerennialKingAxeCleave =
	"
		Roll( 1, 5, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_MDPerennialKingObsidianStorm =
	"
		Roll( 1, 1, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_ObsidianTornado_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_MDPerennialKingTornado =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_Tornado_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_SOPerennialKingObsidianMinigun =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_BeaconElectrify_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_effect_start_EASAbsoluteCartnage =
	"
		Roll( 1, 1, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_Countess_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 1000 );
		} );
	"

	on_effect_event_contact_for_EASPerennialKingOrbitTornado =
	"
		Roll( 1, 1, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_BeastSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"
}

Animated
{
	on_heavy_stun_01 =
	"
		Roll( 1, 2, ()
		{
			PlayTextAudio( PerennialKing_Dreadnought_HeavyStun_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
		} );
	"

	on_death_idle_01 =
	"
			Delay( 2, { PlayTextAudio( PerennialKing_Dreadnought_PostStabDeath, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' ); } );
			
	"
}
-- src\Data\Spectres.lua
minions["Metadata/Monsters/PerennialKingStage2/PerennialKing"] = {
    name = "Jamanra, the Abomination",
    life = 7.17,
    fireResist = 0,
    coldResist = 0,
    lightningResist = 0,
    chaosResist = 0,
    damage = 2,
    damageSpread = 0.2,
    attackTime = 1.5,
    attackRange = 18,
    accuracy = 1,
    skillList = {
        "MASPerennialKingSandWhip",
        "GPAPerennialKingGlassSpearMultiToss",
        "MPWPerennialKingGlassSpearToss",
        "MPWPerennialKingObsidianMinigun",
        "CTS1PerennialKingEndMultistab",
        "CTS3PerennialKingMultistab",
        "CTS5PerennialKingSandstorm",
        "CTS1PerennialKingEndSandstorm",
        "GAPerennialKingBeaconSpearStab",
        "GAPerennialKingBeaconSpearImpact",
        "GSPerennialKingBeaconOrbitLightningBeam",
        "GSPerennialKingBasicLightningZap",
        "GAPerennialKingGlassSwordSlam",
        "GAPerennialKingAxeCleave",
        "GAPerennialKingObsidianStormImpact",
        "GSPerennialKingSandnadoPhysDamage",
        "GSPerennialKingSandnadoLightningDamage",
        "GSPerennialKingBeaconSpray",
        "GAPerennialKingGlassSpearTossImpact",
        "GAPerennialKingGlassSpearTossImpactMulti",
        "GSPerennialKingGlassSwordFenceZap",
        "EASPerennialKingBeaconToss",
        "EASPerennialKingBeaconBolts",
        "EASPerennialKingLightningSpray",
        "EASPerennialKingBeaconOrbitStart",
        "EASPerennialKingBeaconOrbitRecall",
        "EASAbsoluteCartnage",
        "EAAPerennialKingGlassSwordFence",
        "EASPerennialKingOrbitTornado",
        "MDPerennialKingObsidianStorm",
        "MDPerennialKingTornado",
        "SOPerennialKingObsidianMinigun",
        "SOPerennialKingGlassSpearMultiRock",
        "SOPerennialKingGlassSwordFence",
        "GTPerennialKingGlassSpearToss",
        "EDSPerennialKingBeaconLightningBolt",
    },
    modList = {
    },
}
-- src\Data\Skills\spectre.lua
skills["MASPerennialKingSandWhip"] = {
    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] = {8, baseMultiplier = 0.75, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GPAPerennialKingGlassSpearMultiToss"] = {
    name = "GPAPerennialKingGlassSpearMultiToss",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "active_skill_projectile_speed_+%_variation_final",
        "projectile_spread_radius",
        "base_is_projectile",
        "use_scaled_contact_offset",
        "projectile_uses_contact_position",
        "action_attack_or_cast_time_uses_animation_length",
        "always_pierce",
    },
    levels = {
        [1] = {70, 0, 5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MPWPerennialKingGlassSpearToss"] = {
    name = "MPWPerennialKingGlassSpearToss",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Damage] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "monster_projectile_variation",
        "active_skill_base_physical_damage_%_to_convert_to_lightning",
        "base_is_projectile",
        "projectile_uses_contact_position",
        "action_attack_or_cast_time_uses_animation_length",
        "always_pierce",
    },
    levels = {
        [1] = {1125, 25, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MPWPerennialKingObsidianMinigun"] = {
    name = "MPWPerennialKingObsidianMinigun",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Damage] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "monster_projectile_variation",
        "projectile_spread_radius",
        "projectile_ballistic_gravity_override",
        "projectile_maximum_range_override",
        "active_skill_projectile_speed_+%_variation_final",
        "active_skill_base_physical_damage_%_to_convert_to_lightning",
        "base_is_projectile",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_ballistic_angle_from_target_distance",
    },
    levels = {
        [1] = {1127, 0, 400, 250, 20, 25, baseMultiplier = 0.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["CTS1PerennialKingEndMultistab"] = {
    name = "CTS1PerennialKingEndMultistab",
    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["CTS3PerennialKingMultistab"] = {
    name = "CTS3PerennialKingMultistab",
    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["CTS5PerennialKingSandstorm"] = {
    name = "CTS5PerennialKingSandstorm",
    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["CTS1PerennialKingEndSandstorm"] = {
    name = "CTS1PerennialKingEndSandstorm",
    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["GAPerennialKingBeaconSpearStab"] = {
    name = "GAPerennialKingBeaconSpearStab",
    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 = {
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
    },
    levels = {
        [1] = {200, baseMultiplier = 0.7, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingBeaconSpearImpact"] = {
    name = "GAPerennialKingBeaconSpearImpact",
    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 = {
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
    },
    levels = {
        [1] = {200, baseMultiplier = 0.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBeaconOrbitLightningBeam"] = {
    name = "GSPerennialKingBeaconOrbitLightningBeam",
    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",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
    },
    levels = {
        [1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBasicLightningZap"] = {
    name = "GSPerennialKingBasicLightningZap",
    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",
        "spell_maximum_action_distance_+%",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_skill_can_be_blocked",
    },
    levels = {
        [1] = {0.5, 1.5, -85, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSwordSlam"] = {
    name = "GAPerennialKingGlassSwordSlam",
    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 = {
        "attack_maximum_action_distance_+",
        "active_skill_base_physical_damage_%_to_convert_to_lightning",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_skill_cannot_be_blocked",
    },
    levels = {
        [1] = {25, 35, 200, baseMultiplier = 4.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingAxeCleave"] = {
    name = "GAPerennialKingAxeCleave",
    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 = {
        "attack_maximum_action_distance_+",
        "active_skill_base_physical_damage_%_to_convert_to_lightning",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_skill_can_be_avoided_by_dodge_roll",
        "base_skill_cannot_be_blocked",
    },
    levels = {
        [1] = {12, 25, 200, baseMultiplier = 4, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingObsidianStormImpact"] = {
    name = "GAPerennialKingObsidianStormImpact",
    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 = {
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {200, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingSandnadoPhysDamage"] = {
    name = "GSPerennialKingSandnadoPhysDamage",
    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 = {
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {200, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingSandnadoLightningDamage"] = {
    name = "GSPerennialKingSandnadoLightningDamage",
    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",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingBeaconSpray"] = {
    name = "GSPerennialKingBeaconSpray",
    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_shock_chance_+%_final",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_skill_can_be_blocked",
        "base_skill_cannot_be_parried",
    },
    levels = {
        [1] = {0.5, 1.5, 25, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSpearTossImpact"] = {
    name = "GAPerennialKingGlassSpearTossImpact",
    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,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "active_skill_base_physical_damage_%_to_convert_to_lightning",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_is_projectile",
    },
    levels = {
        [1] = {25, 200, baseMultiplier = 1.8, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GAPerennialKingGlassSpearTossImpactMulti"] = {
    name = "GAPerennialKingGlassSpearTossImpactMulti",
    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,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "active_skill_base_physical_damage_%_to_convert_to_lightning",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_is_projectile",
    },
    levels = {
        [1] = {25, 200, baseMultiplier = 1.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSPerennialKingGlassSwordFenceZap"] = {
    name = "GSPerennialKingGlassSwordFenceZap",
    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_electrocutes_as_though_dealt_damage_+%_final",
        "base_skill_effect_duration",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_lightning_damage_can_electrocute",
        "base_skill_can_be_avoided_by_dodge_roll",
    },
    levels = {
        [1] = {0.5, 1.5, 90, 4000, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconToss"] = {
    name = "EASPerennialKingBeaconToss",
    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] = {-35, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingBeaconBolts"] = {
    name = "EASPerennialKingBeaconBolts",
    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["EASPerennialKingLightningSpray"] = {
    name = "EASPerennialKingLightningSpray",
    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["EASPerennialKingBeaconOrbitStart"] = {
    name = "EASPerennialKingBeaconOrbitStart",
    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["EASPerennialKingBeaconOrbitRecall"] = {
    name = "EASPerennialKingBeaconOrbitRecall",
    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["EASAbsoluteCartnage"] = {
    name = "EASAbsoluteCartnage",
    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["EAAPerennialKingGlassSwordFence"] = {
    name = "EAAPerennialKingGlassSwordFence",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {30, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASPerennialKingOrbitTornado"] = {
    name = "EASPerennialKingOrbitTornado",
    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["MDPerennialKingObsidianStorm"] = {
    name = "MDPerennialKingObsidianStorm",
    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["MDPerennialKingTornado"] = {
    name = "MDPerennialKingTornado",
    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["SOPerennialKingObsidianMinigun"] = {
    name = "SOPerennialKingObsidianMinigun",
    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["SOPerennialKingGlassSpearMultiRock"] = {
    name = "SOPerennialKingGlassSpearMultiRock",
    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["SOPerennialKingGlassSwordFence"] = {
    name = "SOPerennialKingGlassSwordFence",
    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["GTPerennialKingGlassSpearToss"] = {
    name = "GTPerennialKingGlassSpearToss",
    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["EDSPerennialKingBeaconLightningBolt"] = {
    name = "EDSPerennialKingBeaconLightningBolt",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_lightning_damage",
        "spell_maximum_base_lightning_damage",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {0.5, 1.5, 150, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
monster dropped item rarity +% [14700]
monster slain experience +% [0]
unique monster guarantee one rare [1]
IdMonsterUniqueT3Boss
FamilyMonsterActBoss
DomainsMonster (3)
GenerationTypeуник (3)
Req. level1
Stats
  • monster slain experience +% Min: 0 Max: 0 Global
  • monster dropped item rarity +% Min: 14700 Max: 14700 Global
  • unique monster guarantee one rare Min: 1 Max: 1 Global
  • Яманра, Чудовище
    Гуманоид
    monster dropped item rarity +% [14700]
    monster slain experience +% [0]
    unique monster guarantee one rare [1]
    monster dropped item quantity +% [800]
    monster dropped item rarity +% [10000]
    monster map key of at least same tier as current map drop chance % [25]
    monster slain experience +% [9000]
    unique monster guarantee one rare [1]
    200% увеличение шанса наложения шока
    Jamanra, the Abomination
    SpectreN
    AreaМедная цитадель
    Tags2HSharpMetal_onhit_audio, human, humanoid, not_dex, not_int, red_blood, very_slow_movement
    Здоровье
    540%
    Броня
    +50%
    Сопротивление
    30 -30 30 0
    Damage
    200%
    Меткость
    100%
    Критические попадания Chance
    5%
    Бонус к критическому урону
    +30%
    Attack Distance
    6 ~ 18
    Время атаки
    1.5 Second
    Damage Spread
    ±20%
    Опыт
    300%
    Model Size
    100%
    Type
    PerennialKingMap
    Metadata
    PerennialKingMap
    Уровень
    80
    Здоровье
    84,289
    Броня
    7,205
    Уклонение
    644
    Damage
    668
    Урон от чар
    668
    Меткость
    3,204
    Время атаки
    1.5
    Опыт
    300,000
    Minion Life
    54,454
    Minion Damage
    3,553
    Minion Armour
    12,008
    GSPerennialKingBasicLightningZap
    Triggerable, Spell, Damage
    Шанс крит. попадания: 6%
    Время применения: 1 сек.
    Наносит от 214.4 до 643.3 урона от молнии
    action attack or cast time uses animation length [1]
    base skill can be blocked [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    spell maximum action distance +% [-85]
    MASPerennialKingSandWhip
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
    Обычная атака
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 75%
    Время атаки: 1.5 сек.
    Перезарядка: 6 сек.
    Наносит на 25% меньше урона атаками
    action attack or cast time uses animation length [1]
    attack maximum action distance + [8]
    projectile uses contact position [1]
    skill can fire wand projectiles [1]
    use scaled contact offset [1]
    CTS5PerennialKingSandstorm
    action attack or cast time uses animation length [1]
    CTS1PerennialKingEndSandstorm
    action attack or cast time uses animation length [1]
    EASPerennialKingBeaconToss
    action attack or cast time uses animation length [1]
    spell maximum action distance +% [-35]
    EASPerennialKingBeaconBolts
    Перезарядка: 15 сек.
    action attack or cast time uses animation length [1]
    EASPerennialKingLightningSpray
    Перезарядка: 22.5 сек.
    action attack or cast time uses animation length [1]
    EASPerennialKingBeaconOrbitStart
    Перезарядка: 30 сек.
    action attack or cast time uses animation length [1]
    EASPerennialKingBeaconOrbitRecall
    action attack or cast time uses animation length [1]
    CTS3PerennialKingMultistab
    Перезарядка: 25 сек.
    action attack or cast time uses animation length [1]
    CTS1PerennialKingEndMultistab
    action attack or cast time uses animation length [1]
    MPWPerennialKingGlassSpearToss
    Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Время атаки: 1.5 сек.
    Перезарядка: 18 сек.
    25% физического урона становится уроном от молнии
    Пронзает все цели
    action attack or cast time uses animation length [1]
    base is projectile [1]
    monster projectile variation [1125]
    projectile uses contact position [1]
    GPAPerennialKingGlassSpearMultiToss
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Время атаки: 1.5 сек.
    Перезарядка: 17 сек.
    Пронзает все цели
    action attack or cast time uses animation length [1]
    active skill projectile speed +% variation final [0]
    attack maximum action distance + [70]
    base is projectile [1]
    projectile spread radius [5]
    projectile uses contact position [1]
    use scaled contact offset [1]
    GAPerennialKingGlassSwordSlam
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 450%
    Время атаки: 1.5 сек.
    Перезарядка: 18 сек.
    Наносит на 350% больше урона атаками
    35% физического урона становится уроном от молнии
    action attack or cast time uses animation length [1]
    attack maximum action distance + [25]
    base skill cannot be blocked [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    EAAPerennialKingGlassSwordFence
    Перезарядка: 17 сек.
    action attack or cast time uses animation length [1]
    attack maximum action distance + [30]
    GAPerennialKingAxeCleave
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 400%
    Время атаки: 1.5 сек.
    Перезарядка: 26 сек.
    Наносит на 300% больше урона атаками
    25% физического урона становится уроном от молнии
    action attack or cast time uses animation length [1]
    attack maximum action distance + [12]
    base skill can be avoided by dodge roll [1]
    base skill cannot be blocked [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    MDPerennialKingObsidianStorm
    Multicastable, Triggerable
    Перезарядка: 40 сек.
    action attack or cast time uses animation length [1]
    MDPerennialKingTornado
    Multicastable, Triggerable
    Перезарядка: 42 сек.
    action attack or cast time uses animation length [1]
    EASPerennialKingOrbitTornado
    action attack or cast time uses animation length [1]
    SOPerennialKingObsidianMinigun
    Triggerable
    Перезарядка: 17 сек.
    action attack or cast time uses animation length [1]
    EASAbsoluteCartnage
    action attack or cast time uses animation length [1]
    GSPerennialKingBeaconSpray
    Triggerable, Spell, Damage
    Шанс крит. попадания: 6%
    Время применения: 1 сек.
    Наносит от 102.1 до 306.3 урона от молнии
    На 25% больше шанса наложения шока
    action attack or cast time uses animation length [1]
    base skill can be blocked [1]
    base skill cannot be parried [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    GAPerennialKingBeaconSpearStab
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 70%
    Время атаки: 1.5 сек.
    Наносит на 30% меньше урона атаками
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    GAPerennialKingBeaconSpearImpact
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 90%
    Время атаки: 1.5 сек.
    Наносит на 10% меньше урона атаками
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    GSPerennialKingBeaconOrbitLightningBeam
    Triggerable, Spell, Damage
    Время применения: 1 сек.
    Наносит от 217.8 до 653.5 урона от молнии
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    EDSPerennialKingBeaconLightningBolt
    Triggerable, Spell, Damage
    Шанс крит. попадания: 6%
    Время применения: 1 сек.
    Наносит от 1055 до 3166 урона от молнии
    action attack or cast time uses animation length [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [150]
    GTPerennialKingGlassSpearToss
    Triggerable
    action attack or cast time uses animation length [1]
    GAPerennialKingGlassSpearTossImpact
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 180%
    Время атаки: 1.5 сек.
    Наносит на 80% больше урона атаками
    25% физического урона становится уроном от молнии
    action attack or cast time uses animation length [1]
    base is projectile [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    GAPerennialKingGlassSpearTossImpactMulti
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 150%
    Время атаки: 1.5 сек.
    Наносит на 50% больше урона атаками
    25% физического урона становится уроном от молнии
    action attack or cast time uses animation length [1]
    base is projectile [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    SOPerennialKingGlassSpearMultiRock
    Triggerable
    action attack or cast time uses animation length [1]
    SOPerennialKingGlassSwordFence
    Triggerable
    action attack or cast time uses animation length [1]
    GSPerennialKingGlassSwordFenceZap
    Triggerable, Spell, Damage
    Шанс крит. попадания: 6%
    Время применения: 1 сек.
    Наносит от 35.39 до 106.2 урона от молнии
    На 90% больше скорости накопления шкалы электризации
    Урон от молнии от этого умения влияет
    на накопление шкалы электризации
    action attack or cast time uses animation length [1]
    base skill can be avoided by dodge roll [1]
    base skill effect duration [4000]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    GAPerennialKingObsidianStormImpact
    Triggerable, Attack
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Время атаки: 1.5 сек.
    action attack or cast time uses animation length [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    GSPerennialKingSandnadoPhysDamage
    Triggerable, Spell, Damage
    Время применения: 1 сек.
    action attack or cast time uses animation length [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    GSPerennialKingSandnadoLightningDamage
    Triggerable, Spell, Damage
    Время применения: 1 сек.
    Наносит от 408.5 до 1225 урона от молнии
    action attack or cast time uses animation length [1]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [200]
    MPWPerennialKingObsidianMinigun
    Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Damage, Triggerable
    Base Damage: 534–801
    Шанс крит. попадания: 5%
    Урон от атаки: 50%
    Время атаки: 1.5 сек.
    Наносит на 50% меньше урона атаками
    25% физического урона становится уроном от молнии
    action attack or cast time uses animation length [1]
    active skill projectile speed +% variation final [20]
    base is projectile [1]
    monster projectile variation [1127]
    projectile ballistic angle from target distance [1]
    projectile ballistic gravity override [400]
    projectile maximum range override [250]
    projectile spread radius [0]

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    extends "Metadata/Monsters/BossBase"
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Generic */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    BaseEvents
    {
    	on_construction_complete = { globals.pen_king = this; AddToPlayerWakeGroup( true ); }
    }
    
    Preload
    {
    	preload_character_animation = "KnockdownLoop"
    	preload_animated_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingStage2OnlyCorpses.ao"
    	preload_environment = "G2_12_2"
    }
    
    Actor
    {
    	basic_action = "MoveForced"
    	basic_action = "StrafeLeftNoFlee"
    	basic_action = "StrafeRightNoFlee"
    	leveled_starting_effects = "DoLiterallyNothing"
    }
    
    StateMachine
    {
    	// the fake PK sets this to 0 when the emerge sequence begins, so it can swap to the correct skin
    	define_shared_state =
    	"
    		invis = 1;
    		lock_on;
    		tornados;
    		seen_intro = 1;
    	"
    
    	on_state_lock_on_0 = "SetUsesDirectionalRunAnimations( false );"
    	on_state_lock_on_1 = "SetUsesDirectionalRunAnimations( true );"
    	on_or_create_state_invis_0 = "MakeCollidable();"
    	on_or_create_state_invis_1 = "RemoveCollidability();"
    }
    
    Stats
    {
    	set_monster_delay_item_drops_millis = 11000
    	strafe_distance_+% = -60
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Beacon Shared */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    StateMachine
    {
    	// these states are used for ALL the beacon skills and keep track of the beacons, so the boss knows if it can use the other beacon skills
    	define_shared_state =
    	"
    		has_left_beacon = 1;
    		has_right_beacon = 1;
    	"
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Obsidian Spear Toss (multi) */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    Animated
    {
    	// this event fires a bit before the projectiles do, so they target a location that is a bit behind to prevent them from always hitting the target
    	// the target points are generated around a circle, so they need to be reshuffled to minimise projectile crossover
    	on_event_prepare_proj_center =
    	"
    		this.spear_count = 0;
    		this.multi_spear_target_center = target.GetLocation();
    		Call( generate_spear_target_points, multi_spear_target_center, 20.0, 8 );
    		this.target_points = null;
    		this.target_points += target_points2[2];
    		this.target_points += target_points2[1];
    		this.target_points += target_points2[3];
    		this.target_points += target_points2[0];
    		this.target_points += target_points2[4];
    		this.target_points += target_points2[7];
    		this.target_points += target_points2[5];
    		this.target_points += target_points2[6];
    	"
    
    	on_event_prepare_proj =
    	"
    		SetTargetLocation( GetVariablesFromGroup( target_points, spear_count, Index ), 0, 0, true );
    		this.spear_count = spear_count + 1;
    	"
    }
    
    Functions
    {
    	// arg1: center (location)
    	// arg2: radius (float)
    	// arg3: num points (float)
    	generate_spear_target_points =
    	"
    		this.target_points2 = null;
    		this.angle = 0.0;
    		local angle_increment = 360.0 / arg3;
    		local pi = 3.14159265359;
    		Repeat( 8, ()
    		{
    			local new_loc = MakeLocation( arg1.x + Eval( arg2 * Cos( angle ) ), arg1.y + Eval( arg2 * Sin( angle ) ) );
    			this.target_points2 += new_loc;
    			this.angle = angle + angle_increment;
    		} );
    	"
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Death */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    StateMachine
    {
    	define_shared_state = "lost_head;"
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    extends "Metadata/Monsters/BossBase"
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Generic */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    StateMachine
    {
    	// this state is set by the 'fake' perennial king that exists pre-emerge, so when it does emerge it can swap skins
    	// fake PK: Metadata/Terrain/Gallows/Act2/2_12_2/Objects/PerennialKingHuman
    	on_or_create_state_invis_0 = "EnableRendering();"
    	on_or_create_state_invis_1 = "DisableRendering();"
    
    	on_state_dead_1 =
    	{
    		globals.destructable_arena_core.PlayAnimation( crash_01 );
    		globals.destructable_arena_core.GoToAnimationEnd();
    	}
    }
    
    Render
    {
    	use_ao_lights = true
    	allow_attached_arrows = false
    }
    
    Preload
    {
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/sand_storm_arena.ao"
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/Act2_FOUR/PerennialKing/ao/big_zap_01.ao"
    	preload_object = "Metadata/Monsters/PerennialKingStage2/PerennialKingBeacon"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend1"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend2"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend3"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend4_"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend5"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend6"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend7"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend8"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend9"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend10__"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend11"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend12"
    	preload_monster_variety = "Metadata/Monsters/PerennialKingStage2/PerennialKingCorpseFriend13"
    	preload_environment = "G2_12_2_boss"
    	preload_misc_beam = "PerennialKingBeaconSprayBeam"
    	preload_misc_beam = "PerennialKingHandsprayBeam"
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Movement/Turning */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    // whenever PK turns need to also play an additive turn animation, using the correct animation for the turn direction (left or right)
    // can do this by constantly checking the monsters orientation (GetOrientation() and comparing it with its bearing (GetAnimatedBearing()))
    // orientation is the server orientation, so this value will always be the actual direction the monster is facing
    // bearing is the clients current facing direction, and this one does visually match with the monsters facing direction
    // so whenever those two aren't the same, you can assume the monster is turning
    // also, when the monster is moving don't do any of this cause it messes with the additive n-directional anims
    Positioned
    {
    	on_initial_position_set = "StartStateTimer( check_bearing );"
    
    	on_movement_started =
    	"
    		If( GetState( current_rotate_dir ) > 0, (){ SetStateTo( current_rotate_dir, 0 ); } );
    	"
    }
    
    StateMachine
    {
    	define_state = "current_rotate_dir;"
    	define_timer = "check_bearing = 0.033;"
    
    	// compare the bearing and orientation here, and then set the current_rotate_dir state to 1/2/11/12 (if its not already set)
    	// that state being set to one of those values causes the additive turn anim to play, then the state is reset after that anim is finished
    	// 1 and 2 are for the right turns, 1 being used for shorter turns (based on the angle_diff value), and 11/12 are for left with 11 being the short one
    	// there is a 10 degree no-turn forward angle, to prevent tiny turns that aren't needed
    	on_timer_check_bearing =
    	"
    		this.orientation = GetOrientation();
    		this.bearing = GetAnimatedBearing();
    		this.angle_diff = bearing - orientation;
    		this.angle_diff = Round( EvalIf( angle_diff > 180.0, angle_diff - 360.0, EvalIf( angle_diff < -180, angle_diff + 360.0, angle_diff ) ), 2 );
    		// If( angle_diff == 0.0, (){ FadeAnimations( 9, 0.666 ); } );
    		If( And( angle_diff > 5.0, angle_diff <= 45.0 ), ()
    		{
    			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 1 ); } );
    		} );
    		If( angle_diff > 45.0, ()
    		{
    			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 2 ); } );
    		} );
    		If( And( angle_diff < -5.0, angle_diff >= -45.0 ), ()
    		{
    			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 11 ); } );
    		} );
    		If( angle_diff < -45.0, ()
    		{
    			If( GetState( current_rotate_dir ) == 0, (){ SetStateTo( current_rotate_dir, 12 ); } );
    		} );
    		StartStateTimer( check_bearing );
    	"
    
    	// play a different additive turn anim for different turn directions and velocity
    	on_state_current_rotate_dir_1 =
    	"
    		If( GetCurrentMoveSpeed() < 1.0, ()
    		{
    			PlayAdditiveAnimation( turn_02_right, 9 );
    			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
    		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
    	"
    
    	on_state_current_rotate_dir_2 =
    	"
    		If( GetCurrentMoveSpeed() < 1.0, ()
    		{
    			PlayAdditiveAnimation( turn_01_right, 9 );
    			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
    		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
    	"
    
    	on_state_current_rotate_dir_11 =
    	"
    		If( GetCurrentMoveSpeed() < 1.0, ()
    		{
    			PlayAdditiveAnimation( turn_02_left, 9 );
    			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
    		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
    	"
    
    	on_state_current_rotate_dir_12 =
    	"
    		If( GetCurrentMoveSpeed() < 1.0, ()
    		{
    			PlayAdditiveAnimation( turn_01_left, 9 );
    			Delay( 0.666, { SetStateTo( current_rotate_dir, 0 ); } );
    		}, (){ SetStateTo( current_rotate_dir, 0 ); } );
    	"
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Phase change to second arena */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    Functions
    {
    	fade_out = "FadeToBlack( 0, 3000, 6000 );"
    	destroy_cart_core = "globals.destructable_arena_core.PlayAnimationAtSpeed( crash_01, 1.0 );"
    
    	destroy_cart_core_instant =
    	"
    		globals.destructable_arena_core.PlayAnimation( crash_01 );
    		globals.destructable_arena_core.GoToAnimationEnd();
    	"
    
    	hide_player_weapons = "arg1.HideWeapons();"
    	show_player_weapons = "arg1.ShowWeapons();"
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Death */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    StateMachine
    {
    	on_or_create_state_lost_head_1 =
    	"
    		HideMeshSegment( PerennialKing_headShape );
    		DetachAllOfType( 'Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.fmt;Art/Models/MONSTERS/PerennialKingStage2/attachments/PerennialKingHelmet.ao' );
    		SetGlobalAudioParam( PerennialKingUberDeath, 1 );
    	"
    }
    
    Functions
    {
    	get_up_asala = { PlayCharacterAudioEvent( AfterPerennialKingSeeAsala ); }
    }
    
    /* ------------------------------------------------------------------------------------------------------------------- */
    /* Audio */
    /* ------------------------------------------------------------------------------------------------------------------- */
    
    GlobalAudioParamEvents
    {
    	player_in_range_param = "PerennialKing2InRange"
    	life_percent_param = "PerennialKing2LifePercentage"
    	range = 130
    }
    
    Life
    {
    	on_life_percent_reaches_1 = 
    	"
    		PlayTextAudio( PerennialKing_Dreadnought_DeathMisc_7, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 1500 );
    		SetGlobalAudioParam( PerennialKingUberDeath, 1 );
    
    	"
    }
    
    Actor
    {
    	on_effect_start_CTS1BossFightStart = "QueueTextAudio( PerennialKing_Dreadnought_Intro_ThisEnds_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing', 3500 );"
    
    	on_effect_start_GSPerennialKingBasicLightningZap =
    	"
    		Roll( 1, 6, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_MASPerennialKingSandWhip =
    	"
    		Roll( 1, 5, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_CTS5PerennialKingSandstorm =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_SummonSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_EASPerennialKingBeaconToss =
    	"
    		Roll( 1, 5, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_EASPerennialKingBeaconBolts =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_BeaconLightning_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_EASPerennialKingLightningSpray =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_BeaconLightningSpray_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_EASPerennialKingBeaconOrbitStart =
    	"
    		Roll( 1, 1, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_BeaconSend_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_CTS3PerennialKingMultistab =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_BeaconStab_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_MPWPerennialKingGlassSpearToss =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_GPAPerennialKingGlassSpearMultiToss =
    	"
    		Roll( 1, 1, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_SpearThrow_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_GAPerennialKingGlassSwordSlam =
    	"
    		Roll( 1, 1, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_2hSword_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_EAAPerennialKingGlassSwordFence =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_Lacerate_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_GAPerennialKingAxeCleave =
    	"
    		Roll( 1, 5, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_MiscSkill_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_MDPerennialKingObsidianStorm =
    	"
    		Roll( 1, 1, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_ObsidianTornado_2, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_MDPerennialKingTornado =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_Tornado_4, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_SOPerennialKingObsidianMinigun =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_BeaconElectrify_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    
    	on_effect_start_EASAbsoluteCartnage =
    	"
    		Roll( 1, 1, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_Countess_3, 'Metadata/Monsters/PerennialKingStage2/PerennialKing');
    		} );
    	"
    
    	on_effect_event_contact_for_EASPerennialKingOrbitTornado =
    	"
    		Roll( 1, 1, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_BeastSandstorm_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    }
    
    Animated
    {
    	on_heavy_stun_01 =
    	"
    		Roll( 1, 2, ()
    		{
    			PlayTextAudio( PerennialKing_Dreadnought_HeavyStun_Random, 'Metadata/Monsters/PerennialKingStage2/PerennialKing' );
    		} );
    	"
    }
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/PerennialKingStage2/PerennialKingMap"] = {
        name = "Jamanra, the Abomination",
        life = 5.4,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 2,
        damageSpread = 0.2,
        attackTime = 1.5,
        attackRange = 18,
        accuracy = 1,
        skillList = {
            "MASPerennialKingSandWhip",
            "GPAPerennialKingGlassSpearMultiToss",
            "MPWPerennialKingGlassSpearToss",
            "MPWPerennialKingObsidianMinigun",
            "CTS1PerennialKingEndMultistab",
            "CTS3PerennialKingMultistab",
            "CTS5PerennialKingSandstorm",
            "CTS1PerennialKingEndSandstorm",
            "GAPerennialKingBeaconSpearStab",
            "GAPerennialKingBeaconSpearImpact",
            "GSPerennialKingBeaconOrbitLightningBeam",
            "GSPerennialKingBasicLightningZap",
            "GAPerennialKingGlassSwordSlam",
            "GAPerennialKingAxeCleave",
            "GAPerennialKingObsidianStormImpact",
            "GSPerennialKingSandnadoPhysDamage",
            "GSPerennialKingSandnadoLightningDamage",
            "GSPerennialKingBeaconSpray",
            "GAPerennialKingGlassSpearTossImpact",
            "GAPerennialKingGlassSpearTossImpactMulti",
            "GSPerennialKingGlassSwordFenceZap",
            "EASPerennialKingBeaconToss",
            "EASPerennialKingBeaconBolts",
            "EASPerennialKingLightningSpray",
            "EASPerennialKingBeaconOrbitStart",
            "EASPerennialKingBeaconOrbitRecall",
            "EASAbsoluteCartnage",
            "EAAPerennialKingGlassSwordFence",
            "EASPerennialKingOrbitTornado",
            "MDPerennialKingObsidianStorm",
            "MDPerennialKingTornado",
            "SOPerennialKingObsidianMinigun",
            "SOPerennialKingGlassSpearMultiRock",
            "SOPerennialKingGlassSwordFence",
            "GTPerennialKingGlassSpearToss",
            "EDSPerennialKingBeaconLightningBolt",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MASPerennialKingSandWhip"] = {
        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] = {8, baseMultiplier = 0.75, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GPAPerennialKingGlassSpearMultiToss"] = {
        name = "GPAPerennialKingGlassSpearMultiToss",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Attack] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "attack_maximum_action_distance_+",
            "active_skill_projectile_speed_+%_variation_final",
            "projectile_spread_radius",
            "base_is_projectile",
            "use_scaled_contact_offset",
            "projectile_uses_contact_position",
            "action_attack_or_cast_time_uses_animation_length",
            "always_pierce",
        },
        levels = {
            [1] = {70, 0, 5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MPWPerennialKingGlassSpearToss"] = {
        name = "MPWPerennialKingGlassSpearToss",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.RangedAttack] = true,
            [SkillType.MirageArcherCanUse] = true,
            [SkillType.Projectile] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.Damage] = true,
            [SkillType.Triggerable] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "monster_projectile_variation",
            "active_skill_base_physical_damage_%_to_convert_to_lightning",
            "base_is_projectile",
            "projectile_uses_contact_position",
            "action_attack_or_cast_time_uses_animation_length",
            "always_pierce",
        },
        levels = {
            [1] = {1125, 25, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MPWPerennialKingObsidianMinigun"] = {
        name = "MPWPerennialKingObsidianMinigun",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.RangedAttack] = true,
            [SkillType.MirageArcherCanUse] = true,
            [SkillType.Projectile] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.Damage] = true,
            [SkillType.Triggerable] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "monster_projectile_variation",
            "projectile_spread_radius",
            "projectile_ballistic_gravity_override",
            "projectile_maximum_range_override",
            "active_skill_projectile_speed_+%_variation_final",
            "active_skill_base_physical_damage_%_to_convert_to_lightning",
            "base_is_projectile",
            "action_attack_or_cast_time_uses_animation_length",
            "projectile_ballistic_angle_from_target_distance",
        },
        levels = {
            [1] = {1127, 0, 400, 250, 20, 25, baseMultiplier = 0.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["CTS1PerennialKingEndMultistab"] = {
        name = "CTS1PerennialKingEndMultistab",
        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["CTS3PerennialKingMultistab"] = {
        name = "CTS3PerennialKingMultistab",
        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["CTS5PerennialKingSandstorm"] = {
        name = "CTS5PerennialKingSandstorm",
        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["CTS1PerennialKingEndSandstorm"] = {
        name = "CTS1PerennialKingEndSandstorm",
        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["GAPerennialKingBeaconSpearStab"] = {
        name = "GAPerennialKingBeaconSpearStab",
        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 = {
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
        },
        levels = {
            [1] = {200, baseMultiplier = 0.7, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPerennialKingBeaconSpearImpact"] = {
        name = "GAPerennialKingBeaconSpearImpact",
        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 = {
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
        },
        levels = {
            [1] = {200, baseMultiplier = 0.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSPerennialKingBeaconOrbitLightningBeam"] = {
        name = "GSPerennialKingBeaconOrbitLightningBeam",
        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",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
        },
        levels = {
            [1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSPerennialKingBasicLightningZap"] = {
        name = "GSPerennialKingBasicLightningZap",
        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",
            "spell_maximum_action_distance_+%",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
            "base_skill_can_be_blocked",
        },
        levels = {
            [1] = {0.5, 1.5, -85, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPerennialKingGlassSwordSlam"] = {
        name = "GAPerennialKingGlassSwordSlam",
        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 = {
            "attack_maximum_action_distance_+",
            "active_skill_base_physical_damage_%_to_convert_to_lightning",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
            "base_skill_cannot_be_blocked",
        },
        levels = {
            [1] = {25, 35, 200, baseMultiplier = 4.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPerennialKingAxeCleave"] = {
        name = "GAPerennialKingAxeCleave",
        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 = {
            "attack_maximum_action_distance_+",
            "active_skill_base_physical_damage_%_to_convert_to_lightning",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
            "base_skill_can_be_avoided_by_dodge_roll",
            "base_skill_cannot_be_blocked",
        },
        levels = {
            [1] = {12, 25, 200, baseMultiplier = 4, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPerennialKingObsidianStormImpact"] = {
        name = "GAPerennialKingObsidianStormImpact",
        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 = {
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {200, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSPerennialKingSandnadoPhysDamage"] = {
        name = "GSPerennialKingSandnadoPhysDamage",
        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 = {
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {200, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSPerennialKingSandnadoLightningDamage"] = {
        name = "GSPerennialKingSandnadoLightningDamage",
        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",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {0.5, 1.5, 200, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSPerennialKingBeaconSpray"] = {
        name = "GSPerennialKingBeaconSpray",
        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_shock_chance_+%_final",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
            "base_skill_can_be_blocked",
            "base_skill_cannot_be_parried",
        },
        levels = {
            [1] = {0.5, 1.5, 25, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPerennialKingGlassSpearTossImpact"] = {
        name = "GAPerennialKingGlassSpearTossImpact",
        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,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "active_skill_base_physical_damage_%_to_convert_to_lightning",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
            "base_is_projectile",
        },
        levels = {
            [1] = {25, 200, baseMultiplier = 1.8, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPerennialKingGlassSpearTossImpactMulti"] = {
        name = "GAPerennialKingGlassSpearTossImpactMulti",
        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,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "active_skill_base_physical_damage_%_to_convert_to_lightning",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
            "base_is_projectile",
        },
        levels = {
            [1] = {25, 200, baseMultiplier = 1.5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSPerennialKingGlassSwordFenceZap"] = {
        name = "GSPerennialKingGlassSwordFenceZap",
        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_electrocutes_as_though_dealt_damage_+%_final",
            "base_skill_effect_duration",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
            "base_lightning_damage_can_electrocute",
            "base_skill_can_be_avoided_by_dodge_roll",
        },
        levels = {
            [1] = {0.5, 1.5, 90, 4000, 200, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["EASPerennialKingBeaconToss"] = {
        name = "EASPerennialKingBeaconToss",
        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] = {-35, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["EASPerennialKingBeaconBolts"] = {
        name = "EASPerennialKingBeaconBolts",
        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["EASPerennialKingLightningSpray"] = {
        name = "EASPerennialKingLightningSpray",
        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["EASPerennialKingBeaconOrbitStart"] = {
        name = "EASPerennialKingBeaconOrbitStart",
        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["EASPerennialKingBeaconOrbitRecall"] = {
        name = "EASPerennialKingBeaconOrbitRecall",
        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["EASAbsoluteCartnage"] = {
        name = "EASAbsoluteCartnage",
        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["EAAPerennialKingGlassSwordFence"] = {
        name = "EAAPerennialKingGlassSwordFence",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "attack_maximum_action_distance_+",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {30, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["EASPerennialKingOrbitTornado"] = {
        name = "EASPerennialKingOrbitTornado",
        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["MDPerennialKingObsidianStorm"] = {
        name = "MDPerennialKingObsidianStorm",
        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["MDPerennialKingTornado"] = {
        name = "MDPerennialKingTornado",
        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["SOPerennialKingObsidianMinigun"] = {
        name = "SOPerennialKingObsidianMinigun",
        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["SOPerennialKingGlassSpearMultiRock"] = {
        name = "SOPerennialKingGlassSpearMultiRock",
        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["SOPerennialKingGlassSwordFence"] = {
        name = "SOPerennialKingGlassSwordFence",
        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["GTPerennialKingGlassSpearToss"] = {
        name = "GTPerennialKingGlassSpearToss",
        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["EDSPerennialKingBeaconLightningBolt"] = {
        name = "EDSPerennialKingBeaconLightningBolt",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            spell = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {0.5, 1.5, 150, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    
    monster dropped item rarity +% [14700]
    monster slain experience +% [0]
    unique monster guarantee one rare [1]
    IdMonsterUniqueT3Boss
    FamilyMonsterActBoss
    DomainsMonster (3)
    GenerationTypeуник (3)
    Req. level1
    Stats
  • monster slain experience +% Min: 0 Max: 0 Global
  • monster dropped item rarity +% Min: 14700 Max: 14700 Global
  • unique monster guarantee one rare Min: 1 Max: 1 Global
  • monster dropped item quantity +% [800]
    monster dropped item rarity +% [10000]
    monster map key of at least same tier as current map drop chance % [25]
    monster slain experience +% [9000]
    unique monster guarantee one rare [1]
    IdMonsterMapBossT3
    FamilyMonsterMapBoss
    DomainsMonster (3)
    GenerationTypeуник (3)
    Req. level1
    Stats
  • monster slain experience +% Min: 9000 Max: 9000 Global
  • monster dropped item rarity +% Min: 10000 Max: 10000 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
  • 200% увеличение шанса наложения шока
    IdEndgameBossShockChance
    FamilyShockChanceIncrease
    DomainsMonster (3)
    GenerationTypeуник (3)
    Req. level1
    Stats
  • shock chance +% Min: 200 Max: 200 Global
  • Adds Tagsno_fire_spell_mods no_cold_spell_mods no_chaos_spell_mods
    Яманра, Чудовище Text Audio /141
    Имя
    Аа.. Сехема Ардура. Склонись перед своим Царём!
    PerennialKing_Dreadnought_Intro_Random
    Аа.. Сехема Ардура. Склонись перед своим Царём!
    PerennialKing_Dreadnought_Intro_2
    Так или иначе, всё кончится здесь.
    PerennialKing_Dreadnought_Intro_ThisEnds_Random
    Так или иначе, всё кончится здесь.
    PerennialKing_Dreadnought_Intro_ThisEnds_2
    Фаридунцы наконец отомстят!
    PerennialKing_Dreadnought_Intro2_Random
    Фаридунцы наконец отомстят!
    PerennialKing_Dreadnought_Intro2_2
    Мы наконец осуществим обещанную месть!
    PerennialKing_Dreadnought_Intro2_3
    Мы наконец осуществим обещанную месть!
    PerennialKing_Dreadnought_Intro2_4
    Моя Царица, забери Зверя!
    PerennialKing_Dreadnought_Countess_Random
    Ступай, моя Царица.
    PerennialKing_Dreadnought_Countess_2
    Сейчас нет ничего важнее Зверя. Иди же!
    PerennialKing_Dreadnought_Countess_3
    Я не подпущу этого угнетателя!
    PerennialKing_Dreadnought_Countess_4
    Всё кончится здесь!
    PerennialKing_Dreadnought_Wreckage_Random
    Всё кончится здесь!
    PerennialKing_Dreadnought_Wreckage_2
    Давай покончим с этим как воины прошлого. Один на один!
    PerennialKing_Dreadnought_Wreckage_3
    Давай покончим с этим как воины прошлого. Один на один!
    PerennialKing_Dreadnought_Wreckage_4
    Я докажу, что фаридунцы заслуживают уважения!
    PerennialKing_Dreadnought_Wreckage_5
    Маракеты заплатят!
    PerennialKing_Dreadnought_MiscSkill_Random
    Маракеты заплатят!
    PerennialKing_Dreadnought_MiscSkill_2
    Эра фаридунцев настала!
    PerennialKing_Dreadnought_MiscSkill_3
    Эра фаридунцев настала!
    PerennialKing_Dreadnought_MiscSkill_4
    Нас – легион!
    PerennialKing_Dreadnought_BeaconStab_Random
    Нас – легион!
    PerennialKing_Dreadnought_BeaconStab_2
    Нам несть числа!
    PerennialKing_Dreadnought_BeaconStab_3
    Нам несть числа!
    PerennialKing_Dreadnought_BeaconStab_4
    Нам несть числа!
    PerennialKing_Dreadnought_BeaconStab_5
    Нам несть числа!
    PerennialKing_Dreadnought_BeaconStab_6
    Правосудие пустыни!
    PerennialKing_Dreadnought_BeaconStab_7
    Правосудие пустыни!
    PerennialKing_Dreadnought_BeaconStab_8
    Правосудие пустыни!
    PerennialKing_Dreadnought_BeaconStab_9
    Правосудие!
    PerennialKing_Dreadnought_BeaconLightning_Random
    Правосудие!
    PerennialKing_Dreadnought_BeaconLightning_2
    Расплата!
    PerennialKing_Dreadnought_BeaconLightning_3
    Расплата!
    PerennialKing_Dreadnought_BeaconLightning_4
    Расплата!
    PerennialKing_Dreadnought_BeaconLightning_5
    Мы заберём своё!
    PerennialKing_Dreadnought_BeaconLightning_6
    Мы заберём своё!
    PerennialKing_Dreadnought_BeaconLightning_7
    Мы заберём своё!
    PerennialKing_Dreadnought_BeaconLightning_8
    Мы заберём своё!
    PerennialKing_Dreadnought_BeaconLightning_9
    На ненависть мы отвечаем ей же!
    PerennialKing_Dreadnought_BeaconLightning_10
    На ненависть мы отвечаем ей же!
    PerennialKing_Dreadnought_BeaconLightning_11
    На ненависть мы отвечаем ей же!
    PerennialKing_Dreadnought_BeaconLightning_12
    Мы – буря!
    PerennialKing_Dreadnought_BeaconLightningSpray_Random
    Мы – буря!
    PerennialKing_Dreadnought_BeaconLightningSpray_2
    Мы – буря!
    PerennialKing_Dreadnought_BeaconLightningSpray_3
    Мы – возмездие!
    PerennialKing_Dreadnought_BeaconLightningSpray_4
    Мы – возмездие!
    PerennialKing_Dreadnought_BeaconLightningSpray_5
    Мы – возмездие!
    PerennialKing_Dreadnought_BeaconLightningSpray_6
    Возмездие!
    PerennialKing_Dreadnought_BeaconLightningSpray_7
    Возмездие!
    PerennialKing_Dreadnought_BeaconLightningSpray_8
    Возмездие Вастири!
    PerennialKing_Dreadnought_SummonSandstorm_Random
    Возмездие Вастири!
    PerennialKing_Dreadnought_SummonSandstorm_2
    Рок пустыни!
    PerennialKing_Dreadnought_SummonSandstorm_3
    Рок пустыни!
    PerennialKing_Dreadnought_SummonSandstorm_4
    Рок пустыни!
    PerennialKing_Dreadnought_SummonSandstorm_5
    Рок пустыни!
    PerennialKing_Dreadnought_SummonSandstorm_6
    Во имя песков!
    PerennialKing_Dreadnought_SummonSandstorm_7
    Во имя песков!
    PerennialKing_Dreadnought_SummonSandstorm_8
    Мы – дети пустыни!
    PerennialKing_Dreadnought_SummonSandstorm_9
    Мы – дети пустыни!
    PerennialKing_Dreadnought_SummonSandstorm_10
    Ветра, помогите нам!
    PerennialKing_Dreadnought_SummonSandstorm_11
    Ветра, помогите нам!
    PerennialKing_Dreadnought_SummonSandstorm_12
    Кузня ненависти!
    PerennialKing_Dreadnought_2hSword_Random
    Кузня ненависти!
    PerennialKing_Dreadnought_2hSword_2
    Кузня ненависти!
    PerennialKing_Dreadnought_2hSword_3
    Прими нашу ненависть!
    PerennialKing_Dreadnought_2hSword_4
    Прими нашу ненависть!
    PerennialKing_Dreadnought_2hSword_5
    Прими нашу ненависть!
    PerennialKing_Dreadnought_2hSword_6
    Наш дар тебе!
    PerennialKing_Dreadnought_2hSword_7
    Наш дар тебе!
    PerennialKing_Dreadnought_2hSword_8
    Наш дар тебе!
    PerennialKing_Dreadnought_2hSword_9
    Наш дар тебе!
    PerennialKing_Dreadnought_2hSword_10
    Кровь!
    PerennialKing_Dreadnought_Lacerate_Random
    Кровь!
    PerennialKing_Dreadnought_Lacerate_2
    Кровь!
    PerennialKing_Dreadnought_Lacerate_3
    Мы прольём кровь!
    PerennialKing_Dreadnought_Lacerate_4
    Мы прольём кровь!
    PerennialKing_Dreadnought_Lacerate_5
    Мы прольём кровь!
    PerennialKing_Dreadnought_Lacerate_6
    Мы прольём кровь!
    PerennialKing_Dreadnought_Lacerate_7
    Пади, проклятый!
    PerennialKing_Dreadnought_Lacerate_8
    Пади, проклятый!
    PerennialKing_Dreadnought_Lacerate_9
    Пади, проклятый!
    PerennialKing_Dreadnought_Lacerate_10
    Пади, проклятый!
    PerennialKing_Dreadnought_Lacerate_11
    Мы заслоним солнце!
    PerennialKing_Dreadnought_SpearThrow_Random
    Мы заслоним солнце!
    PerennialKing_Dreadnought_SpearThrow_2
    Мы заслоним солнце!
    PerennialKing_Dreadnought_SpearThrow_3
    Десять тысяч копий!
    PerennialKing_Dreadnought_SpearThrow_4
    Десять тысяч копий!
    PerennialKing_Dreadnought_SpearThrow_5
    Десять тысяч копий!
    PerennialKing_Dreadnought_SpearThrow_6
    Я сотру тебя в пыль!
    PerennialKing_Dreadnought_ObsidianTornado_Random
    Я сотру тебя в пыль!
    PerennialKing_Dreadnought_ObsidianTornado_2
    Ты будешь забыт!
    PerennialKing_Dreadnought_ObsidianTornado_3
    Ты будешь забыт!
    PerennialKing_Dreadnought_ObsidianTornado_4
    Я сотру тебя!
    PerennialKing_Dreadnought_ObsidianTornado_5
    Я сотру тебя!
    PerennialKing_Dreadnought_ObsidianTornado_6
    За мой народ!
    PerennialKing_Dreadnought_BeaconSend_Random
    За мой народ!
    PerennialKing_Dreadnought_BeaconSend_2
    За мой народ!
    PerennialKing_Dreadnought_BeaconSend_3
    Бесконечная ненависть!
    PerennialKing_Dreadnought_BeaconElectrify_Random
    Бесконечная ненависть!
    PerennialKing_Dreadnought_BeaconElectrify_2
    Бесконечная ненависть!
    PerennialKing_Dreadnought_BeaconElectrify_3
    Я призываю ветра!
    PerennialKing_Dreadnought_Tornado_Random
    Я призываю ветра!
    PerennialKing_Dreadnought_Tornado_2
    Я призываю ветра!
    PerennialKing_Dreadnought_Tornado_3
    Ветра, ко мне!
    PerennialKing_Dreadnought_Tornado_4
    Ветра, ко мне!
    PerennialKing_Dreadnought_Tornado_5
    Ветра, ко мне!
    PerennialKing_Dreadnought_Tornado_6
    Я не паду.
    PerennialKing_Dreadnought_HeavyStun_Random
    Ты не победишь.
    PerennialKing_Dreadnought_HeavyStun_2
    Я не могу сдаться.
    PerennialKing_Dreadnought_HeavyStun_3
    Я не могу сдаться.
    PerennialKing_Dreadnought_HeavyStun_4
    Всё, что мы хотели...
    PerennialKing_Dreadnought_DeathMisc_Random
    Не имеет значения... мы преуспели...
    PerennialKing_Dreadnought_DeathMisc_2
    Не имеет значения... мы преуспели...
    PerennialKing_Dreadnought_DeathMisc_3
    Я отдаю жизнь охотно.
    PerennialKing_Dreadnought_DeathMisc_4
    Ты не имеешь понятия... о том, что сделал...
    PerennialKing_Dreadnought_DeathMisc_5
    Ты не имеешь понятия... о том, что сделал...
    PerennialKing_Dreadnought_DeathMisc_6
    Умри, глупая сехема!
    PerennialKing_Dreadnought_DeathMisc_7
    Конец тирании близок...
    PerennialKing_Dreadnought_DeathMisc_8
    Конец тирании близок...
    PerennialKing_Dreadnought_DeathMisc_9
    Конец тирании близок...
    PerennialKing_Dreadnought_DeathMisc_10
    Фаридунцы не будут забыты...
    PerennialKing_Dreadnought_DeathMisc_11
    Фаридунцы не будут забыты...
    PerennialKing_Dreadnought_DeathMisc_12
    Гнев фаридунцев не исчезнет...
    PerennialKing_Dreadnought_Misc_3
    Ты не добилась ничего, глупая Сехема.
    PerennialKing_Dreadnought_Misc_Random
    Фаридунцы не остановятся...
    PerennialKing_Dreadnought_Misc_2
    Вам не сбежать от прошлого...
    PerennialKing_Dreadnought_Misc_4
    У меня нет на это времени. Пески, подчинитесь моей воле! Задержите моих врагов!
    PerennialKing_Dreadnought_BeastSandstorm_Random
    У меня нет на это времени. Пески, подчинитесь моей воле! Задержите моих врагов!
    PerennialKing_Dreadnought_BeastSandstorm_2
    Чего ты... ждёшь... Подари мне... смерть воина!
    PerennialKing_Dreadnought_DeathIntro_Random
    Чего ты... ждёшь... Подари мне... смерть воина!
    PerennialKing_Dreadnought_DeathIntro_2
    Графиня? Моя царица... она дала нам силу... дала уважение... было бы глупо не попытаться...
    PerennialKing_Dreadnought_DeathStabbed_Random
    Графиня? Моя царица... она дала нам силу... дала уважение... было бы глупо не попытаться...
    PerennialKing_Dreadnought_DeathStabbed_2
    Она отвезёт его... далеко отсюда... вам уже не достичь.
    PerennialKing_Dreadnought_DeathBeast_Random
    Она отвезёт его... далеко отсюда... вам уже не достичь.
    PerennialKing_Dreadnought_DeathBeast_2
    Она отвезёт его... далеко отсюда... вам уже не достичь.
    PerennialKing_Dreadnought_DeathBeast_3
    Вы думали, мы слабы... мы доказали... как сильно вы ошибались...
    PerennialKing_Dreadnought_DeathFaridun_Random
    Вы думали, мы слабы... мы доказали... как сильно вы ошибались...
    PerennialKing_Dreadnought_DeathFaridun_2
    Я умираю как истинный воин.
    PerennialKing_Dreadnought_DeathFinal_Random
    Я умираю как истинный воин.
    PerennialKing_Dreadnought_DeathFinal_2
    Я умираю как истинный воин.
    PerennialKing_Dreadnought_DeathFinal_3
    Edit

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