クーウラ
悪魔
モンスターの付与する経験値が200%増加する
ドロップするアイテムのレアリティが%増加する
monster base type attack cast speed +% and damage -% final [33]
アクションスピードは基礎値の50%よりも低く修正されることがない
monster penalty against minions damage +% final vs player minions [-25]
モンスターの付与する経験値が100%増加する
ドロップするアイテムのレアリティが15000%増加する
cannot be stunned for ms after stun finished [2000]
cannot be stunned while stunned [1]
Q'ura
SpectreN
Area生贄の頂, 魅惑的な深淵
Tagscleaving_weapon, demon, flesh_armour, has_two_hand_axe, has_two_handed_melee, medium_height, melee, no_maven, physical_affinity, red_blood, slow_movement, unique_map_boss
ライフ
833%
Ailment Threshold
588%
耐性
40 40 40 25
Damage
125%
命中
100%
クリティカル率
+5%
クリティカルダメージ倍率
+130%
Attack Distance
6 ~ 13
Attack Time
1.5 Second
Damage Spread
±20%
経験値
125%
Model Size
125%
Type
DemonBoss1
Metadata
DemonBoss1
レベル
80
ライフ
11,712,936
アーマー
73,441
回避力
7,124
エナジーシールド
0
Damage
1,079
スペルダメージ
1,611
命中
462
Attack Time
1.005
経験値
87,395
Ailment Threshold
3,968,618
Chill
12,549
Shock
12,549
Brittle
70,995
Scorch
12,549
Sap
34,670
Melee
Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Multistrikeable, Melee, ProjectilesFromUser
通常攻撃
Base Damage: 1714–2571
クリティカル率: 5%
Attack Time: 1.5 秒
強力な一撃で敵を打ち倒す。
skill can fire arrows [1]
skill can fire wand projectiles [1]
MonsterDemonCleave
Attack, Area, Melee, DamageOverTime
Base Damage: 1714–2571
クリティカル率: 5%
Attack Time: 1.5 秒
毎秒272.1の基礎物理ダメージを与える
アタックスピードが50%減少する
corrupted blood cleave stacks to add [2]
is area damage [1]
MonsterDesecratedGroundCyclone
Attack, Area, Melee, Movement
サイクロン
Base Damage: 1714–2571
クリティカル率: 5%
Attack Time: 1.5 秒
クールダウン時間: 5 秒
周囲の敵にダメージを与え、指定地点に移動しつつ回転しながら攻撃を与え続ける。ルースレスおよびマルチストライクでサポートすることができない。
ダメージが60%低下する
物理ダメージが35%増加する
アタックスピードが180%増加する
移動スピードが150%上昇する
cyclone extra distance [30]
cyclone places ground desecration chaos damage per minute [76848]
desecrated ground art variation [1]
is area damage [1]
MonsterDemonCleaveEnrage
Attack, Area, Melee, DamageOverTime
Base Damage: 1714–2571
クリティカル率: 5%
Attack Time: 1.5 秒
毎秒272.1の基礎物理ダメージを与える
アタックスピードが50%減少する
corrupted blood cleave stacks to add [8]
is area damage [1]

Object Type

version 2
extends "Metadata/Monsters/DemonBosses/DemonBoss"

Actor
{
	main_hand_unarmed_type = "Two_Hand_Sword"
}

Object Type Codes

