Lachlann of Endless Lament
Humanoid
monster dropped item rarity +% [1600]
monster slain experience +% [0]
SpectreN
AreaCemetery of the Eternals
Tags2HBluntWood_onhit_audio, humanoid, not_dex, not_int, red_blood, slow_movement
Life
168%
Armour
+75%
Resistance
0 0 0 0
Damage
300%
Accuracy
100%
5%
Attack Distance
6 ~ 11
Attack Time
1.785 Second
Damage Spread
±20%
Experience
250%
Model Size
100%
Type
BitterGuyGhost
Metadata
BitterGuyBoss
Level
7
Life
76
Armour
33
Evasion Rating
63
Damage
49
Spell Damage
49
Accuracy
114
Attack Time
1.785
Experience
143
Minion Life
438
Minion Damage
37
Minion Armour
62
BitterGuyMelee
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
Basic Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Time: 1.785 sec
monster penalty against minions damage +% final vs player minions [100]
BitterGuySlam
Triggerable, Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Damage: 290%
Attack Time: 1.785 sec
Cooldown Time: 7 sec
Deals 190% more Attack Damage
+10 to Melee Strike Range
active skill area of effect radius +% final [25]
is area damage [1]
monster penalty against minions damage +% final vs player minions [60]
voll slam damage +% final at centre [50]
BitterGuySweepMelee
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
Basic Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Time: 1.785 sec
+12 to Melee Strike Range
monster penalty against minions damage +% final vs player minions [80]
BitterGuySwipe
Triggerable, Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Damage: 113%
Attack Time: 1.785 sec
Deals 13% more Attack Damage
is area damage [1]
BitterGuySlamBack
Triggerable, Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Damage: 290%
Attack Time: 1.785 sec
Deals 190% more Attack Damage
active skill area of effect radius +% final [25]
is area damage [1]
monster penalty against minions damage +% final vs player minions [60]
voll slam damage +% final at centre [50]
BitterGuyEmptyActionChildSummon
Cooldown Time: 30 sec
BitterGuySummonWife
Spell, Multicastable, Triggerable
Cast Time: 2 sec
Cooldown Time: 30 sec
alternate minion [1004]
minion dies when parent dies [1]
monster no drops or experience [1]
monster penalty against minions damage +% final vs player minions [60]
number of monsters to summon [1]
summon specific monsters in front offset [150]
summoned monsters are minions [1]
BitterGuySummonSwarm
Spell, Multicastable, Triggerable
Cast Time: 3 sec
Cooldown Time: 20 sec
alternate minion [1007]
minion dies when parent dies [1]
monster no drops or experience [1]
monster penalty against minions damage +% final vs player minions [80]
number of monsters to summon [1]
summon specific monsters in front offset [150]
summoned monsters are minions [1]
BitterGuyChildFirestormLeft
Spell, Damage, Area, Duration, Trappable, Totemable, Mineable, Multicastable, Triggerable, Fire, Cascadable, Unleashable, AreaSpell, UsableWhileMoving, Limit, Sustained, NoAttackInPlace
Firestorm
Critical Hit Chance: 5%
Cast Time: 1 sec
Rain flaming bolts over the targeted area. Can Consume all three types of Elemental Infusion, becoming much larger when Fire-Infused, causing lightning bolts when Lightning-Infused, and raining ice bolts when Cold-Infused.
Deals 33.66 to 50.5 Physical Damage
Converts 40% of Physical Damage to Cold Damage
Storm duration is 0.05 seconds
One impact every 0.1 seconds
active skill area of effect radius +% final [100]
firestorm base area of effect +% [-100]
is area damage [1]
BitterGuyChildFirestormRight
Spell, Damage, Area, Duration, Trappable, Totemable, Mineable, Multicastable, Triggerable, Fire, Cascadable, Unleashable, AreaSpell, UsableWhileMoving, Limit, Sustained, NoAttackInPlace
Firestorm
Critical Hit Chance: 5%
Cast Time: 1 sec
Rain flaming bolts over the targeted area. Can Consume all three types of Elemental Infusion, becoming much larger when Fire-Infused, causing lightning bolts when Lightning-Infused, and raining ice bolts when Cold-Infused.
Deals 33.66 to 50.5 Physical Damage
Converts 40% of Physical Damage to Cold Damage
Storm duration is 0.05 seconds
One impact every 0.1 seconds
active skill area of effect radius +% final [100]
firestorm base area of effect +% [-100]
is area damage [1]
BitterGuyStomp
Triggerable, Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Time: 1.785 sec
is area damage [1]
CGEBitterGuyColdGroundDegen
Spell, Area, Damage, Triggerable, Duration, AreaSpell
Cast Time: 1 sec
Deals 15.3 Base Cold Damage per second
active skill area of effect radius +% final [-30]
base skill effect duration [30000]
ground maelstrom art variation [1010]
GSBitterGuyStormUp
Triggerable, Spell, Damage
Critical Hit Chance: 5%
Cast Time: 1 sec
Deals 13.8 to 20.69 Physical Damage
Converts 40% of Physical Damage to Cold Damage
base skill effect duration [1000]
is area damage [1]
GSBitterGuyStormDown
Triggerable, Spell, Damage
Critical Hit Chance: 5%
Cast Time: 1 sec
Deals 84.43 to 126.7 Physical Damage
Converts 40% of Physical Damage to Cold Damage
BitterGuyBrutusSlam
Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Damage: 375%
Attack Time: 1.785 sec
Cooldown Time: 20 sec
Deals 275% more Attack Damage
active skill base area of effect radius [100]
attack maximum action distance + [40]
base skill cannot be avoided by dodge roll or evaded or blocked [1]
brutus ground slam effect step [400]
brutus ground slam number of effects at max [5]
brutus ground slam number of effects at min [3]
ground slam cone angle override [60]
ground slam wave duration override ms [1000]
is area damage [1]
monster penalty against minions damage +% final vs player minions [80]
BitterGuySlamIntro
Triggerable, Attack
Base Damage: 39–59
Critical Hit Chance: 5%
Attack Damage: 290%
Attack Time: 1.785 sec
Cooldown Time: 7 sec
Deals 190% more Attack Damage
+10 to Melee Strike Range
active skill area of effect radius +% final [25]
is area damage [1]
monster penalty against minions damage +% final vs player minions [60]
voll slam damage +% final at centre [50]

Object Type

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

Actor
{
	slow_animations_go_to_idle = false
}

