Pirómano esqueleto
Grado: 3
Nivel: (1–20)
Reserva: (90–39) Espíritu
Requiere: Nivel (1–90), (4–157) Int
Actívala para invocar pirómanos esqueleto que reviven, lanzan bombas y pueden hacer detonar a otros esbirros cuando se lo ordenas.
Info de esbirros
Orden
Costo: (9–93) de maná
Puede seleccionar como objetivos a los esbirros que tengan (29–1379) de vida o menos
Fallecimiento explosivo
Tiempo de recarga: 3.00 seg
Daño de ataque: 300% de la base
Detonas a un esbirro aliado cuya vida actual se encuentre por debajo de un umbral para que inflija una gran cantidad de daño de ataques a los enemigos cercanos.
Convierte el 100% del daño físico en daño de fuego
Inflige daño de fuego adicional equivalente al 8% de la vida máxima del esbirro
Puede seleccionar como objetivos a los esbirros que tengan (30–1096) de vida o menos
El radio de la explosión es de 2.4 metros

Efectos adicionales de la calidad:
Inflige daño de fuego adicional equivalente a +(0–4)% de la vida máxima del esbirro
Las habilidades se administran en el panel de habilidades.
Skeletal Arsonist
Version 0.2.0
Skeletal Arsonist
Tier: 3
Level: (1–20)
Reservation: (90–39) Spirit
Requiere: Level (1–90), (2–205) Int
Activate to summon bomb-throwing, Reviving Skeletal Arsonists that can detonate other Minions on Command.
Minion Info
Command
Cost: (10–106) Mana
Can target Minions with (29–1379) Life or less
Cooldown Time: 3.00 s
Cast Time: 0.60 sec
Critical Hit Chance: 8.00%
Detonate an allied Minion whose current Life is below a threshold, dealing heavy damage to nearby enemies.
Deals (12–612) to (19–918) Fire Damage
Deals additional Fire Damage equal to 12% of Minion's maximum Life
Can target Minions with (27–917) Life or less
Explosion radius is 2.4 metres

Efectos adicionales de la calidad:
Deals additional Fire Damage equal to +(0–4)% of Minion's maximum Life
Skills can be managed in the Skills Panel.
Level Effect /40
NivelRequiereNivelIntReservaBase DamagePuede seleccionar como objetivos a los esbirros que tengan 29 de vida o menosMinion Level
10490100%, 100%, 100%292
23965100%, 100%, 100%544
361450100%, 100%, 100%836
4102147100%, 100%, 100%1148
5142847100%, 100%, 100%14810
6183547100%, 100%, 100%18712
7224144100%, 100%, 100%22914
8264844100%, 100%, 100%27716
9315744100%, 100%, 100%32918
10366542100%, 100%, 100%38620
11417442100%, 100%, 100%44922
12468242100%, 100%, 100%51824
13529240100%, 100%, 100%59426
145810340100%, 100%, 100%67728
156411340100%, 100%, 100%77030
166611640100%, 100%, 100%87032
177212639100%, 100%, 100%98134
187813739100%, 100%, 100%110136
198414739100%, 100%, 100%123538
209015739100%, 100%, 100%137940
2138100%, 100%, 100%153842
2238100%, 100%, 100%171144
2338100%, 100%, 100%189946
2438100%, 100%, 100%210548
2538100%, 100%, 100%233050
2637100%, 100%, 100%257552
2737100%, 100%, 100%284254
2837100%, 100%, 100%313456
2937100%, 100%, 100%345158
3037100%, 100%, 100%379560
3136100%, 100%, 100%417362
3236100%, 100%, 100%458364
3336100%, 100%, 100%502866
3436100%, 100%, 100%551368
3536100%, 100%, 100%604070
3635100%, 100%, 100%661272
3735100%, 100%, 100%723674
3835100%, 100%, 100%791376
3935100%, 100%, 100%864778
4035100%, 100%, 100%944780
Attribute /6

Pirómano esqueleto

