ทาลิน ผู้ทำลายศรัทธา
หุ่นกล
ด่าน: Pillars of Arun
เพิ่มระดับความหายากของ ไอเทม ที่ดรอป 15000%
มอนสเตอร์ ให้ค่าประสบการณ์ เพิ่มขึ้น 100%
cannot be stunned for ms after stun finished [2000]
cannot be stunned while stunned [1]
Talin, Faithbreaker
SpectreN
AreaPillars of Arun
Tagsbludgeoning_weapon, นักเวท, construct, has_one_handed_melee, has_sceptre, humanoid, large_height, melee, mud_blood, not_dex, not_int, physical_affinity, ranged, slow_movement, stone_armour, unique_map_boss
พลังชีวิต
3400%
เกราะ
+50%
Ailment Threshold
2200%
ค่าต้านทาน
40 40 40 25
Damage
180%
ความแม่นยำ
100%
โอกาสคริติคอล
+5%
ตัวคูณคริติคอล
+130%
Attack Distance
6 ~ 6
Attack Time
1.5 Second
Damage Spread
±20%
ค่าประสบการณ์
200%
Model Size
170%
Type
StatueMapBossVastiri
Metadata
StatueChurchMapBossVastiri
เลเวล
69
พลังชีวิต
5,519,300
เกราะ
46,737
การหลบหลีก
4,907
โล่พลังงาน
0
Damage
813
ความเสียหายเวท
1,214
ความแม่นยำ
301
Attack Time
1.005
ค่าประสบการณ์
115,357
Ailment Threshold
2,107,074
Chill
6,663
Shock
6,663
Brittle
37,693
Scorch
6,663
Sap
18,407
MeleeAtAnimationSpeedUnique
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Multistrikeable, Melee, ProjectilesFromUser
โจมตีธรรมดา (Default Attack)
Base Damage: 1292–1938
โอกาสคริติคอล: 5%
Attack Time: 1.5 วินาที
โจมตีศัตรูของคุณด้วยการจู่โจมอย่างมีกำลัง
action attack or cast time uses animation length [1]
projectile uses contact position [1]
skill can fire arrows [1]
skill can fire wand projectiles [1]
use scaled contact offset [1]
VilentaPillarHop
Attack
Base Damage: 1292–1938
โอกาสคริติคอล: 5%
Attack Time: 1.5 วินาที
คูลดาวน์: 15 วินาที
EmptyActionSpellVastiri1
Spell
เวลาร่าย: 1.5 วินาที
คูลดาวน์: 10 วินาที
empty action state value [1]
EmptyActionSpellVastiri2
Spell
เวลาร่าย: 1.5 วินาที
คูลดาวน์: 10 วินาที
empty action state value [2]
EmptyActionSpellVastiri3
Spell
เวลาร่าย: 1.5 วินาที
คูลดาวน์: 10 วินาที
empty action state value [3]
EmptyActionSpellVastiri4
Spell
เวลาร่าย: 1.5 วินาที
คูลดาวน์: 10 วินาที
empty action state value [4]
VastiriBossSpectralThrow1
Attack, RangedAttack, Projectile, ProjectilesFromUser
โยนอาวุธเงา (Spectral Throw)
Base Damage: 1292–1938
โอกาสคริติคอล: 5%
Attack Time: 1.5 วินาที
ขว้างร่างเงาของ อาวุธประชิด ของคุณ มันจะบินออกไปและกลับมาหาคุณ ซึ่งมันจะหมุนโจมตี สร้างความเสียหายให้กับศัตรูระหว่างทาง
สร้างความเสียหาย ลดลง อีก 52%
base is projectile [1]
spectral throw deceleration override [55]
VastiriBossSpectralThrow2
Attack, RangedAttack, Projectile, ProjectilesFromUser
โยนอาวุธเงา (Spectral Throw)
Base Damage: 1292–1938
โอกาสคริติคอล: 5%
Attack Time: 1.5 วินาที
ขว้างร่างเงาของ อาวุธประชิด ของคุณ มันจะบินออกไปและกลับมาหาคุณ ซึ่งมันจะหมุนโจมตี สร้างความเสียหายให้กับศัตรูระหว่างทาง
สร้างความเสียหาย ลดลง อีก 52%
ยิงกระสุน เพิ่มเติม 2 ลูก
base is projectile [1]
spectral throw deceleration override [50]
VastiriBossSpectralThrow3
Attack, RangedAttack, Projectile, ProjectilesFromUser
โยนอาวุธเงา (Spectral Throw)
Base Damage: 1292–1938
โอกาสคริติคอล: 5%
Attack Time: 1.5 วินาที
ขว้างร่างเงาของ อาวุธประชิด ของคุณ มันจะบินออกไปและกลับมาหาคุณ ซึ่งมันจะหมุนโจมตี สร้างความเสียหายให้กับศัตรูระหว่างทาง
สร้างความเสียหาย ลดลง อีก 52%
ยิงกระสุน เพิ่มเติม 4 ลูก
base is projectile [1]
spectral throw deceleration override [45]
MonsterLeapSlamVastiri
Attack, Area, Melee, Movement, Travel, Slam, Totemable
กระโจนทุบ (Leap Slam)
Base Damage: 1292–1938
โอกาสคริติคอล: 5%
ความเสียหายโจมตี: 150%
ความเสียหายโจมตี: 150%
Attack Time: 1.5 วินาที
คูลดาวน์: 5 วินาที
กระโดดขึ้นกลางอากาศเพื่อลงมาจู่โจมพื้นที่เป้าหมาย สร้างความเสียหายและผลักศัตรูออกไปด้วยอาวุธของคุณ คุณจะผลักศัตรูที่คุณทับออกไปให้พ้นทาง ต้องใช้กับ ขวาน, กระบอง, คทา, ดาบ หรือ ไม้พลอง เท่านั้น สกิลนี้ไม่สามารถเสริมด้วย Multistrike ได้
สร้างความเสียหาย โจมตี เพิ่มขึ้น อีก 50%
ลดความเร็วในการโจมตี อีก 50%
รัศมีพื้นฐาน 1.5 เมตร
cast time overrides attack duration [1]
is area damage [1]
MonsterCastGroundEffectHolyFire
Spell, Area, Damage, Triggerable, Duration, AreaSpell
เวลาร่าย: 1 วินาที
EmptyActionSpellVastiriDelayedBlast
Spell
เวลาร่าย: 1.5 วินาที
คูลดาวน์: 10 วินาที
empty action state value [5]

