← Back to list

Thane Wulfric

Slug: Thane_Wulfric

Open Source Page
Tags: 2HSharpMetal_onhit_audio humanoid not_dex not_int red_blood undead very_slow_movement
Areas: Holten Estate
Thane Wulfric artwork

No custom art yet. Upload one to replace the placeholder.

Core Stat Percentiles

Spell Damage
548
Top 11%
Damage
548
Top 62%
Evasion Rating
537
Top 79%
Life
9,014
Top 85%
Armour
2,352
Top 85%
Accuracy
1,556
Top 92%

Other Notable Percentiles

Critical Damage Bonus
+30%
Top 0.1%
Critical Hits Chance
5%
Top 3.2%
Damage Spread
±20%
Top 4.7%
Model Size
130%
Top 16%
Minion Armour
4,704
Top 25%
Resistance
0 0 0 0
Top 25%

Thane Wulfric

Variant code: BloodKnightBoss
Section 1 of 1

Overview

Undead

Implicit Mods: stance movement speed +% final [233], i am boss of tier [3] monster dropped item rarity +% [4800] monster slain experience +% [0] monster slain flask charges granted +% [-50]

Summary

Spectre N
Area Holten Estate
Tags 2HSharpMetal_onhit_audio, humanoid, not_dex, not_int, red_blood, undead, very_slow_movement

Base Multipliers

Life
240%
Armour
+100%
Resistance
0 0 0 0
Damage
345%
Accuracy
100%
Critical Hits Chance
5%
Critical Damage Bonus
+30%
Attack Distance
5 ~ 11
Attack Time
1.5 Second
Damage Spread
±20%
Experience
300%
Model Size
130%
Type
BloodKnightBoss
Metadata
BloodKnightBoss

Extra Data

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

StateMachine
{
	define_shared_state =
	"
		spirits;
		max;
		souls;
		wifedead;
	"
}

Stats
{
	set_monster_delay_item_drops_millis = 3200
}

Life
{
	on_death =
	"
		IfState( wifedead, 1, (){}, (){ this.vampirequeen.SetStateTo( husbanddead, 1 ); } );
	"
}

Actor
{
	// resets projectiles pierce list between 1st and 2nd swipes
	on_effect_event_reset_pierce_list_for_HusbandMonsterCleaveEmpowered =
	"
		RemoveNamedTask( SharedPierceList );
		AddNamedTask( SharedPierceList );
	"

	basic_action = "ChangeToStance1"
}

Functions {}
version 2
extends "Metadata/Monsters/Monster"
extends "Metadata/Monsters/BossBase"

Render
{
	use_ao_lights = true
}

StateMachine
{
	create_state_light_1 = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup.epk' );"
	on_state_light_1 = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup.epk' );"

	on_or_create_state_light_0 =
	"
		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup.epk' );
		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup_body.epk' );
	"

	on_or_create_state_max_1 = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup_body.epk' );"
	on_or_create_state_spirits_0 = "RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup_body.epk' );"

	on_change_state_spirits =
	"
		this.soul_intensity = Clamp( 0.0 + GetState( spirits ), 0.0, 4.0 );
		Call( update_soul_states, soul_intensity );
	"
}

Functions
{
	update_soul_states =
	"
		this.effect_values = arg1;
		effect_values += arg1;
		effect_values += 0.0;
		effect_values += 0.0;
	"

	piano =
	"
		ForEachOfType( 'Metadata/Monsters/HusbandMonster/Objects/BloodKnightPiano', (){ SetStateTo( emerge, 1 ); } );
	"
}

BaseEvents
{
	on_construction_complete = "AddAttached( 'Metadata/Monsters/HusbandMonster/attachments/HusbandReskinHelmet.ao', aux_L_Weapon_attachment_02 );"
}

Animated
{
	on_event_helmet = "MoveAttachedToBone( aux_L_Weapon_attachment_02, head_jntBnd, 0.0, 'Metadata/Monsters/HusbandMonster/attachments/HusbandReskinHelmet.ao' );"
}