NombreMostrar descripciones completas
BaseType Pirómano esqueleto
Class Gemas de habilidad
TargetTypesAny
TypeMinion, MinionsCanExplode, CreatesMinion, CreatesUndeadMinion, CreatesSkeletonMinion, HasReservation, Persistent, MultipleReservation, Fire, CommandableMinion, NoAttackInPlace, Detonator
ItemTypeMetadata/Items/Gems/SkillGemSkeletalArsonist
ActiveSkillsCodesummon_skeleton_arsonist
Pirómano esqueleto
Grado: 3
Nivel: (1–20)
Reserva: (90–39) Espíritu
Requiere: Nivel (1–90), (4–157) Int
Actívala para invocar pirómanos esqueleto que reviven, lanzan bombas y pueden hacer detonar a otros esbirros cuando se lo ordenas.
Info de esbirros
display minion monster type [2]
display statset no hit damage [1]
is resummoning minion [1]
minion base resummon time ms [12000]
skeletal graft buff effect magnitude [15]
Orden
Costo: (9–93) de maná
Puede seleccionar como objetivos a los esbirros que tengan (29–1379) de vida o menos
arsonist show indicator [1]
base deal no damage [1]
can perform skill while moving [1]
command minion target ally search radius [30]
command minion target untargeted ally [1]
minions do not move to skill target [1]
movement speed +% final while performing action [-70]
movement speed acceleration +% per second while performing action [160]
movement speed while performing action locked duration % [50]
skill is command [1]
Fallecimiento explosivo
Tiempo de recarga: 3.00 seg
Daño de ataque: 300% de la base
Detonas a un esbirro aliado cuya vida actual se encuentre por debajo de un umbral para que inflija una gran cantidad de daño de ataques a los enemigos cercanos.
Convierte el 100% del daño físico en daño de fuego
Inflige daño de fuego adicional equivalente al 8% de la vida máxima del esbirro
Puede seleccionar como objetivos a los esbirros que tengan (30–1096) de vida o menos
El radio de la explosión es de 2.4 metros
is area damage [1]
is commandable skill [1]
skill cannot be electrocuted [1]
skill cannot be frozen [1]
skill cannot be knocked back [1]
skill cannot be stunned [1]