Object Type

version 2
extends "Metadata/Monsters/Monster"

Actor
{
	main_hand_unarmed_type = "One_Hand_Mace"
	basic_action = "Emerge"
	basic_action = "ChangeToStance2"
	basic_action = "ChangeToStance1"
}

Transitionable
{
}

Object Type Codes

version 2
extends "Metadata/Monsters/Monster"

Render
{
	preload_buff_visual = "stone_gaze"
}

Animated
{
	on_any_wake = "parent.HideMeshSegments(statue_dummyShape,overgrow_dummyShape);"
	on_any_wake_bow = "parent.HideMeshSegments(statue_dummyShape,overgrow_dummyShape,bowShape,quiverShape);"
	on_any_wake_maul = "parent.HideMeshSegments(statue_dummyShape,overgrow_dummyShape,maulShape);"
	on_any_wake_2hmaul = "parent.HideMeshSegments(statue_dummyShape,overgrow_dummyShape,maulShape);"
	on_any_wake_sword = "parent.HideMeshSegments(statue_dummyShape,overgrow_dummyShape,shortswordShape);"
	on_any_wake_sword_shield = "parent.HideMeshSegments(statue_dummyShape,overgrow_dummyShape,shortswordShape,shieldShape);"
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/act9/StoneGaze/stonegaze_beam.ao"
	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/act5/BlessedSister/holyfire_mortarimpact.ao"
}

Life
{
	on_death = "DetachAllContainingText( blue_ ); DetachAllContainingText( orange_ ); DetachAllContainingText( daresso_ ); DetachAllContainingText( divine_ );"
}