Animated
{
	on_blood_orb_01 = "PlayTextAudio( VampireHusbandBoss_BloodOrb_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_cleave_01 = "PlayTextAudio( VampireHusbandBoss_Cleave_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_cleave_02 = "PlayTextAudio( VampireHusbandBoss_Cleave_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_combo_01 = "PlayTextAudio( VampireHusbandBoss_Combo_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_cooldown_01 = "PlayTextAudio( VampireHusbandBoss_Cooldown_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"	
	on_dash_slice_01 = "PlayTextAudio( VampireHusbandBoss_Dash_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_empower_01 = "PlayTextAudio( VampireHusbandBoss_Empower_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_knockdown_bwd_01 = "PlayTextAudio( VampireHusbandBoss_Knockdown_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_overhead_01 = "PlayTextAudio( VampireHusbandBoss_Overhead_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );"
	on_end_death_bwd_02 = "RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup_body.epk' );"
}

Life
{
	on_death = 
	"	
		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act4_FOUR/BloodKnightBoss/EPKs/powerup_body.epk' );
		globals.vampirequeenboss.PlayTextAudio( VampireHusbandBoss_Overhead_Random, 'Metadata/Monsters/HusbandMonster/BloodKnightBoss', 0 );
	"
}
-- src\Data\Spectres.lua
minions["Metadata/Monsters/HusbandMonster/BloodKnightBoss"] = {
    name = "Thane Wulfric",
    life = 2.4,
    fireResist = 0,
    coldResist = 0,
    lightningResist = 0,
    chaosResist = 0,
    damage = 3.45,
    damageSpread = 0.2,
    attackTime = 1.5,
    attackRange = 11,
    accuracy = 1,
    skillList = {
        "MeleeAtAnimationSpeedBoss",
        "BloodKnightCleave",
        "BloodKnightCleaveEmpowered",
        "BloodKnightComboAttack",
        "MPSBloodKnightCleaveBalls",
        "GABloodKnightCleaveDash",
        "GABloodKnightDashTrigger",
        "GSBloodKnightBloodFallSingle",
        "EASBloodKnightEnrage",
        "EASBloodKnightCooldown",
        "GTBloodKnightBloodFall",
        "DTTBloodKnightDash",
        "BloodKnightBlazingLance",
    },
    modList = {
    },
}
-- src\Data\Skills\spectre.lua
skills["MeleeAtAnimationSpeedBoss"] = {
    name = "Basic Attack",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.MeleeSingleTarget] = true,
        [SkillType.Melee] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        melee = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "skill_can_fire_arrows",
        "skill_can_fire_wand_projectiles",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_position",
        "use_scaled_contact_offset",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BloodKnightCleave"] = {
    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] = {20, baseMultiplier = 1.35, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        [2] = {100, 20, baseMultiplier = 1.35, levelRequirement = 65, statInterpolation = {1},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BloodKnightCleaveEmpowered"] = {
    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] = {20, baseMultiplier = 1.75, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        [2] = {100, 20, baseMultiplier = 1.75, levelRequirement = 65, statInterpolation = {1},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BloodKnightComboAttack"] = {
    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_+",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "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",
        "base_skill_can_be_avoided_by_dodge_roll",
        "base_skill_can_be_blocked",
    },
    levels = {
        [1] = {15, 100, baseMultiplier = 0.6, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MPSBloodKnightCleaveBalls"] = {
    name = "MPSBloodKnightCleaveBalls",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Damage] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        spell = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "spell_minimum_base_physical_damage",
        "spell_maximum_base_physical_damage",
        "monster_projectile_variation",
        "spell_maximum_action_distance_+%",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "base_is_projectile",
        "projectile_uses_contact_position",
        "maintain_projectile_direction_when_using_contact_position",
        "action_attack_or_cast_time_uses_animation_length",
        "projectile_uses_contact_direction",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 1415, -30, 100, critChance = 5, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GABloodKnightCleaveDash"] = {
    name = "GABloodKnightCleaveDash",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Triggerable] = true,
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {100, baseMultiplier = 1.1, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GABloodKnightDashTrigger"] = {
    name = "GABloodKnightDashTrigger",
    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 = {
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "base_skill_can_be_avoided_by_dodge_roll",
        "base_skill_can_be_blocked",
    },
    levels = {
        [1] = {baseMultiplier = 0.15, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["GSBloodKnightBloodFallSingle"] = {
    name = "GSBloodKnightBloodFallSingle",
    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_physical_damage_to_deal_per_minute",
        "base_skill_effect_duration",
        "ground_blood_art_variation",
        "active_skill_area_of_effect_radius_+%_final",
        "is_area_damage",
        "action_attack_or_cast_time_uses_animation_length",
        "skill_can_be_active_blocked_from_all_directions",
    },
    levels = {
        [1] = {0.80000001192093, 1.2000000476837, 4.5, 20000, 1005, -25, levelRequirement = 1, statInterpolation = {3, 3, 3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EASBloodKnightEnrage"] = {
    name = "EASBloodKnightEnrage",
    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["EASBloodKnightCooldown"] = {
    name = "EASBloodKnightCooldown",
    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["GTBloodKnightBloodFall"] = {
    name = "GTBloodKnightBloodFall",
    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] = {baseMultiplier = 0.8, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["DTTBloodKnightDash"] = {
    name = "Dash",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.Movement] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "walk_emerge_extra_distance",
        "leap_slam_minimum_distance",
        "skill_maximum_travel_distance",
        "spell_maximum_action_distance_+%",
        "action_attack_or_cast_time_uses_animation_length",
    },
    levels = {
        [1] = {-11, 46, 64, 0, baseMultiplier = 0.8, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["BloodKnightBlazingLance"] = {
    name = "Blazing Lance",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Throw a spear leaving a trail of [Fire|Fire] in its wake, [Burning|Burning] enemies. Then throws a second spear in the same direction, causing the trail of [Fire|Fire] to expand outwards.",
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.Fire] = true,
        [SkillType.Barrageable] = true,
        [SkillType.Spear] = true,
        [SkillType.UsableWhileMounted] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "base_physical_damage_to_deal_per_minute",
        "additional_projectiles_fire_parallel_y_dist",
        "active_skill_base_area_of_effect_radius",
        "active_skill_base_secondary_area_of_effect_radius",
        "base_skill_effect_duration",
        "fire_wake_spear_wall_speed",
        "monster_penalty_against_minions_damage_+%_final_vs_player_minions",
        "base_is_projectile",
        "use_scaled_contact_offset",
        "number_of_firing_points_equals_projectile_count",
        "always_pierce",
        "action_attack_or_cast_time_uses_animation_length",
        "no_additional_projectiles",
        "base_skill_cannot_be_avoided_by_dodge_roll_or_evaded_or_blocked",
    },
    levels = {
        [1] = {3, -50, 8, 50, 4000, 1000, 80, baseMultiplier = 1.5, critChance = 5, levelRequirement = 1, statInterpolation = {3},  cost = { }, },
    },
}