StateMachine
{
	define_shared_state = "fight"
	define_shared_state = "generic1"
	define_shared_state = "generic2"
	define_shared_state = "generic3"

	on_state_fight_1 =
	"
		SetImmobile( false );
		MakeCollidable();
	"
}

Positioned
{
	force_placement = true
}

Stats
{
	set_scale_melee_range_to_actor_scale = 0
	set_monster_delay_item_drops_millis = 5500
}

Object Type Codes

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

StateMachine
{
	create_state_fight_0 =
	"
		DisableTargetable();
		SetImmobile( true );
		RemoveCollidability();
		PlayAnimation( idle );
		PauseAnimation();
		SetRangeCheckingForGlobalAudioParams( False );
	"

	create_state_fight_1 =
	"
		ShowAllMeshSegments( );
		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/light.epk' );
		IfAlive(
		{
			SetRangeCheckingForGlobalAudioParams( True );
		} );
	"

	on_exit_state_fight_0 =
	"
		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/transform_in_ribbons.epk' );
		ShowAllMeshSegments( );
		EnableTargetable();
		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/light.epk' );
		SetRangeCheckingForGlobalAudioParams( True );
	"
}

/* Actor
{
	on_event_ripples_for_EmptyActionSpell =
	"
		PlayEffect( Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/ripples.ao, 6, 1, 1, inherit, inherit, 240, -40, inherit );
		PlayEffect( Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/ripples.ao, 16, 1, 1, inherit, inherit, 160, 40, inherit );
	"

	on_event_contact_for_EmptyActionSpell =
	"
		PlayEffect( Metadata/Monsters/BitterGuy/BitterGuyChildGhost1.ao, 6, 1, 1, inherit, inherit, 200, 0, inherit );
		PlayEffect( Metadata/Monsters/BitterGuy/BitterGuyChildGhost2.ao, 16, 1, 1, inherit, inherit, 200, 0, inherit );
	"
} */

Animated
{
	on_event_adddesaturateepk = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/corpseState_Blood.epk' );"
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/act8/WarHero/caster/revive/rig.ao"
	on_slam_01 = "PlayTextAudio( LachlannSlamRandom, 'Metadata/Monsters/BitterGuy/BitterGuyBoss' );"
	on_stomp_01 = "PlayTextAudio( LachlannStompRandom, 'Metadata/Monsters/BitterGuy/BitterGuyBoss' );"

	on_event_contact_for_slam_01 = "RemoveEffectPack('Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/transform_in_ribbons.epk');"
}

Render
{
	has_light = false
}

Preload
{
	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/light.epk"
	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/hinder_green.epk"
	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/invisible.epk"
	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/corpseState_Blood.epk"
	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/disintegrate.epk"
	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/hinder_green_player.epk"
	preload_environment = "G1_7_boss"
	preload_environment = "G1_7_boss_defeat"
}

