Sandflesh Archer
undead description [1]
stance movement speed +% final [192]
stance movement speed +% final [192]
stance movement speed +% final [192]
stance movement speed +% final [192]
SpectreY
Tagsallows_additional_projectiles, monster_barely_moves, ranged, skeleton, Unarmed_onhit_audio, undead, very_slow_movement
Life
100%
Ailment Threshold
%
Resistance
0 0 0 0
Damage
110%
Accuracy
100%
Critical Strike Chance
+5%
Critical Strike Multiplier
+130%
Attack Distance
6 ~ 55
Attack Time
1.5 Second
Damage Spread
±30%
Experience
100%
Model Size
100%
Type
SkeletonBasicRanged
Metadata
SkeletonTitanGrottoBow
Level
68
Life
7,757
Armour
3,451
Evasion
477
Energy Shield
0
Damage
256
Spell Damage
256
Accuracy
0
Attack Time
1.5
Experience
28,634
MeleeAtAnimationSpeedBow
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Multistrikeable, Melee, ProjectilesFromUser
Basic Attack
Base Damage: 180–333
[Critical|Critical Hit] Chance: 5%
Attack Time: 1.5 sec
action attack or cast time uses animation length [1]
check for targets between initiator and projectile source [1]
maintain projectile direction when using contact position [1]
projectile uses contact position [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
MonsterSplitArrow
Attack, RangedAttack, MirageArcherCanUse, Projectile, ProjectilesFromUser, Totemable, Trappable, Mineable, Triggerable, Physical
Split Arrow
Base Damage: 180–333
[Critical|Critical Hit] Chance: 5%
Attack Damage: 120%
Attack Time: 1.5 sec
Fires multiple arrows at different targets.
Deals 20% more Attack Damage
30% reduced Projectile Speed
Fires 2 additional Arrows

Object Type

version 2
abstract
extends "Metadata/Monsters/Monster"

Actor
{
	basic_action = "Emerge"
	basic_action = "Emerge2"
	basic_action = "Revive"
	basic_action = "ChangeToStance1"
	basic_action = "ChangeToStance2"
	basic_action = "ChangeToStance3"
}

Stats
{
	set_base_heavy_stun_duration_ms = 2467
}

Object Type Codes

version 2
extends "Metadata/Monsters/Monster"

Life
{
	on_death =
	"
		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/on_death_epks/monster_on_death.epk' );
		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/fire_glow.epk' );
		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/cold_glow.epk' );
		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/lightning_glow.epk' );
	"

	on_spawned_dead = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/on_death_epks/monster_on_death.epk' );"
	on_revive = "Call( elemental_epks );"
}

Positioned
{
	on_initial_position_set =
	"
		Delay( 0.034,
		{
			IfAlive( (){ Call( elemental_epks ); } );
		} );
	"
}

Functions
{
	elemental_epks =
	"
		IfVarietyContains( Fire, ()
		{
			AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/fire_glow.epk' );
		} );
		IfVarietyContains( Cold, ()
		{
			AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/cold_glow.epk' );
		} );
		IfVarietyContains( Lightning, ()
		{
			AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/lightning_glow.epk' );
		} );
	"
}
-- src\Data\Spectres.lua
minions["Metadata/Monsters/Skeletons/TitanGrotto/SkeletonTitanGrottoBow"] = {
    name = "Sandflesh Archer",
    life = 1,
    fireResist = 0,
    coldResist = 0,
    lightningResist = 0,
    chaosResist = 0,
    damage = 1.1,
    damageSpread = 0.3,
    attackTime = 1.5,
    attackRange = 55,
    accuracy = 1,
    weaponType1 = "Bow",
    skillList = {
        "MonsterSplitArrow",
        "MeleeAtAnimationSpeedBow",
    },
    modList = {
    },
}
-- src\Data\Skills\spectre.lua
skills["MonsterSplitArrow"] = {
    name = "Split Arrow",
    hidden = true,
    color = ,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Fires multiple arrows at different targets.",
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.MirageArcherCanUse] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
        [SkillType.Totemable] = true,
        [SkillType.Trappable] = true,
        [SkillType.Mineable] = true,
        [SkillType.Triggerable] = true,
        [SkillType.Physical] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "number_of_additional_arrows",
        "active_skill_damage_+%_final",
        "base_projectile_speed_+%",
        "skill_can_fire_arrows",
    },
    levels = {
        [1] = {2, 0, -30, baseMultiplier = 1.2, levelRequirement = 1, statInterpolation = {1, 1},  cost = { }, },
        [2] = {2, 0, -30, baseMultiplier = 1.2, levelRequirement = 30, statInterpolation = {1, 1},  cost = { }, },
        [3] = {2, 0, -30, baseMultiplier = 1.2, levelRequirement = 60, statInterpolation = {1, 1},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MeleeAtAnimationSpeedBow"] = {
    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.Multistrikeable] = 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",
        "maintain_projectile_direction_when_using_contact_position",
        "check_for_targets_between_initiator_and_projectile_source",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
undead description [1]
IdMonsterNecromancerRaisable
FamilyMonsterNecromancerRaisable
DomainsMonster (3)
GenerationTypeUnique (3)
Req. level1
Stats
  • undead description Min: 1 Max: 1 Global
  • Adds Tagsnecromancer_raisable
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global
  • stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global
  • stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global
  • stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global
  • Sandflesh Archer
    undead description [1]
    stance movement speed +% final [192]
    stance movement speed +% final [192]
    stance movement speed +% final [192]
    stance movement speed +% final [192]
    SpectreY
    Tagsallows_additional_projectiles, monster_barely_moves, ranged, skeleton, Unarmed_onhit_audio, undead, very_slow_movement
    Life
    100%
    Ailment Threshold
    %
    Resistance
    0 0 0 0
    Damage
    110%
    Accuracy
    100%
    Critical Strike Chance
    +5%
    Critical Strike Multiplier
    +130%
    Attack Distance
    6 ~ 55
    Attack Time
    1.5 Second
    Damage Spread
    ±30%
    Experience
    100%
    Model Size
    100%
    Type
    SkeletonBasicRanged
    Metadata
    SkeletonTitanGrottoCrossbow
    Level
    68
    Life
    7,757
    Armour
    3,451
    Evasion
    477
    Energy Shield
    0
    Damage
    256
    Spell Damage
    256
    Accuracy
    0
    Attack Time
    1.5
    Experience
    28,634
    MeleeAtAnimationSpeedBow
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Multistrikeable, Melee, ProjectilesFromUser
    Basic Attack
    Base Damage: 180–333
    [Critical|Critical Hit] Chance: 5%
    Attack Time: 1.5 sec
    action attack or cast time uses animation length [1]
    check for targets between initiator and projectile source [1]
    maintain projectile direction when using contact position [1]
    projectile uses contact position [1]
    skill can fire wand projectiles [1]
    use scaled contact offset [1]

    Object Type

    version 2
    abstract
    extends "Metadata/Monsters/Monster"
    
    Actor
    {
    	basic_action = "Emerge"
    	basic_action = "Emerge2"
    	basic_action = "Revive"
    	basic_action = "ChangeToStance1"
    	basic_action = "ChangeToStance2"
    	basic_action = "ChangeToStance3"
    }
    
    Stats
    {
    	set_base_heavy_stun_duration_ms = 2467
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    
    Life
    {
    	on_death =
    	"
    		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/on_death_epks/monster_on_death.epk' );
    		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/fire_glow.epk' );
    		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/cold_glow.epk' );
    		RemoveEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/lightning_glow.epk' );
    	"
    
    	on_spawned_dead = "AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/on_death_epks/monster_on_death.epk' );"
    	on_revive = "Call( elemental_epks );"
    }
    
    Positioned
    {
    	on_initial_position_set =
    	"
    		Delay( 0.034,
    		{
    			IfAlive( (){ Call( elemental_epks ); } );
    		} );
    	"
    }
    
    Functions
    {
    	elemental_epks =
    	"
    		IfVarietyContains( Fire, ()
    		{
    			AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/fire_glow.epk' );
    		} );
    		IfVarietyContains( Cold, ()
    		{
    			AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/cold_glow.epk' );
    		} );
    		IfVarietyContains( Lightning, ()
    		{
    			AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/Act1_FOUR/Graveyard/skeleton_caster/epk/lightning_glow.epk' );
    		} );
    	"
    }
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/Skeletons/TitanGrotto/SkeletonTitanGrottoCrossbow"] = {
        name = "Sandflesh Archer",
        life = 1,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 1.1,
        damageSpread = 0.3,
        attackTime = 1.5,
        attackRange = 55,
        accuracy = 1,
        weaponType1 = "Bow",
        skillList = {
            "MeleeAtAnimationSpeedBow",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MeleeAtAnimationSpeedBow"] = {
        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.Multistrikeable] = 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",
            "maintain_projectile_direction_when_using_contact_position",
            "check_for_targets_between_initiator_and_projectile_source",
        },
        levels = {
            [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    
    undead description [1]
    IdMonsterNecromancerRaisable
    FamilyMonsterNecromancerRaisable
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • undead description Min: 1 Max: 1 Global
  • Adds Tagsnecromancer_raisable
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    IdNothing
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global
  • stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global
  • stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global
  • stance movement speed +% final [192]
    IdStanceMovementSpeed192
    FamilyStance
    DomainsMonster (3)
    GenerationTypeUnique (3)
    Req. level1
    Stats
  • stance movement speed +% final Min: 192 Max: 192 Global