Efectos adicionales de la calidad:
Inflige daño de fuego adicional equivalente a +(0–4)% de la vida máxima del esbirro
Las habilidades se administran en el panel de habilidades.
Skeletal Arsonist
Supported By /30
  • Active Type: Minion, MinionsCanExplode, CreatesMinion, CreatesUndeadMinion, CreatesSkeletonMinion, HasReservation, Persistent, MultipleReservation, Fire, CommandableMinion, NoAttackInPlace, Detonator
  • Área magnificada I
    Asiste cualquier habilidad que tenga un área de efecto para hacerla más grande.
    Área magnificada II
    Asiste cualquier habilidad que tenga un área de efecto para hacerla más grande a costa del daño.
    Área concentrada
    Asiste cualquier habilidad que tenga un área de efecto para que su área sea más pequeña pero inflija un daño mayor.
    Ejército elemental
    Asiste habilidades que crean esbirros para aumentar las resistencias elementales de esos esbirros. No puede asistir habilidades que crean esbirros que no pueden recibir daño.
    Frenesí voraz I
    Asiste habilidades que crean esbirros para que inflijan y reciban más daño. No puede asistir habilidades que crean esbirros que no pueden recibir daño.
    Escudo de carne I
    Asiste habilidades que crean esbirros para otorgarles menos daño recibido, pero hace que inflijan menos daño. No puede asistir habilidades que crean esbirros que no pueden recibir daño.
    Escudo de carne II
    Asiste habilidades que crean esbirros para otorgarles menos daño recibido, pero hace que inflijan menos daño.
    El Cerebro de Brutus
    Asiste habilidades que crean esbirros para que esos esbirros no puedan infligir ni recibir daño. No puede asistir habilidades que crean esbirros que no pueden recibir daño.
    Legión infernal I
    Asiste habilidades que crean esbirros que pueden recibir daño para incendiar a esos esbirros y a los enemigos cercanos a ellos. El daño infligido por el incendio se basa en la vida del esbirro asistido.
    Legión infernal II
    Asiste habilidades que crean esbirros que pueden recibir daño para incendiar a esos esbirros y a los enemigos cercanos a ellos. El daño infligido por el incendio se basa en la vida del esbirro asistido.
    Legión infernal III
    Asiste habilidades que crean esbirros que pueden recibir daño para incendiar a esos esbirros y a los enemigos cercanos a ellos. El daño infligido por el incendio se basa en la vida del esbirro asistido.
    Extracción de esencia
    Asiste habilidades que crean esbirros persistentes que reviven. Cuando esos esbirros mueren, recobras un porcentaje de tu maná máximo.
    Inestabilidad de esbirros
    Asiste habilidades que crean esbirros para que exploten de forma violenta cuando alcanzan el umbral de vida baja.
    Último aliento
    Asiste habilidades que crean esbirros persistentes para que dichos esbirros sigan peleando cuando estén mortalmente heridos y mueran tras un breve período de tiempo o cuando reciban más daño que exceda su vida máxima.
    Venganza de Tecrod
    Asiste habilidades que crean esbirros persistentes para que esos esbirros sigan luchando cuando estén mortalmente heridos, y mueren tras una pequeña duración o cuando reciben más daño si este excede su vida máxima. Los esbirros de las habilidades asistidas ganan devorador de almas y un estallido de velocidad al entrar en este estado.
    Maestría de fuego
    Asiste habilidades de fuego para otorgarles un nivel adicional. No asiste habilidades que no tienen niveles.
    Maestría de esbirros
    Asiste habilidades de esbirros para otorgarles un nivel adicional. No asiste habilidades que no tienen niveles.
    Chivo expiatorio I
    Asiste habilidades que crean esbirros para que tus habilidades que toman como objetivo a los esbirros prioricen a los esbirros de la habilidad asistida.
    Chivo expiatorio II
    Asiste habilidades que crean esbirros para que tus habilidades que toman como objetivo a los esbirros prioricen a los esbirros de la habilidad asistida y también hagan que siempre se consideren detonables.
    Comando I
    Asiste habilidades de esbirros. Los esbirros asistidos infligen más daño y tienen la velocidad de recuperación del enfriamiento aumentada con las habilidades de órdenes.
    Comando II
    Asiste habilidades de esbirros. Los esbirros asistidos infligen más daño y tienen la velocidad de recuperación del enfriamiento aumentada con las habilidades de órdenes.
    Comando III
    Asiste habilidades de esbirros. Los esbirros asistidos tienen la velocidad de recuperación del enfriamiento significativamente aumentada con las habilidades de órdenes.
    Mandamiento
    Asiste esbirros que tienen habilidades de órdenes. Los esbirros asistidos tienen la velocidad de recuperación del enfriamiento enormemente aumentada para las habilidades de órdenes que usan, pero no infligen daño con habilidades que no sean de órdenes.
    Esbirros enloquecidos
    Asiste habilidades de esbirros que invocan esbirros que reviven. Los esbirros asistidos infligen mucho más daño si han revivido recientemente.
    Marcha mortal
    Asiste habilidades que crean esbirros persistentes. Los esbirros asistidos restauran la vida de los esbirros aliados cercanos al morir y también eliminan los estados alterados que tengan esos esbirros.
    Congregación
    Asiste habilidades que invocan esbirros. Los esbirros asistidos infligen más daño cuantos más tipos diferentes de esbirros que reviven hayas invocado.
    Esbirros descomunales
    Asiste habilidades que invocan esbirros persistentes. Los esbirros asistidos son más grandes, tienen más vida e infligen más daño, pero cuestan bastante más espíritu.
    Control de Kurgal
    Asiste esbirros que pueden recibir órdenes para que tú y el esbirro asistido obtengan poder profano cuando se lo ordenas.
    Diezmo de Amanamu
    Asiste habilidades de esbirros persistentes para otorgarles una probabilidad cuando los esbirros asistidos mueren para que ganes un modificador de monstruo abisal.
    Pirómano esqueleto
    No muerto
    monster no drops or experience [1]
    Skeletal Arsonist
    SpectreN
    Tagsbone_armour, bones, Lanzador de hechizos, fire_affinity, is_unarmed, medium_height, medium_movement, not_dex, not_str, ranged, skeleton, slashing_weapon, Unarmed_onhit_audio, undead
    Vida
    55%
    Energy Shield From Life
    10%
    Resistencia
    50 0 0 0
    Damage
    70%
    Precisión
    100%
    Attack Distance
    8 ~ 80
    Tiempo de ataque
    1 Second
    Damage Spread
    ±30%
    Experiencia
    100%
    Model Size
    100%
    Type
    SkeletonArsonistPlayerSummoned
    Metadata
    SkeletonArsonistPlayerSummoned
    IsSummoned
    Y
    Nivel
    68
    Vida
    3,840
    Damage
    163
    Daño de hechizos
    163
    Precisión
    2,464
    Tiempo de ataque
    1
    Experiencia
    28,634
    Minion Life
    3,430
    Minion Energy Shield
    381
    Minion Damage
    678
    Minion Armour
    2,413
    FireBombSkeletonMinion
    Attack, RangedAttack, Area, ProjectileNumber, ProjectileSpeed, Duration, Grenade, CreatesGroundEffect, DetonatesAfterTime, Projectile
    Bomba de fuego
    Base Damage: 114–212
    Probabilidad de impacto crítico: 5%
    Tiempo de ataque: 1 seg
    Ataca con una bomba que rebota y explota al impactar.
    El tiempo de detonación es de 2 segundos
    Convierte el 70% del daño físico en daño de fuego
    active skill base area of effect radius [16]
    base is projectile [1]
    grenades target at half monster height [1]
    is area damage [1]
    projectile ballistic angle from reference event [1]
    DestructiveLinkSkeletonBombadierMinion
    Attack, Cooldown, Area, Fire, Damage, NoAttackInPlace
    Fallecimiento explosivo
    Base Damage: 114–212
    Probabilidad de impacto crítico: 5%
    Daño de ataque: 300%
    Tiempo de ataque: 1 seg
    Tiempo de recarga: 3 seg
    Detonas a un esbirro aliado cuya vida actual se encuentre por debajo de un umbral para que inflija una gran cantidad de daño de ataques a los enemigos cercanos.
    Inflige un 200% más de daño de ataques
    Convierte el 100% del daño físico en daño de fuego
    Inflige daño de fuego adicional equivalente al 8% de la vida máxima del esbirro
    Puede seleccionar como objetivos a los esbirros que tengan 30 de vida o menos
    El radio de la explosión es de 2.4 metros
    is area damage [1]
    is commandable skill [1]
    skill cannot be electrocuted [1]
    skill cannot be frozen [1]
    skill cannot be knocked back [1]
    skill cannot be stunned [1]

    Object Type

    version 2
    extends "Metadata/Monsters/Skeletons/PlayerSummoned/SkeletonPlayerSummoned"
    
    Stats
    {
    	strafe_distance_+% = -40
    }
    
    BaseEvents
    {
    	set_minion_formation_frontline = false
    	set_minion_formation_order = 5
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/Skeletons/PlayerSummoned/SkeletonPlayerSummoned"
    
    
    Actor
    {
    	on_start_Grenade = "AddAttached( 'Metadata/Effects/Spells/undead_summon_skeletons/skeleton_grenade.ao', R_Weapon );"
    	on_event_contact_for_Grenade = "DetachAllOfType( 'Metadata/Effects/Spells/undead_summon_skeletons/skeleton_grenade.ao' );"
    	on_destroy_Grenade = "DetachAllOfType( 'Metadata/Effects/Spells/undead_summon_skeletons/skeleton_grenade.ao' );"
    }
    
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/Skeletons/PlayerSummoned/SkeletonArsonistPlayerSummoned"] = {
        name = "Skeletal Arsonist",
        life = 0.55,
        energyShield = 0.1,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 0.7,
        damageSpread = 0.3,
        attackTime = 1,
        attackRange = 80,
        accuracy = 1,
        weaponType1 = "Unarmed",
        skillList = {
            "FireBombSkeletonMinion",
            "DestructiveLinkSkeletonBombadierMinion",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["FireBombSkeletonMinion"] = {
        name = "Fire Bomb",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "Attacks with a bouncing bomb that explodes on hit.",
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.RangedAttack] = true,
            [SkillType.Area] = true,
            [SkillType.ProjectileNumber] = true,
            [SkillType.ProjectileSpeed] = true,
            [SkillType.Duration] = true,
            [SkillType.Grenade] = true,
            [SkillType.CreatesGroundEffect] = true,
            [SkillType.DetonatesAfterTime] = true,
            [SkillType.Projectile] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
            projectile = true,
            duration = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "base_skill_detonation_time",
            "active_skill_base_physical_damage_%_to_convert_to_fire",
            "active_skill_base_area_of_effect_radius",
            "base_is_projectile",
            "projectile_ballistic_angle_from_reference_event",
            "is_area_damage",
            "grenades_target_at_half_monster_height",
        },
        levels = {
            [1] = {2000, 70, 16, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["DestructiveLinkSkeletonBombadierMinion"] = {
        name = "Explosive Demise",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "Detonate an allied [Minion] whose current Life is below a threshold, dealing heavy [Attack] damage to nearby enemies.",
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.Cooldown] = true,
            [SkillType.Area] = true,
            [SkillType.Fire] = true,
            [SkillType.Damage] = true,
            [SkillType.NoAttackInPlace] = true,
        },
        statDescriptionScope = "bombadier_destructive_link",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "command_minion_target_ally_below_x_life",
            "active_skill_base_area_of_effect_radius",
            "arsonist_destructive_link_%_of_life_as_fire_damage",
            "active_skill_base_physical_damage_%_to_convert_to_fire",
            "is_commandable_skill",
            "is_area_damage",
            "skill_cannot_be_frozen",
            "skill_cannot_be_electrocuted",
            "skill_cannot_be_knocked_back",
            "skill_cannot_be_stunned",
            "quality_display_arsonist_is_gem",
        },
        levels = {
            [1] = {30, 24, 8, 100, baseMultiplier = 3, levelRequirement = 1, statInterpolation = {1},  cost = { }, },
            [2] = {52, 24, 8, 100, baseMultiplier = 3, levelRequirement = 3, statInterpolation = {1},  cost = { }, },
            [3] = {77, 24, 8, 100, baseMultiplier = 3, levelRequirement = 5, statInterpolation = {1},  cost = { }, },
            [4] = {105, 24, 8, 100, baseMultiplier = 3, levelRequirement = 7, statInterpolation = {1},  cost = { }, },
            [5] = {134, 24, 8, 100, baseMultiplier = 3, levelRequirement = 9, statInterpolation = {1},  cost = { }, },
            [6] = {168, 24, 8, 100, baseMultiplier = 3, levelRequirement = 11, statInterpolation = {1},  cost = { }, },
            [7] = {203, 24, 8, 100, baseMultiplier = 3, levelRequirement = 13, statInterpolation = {1},  cost = { }, },
            [8] = {243, 24, 8, 100, baseMultiplier = 3, levelRequirement = 15, statInterpolation = {1},  cost = { }, },
            [9] = {286, 24, 8, 100, baseMultiplier = 3, levelRequirement = 17, statInterpolation = {1},  cost = { }, },
            [10] = {333, 24, 8, 100, baseMultiplier = 3, levelRequirement = 19, statInterpolation = {1},  cost = { }, },
            [11] = {383, 24, 8, 100, baseMultiplier = 3, levelRequirement = 21, statInterpolation = {1},  cost = { }, },
            [12] = {439, 24, 8, 100, baseMultiplier = 3, levelRequirement = 23, statInterpolation = {1},  cost = { }, },
            [13] = {500, 24, 8, 100, baseMultiplier = 3, levelRequirement = 25, statInterpolation = {1},  cost = { }, },
            [14] = {564, 24, 8, 100, baseMultiplier = 3, levelRequirement = 27, statInterpolation = {1},  cost = { }, },
            [15] = {636, 24, 8, 100, baseMultiplier = 3, levelRequirement = 29, statInterpolation = {1},  cost = { }, },
            [16] = {714, 24, 8, 100, baseMultiplier = 3, levelRequirement = 31, statInterpolation = {1},  cost = { }, },
            [17] = {799, 24, 8, 100, baseMultiplier = 3, levelRequirement = 33, statInterpolation = {1},  cost = { }, },
            [18] = {889, 24, 8, 100, baseMultiplier = 3, levelRequirement = 35, statInterpolation = {1},  cost = { }, },
            [19] = {989, 24, 8, 100, baseMultiplier = 3, levelRequirement = 37, statInterpolation = {1},  cost = { }, },
            [20] = {1096, 24, 8, 100, baseMultiplier = 3, levelRequirement = 39, statInterpolation = {1},  cost = { }, },
            [21] = {1213, 24, 8, 100, baseMultiplier = 3, levelRequirement = 41, statInterpolation = {1},  cost = { }, },
            [22] = {1338, 24, 8, 100, baseMultiplier = 3, levelRequirement = 43, statInterpolation = {1},  cost = { }, },
            [23] = {1474, 24, 8, 100, baseMultiplier = 3, levelRequirement = 45, statInterpolation = {1},  cost = { }, },
            [24] = {1620, 24, 8, 100, baseMultiplier = 3, levelRequirement = 47, statInterpolation = {1},  cost = { }, },
            [25] = {1780, 24, 8, 100, baseMultiplier = 3, levelRequirement = 49, statInterpolation = {1},  cost = { }, },
            [26] = {1951, 24, 8, 100, baseMultiplier = 3, levelRequirement = 51, statInterpolation = {1},  cost = { }, },
            [27] = {2137, 24, 8, 100, baseMultiplier = 3, levelRequirement = 53, statInterpolation = {1},  cost = { }, },
            [28] = {2338, 24, 8, 100, baseMultiplier = 3, levelRequirement = 55, statInterpolation = {1},  cost = { }, },
            [29] = {2554, 24, 8, 100, baseMultiplier = 3, levelRequirement = 57, statInterpolation = {1},  cost = { }, },
            [30] = {2788, 24, 8, 100, baseMultiplier = 3, levelRequirement = 59, statInterpolation = {1},  cost = { }, },
            [31] = {3040, 24, 8, 100, baseMultiplier = 3, levelRequirement = 61, statInterpolation = {1},  cost = { }, },
            [32] = {3313, 24, 8, 100, baseMultiplier = 3, levelRequirement = 63, statInterpolation = {1},  cost = { }, },
            [33] = {3606, 24, 8, 100, baseMultiplier = 3, levelRequirement = 65, statInterpolation = {1},  cost = { }, },
            [34] = {3923, 24, 8, 100, baseMultiplier = 3, levelRequirement = 67, statInterpolation = {1},  cost = { }, },
            [35] = {4263, 24, 8, 100, baseMultiplier = 3, levelRequirement = 69, statInterpolation = {1},  cost = { }, },
            [36] = {4631, 24, 8, 100, baseMultiplier = 3, levelRequirement = 71, statInterpolation = {1},  cost = { }, },
            [37] = {5028, 24, 8, 100, baseMultiplier = 3, levelRequirement = 73, statInterpolation = {1},  cost = { }, },
            [38] = {5456, 24, 8, 100, baseMultiplier = 3, levelRequirement = 75, statInterpolation = {1},  cost = { }, },
            [39] = {5915, 24, 8, 100, baseMultiplier = 3, levelRequirement = 77, statInterpolation = {1},  cost = { }, },
            [40] = {6412, 24, 8, 100, baseMultiplier = 3, levelRequirement = 79, statInterpolation = {1},  cost = { }, },
        },
    }
    
    monster no drops or experience [1]
    FamilyMonsterNoDropsOrExperience
    DomainsMonster (3)
    GenerationTypeÚnico (3)
    Req. level1
    Stats
  • monster no drops or experience Min: 1 Max: 1 Global
  • Edit

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