GlobalAudioParamEvents
{
	player_in_range_param = "LachlannInRange"
	life_percent_param = "LachlannLifePercentage"
	range = 130
	life_percent_is_boolean = true
}
-- src\Data\Spectres.lua
minions["Metadata/Monsters/BitterGuy/BitterGuyBoss"] = {
    name = "Lachlann of Endless Lament",
    life = 1.68,
    fireResist = 0,
    coldResist = 0,
    lightningResist = 0,
    chaosResist = 0,
    damage = 3,
    damageSpread = 0.2,
    attackTime = 1.785,
    attackRange = 11,
    accuracy = 1,
    skillList = {
        "CGEBitterGuyColdGroundDegen",
        "GSBitterGuyStormUp",
        "GSBitterGuyStormDown",
        "BitterGuySlam",
        "BitterGuySlamIntro",
        "BitterGuySlamBack",
        "BitterGuySwipe",
        "BitterGuySummonWife",
        "BitterGuySummonSwarm",
        "BitterGuyEmptyActionChildSummon",
        "BitterGuyChildFirestormLeft",
        "BitterGuyChildFirestormRight",
        "BitterGuyStomp",
        "BitterGuyMelee",
        "BitterGuySweepMelee",
        "BitterGuyBrutusSlam",
    },
    modList = {
    },
}
-- src\Data\Skills\spectre.lua
skills["CGEBitterGuyColdGroundDegen"] = {
    name = "CGEBitterGuyColdGroundDegen",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Area] = true,
        [SkillType.Damage] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Duration] = true,
        [SkillType.AreaSpell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        area = true,
        spell = true,
        duration = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "base_cold_damage_to_deal_per_minute",
        "ground_maelstrom_art_variation",
        "base_skill_effect_duration",
        "active_skill_area_of_effect_radius_+%_final",
    },
    levels = {
        [1] = {1, 1010, 30000, -30, levelRequirement = 1, statInterpolation = {3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSBitterGuyStormUp"] = {
    name = "GSBitterGuyStormUp",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "geometry_spell",
    castTime = 1,
    baseFlags = {
        spell = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "base_skill_effect_duration",
        "active_skill_base_physical_damage_%_to_convert_to_cold",
        "is_area_damage",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 1000, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSBitterGuyStormDown"] = {
    name = "GSBitterGuyStormDown",
    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,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "active_skill_base_physical_damage_%_to_convert_to_cold",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuySlam"] = {
    name = "BitterGuySlam",
    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 = {
        "melee_range_+",
        "active_skill_area_of_effect_radius_+%_final",
        "voll_slam_damage_+%_final_at_centre",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
    },
    levels = {
        [1] = {10, 25, 50, 60, baseMultiplier = 2.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuySlamIntro"] = {
    name = "BitterGuySlamIntro",
    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 = {
        "melee_range_+",
        "active_skill_area_of_effect_radius_+%_final",
        "voll_slam_damage_+%_final_at_centre",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
    },
    levels = {
        [1] = {10, 25, 50, 60, baseMultiplier = 2.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuySlamBack"] = {
    name = "BitterGuySlamBack",
    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 = {
        "active_skill_area_of_effect_radius_+%_final",
        "voll_slam_damage_+%_final_at_centre",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
    },
    levels = {
        [1] = {25, 50, 60, baseMultiplier = 2.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuySwipe"] = {
    name = "BitterGuySwipe",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "is_area_damage",
    },
    levels = {
        [1] = {baseMultiplier = 1.13, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuySummonWife"] = {
    name = "BitterGuySummonWife",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 2,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "number_of_monsters_to_summon",
        "alternate_minion",
        "summon_specific_monsters_in_front_offset",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "summoned_monsters_are_minions",
        "minion_dies_when_parent_dies",
        "monster_no_drops_or_experience",
    },
    levels = {
        [1] = {1, 1004, 150, 60, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuySummonSwarm"] = {
    name = "BitterGuySummonSwarm",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 3,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "number_of_monsters_to_summon",
        "alternate_minion",
        "summon_specific_monsters_in_front_offset",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "summoned_monsters_are_minions",
        "minion_dies_when_parent_dies",
        "monster_no_drops_or_experience",
    },
    levels = {
        [1] = {1, 1007, 150, 80, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuyEmptyActionChildSummon"] = {
    name = "BitterGuyEmptyActionChildSummon",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 2,
    baseFlags = {
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuyChildFirestormLeft"] = {
    name = "Firestorm",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Rain flaming bolts over the targeted area. Can [Consume] all three types of [ElementalInfusion|Elemental Infusion], becoming much larger when [ElementalInfusion|Fire-Infused], causing lightning bolts when [ElementalInfusion|Lightning-Infused], and raining ice bolts when [ElementalInfusion|Cold-Infused].",
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
        [SkillType.Area] = true,
        [SkillType.Duration] = true,
        [SkillType.Trappable] = true,
        [SkillType.Totemable] = true,
        [SkillType.Mineable] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Fire] = true,
        [SkillType.Cascadable] = true,
        [SkillType.Unleashable] = true,
        [SkillType.AreaSpell] = true,
        [SkillType.UsableWhileMoving] = true,
        [SkillType.Limit] = true,
        [SkillType.Sustained] = true,
        [SkillType.NoAttackInPlace] = true,
    },
    statDescriptionScope = "fire_storm/statset_0",
    castTime = 1,
    baseFlags = {
        area = true,
        spell = true,
        duration = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "fire_storm_fireball_delay_ms",
        "firestorm_base_area_of_effect_+%",
        "active_skill_area_of_effect_radius_+%_final",
        "base_skill_effect_duration",
        "active_skill_base_physical_damage_%_to_convert_to_cold",
        "is_area_damage",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 100, -100, 100, 50, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuyChildFirestormRight"] = {
    name = "Firestorm",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Rain flaming bolts over the targeted area. Can [Consume] all three types of [ElementalInfusion|Elemental Infusion], becoming much larger when [ElementalInfusion|Fire-Infused], causing lightning bolts when [ElementalInfusion|Lightning-Infused], and raining ice bolts when [ElementalInfusion|Cold-Infused].",
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Damage] = true,
        [SkillType.Area] = true,
        [SkillType.Duration] = true,
        [SkillType.Trappable] = true,
        [SkillType.Totemable] = true,
        [SkillType.Mineable] = true,
        [SkillType.Multicastable] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Fire] = true,
        [SkillType.Cascadable] = true,
        [SkillType.Unleashable] = true,
        [SkillType.AreaSpell] = true,
        [SkillType.UsableWhileMoving] = true,
        [SkillType.Limit] = true,
        [SkillType.Sustained] = true,
        [SkillType.NoAttackInPlace] = true,
    },
    statDescriptionScope = "fire_storm/statset_0",
    castTime = 1,
    baseFlags = {
        area = true,
        spell = true,
        duration = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "fire_storm_fireball_delay_ms",
        "firestorm_base_area_of_effect_+%",
        "active_skill_area_of_effect_radius_+%_final",
        "base_skill_effect_duration",
        "active_skill_base_physical_damage_%_to_convert_to_cold",
        "is_area_damage",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 100, -100, 100, 50, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuyStomp"] = {
    name = "BitterGuyStomp",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "is_area_damage",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuyMelee"] = {
    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 = {
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
    },
    levels = {
        [1] = {100, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuySweepMelee"] = {
    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 = {
        "melee_range_+",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
    },
    levels = {
        [1] = {12, 80, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BitterGuyBrutusSlam"] = {
    name = "BitterGuyBrutusSlam",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_maximum_action_distance_+",
        "active_skill_base_area_of_effect_radius",
        "ground_slam_cone_angle_override",
        "ground_slam_wave_duration_override_ms",
        "brutus_ground_slam_effect_step",
        "brutus_ground_slam_number_of_effects_at_max",
        "brutus_ground_slam_number_of_effects_at_min",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "is_area_damage",
        "base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
    },
    levels = {
        [1] = {40, 100, 60, 1000, 400, 5, 3, 80, baseMultiplier = 3.75, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
monster dropped item rarity +% [1600]
monster slain experience +% [0]
FamilyMonsterActBoss
DomainsMonster (3)
GenerationTypeUnique (3)
Req. level1
Stats
  • monster slain experience +% Min: 0 Max: 0 Global
  • monster dropped item rarity +% Min: 1600 Max: 1600 Global
  • keyval
    StateMachine./*,
    StateMachine.boss_life_bar - controls when to show the big life bar (also requires the checkbox in MonsterVarieties to be checked)
    StateMachine.0: Life bar is hidden
    StateMachine.1: Life bar is visible, will hide on death
    StateMachine.dont_hide_lifebar_on_unaggro - controls whether the boss life bar should be hidden when the boss unaggros
    StateMachine.0: Life bar is hidden after a short duration when the boss loses aggro
    StateMachine.1: Life bar remains visible the entire time, can still be controlled by setting the disable_life_bar state
    StateMachine.show_life_bar_when_in_range - delay the life bar from showing up, until the boss is on screen (for wild bosses)
    StateMachine.0: Life bar behaves as normal
    StateMachine.1: Life bar initially only shows up when a player can see the boss on screen, this doesn't make it get removed if the player goes off screen though
    StateMachine.hidden - replaces the Unaggro+hidden_monster combo, and optionally pauses delirium fog
    StateMachine.0: Make aggro and remove hidden monster buff
    StateMachine.1: Unaggro and add hidden monster buff
    StateMachine.2: Unaggro, add hidden monster buff and pause delirium fog
    StateMachine.light - controls the boss point light, attaches to head_light_attachment if it exists (otherwise uses the default)
    StateMachine.0: Light off, handles the fade out
    StateMachine.1: Light on, handles the fade in
    StateMachine.introsequence - for bosses that are doing something before you rudely interrupt them
    StateMachine.boss uses the ChangeToStance1BossFightStart granted effect for this, which is added through the actor component in here
    StateMachine.0: no intro sequence
    StateMachine.1: boss starts off in stance2, then does change to stance1 when a proximity trigger is triggered
    StateMachine.intro_zoom - for bosses that should have the camera zoom out during the intro
    StateMachine.0: no zoom
    StateMachine.1: zoom enabled, with default values. These can be overridden in the monsters ots.
    StateMachine.intro_pan - for bosses that should have the camera pan towards them during the intro
    StateMachine.0: no pan
    StateMachine.1: pan enabled, with default values. These can be overridden in the monsters ots.
    StateMachine.use_offset_camera_controller - if this is set to 1, the boss will spawn and use a specific object as the zoom/pan center point
    StateMachine.The location of this object needs to be set by the boss too, if it isn't you will get warning message
    StateMachine.See GreatWhiteOne (shark boss) as an example, but all you really need is to set the state to 1 and move the object after it spawns
    StateMachine.0: use self as zoom/pan origin
    StateMachine.1: use a new object as the zoom/pan origin
    StateMachine.door_type - defaults to 0 for no door (or no boss control over door), other values are related to specific door types
    StateMachine.When used, also need to do 'set_telepad_indexx' in the monsters ots (BaseEvents), where x is the telepad index
    StateMachine.0: disable telepad, but only if a telepad index has been set
    StateMachine.1: force field door, forcefield blocks entrance on boss aggro, is removed on boss death (requires Metadata/MiscellaneousObjects/BossForceFieldDoor.ot in arena)
    StateMachine.2: prisoner boss door, closed on fight start, doesn't reopen afterwards (Metadata/Terrain/Gallows/Act4/4_5_2/Objects/PrisonBossDoor.ot)
    StateMachine.roaming - State for disabling instant portals on roaming bosses vs arena bosses.
    StateMachine.0: Arena Boss
    StateMachine.1: Roaming Boss
    StateMachine.arena_sector_id - If there are multiple arena bosses in an instance, each boss needs a different arena_sector_id INCLUDING roaming bosses
    StateMachine.It defaults to 1 so most bosses wont need this to be changed
    StateMachine.Currently supports up to three different bosses, but its easy to add more
    StateMachine.This state value is used to decide which boss sectors to destroy, see the triggerbracket on death in the BossBase.ots for more detail
    StateMachine.use_custom_sector_removal_handling - Set to 1 if a boss needs to use its own custom handling for sector removal on death (eg Mastodon)
    StateMachine.0: default behaviour, arena sector is removed on boss death
    StateMachine.1: custom behaviour, this disables the on death sector removal in boss base, so will need to be handled in the bosses otc AND ots
    StateMachine.quick_death_enabled - Use this for bosses with long deaths that are visible when you resurrect at checkpoint after killing them
    StateMachine.DO NOT set the quick_death state manually, this will cause the monster to do its quick death anim when it first dies
    StateMachine.0: default behaviour, death will be played at regular speed
    StateMachine.1: death anim is sped up by 10000x, this should be used for bosses that have events in their death that need to trigger
    StateMachine.2: death anim is sped up by 1000x, deaths with move events dont like being super fast so they can use this slower one
    StateMachine.am_final_boss_in_fight - This is used for multi boss fights to handle resurrecting etc after killing a single boss from fight
    StateMachine.0: reaching this state toggles part_of_multiple_boss_fight to be true, and signifies that this boss is not the final boss
    StateMachine.1: default value, will remain here unless another boss turns flips it to 0
    StateMachine.part_of_multiple_boss_fight - helper state for the above, shouldn't be interacted with manually
    StateMachine.0: currently not part of a multi boss fight
    StateMachine.1: was part of a multi boss fight at some point
    StateMachine.*/,
    StateMachine.define_shared_state =
    StateMachine.", , ,
    StateMachine.boss_life_bar;
    StateMachine.hidden;
    StateMachine.light;
    StateMachine.introsequence;
    StateMachine.disable_life_bar;
    StateMachine.intro_zoom;
    StateMachine.intro_pan;
    StateMachine.use_offset_camera_controller;
    StateMachine.door_type;
    StateMachine.roaming;
    StateMachine.first_aggro;
    StateMachine.room_marker;
    StateMachine.arena_sector_id1;
    StateMachine.use_custom_sector_removal_handling;
    StateMachine.quick_death_enabled;
    StateMachine.quick_death;
    StateMachine.am_final_boss_in_fight1;
    StateMachine.part_of_multiple_boss_fight;
    StateMachine.dead - Boss is dead. This state is saved to the character checkpoint, so if you respawn at checkpoint this state will be automatically set. In BossBase.ots, this also calls KillSelfNoDrops().
    StateMachine.if you DON'T want this state to save/load automatically, use StateMachine{ checkpoint_save_deadfalse }
    StateMachine.0: Boss is alive
    StateMachine.1: Boss is dead
    StateMachine.2: Boss is dead and corpse is hidden
    StateMachine.define_shared_checkpoint_statedead
    StateMachine.define_shared_statefight, generic1, generic2, generic3
    StateMachine.on_state_fight_1 =
    StateMachine.SetImmobile( false );
    StateMachine.MakeCollidable();
    Actor.slow_animations_go_to_idlefalse, false
    Actor.leveled_starting_effectsCTS1BossFightStart
    Stats.corpse_cannot_be_destroyed1
    Stats.base_heavy_stun_duration_ms4000
    Stats.additional_life_scaling_index6
    Stats.scale_melee_range_to_actor_scale0
    Stats.monster_delay_item_drops_millis5500
    Life.corpse_usablefalse
    Monster.is_bosstrue
    Positioned.force_placementtrue
    Lachlann of Endless Lament
    Humanoid
    monster dropped item rarity +% [1600]
    monster slain experience +% [0]
    SpectreN
    Tags2HBluntWood_onhit_audio, humanoid, not_dex, not_int, red_blood, slow_movement
    Life
    313%
    Armour
    +75%
    Resistance
    -30 75 0 0
    Damage
    300%
    Accuracy
    100%
    5%
    Attack Distance
    6 ~ 11
    Attack Time
    1.785 Second
    Damage Spread
    ±20%
    Experience
    250%
    Model Size
    100%
    Type
    BitterGuyGhostCRUEL
    Metadata
    BitterGuyBossCRUEL
    Level
    68
    Life
    24,279
    Armour
    4,223
    Evasion Rating
    708
    Damage
    699
    Spell Damage
    699
    Accuracy
    2,464
    Attack Time
    1.785
    Experience
    71,585
    Minion Life
    21,691
    Minion Damage
    2,906
    Minion Armour
    7,842
    BitterGuyMelee
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
    Basic Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Time: 1.785 sec
    monster penalty against minions damage +% final vs player minions [100]
    BitterGuySlam
    Triggerable, Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Damage: 290%
    Attack Time: 1.785 sec
    Cooldown Time: 7 sec
    Deals 190% more Attack Damage
    +10 to Melee Strike Range
    active skill area of effect radius +% final [25]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [60]
    voll slam damage +% final at centre [50]
    BitterGuySweepMelee
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser
    Basic Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Time: 1.785 sec
    +12 to Melee Strike Range
    monster penalty against minions damage +% final vs player minions [80]
    BitterGuySwipe
    Triggerable, Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Damage: 113%
    Attack Time: 1.785 sec
    Deals 13% more Attack Damage
    is area damage [1]
    BitterGuySlamBack
    Triggerable, Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Damage: 290%
    Attack Time: 1.785 sec
    Deals 190% more Attack Damage
    active skill area of effect radius +% final [25]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [60]
    voll slam damage +% final at centre [50]
    BitterGuyEmptyActionChildSummon
    Cooldown Time: 30 sec
    BitterGuySummonWife
    Spell, Multicastable, Triggerable
    Cast Time: 2 sec
    Cooldown Time: 30 sec
    alternate minion [1004]
    minion dies when parent dies [1]
    monster no drops or experience [1]
    monster penalty against minions damage +% final vs player minions [60]
    number of monsters to summon [1]
    summon specific monsters in front offset [150]
    summoned monsters are minions [1]
    BitterGuySummonSwarm
    Spell, Multicastable, Triggerable
    Cast Time: 3 sec
    Cooldown Time: 20 sec
    alternate minion [1007]
    minion dies when parent dies [1]
    monster no drops or experience [1]
    monster penalty against minions damage +% final vs player minions [80]
    number of monsters to summon [1]
    summon specific monsters in front offset [150]
    summoned monsters are minions [1]
    BitterGuyChildFirestormLeft
    Spell, Damage, Area, Duration, Trappable, Totemable, Mineable, Multicastable, Triggerable, Fire, Cascadable, Unleashable, AreaSpell, UsableWhileMoving, Limit, Sustained, NoAttackInPlace
    Firestorm
    Critical Hit Chance: 5%
    Cast Time: 1 sec
    Rain flaming bolts over the targeted area. Can Consume all three types of Elemental Infusion, becoming much larger when Fire-Infused, causing lightning bolts when Lightning-Infused, and raining ice bolts when Cold-Infused.
    Deals 466.8 to 700.2 Physical Damage
    Converts 40% of Physical Damage to Cold Damage
    Storm duration is 0.05 seconds
    One impact every 0.1 seconds
    active skill area of effect radius +% final [100]
    firestorm base area of effect +% [-100]
    is area damage [1]
    BitterGuyChildFirestormRight
    Spell, Damage, Area, Duration, Trappable, Totemable, Mineable, Multicastable, Triggerable, Fire, Cascadable, Unleashable, AreaSpell, UsableWhileMoving, Limit, Sustained, NoAttackInPlace
    Firestorm
    Critical Hit Chance: 5%
    Cast Time: 1 sec
    Rain flaming bolts over the targeted area. Can Consume all three types of Elemental Infusion, becoming much larger when Fire-Infused, causing lightning bolts when Lightning-Infused, and raining ice bolts when Cold-Infused.
    Deals 466.8 to 700.2 Physical Damage
    Converts 40% of Physical Damage to Cold Damage
    Storm duration is 0.05 seconds
    One impact every 0.1 seconds
    active skill area of effect radius +% final [100]
    firestorm base area of effect +% [-100]
    is area damage [1]
    BitterGuyStomp
    Triggerable, Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Time: 1.785 sec
    is area damage [1]
    CGEBitterGuyColdGroundDegen
    Spell, Area, Damage, Triggerable, Duration, AreaSpell
    Cast Time: 1 sec
    Deals 212.6 Base Cold Damage per second
    active skill area of effect radius +% final [-30]
    base skill effect duration [30000]
    ground maelstrom art variation [1010]
    GSBitterGuyStormUp
    Triggerable, Spell, Damage
    Critical Hit Chance: 5%
    Cast Time: 1 sec
    Deals 191.3 to 287 Physical Damage
    Converts 40% of Physical Damage to Cold Damage
    base skill effect duration [1000]
    is area damage [1]
    GSBitterGuyStormDown
    Triggerable, Spell, Damage
    Critical Hit Chance: 5%
    Cast Time: 1 sec
    Deals 1171 to 1756 Physical Damage
    Converts 40% of Physical Damage to Cold Damage
    BitterGuyBrutusSlam
    Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Damage: 375%
    Attack Time: 1.785 sec
    Cooldown Time: 20 sec
    Deals 275% more Attack Damage
    active skill base area of effect radius [100]
    attack maximum action distance + [40]
    base skill cannot be avoided by dodge roll or evaded or blocked [1]
    brutus ground slam effect step [400]
    brutus ground slam number of effects at max [5]
    brutus ground slam number of effects at min [3]
    ground slam cone angle override [60]
    ground slam wave duration override ms [1000]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [80]
    BitterGuySlamIntro
    Triggerable, Attack
    Base Damage: 559–839
    Critical Hit Chance: 5%
    Attack Damage: 290%
    Attack Time: 1.785 sec
    Cooldown Time: 7 sec
    Deals 190% more Attack Damage
    +10 to Melee Strike Range
    active skill area of effect radius +% final [25]
    is area damage [1]
    monster penalty against minions damage +% final vs player minions [60]
    voll slam damage +% final at centre [50]

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    extends "Metadata/Monsters/BossBase"
    
    Actor
    {
    	slow_animations_go_to_idle = false
    }
    
    StateMachine
    {
    	define_shared_state = "fight"
    	define_shared_state = "generic1"
    	define_shared_state = "generic2"
    	define_shared_state = "generic3"
    
    	on_state_fight_1 =
    	"
    		SetImmobile( false );
    		MakeCollidable();
    	"
    }
    
    Positioned
    {
    	force_placement = true
    }
    
    Stats
    {
    	set_scale_melee_range_to_actor_scale = 0
    	set_monster_delay_item_drops_millis = 5500
    }
    

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    extends "Metadata/Monsters/BossBase"
    
    StateMachine
    {
    	create_state_fight_0 =
    	"
    		DisableTargetable();
    		SetImmobile( true );
    		RemoveCollidability();
    		PlayAnimation( idle );
    		PauseAnimation();
    		SetRangeCheckingForGlobalAudioParams( False );
    	"
    
    	create_state_fight_1 =
    	"
    		ShowAllMeshSegments( );
    		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/light.epk' );
    		IfAlive(
    		{
    			SetRangeCheckingForGlobalAudioParams( True );
    		} );
    	"
    
    	on_exit_state_fight_0 =
    	"
    		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/transform_in_ribbons.epk' );
    		ShowAllMeshSegments( );
    		EnableTargetable();
    		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/light.epk' );
    		SetRangeCheckingForGlobalAudioParams( True );
    	"
    }
    
    /* Actor
    {
    	on_event_ripples_for_EmptyActionSpell =
    	"
    		PlayEffect( Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/ripples.ao, 6, 1, 1, inherit, inherit, 240, -40, inherit );
    		PlayEffect( Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/ripples.ao, 16, 1, 1, inherit, inherit, 160, 40, inherit );
    	"
    
    	on_event_contact_for_EmptyActionSpell =
    	"
    		PlayEffect( Metadata/Monsters/BitterGuy/BitterGuyChildGhost1.ao, 6, 1, 1, inherit, inherit, 200, 0, inherit );
    		PlayEffect( Metadata/Monsters/BitterGuy/BitterGuyChildGhost2.ao, 16, 1, 1, inherit, inherit, 200, 0, inherit );
    	"
    } */
    
    Animated
    {
    	on_event_adddesaturateepk = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/corpseState_Blood.epk' );"
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/act8/WarHero/caster/revive/rig.ao"
    	on_slam_01 = "PlayTextAudio( LachlannSlamRandom, 'Metadata/Monsters/BitterGuy/BitterGuyBoss' );"
    	on_stomp_01 = "PlayTextAudio( LachlannStompRandom, 'Metadata/Monsters/BitterGuy/BitterGuyBoss' );"
    
    	on_event_contact_for_slam_01 = "RemoveEffectPack('Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/transform_in_ribbons.epk');"
    }
    
    Render
    {
    	has_light = false
    }
    
    Preload
    {
    	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/light.epk"
    	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/hinder_green.epk"
    	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/invisible.epk"
    	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/corpseState_Blood.epk"
    	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/epk/disintegrate.epk"
    	preload_epk = "Metadata/Effects/Spells/monsters_effects/Act1_FOUR/BitterGuy_Boss/hinder_green_player.epk"
    	preload_environment = "G1_7_boss"
    	preload_environment = "G1_7_boss_defeat"
    }
    
    GlobalAudioParamEvents
    {
    	player_in_range_param = "LachlannInRange"
    	life_percent_param = "LachlannLifePercentage"
    	range = 130
    	life_percent_is_boolean = true
    }
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/BitterGuy/BitterGuyBossCRUEL"] = {
        name = "Lachlann of Endless Lament",
        life = 3.13,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 3,
        damageSpread = 0.2,
        attackTime = 1.785,
        attackRange = 11,
        accuracy = 1,
        skillList = {
            "CGEBitterGuyColdGroundDegen",
            "GSBitterGuyStormUp",
            "GSBitterGuyStormDown",
            "BitterGuySlam",
            "BitterGuySlamIntro",
            "BitterGuySlamBack",
            "BitterGuySwipe",
            "BitterGuySummonWife",
            "BitterGuySummonSwarm",
            "BitterGuyEmptyActionChildSummon",
            "BitterGuyChildFirestormLeft",
            "BitterGuyChildFirestormRight",
            "BitterGuyStomp",
            "BitterGuyMelee",
            "BitterGuySweepMelee",
            "BitterGuyBrutusSlam",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["CGEBitterGuyColdGroundDegen"] = {
        name = "CGEBitterGuyColdGroundDegen",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Area] = true,
            [SkillType.Damage] = true,
            [SkillType.Triggerable] = true,
            [SkillType.Duration] = true,
            [SkillType.AreaSpell] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            area = true,
            spell = true,
            duration = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "base_cold_damage_to_deal_per_minute",
            "ground_maelstrom_art_variation",
            "base_skill_effect_duration",
            "active_skill_area_of_effect_radius_+%_final",
        },
        levels = {
            [1] = {1, 1010, 30000, -30, levelRequirement = 1, statInterpolation = {3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSBitterGuyStormUp"] = {
        name = "GSBitterGuyStormUp",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
        },
        statDescriptionScope = "geometry_spell",
        castTime = 1,
        baseFlags = {
            spell = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_physical_damage",
            "spell_maximum_base_physical_damage",
            "base_skill_effect_duration",
            "active_skill_base_physical_damage_%_to_convert_to_cold",
            "is_area_damage",
        },
        levels = {
            [1] = {0.80000001192093, 1.2000000476837, 1000, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSBitterGuyStormDown"] = {
        name = "GSBitterGuyStormDown",
        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,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_physical_damage",
            "spell_maximum_base_physical_damage",
            "active_skill_base_physical_damage_%_to_convert_to_cold",
        },
        levels = {
            [1] = {0.80000001192093, 1.2000000476837, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuySlam"] = {
        name = "BitterGuySlam",
        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 = {
            "melee_range_+",
            "active_skill_area_of_effect_radius_+%_final",
            "voll_slam_damage_+%_final_at_centre",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
        },
        levels = {
            [1] = {10, 25, 50, 60, baseMultiplier = 2.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuySlamIntro"] = {
        name = "BitterGuySlamIntro",
        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 = {
            "melee_range_+",
            "active_skill_area_of_effect_radius_+%_final",
            "voll_slam_damage_+%_final_at_centre",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
        },
        levels = {
            [1] = {10, 25, 50, 60, baseMultiplier = 2.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuySlamBack"] = {
        name = "BitterGuySlamBack",
        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 = {
            "active_skill_area_of_effect_radius_+%_final",
            "voll_slam_damage_+%_final_at_centre",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
        },
        levels = {
            [1] = {25, 50, 60, baseMultiplier = 2.9, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuySwipe"] = {
        name = "BitterGuySwipe",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Attack] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "is_area_damage",
        },
        levels = {
            [1] = {baseMultiplier = 1.13, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuySummonWife"] = {
        name = "BitterGuySummonWife",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Multicastable] = true,
            [SkillType.Triggerable] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 2,
        baseFlags = {
            spell = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "number_of_monsters_to_summon",
            "alternate_minion",
            "summon_specific_monsters_in_front_offset",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "summoned_monsters_are_minions",
            "minion_dies_when_parent_dies",
            "monster_no_drops_or_experience",
        },
        levels = {
            [1] = {1, 1004, 150, 60, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuySummonSwarm"] = {
        name = "BitterGuySummonSwarm",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Multicastable] = true,
            [SkillType.Triggerable] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 3,
        baseFlags = {
            spell = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "number_of_monsters_to_summon",
            "alternate_minion",
            "summon_specific_monsters_in_front_offset",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "summoned_monsters_are_minions",
            "minion_dies_when_parent_dies",
            "monster_no_drops_or_experience",
        },
        levels = {
            [1] = {1, 1007, 150, 80, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuyEmptyActionChildSummon"] = {
        name = "BitterGuyEmptyActionChildSummon",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 2,
        baseFlags = {
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
        },
        levels = {
            [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuyChildFirestormLeft"] = {
        name = "Firestorm",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "Rain flaming bolts over the targeted area. Can [Consume] all three types of [ElementalInfusion|Elemental Infusion], becoming much larger when [ElementalInfusion|Fire-Infused], causing lightning bolts when [ElementalInfusion|Lightning-Infused], and raining ice bolts when [ElementalInfusion|Cold-Infused].",
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
            [SkillType.Area] = true,
            [SkillType.Duration] = true,
            [SkillType.Trappable] = true,
            [SkillType.Totemable] = true,
            [SkillType.Mineable] = true,
            [SkillType.Multicastable] = true,
            [SkillType.Triggerable] = true,
            [SkillType.Fire] = true,
            [SkillType.Cascadable] = true,
            [SkillType.Unleashable] = true,
            [SkillType.AreaSpell] = true,
            [SkillType.UsableWhileMoving] = true,
            [SkillType.Limit] = true,
            [SkillType.Sustained] = true,
            [SkillType.NoAttackInPlace] = true,
        },
        statDescriptionScope = "fire_storm/statset_0",
        castTime = 1,
        baseFlags = {
            area = true,
            spell = true,
            duration = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_physical_damage",
            "spell_maximum_base_physical_damage",
            "fire_storm_fireball_delay_ms",
            "firestorm_base_area_of_effect_+%",
            "active_skill_area_of_effect_radius_+%_final",
            "base_skill_effect_duration",
            "active_skill_base_physical_damage_%_to_convert_to_cold",
            "is_area_damage",
        },
        levels = {
            [1] = {0.80000001192093, 1.2000000476837, 100, -100, 100, 50, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuyChildFirestormRight"] = {
        name = "Firestorm",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "Rain flaming bolts over the targeted area. Can [Consume] all three types of [ElementalInfusion|Elemental Infusion], becoming much larger when [ElementalInfusion|Fire-Infused], causing lightning bolts when [ElementalInfusion|Lightning-Infused], and raining ice bolts when [ElementalInfusion|Cold-Infused].",
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
            [SkillType.Area] = true,
            [SkillType.Duration] = true,
            [SkillType.Trappable] = true,
            [SkillType.Totemable] = true,
            [SkillType.Mineable] = true,
            [SkillType.Multicastable] = true,
            [SkillType.Triggerable] = true,
            [SkillType.Fire] = true,
            [SkillType.Cascadable] = true,
            [SkillType.Unleashable] = true,
            [SkillType.AreaSpell] = true,
            [SkillType.UsableWhileMoving] = true,
            [SkillType.Limit] = true,
            [SkillType.Sustained] = true,
            [SkillType.NoAttackInPlace] = true,
        },
        statDescriptionScope = "fire_storm/statset_0",
        castTime = 1,
        baseFlags = {
            area = true,
            spell = true,
            duration = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_physical_damage",
            "spell_maximum_base_physical_damage",
            "fire_storm_fireball_delay_ms",
            "firestorm_base_area_of_effect_+%",
            "active_skill_area_of_effect_radius_+%_final",
            "base_skill_effect_duration",
            "active_skill_base_physical_damage_%_to_convert_to_cold",
            "is_area_damage",
        },
        levels = {
            [1] = {0.80000001192093, 1.2000000476837, 100, -100, 100, 50, 40, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuyStomp"] = {
        name = "BitterGuyStomp",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Attack] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "is_area_damage",
        },
        levels = {
            [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuyMelee"] = {
        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 = {
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        },
        levels = {
            [1] = {100, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuySweepMelee"] = {
        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 = {
            "melee_range_+",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        },
        levels = {
            [1] = {12, 80, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["BitterGuyBrutusSlam"] = {
        name = "BitterGuyBrutusSlam",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Attack] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "attack_maximum_action_distance_+",
            "active_skill_base_area_of_effect_radius",
            "ground_slam_cone_angle_override",
            "ground_slam_wave_duration_override_ms",
            "brutus_ground_slam_effect_step",
            "brutus_ground_slam_number_of_effects_at_max",
            "brutus_ground_slam_number_of_effects_at_min",
            "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
            "is_area_damage",
            "base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
        },
        levels = {
            [1] = {40, 100, 60, 1000, 400, 5, 3, 80, baseMultiplier = 3.75, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    
    monster dropped item rarity +% [1600]
    monster slain experience +% [0]
    FamilyMonsterActBoss
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • monster slain experience +% Min: 0 Max: 0 Global
  • monster dropped item rarity +% Min: 1600 Max: 1600 Global
  • keyval
    StateMachine./*,
    StateMachine.boss_life_bar - controls when to show the big life bar (also requires the checkbox in MonsterVarieties to be checked)
    StateMachine.0: Life bar is hidden
    StateMachine.1: Life bar is visible, will hide on death
    StateMachine.dont_hide_lifebar_on_unaggro - controls whether the boss life bar should be hidden when the boss unaggros
    StateMachine.0: Life bar is hidden after a short duration when the boss loses aggro
    StateMachine.1: Life bar remains visible the entire time, can still be controlled by setting the disable_life_bar state
    StateMachine.show_life_bar_when_in_range - delay the life bar from showing up, until the boss is on screen (for wild bosses)
    StateMachine.0: Life bar behaves as normal
    StateMachine.1: Life bar initially only shows up when a player can see the boss on screen, this doesn't make it get removed if the player goes off screen though
    StateMachine.hidden - replaces the Unaggro+hidden_monster combo, and optionally pauses delirium fog
    StateMachine.0: Make aggro and remove hidden monster buff
    StateMachine.1: Unaggro and add hidden monster buff
    StateMachine.2: Unaggro, add hidden monster buff and pause delirium fog
    StateMachine.light - controls the boss point light, attaches to head_light_attachment if it exists (otherwise uses the default)
    StateMachine.0: Light off, handles the fade out
    StateMachine.1: Light on, handles the fade in
    StateMachine.introsequence - for bosses that are doing something before you rudely interrupt them
    StateMachine.boss uses the ChangeToStance1BossFightStart granted effect for this, which is added through the actor component in here
    StateMachine.0: no intro sequence
    StateMachine.1: boss starts off in stance2, then does change to stance1 when a proximity trigger is triggered
    StateMachine.intro_zoom - for bosses that should have the camera zoom out during the intro
    StateMachine.0: no zoom
    StateMachine.1: zoom enabled, with default values. These can be overridden in the monsters ots.
    StateMachine.intro_pan - for bosses that should have the camera pan towards them during the intro
    StateMachine.0: no pan
    StateMachine.1: pan enabled, with default values. These can be overridden in the monsters ots.
    StateMachine.use_offset_camera_controller - if this is set to 1, the boss will spawn and use a specific object as the zoom/pan center point
    StateMachine.The location of this object needs to be set by the boss too, if it isn't you will get warning message
    StateMachine.See GreatWhiteOne (shark boss) as an example, but all you really need is to set the state to 1 and move the object after it spawns
    StateMachine.0: use self as zoom/pan origin
    StateMachine.1: use a new object as the zoom/pan origin
    StateMachine.door_type - defaults to 0 for no door (or no boss control over door), other values are related to specific door types
    StateMachine.When used, also need to do 'set_telepad_indexx' in the monsters ots (BaseEvents), where x is the telepad index
    StateMachine.0: disable telepad, but only if a telepad index has been set
    StateMachine.1: force field door, forcefield blocks entrance on boss aggro, is removed on boss death (requires Metadata/MiscellaneousObjects/BossForceFieldDoor.ot in arena)
    StateMachine.2: prisoner boss door, closed on fight start, doesn't reopen afterwards (Metadata/Terrain/Gallows/Act4/4_5_2/Objects/PrisonBossDoor.ot)
    StateMachine.roaming - State for disabling instant portals on roaming bosses vs arena bosses.
    StateMachine.0: Arena Boss
    StateMachine.1: Roaming Boss
    StateMachine.arena_sector_id - If there are multiple arena bosses in an instance, each boss needs a different arena_sector_id INCLUDING roaming bosses
    StateMachine.It defaults to 1 so most bosses wont need this to be changed
    StateMachine.Currently supports up to three different bosses, but its easy to add more
    StateMachine.This state value is used to decide which boss sectors to destroy, see the triggerbracket on death in the BossBase.ots for more detail
    StateMachine.use_custom_sector_removal_handling - Set to 1 if a boss needs to use its own custom handling for sector removal on death (eg Mastodon)
    StateMachine.0: default behaviour, arena sector is removed on boss death
    StateMachine.1: custom behaviour, this disables the on death sector removal in boss base, so will need to be handled in the bosses otc AND ots
    StateMachine.quick_death_enabled - Use this for bosses with long deaths that are visible when you resurrect at checkpoint after killing them
    StateMachine.DO NOT set the quick_death state manually, this will cause the monster to do its quick death anim when it first dies
    StateMachine.0: default behaviour, death will be played at regular speed
    StateMachine.1: death anim is sped up by 10000x, this should be used for bosses that have events in their death that need to trigger
    StateMachine.2: death anim is sped up by 1000x, deaths with move events dont like being super fast so they can use this slower one
    StateMachine.am_final_boss_in_fight - This is used for multi boss fights to handle resurrecting etc after killing a single boss from fight
    StateMachine.0: reaching this state toggles part_of_multiple_boss_fight to be true, and signifies that this boss is not the final boss
    StateMachine.1: default value, will remain here unless another boss turns flips it to 0
    StateMachine.part_of_multiple_boss_fight - helper state for the above, shouldn't be interacted with manually
    StateMachine.0: currently not part of a multi boss fight
    StateMachine.1: was part of a multi boss fight at some point
    StateMachine.*/,
    StateMachine.define_shared_state =
    StateMachine.", , ,
    StateMachine.boss_life_bar;
    StateMachine.hidden;
    StateMachine.light;
    StateMachine.introsequence;
    StateMachine.disable_life_bar;
    StateMachine.intro_zoom;
    StateMachine.intro_pan;
    StateMachine.use_offset_camera_controller;
    StateMachine.door_type;
    StateMachine.roaming;
    StateMachine.first_aggro;
    StateMachine.room_marker;
    StateMachine.arena_sector_id1;
    StateMachine.use_custom_sector_removal_handling;
    StateMachine.quick_death_enabled;
    StateMachine.quick_death;
    StateMachine.am_final_boss_in_fight1;
    StateMachine.part_of_multiple_boss_fight;
    StateMachine.dead - Boss is dead. This state is saved to the character checkpoint, so if you respawn at checkpoint this state will be automatically set. In BossBase.ots, this also calls KillSelfNoDrops().
    StateMachine.if you DON'T want this state to save/load automatically, use StateMachine{ checkpoint_save_deadfalse }
    StateMachine.0: Boss is alive
    StateMachine.1: Boss is dead
    StateMachine.2: Boss is dead and corpse is hidden
    StateMachine.define_shared_checkpoint_statedead
    StateMachine.define_shared_statefight, generic1, generic2, generic3
    StateMachine.on_state_fight_1 =
    StateMachine.SetImmobile( false );
    StateMachine.MakeCollidable();
    Actor.slow_animations_go_to_idlefalse, false
    Actor.leveled_starting_effectsCTS1BossFightStart
    Stats.corpse_cannot_be_destroyed1
    Stats.base_heavy_stun_duration_ms4000
    Stats.additional_life_scaling_index6
    Stats.scale_melee_range_to_actor_scale0
    Stats.monster_delay_item_drops_millis5500
    Life.corpse_usablefalse
    Monster.is_bosstrue
    Positioned.force_placementtrue
    Topic /1
    NPCName
    LeitisFor what it's worth, my name is Leitis. I appreciate the rescue, but... Eamon... everything I know... it's all gone. It isn't worth much, but take this. Perhaps it will aid you against that monster.
    Lachlann of Endless Lament Text Audio /9
    Name
    Together... at last...
    BitterGuyDeath
    My rage burns!
    LachlannSlamRandom
    My rage burns!
    LachlannSlam2
    My rage burns!
    LachlannSlam3
    My rage burns!
    LachlannSlam4
    My rage burns!
    LachlannSlam5
    Feel the chill of the grave!
    LachlannStompRandom
    Feel the chill of the grave!
    LachlannStomp2
    Feel the chill of the grave!
    LachlannStomp3
    Edit

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