-- src\Data\Spectres.lua
minions["Metadata/Monsters/Statue/StatueChurchMapBossVastiri"] = {
    name = "Talin, Faithbreaker",
    life = 34,
    fireResist = 40,
    coldResist = 40,
    lightningResist = 40,
    chaosResist = 25,
    damage = 1.8,
    damageSpread = 0.2,
    attackTime = 1.5,
    attackRange = 6,
    accuracy = 1,
    weaponType1 = "Sceptre",
    skillList = {
        "MeleeAtAnimationSpeedUnique",
        "MonsterLeapSlamVastiri",
        "VastiriBossSpectralThrow1",
        "VastiriBossSpectralThrow2",
        "VastiriBossSpectralThrow3",
        "MonsterCastGroundEffectHolyFire",
        "EmptyActionSpellVastiri1",
        "EmptyActionSpellVastiri2",
        "EmptyActionSpellVastiri3",
        "EmptyActionSpellVastiri4",
        "EmptyActionSpellVastiriDelayedBlast",
        "VilentaPillarHop",
    },
    modList = {
    },
}
-- src\Data\Skills\spectre.lua
skills["MeleeAtAnimationSpeedUnique"] = {
    name = "Default Attack",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Strike your foes down with a powerful blow.",
    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",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MonsterLeapSlamVastiri"] = {
    name = "Leap Slam",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Jump through the air, damaging and knocking back enemies with your weapon where you land. Enemies you would land on are pushed out of the way. Requires an Axe, Mace, Sceptre, Sword or Staff. Cannot be supported by Multistrike.",
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.Area] = true,
        [SkillType.Melee] = true,
        [SkillType.Movement] = true,
        [SkillType.Travel] = true,
        [SkillType.Slam] = true,
        [SkillType.Totemable] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1.4,
    baseFlags = {
        attack = true,
        area = true,
        melee = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "active_skill_attack_speed_+%_final",
        "active_skill_base_area_of_effect_radius",
        "is_area_damage",
        "cast_time_overrides_attack_duration",
    },
    levels = {
        [1] = {-50, 15, baseMultiplier = 1.5, levelRequirement = 2, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["VastiriBossSpectralThrow1"] = {
    name = "Spectral Throw",
    hidden = true,
    color = "2",
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Throws a spectral copy of your melee weapon. It flies out and then returns to you, in a spinning attack that damages enemies in its path.",
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "active_skill_damage_+%_final",
        "spectral_throw_deceleration_override",
        "base_is_projectile",
    },
    levels = {
        [1] = {-52, 55, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["VastiriBossSpectralThrow2"] = {
    name = "Spectral Throw",
    hidden = true,
    color = "2",
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Throws a spectral copy of your melee weapon. It flies out and then returns to you, in a spinning attack that damages enemies in its path.",
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "active_skill_damage_+%_final",
        "number_of_additional_projectiles",
        "spectral_throw_deceleration_override",
        "base_is_projectile",
    },
    levels = {
        [1] = {-52, 2, 50, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["VastiriBossSpectralThrow3"] = {
    name = "Spectral Throw",
    hidden = true,
    color = "2",
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Throws a spectral copy of your melee weapon. It flies out and then returns to you, in a spinning attack that damages enemies in its path.",
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.RangedAttack] = true,
        [SkillType.Projectile] = true,
        [SkillType.ProjectilesFromUser] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        projectile = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "active_skill_damage_+%_final",
        "number_of_additional_projectiles",
        "spectral_throw_deceleration_override",
        "base_is_projectile",
    },
    levels = {
        [1] = {-52, 4, 45, levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MonsterCastGroundEffectHolyFire"] = {
    name = "MonsterCastGroundEffectHolyFire",
    hidden = true,
    color = 4,
    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_fire_damage_to_deal_per_minute",
        "ground_fire_art_variation",
        "base_skill_effect_duration",
        "active_skill_area_of_effect_radius_+%_final",
    },
    levels = {
        [1] = {3.5, 1, 10000, -50, levelRequirement = 70, statInterpolation = {3},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EmptyActionSpellVastiri1"] = {
    name = "EmptyActionSpellVastiri1",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1.5,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "empty_action_state_value",
    },
    levels = {
        [1] = {1, levelRequirement = 0, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EmptyActionSpellVastiri2"] = {
    name = "EmptyActionSpellVastiri2",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1.5,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "empty_action_state_value",
    },
    levels = {
        [1] = {2, levelRequirement = 0, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EmptyActionSpellVastiri3"] = {
    name = "EmptyActionSpellVastiri3",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1.5,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "empty_action_state_value",
    },
    levels = {
        [1] = {3, levelRequirement = 0, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EmptyActionSpellVastiri4"] = {
    name = "EmptyActionSpellVastiri4",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1.5,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "empty_action_state_value",
    },
    levels = {
        [1] = {4, levelRequirement = 0, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["EmptyActionSpellVastiriDelayedBlast"] = {
    name = "EmptyActionSpellVastiriDelayedBlast",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Spell] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1.5,
    baseFlags = {
        spell = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "empty_action_state_value",
    },
    levels = {
        [1] = {5, levelRequirement = 0, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["VilentaPillarHop"] = {
    name = "VilentaPillarHop",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
เพิ่มระดับความหายากของ ไอเทม ที่ดรอป 15000%
มอนสเตอร์ ให้ค่าประสบการณ์ เพิ่มขึ้น 100%
IdMonsterMapBoss
FamilyMonsterMapBoss
DomainsMonster (3)
GenerationTypeยูนิค (3)
Req. level1
Stats
  • monster slain experience +% Min: 100 Max: 100 Global
  • monster dropped item rarity +% Min: 15000 Max: 15000 Global
  • cannot be stunned for ms after stun finished [2000]
    cannot be stunned while stunned [1]
    IdStunRepeatImmunityMapBoss_
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • cannot be stunned while stunned Min: 1 Max: 1 Global
  • cannot be stunned for ms after stun finished Min: 2000 Max: 2000 Global
  • ทาลิน ผู้ทำลายศรัทธา
    หุ่นกล
    เพิ่มระดับความหายากของ ไอเทม ที่ดรอป 15000%
    มอนสเตอร์ ให้ค่าประสบการณ์ เพิ่มขึ้น 100%
    cannot be stunned for ms after stun finished [2000]
    cannot be stunned while stunned [1]
    Talin, Faithbreaker
    SpectreN
    Tagsbludgeoning_weapon, construct, elder_map_boss, has_one_handed_melee, has_sceptre, humanoid, large_height, mud_blood, non_attacking, not_dex, not_int, stone_armour, very_slow_movement
    พลังชีวิต
    3400%
    เกราะ
    +50%
    Ailment Threshold
    2200%
    ค่าต้านทาน
    40 40 40 25
    Damage
    180%
    ความแม่นยำ
    100%
    โอกาสคริติคอล
    +5%
    ตัวคูณคริติคอล
    +130%
    Attack Distance
    6 ~ 6
    Attack Time
    1.5 Second
    Damage Spread
    ±20%
    ค่าประสบการณ์
    200%
    Model Size
    170%
    Type
    StatueMapBossVastiri
    Metadata
    StatueChurchMapBossVastiriElder

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    
    Life
    {
    	corpse_usable = false
    }
    
    Stats
    {
    	base_cannot_be_damaged = 1
    	base_cannot_be_stunned = 1
    	cannot_be_knocked_back = 1
    	is_hidden_monster = 1
    	immune_to_curses = 1
    	immune_to_auras_from_other_entities = 1
    	set_immune_vaal_lighting_warp = 1
    }
    
    Transitionable
    {
    	
    }
    
    Preload
    {
    	preload_object = "Metadata/Monsters/ElderBosses/ElderAbsorb"
    	preload_object = "Metadata/MiscellaneousObjects/ElderPortal"
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Monster"
    
    Transitionable
    {
    	on_transition = "AddEffectPack( Metadata/Effects/Spells/monsters_effects/AtlasofWorldsBosses/Elder/entrance/affecting_target.epk );"
    	create_transitioned = "AddEffectPack( Metadata/Effects/Spells/monsters_effects/AtlasofWorldsBosses/Elder/entrance/affecting_target_instant.epk );"
    }
    
    Animated
    {
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/AtlasofWorldsBosses/Elder/entrance/entrance.ao"
    	preload_animated_object = "Metadata/Effects/Spells/monsters_effects/AtlasofWorldsBosses/Elder/absorb/absorb.ao"
    }
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/Statue/StatueChurchMapBossVastiriElder"] = {
        name = "Talin, Faithbreaker",
        life = 34,
        fireResist = 40,
        coldResist = 40,
        lightningResist = 40,
        chaosResist = 25,
        damage = 1.8,
        damageSpread = 0.2,
        attackTime = 1.5,
        attackRange = 6,
        accuracy = 1,
        weaponType1 = "Sceptre",
        skillList = {
        },
        modList = {
        },
    }
    
    เพิ่มระดับความหายากของ ไอเทม ที่ดรอป 15000%
    มอนสเตอร์ ให้ค่าประสบการณ์ เพิ่มขึ้น 100%
    IdMonsterMapBoss
    FamilyMonsterMapBoss
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • monster slain experience +% Min: 100 Max: 100 Global
  • monster dropped item rarity +% Min: 15000 Max: 15000 Global
  • cannot be stunned for ms after stun finished [2000]
    cannot be stunned while stunned [1]
    IdStunRepeatImmunityMapBoss_
    FamilyNothing
    DomainsMonster (3)
    GenerationTypeยูนิค (3)
    Req. level1
    Stats
  • cannot be stunned while stunned Min: 1 Max: 1 Global
  • cannot be stunned for ms after stun finished Min: 2000 Max: 2000 Global
  • Edit

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