version 2
extends "Metadata/Monsters/DemonBosses/DemonBoss"
-- src\Data\Spectres.lua
minions["Metadata/Monsters/DemonBosses/DemonBoss1/DemonBoss1"] = {
    name = "Q'ura",
    life = 8.33,
    fireResist = 40,
    coldResist = 40,
    lightningResist = 40,
    chaosResist = 25,
    damage = 1.25,
    damageSpread = 0.2,
    attackTime = 1.5,
    attackRange = 13,
    accuracy = 1,
    weaponType1 = "Two Hand Axe",
    skillList = {
        "Melee",
        "MonsterDesecratedGroundCyclone",
        "MonsterDemonCleave",
        "MonsterDemonCleaveEnrage",
    },
    modList = {
    },
}
-- src\Data\Skills\spectre.lua
skills["Melee"] = {
    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",
    },
    levels = {
        [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MonsterDesecratedGroundCyclone"] = {
    name = "Cyclone",
    hidden = true,
    color = "2",
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    description = "Damage enemies around you, then perform a spinning series of attacks as you travel to a target location. Cannot be supported by Ruthless or Multistrike.",
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.Area] = true,
        [SkillType.Melee] = true,
        [SkillType.Movement] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
        melee = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "attack_speed_+%",
        "cyclone_movement_speed_+%_final",
        "cyclone_extra_distance",
        "cyclone_places_ground_desecration_chaos_damage_per_minute",
        "physical_damage_+%",
        "active_skill_damage_+%_final",
        "desecrated_ground_art_variation",
        "is_area_damage",
    },
    levels = {
        [1] = {120, 120, 40, 1230, 35, -60, 1, levelRequirement = 4, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [2] = {120, 120, 40, 6205, 35, -60, 1, levelRequirement = 9, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [3] = {120, 120, 40, 10185, 35, -60, 1, levelRequirement = 13, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [4] = {120, 120, 40, 15160, 35, -60, 1, levelRequirement = 18, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [5] = {120, 120, 40, 21130, 35, -60, 1, levelRequirement = 24, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [6] = {120, 120, 40, 24114, 35, -60, 1, levelRequirement = 27, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [7] = {120, 120, 40, 27099, 35, -60, 1, levelRequirement = 30, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [8] = {120, 120, 40, 30084, 35, -60, 1, levelRequirement = 33, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [9] = {120, 120, 40, 32074, 35, -60, 1, levelRequirement = 35, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [10] = {120, 120, 40, 35059, 35, -60, 1, levelRequirement = 38, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [11] = {120, 120, 40, 37049, 35, -60, 1, levelRequirement = 40, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [12] = {120, 120, 40, 40034, 35, -60, 1, levelRequirement = 43, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [13] = {120, 120, 40, 43019, 35, -60, 1, levelRequirement = 46, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [14] = {120, 120, 40, 45009, 35, -60, 1, levelRequirement = 48, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [15] = {120, 120, 40, 46999, 35, -60, 1, levelRequirement = 50, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [16] = {120, 120, 40, 48989, 35, -60, 1, levelRequirement = 52, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [17] = {120, 120, 40, 50979, 35, -60, 1, levelRequirement = 54, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [18] = {120, 120, 40, 52968, 35, -60, 1, levelRequirement = 56, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [19] = {120, 120, 40, 54958, 35, -60, 1, levelRequirement = 58, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [20] = {120, 120, 40, 56948, 35, -60, 1, levelRequirement = 60, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [21] = {120, 120, 40, 58938, 35, -60, 1, levelRequirement = 62, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [22] = {120, 120, 40, 60928, 35, -60, 1, levelRequirement = 64, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [23] = {120, 120, 40, 62918, 35, -60, 1, levelRequirement = 66, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [24] = {120, 120, 40, 63913, 35, -60, 1, levelRequirement = 67, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [25] = {120, 120, 40, 64908, 35, -60, 1, levelRequirement = 68, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [26] = {120, 120, 40, 65903, 35, -60, 1, levelRequirement = 69, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [27] = {120, 120, 40, 66898, 35, -60, 1, levelRequirement = 70, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [28] = {130, 125, 38, 67893, 35, -60, 1, levelRequirement = 71, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [29] = {140, 130, 36, 68888, 35, -60, 1, levelRequirement = 72, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [30] = {150, 135, 34, 69883, 35, -60, 1, levelRequirement = 73, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [31] = {160, 140, 32, 70878, 35, -60, 1, levelRequirement = 74, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [32] = {170, 145, 30, 71873, 35, -60, 1, levelRequirement = 75, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [33] = {180, 150, 30, 72868, 35, -60, 1, levelRequirement = 76, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [34] = {180, 150, 30, 73863, 35, -60, 1, levelRequirement = 77, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [35] = {180, 150, 30, 74858, 35, -60, 1, levelRequirement = 78, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [36] = {180, 150, 30, 75853, 35, -60, 1, levelRequirement = 79, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [37] = {180, 150, 30, 76848, 35, -60, 1, levelRequirement = 80, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [38] = {180, 150, 30, 77843, 35, -60, 1, levelRequirement = 81, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [39] = {180, 150, 30, 78838, 35, -60, 1, levelRequirement = 82, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [40] = {180, 150, 30, 80827, 35, -60, 1, levelRequirement = 84, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [41] = {180, 150, 30, 82817, 35, -60, 1, levelRequirement = 86, statInterpolation = {1, 1, 1, 1},  cost = { }, },
        [42] = {180, 150, 30, 84807, 35, -60, 1, levelRequirement = 88, statInterpolation = {1, 1, 1, 1},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MonsterDemonCleave"] = {
    name = "MonsterDemonCleave",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.Area] = true,
        [SkillType.Melee] = true,
        [SkillType.DamageOverTime] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
        melee = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "base_physical_damage_to_deal_per_minute",
        "attack_speed_+%",
        "corrupted_blood_cleave_stacks_to_add",
        "is_area_damage",
    },
    levels = {
        [1] = {150, -50, 2, levelRequirement = 3, statInterpolation = {1},  cost = { }, },
        [2] = {235, -50, 2, levelRequirement = 5, statInterpolation = {1},  cost = { }, },
        [3] = {320, -50, 2, levelRequirement = 8, statInterpolation = {1},  cost = { }, },
        [4] = {406, -50, 2, levelRequirement = 10, statInterpolation = {1},  cost = { }, },
        [5] = {491, -50, 2, levelRequirement = 12, statInterpolation = {1},  cost = { }, },
        [6] = {576, -50, 2, levelRequirement = 14, statInterpolation = {1},  cost = { }, },
        [7] = {661, -50, 2, levelRequirement = 17, statInterpolation = {1},  cost = { }, },
        [8] = {746, -50, 2, levelRequirement = 20, statInterpolation = {1},  cost = { }, },
        [9] = {832, -50, 2, levelRequirement = 24, statInterpolation = {1},  cost = { }, },
        [10] = {917, -50, 2, levelRequirement = 30, statInterpolation = {1},  cost = { }, },
        [11] = {1002, -50, 2, levelRequirement = 31, statInterpolation = {1},  cost = { }, },
        [12] = {1062, -50, 2, levelRequirement = 36, statInterpolation = {1},  cost = { }, },
        [13] = {1458, -50, 2, levelRequirement = 41, statInterpolation = {1},  cost = { }, },
        [14] = {1854, -50, 2, levelRequirement = 44, statInterpolation = {1},  cost = { }, },
        [15] = {2250, -50, 2, levelRequirement = 51, statInterpolation = {1},  cost = { }, },
        [16] = {2646, -50, 2, levelRequirement = 54, statInterpolation = {1},  cost = { }, },
        [17] = {3345, -50, 2, levelRequirement = 57, statInterpolation = {1},  cost = { }, },
        [18] = {4045, -50, 2, levelRequirement = 60, statInterpolation = {1},  cost = { }, },
        [19] = {4744, -50, 2, levelRequirement = 65, statInterpolation = {1},  cost = { }, },
        [20] = {5443, -50, 2, levelRequirement = 66, statInterpolation = {1},  cost = { }, },
        [21] = {6142, -50, 2, levelRequirement = 67, statInterpolation = {1},  cost = { }, },
        [22] = {6842, -50, 2, levelRequirement = 68, statInterpolation = {1},  cost = { }, },
        [23] = {7541, -50, 2, levelRequirement = 69, statInterpolation = {1},  cost = { }, },
        [24] = {8240, -50, 2, levelRequirement = 70, statInterpolation = {1},  cost = { }, },
        [25] = {9049, -50, 2, levelRequirement = 71, statInterpolation = {1},  cost = { }, },
        [26] = {9858, -50, 2, levelRequirement = 72, statInterpolation = {1},  cost = { }, },
        [27] = {10666, -50, 2, levelRequirement = 73, statInterpolation = {1},  cost = { }, },
        [28] = {11475, -50, 2, levelRequirement = 74, statInterpolation = {1},  cost = { }, },
        [29] = {12284, -50, 2, levelRequirement = 75, statInterpolation = {1},  cost = { }, },
        [30] = {13093, -50, 2, levelRequirement = 76, statInterpolation = {1},  cost = { }, },
        [31] = {13901, -50, 2, levelRequirement = 77, statInterpolation = {1},  cost = { }, },
        [32] = {14710, -50, 2, levelRequirement = 78, statInterpolation = {1},  cost = { }, },
        [33] = {15519, -50, 2, levelRequirement = 79, statInterpolation = {1},  cost = { }, },
        [34] = {16327, -50, 2, levelRequirement = 80, statInterpolation = {1},  cost = { }, },
        [35] = {17136, -50, 2, levelRequirement = 81, statInterpolation = {1},  cost = { }, },
        [36] = {17945, -50, 2, levelRequirement = 82, statInterpolation = {1},  cost = { }, },
    },
}
-- src\Data\Skills\spectre.lua
skills["MonsterDemonCleaveEnrage"] = {
    name = "MonsterDemonCleaveEnrage",
    hidden = true,
    color = 4,
    baseEffectiveness = 0,
    incrementalEffectiveness = 0,
    skillTypes = {
        [SkillType.Attack] = true,
        [SkillType.Area] = true,
        [SkillType.Melee] = true,
        [SkillType.DamageOverTime] = true,
    },
    statDescriptionScope = "skill_stat_descriptions",
    castTime = 1,
    baseFlags = {
        attack = true,
        area = true,
        melee = true,
    },
    baseMods = {
    },
    qualityStats = {
    },
    stats = {
        "base_physical_damage_to_deal_per_minute",
        "corrupted_blood_cleave_stacks_to_add",
        "attack_speed_+%",
        "is_area_damage",
    },
    levels = {
        [1] = {150, 4, -50, levelRequirement = 3, statInterpolation = {1, 1},  cost = { }, },
        [2] = {235, 4, -50, levelRequirement = 5, statInterpolation = {1, 1},  cost = { }, },
        [3] = {320, 5, -50, levelRequirement = 8, statInterpolation = {1, 1},  cost = { }, },
        [4] = {406, 5, -50, levelRequirement = 10, statInterpolation = {1, 1},  cost = { }, },
        [5] = {491, 6, -50, levelRequirement = 12, statInterpolation = {1, 1},  cost = { }, },
        [6] = {576, 6, -50, levelRequirement = 14, statInterpolation = {1, 1},  cost = { }, },
        [7] = {661, 7, -50, levelRequirement = 17, statInterpolation = {1, 1},  cost = { }, },
        [8] = {746, 7, -50, levelRequirement = 20, statInterpolation = {1, 1},  cost = { }, },
        [9] = {832, 8, -50, levelRequirement = 24, statInterpolation = {1, 1},  cost = { }, },
        [10] = {917, 8, -50, levelRequirement = 30, statInterpolation = {1, 1},  cost = { }, },
        [11] = {1002, 8, -50, levelRequirement = 31, statInterpolation = {1, 1},  cost = { }, },
        [12] = {1062, 8, -50, levelRequirement = 36, statInterpolation = {1, 1},  cost = { }, },
        [13] = {1458, 8, -50, levelRequirement = 41, statInterpolation = {1, 1},  cost = { }, },
        [14] = {1854, 8, -50, levelRequirement = 44, statInterpolation = {1, 1},  cost = { }, },
        [15] = {2250, 8, -50, levelRequirement = 51, statInterpolation = {1, 1},  cost = { }, },
        [16] = {2646, 8, -50, levelRequirement = 54, statInterpolation = {1, 1},  cost = { }, },
        [17] = {3345, 8, -50, levelRequirement = 57, statInterpolation = {1, 1},  cost = { }, },
        [18] = {4045, 8, -50, levelRequirement = 60, statInterpolation = {1, 1},  cost = { }, },
        [19] = {4744, 8, -50, levelRequirement = 65, statInterpolation = {1, 1},  cost = { }, },
        [20] = {5443, 8, -50, levelRequirement = 66, statInterpolation = {1, 1},  cost = { }, },
        [21] = {6142, 8, -50, levelRequirement = 67, statInterpolation = {1, 1},  cost = { }, },
        [22] = {6842, 8, -50, levelRequirement = 68, statInterpolation = {1, 1},  cost = { }, },
        [23] = {7541, 8, -50, levelRequirement = 69, statInterpolation = {1, 1},  cost = { }, },
        [24] = {8240, 8, -50, levelRequirement = 70, statInterpolation = {1, 1},  cost = { }, },
        [25] = {9049, 8, -50, levelRequirement = 71, statInterpolation = {1, 1},  cost = { }, },
        [26] = {9858, 8, -50, levelRequirement = 72, statInterpolation = {1, 1},  cost = { }, },
        [27] = {10666, 8, -50, levelRequirement = 73, statInterpolation = {1, 1},  cost = { }, },
        [28] = {11475, 8, -50, levelRequirement = 74, statInterpolation = {1, 1},  cost = { }, },
        [29] = {12284, 8, -50, levelRequirement = 75, statInterpolation = {1, 1},  cost = { }, },
        [30] = {13093, 8, -50, levelRequirement = 76, statInterpolation = {1, 1},  cost = { }, },
        [31] = {13901, 8, -50, levelRequirement = 77, statInterpolation = {1, 1},  cost = { }, },
        [32] = {14710, 8, -50, levelRequirement = 78, statInterpolation = {1, 1},  cost = { }, },
        [33] = {15519, 8, -50, levelRequirement = 79, statInterpolation = {1, 1},  cost = { }, },
        [34] = {16327, 8, -50, levelRequirement = 80, statInterpolation = {1, 1},  cost = { }, },
        [35] = {17136, 8, -50, levelRequirement = 81, statInterpolation = {1, 1},  cost = { }, },
        [36] = {17945, 8, -50, levelRequirement = 82, statInterpolation = {1, 1},  cost = { }, },
    },
}
モンスターの付与する経験値が200%増加する
ドロップするアイテムのレアリティが%増加する
IdMonsterAtziriMapBoss
FamilyMonsterMapBoss
Domainsモンスター (3)
GenerationTypeユニーク (3)
Req. level1
Stats
  • monster slain experience +% Min: 200 Max: 200 Global
  • monster dropped item rarity +% Min: 0 Max: 0 Global
  • monster base type attack cast speed +% and damage -% final [33]
    IdMonsterSpeedAndDamageFixupComplete
    FamilyMonsterSpeedAndDamageFixup
    Domainsモンスター (3)
    GenerationTypeユニーク (3)
    Req. level1
    Stats
  • monster base type attack cast speed +% and damage -% final Min: 33 Max: 33 Global
  • Craft Tagscaster_damage damage attack caster speed
    アクションスピードは基礎値の50%よりも低く修正されることがない
    IdCannotBeSlowedBelowValueBosses
    FamilyCannotBeSlowedBelowValue
    Domainsモンスター (3)
    GenerationTypeユニーク (3)
    Req. level1
    Stats
  • hellscape boots action speed +% minimum value Min: -50 Max: -50 Global
  • Craft Tagsspeed
    monster penalty against minions damage +% final vs player minions [-25]
    IdMonsterDamageVersusPlayerMinions25
    FamilyMonsterDamageVersusMinions
    Domainsモンスター (3)
    GenerationTypeユニーク (3)
    Req. level1
    Stats
  • monster penalty against minions damage +% final vs player minions Min: -25 Max: -25 Global
  • Craft Tagsdamage
    モンスターの付与する経験値が100%増加する
    ドロップするアイテムのレアリティが15000%増加する
    IdMonsterMapBoss
    FamilyMonsterMapBoss
    Domainsモンスター (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
    Domainsモンスター (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.