[DNT] Companion Bear
Stufe: (1–20)
Erfordert: Stufe (1–90)
[DNT] Bear with me
Kreaturen von dieser Fertigkeit haben 1% erhöhte Angriffsgeschwindigkeit
pro 3 Eures Geschicks
Kreaturen von dieser Fertigkeit haben 1% erhöhten Schaden
pro 3 Eurer Stärke

Zusätzliche Effekte durch Qualität:
(0–10)% erhöhte Angelschnur-Stärke
Fertigkeiten können in der Fertigkeitenübersicht verwaltet werden.
Level Effect /40
Implicit
Kreaturen von dieser Fertigkeit haben 1% erhöhten Schaden\npro 3 Eurer Stärke
Kreaturen von dieser Fertigkeit haben 1% erhöhte Angriffsgeschwindigkeit\npro 3 Eures Geschicks
StufeErfordertStufeBase DamageMinion Level
10100%, 100%2
23100%, 100%4
36100%, 100%6
410100%, 100%8
514100%, 100%10
618100%, 100%12
722100%, 100%14
826100%, 100%16
931100%, 100%18
1036100%, 100%20
1141100%, 100%22
1246100%, 100%24
1352100%, 100%26
1458100%, 100%28
1564100%, 100%30
1666100%, 100%32
1772100%, 100%34
1878100%, 100%36
1984100%, 100%38
2090100%, 100%40
21100%, 100%42
22100%, 100%44
23100%, 100%46
24100%, 100%48
25100%, 100%50
26100%, 100%52
27100%, 100%54
28100%, 100%56
29100%, 100%58
30100%, 100%60
31100%, 100%62
32100%, 100%64
33100%, 100%66
34100%, 100%68
35100%, 100%70
36100%, 100%72
37100%, 100%74
38100%, 100%76
39100%, 100%78
40100%, 100%80
Attribute /7

[DNT] Companion Bear

NameVollständige Beschreibung zeigen
AcronymKreatur
BaseType [DNT] Companion Bear
Class Fertigkeitengemmen
TargetTypesAny
TypeCompanion, MinionsAreUndamagable, Minion, CreatesMinion, HasReservation, Persistent, CreatesCompanion
ItemTypeMetadata/Items/Gem/SkillGemAscendancyCompanionBear
ActiveSkillsCodecompanion_bear
[DNT] Companion Bear
Stufe: (1–20)
Erfordert: Stufe (1–90)
[DNT] Bear with me
Kreaturen von dieser Fertigkeit haben 1% erhöhte Angriffsgeschwindigkeit
pro 3 Eures Geschicks
Kreaturen von dieser Fertigkeit haben 1% erhöhten Schaden
pro 3 Eurer Stärke
is resummoning minion [1]
skill desired initial amount [1]

Zusätzliche Effekte durch Qualität:
(0–10)% erhöhte Angelschnur-Stärke
Fertigkeiten können in der Fertigkeitenübersicht verwaltet werden.
Supported By /7
  • Active Type: Companion, MinionsAreUndamagable, Minion, CreatesMinion, HasReservation, Persistent, CreatesCompanion
  • Gehirn von Brutus
    Unterstützt Fertigkeiten, die Kreaturen erzeugen, sodass diese Kreaturen keinen Schaden erleiden, aber auch nicht verursachen können. Kann keine Fertigkeiten unterstützen, die unzerstörbare Kreaturen erzeugen.
    Kreaturenbeherrschung
    Unterstützt Kreaturfertigkeiten und gewährt ihnen eine zusätzliche Stufe. Unterstützt keine Fertigkeiten, die keine Stufen haben.
    Opferlamm I
    Unterstützt Fertigkeiten, die Kreaturen erzeugen, und bewirkt, dass Eure Fertigkeiten, die auf Kreaturen zielen können, vorrangig auf Kreaturen der unterstützten Fertigkeit zielen.
    Opferlamm II
    Unterstützt Fertigkeiten, die Kreaturen erzeugen, und bewirkt, dass Eure Fertigkeiten, die auf Kreaturen zielen können, vorrangig auf Kreaturen der unterstützten Fertigkeit zielen und diese immer als detonierbar betrachten.
    Zusammentreiben
    Unterstützt Fertigkeiten, die Kreaturen erzeugen. Unterstützte Kreaturen verursachen mehr Schaden, desto mehr verschiedene Typen von wiederbelebenden Kreaturen Ihr beschworen habt.
    Gewaltige Kreaturen
    Unterstützt Fertigkeiten, die dauerhafte Kreaturen beschwören. Unterstützte Kreaturen sind größer, haben mehr Leben und verursachen mehr Schaden, jedoch kosten sie bedeutend mehr Wille.
    Amanamus Zehnt
    Unterstützt dauerhafte Kreaturenfertigkeiten und gewährt eine Chance, dass Ihr einen abgründigen Monstermodifikator erhaltet, wenn unterstützte Kreaturen sterben.
    [DNT] Companion Bear
    Biest
    monster no drops or experience [1]
    ignore actor scale from stats [1]
    SpectreY
    Tagsbeast, Claw_onhit_audio, mammal_beast, medium_movement, not_dex, not_int, red_blood
    Leben
    100%
    Widerstand
    0 0 0 0
    Damage
    100%
    Genauigkeit
    100%
    Attack Distance
    5 ~ 14
    Angriffszeit
    1 Second
    Damage Spread
    ±20%
    Erfahrung
    100%
    Model Size
    70%
    Type
    BearCompanionSummoned
    Metadata
    CompanionBearSummoned
    IsSummoned
    Y
    Stufe
    68
    Leben
    7,757
    Damage
    233
    Zauberschaden
    233
    Genauigkeit
    2,464
    Angriffszeit
    1
    Erfahrung
    28,634
    Minion Life
    6,930
    Minion Damage
    969
    Minion Armour
    6,756
    CompanionBearMaul
    Attack, Melee, MeleeSingleTarget
    [DNT] Maul
    Base Damage: 186–280
    Angriffszeit: 1 Sek.
    [DNT] Bear Swipe
    action attack or cast time uses animation length [1]
    melee conditional step distance [5]
    use scaled contact offset [1]
    CompanionBearSlam
    Area, Attack, Slam, Melee, Cooldown
    [DNT] Bear Slam
    Base Damage: 186–280
    Angriffszeit: 1 Sek.
    Abklingzeit: 5 Sek.
    [DNT] Bear Slam
    active skill base area of effect radius [30]
    is area damage [1]
    total attack time + ms from bear standing stance [-500]
    CompanionBearWarcry
    Area, Warcry, Cooldown, Duration, Buff, Nova
    [DNT] Bear Shout
    Abklingzeit: 12 Sek.
    [DNT] Loud Bear
    Gegner, die durch diesen Kriegsschrei verspottet wurden, sind eingeschüchtert
    active skill base area of effect radius [50]
    base deal no damage [1]
    base skill effect duration [8000]
    is warcry [1]

    Object Type

    version 2
    extends "Metadata/Monsters/PlayerFollowingMinionBase"
    
    Stats
    {
    	no_blood_on_death = 1
    	set_base_cannot_be_damaged = 1
    	set_cannot_be_chained_from = 1
    	set_base_maximum_life_is_one = 1
    	base_cannot_be_stunned = 1
    	cannot_be_knocked_back = 1
    	set_cannot_be_splashed_from = 1
    	immune_to_auras_from_other_teams = 1
    	hide_buff_visuals = 1
    	hide_mini_life_bar = 1
    	untargetable_by_monster_ai = 1
    	override_turn_duration_ms = 600
    	has_quadruped_head_control = 1
        quadruped_head_turn_duration_ms = 200
    }
    
    Animated
    {
    	on_event_stand_up = { ChangeStance( Standing ); }
    	on_event_drop_down = { ChangeStance( default ); }
    }
    
    StateMachine {}
    
    Actor
    {    
        blend_once_animations_by_default = true
    }

    Object Type Codes

    version 2
    extends "Metadata/Monsters/PlayerFollowingMinionBase"
    
    Render
    {
    	allow_attached_arrows = false
    	use_attached_selection_box_if_no_drawcalls = true
    }
    
    BaseEvents
    {
    	on_construction_complete = {
    
    		AddEffectPack( 'Metadata/Effects/Spells/monsters_effects/monster_mods/tormented_spirits/spirit_animals/epk/wildspirit_skin_01.epk' );
    
    		SetDynamicFloat( 'WispSpirit_Fade', 2.0, true, 10.0 );
    	}
    }
    
    Life
    {
    	on_death =
    	{
    		SetDynamicFloat( 'WispSpirit_Fade', 0.0, true, 2.0 );
    	}
    }
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/CompanionBear/CompanionBearSummoned"] = {
        name = "[DNT] Companion Bear",
        life = 1,
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        damage = 1,
        damageSpread = 0.2,
        attackTime = 1,
        attackRange = 14,
        accuracy = 1,
        skillList = {
            "CompanionBearMaul",
            "CompanionBearSlam",
            "CompanionBearWarcry",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["CompanionBearMaul"] = {
        name = "[DNT] Maul",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "[DNT] Bear Swipe",
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.Melee] = true,
            [SkillType.MeleeSingleTarget] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            melee = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "melee_conditional_step_distance",
            "action_attack_or_cast_time_uses_animation_length",
            "use_scaled_contact_offset",
        },
        levels = {
            [1] = {5, levelRequirement = 1, statInterpolation = {},  cost = { }, },
            [2] = {5, levelRequirement = 3.452, statInterpolation = {},  cost = { }, },
            [3] = {5, levelRequirement = 6.767, statInterpolation = {},  cost = { }, },
            [4] = {5, levelRequirement = 10.308, statInterpolation = {},  cost = { }, },
            [5] = {5, levelRequirement = 14.075, statInterpolation = {},  cost = { }, },
            [6] = {5, levelRequirement = 18.068, statInterpolation = {},  cost = { }, },
            [7] = {5, levelRequirement = 22.287, statInterpolation = {},  cost = { }, },
            [8] = {5, levelRequirement = 26.732, statInterpolation = {},  cost = { }, },
            [9] = {5, levelRequirement = 31.403, statInterpolation = {},  cost = { }, },
            [10] = {5, levelRequirement = 36.3, statInterpolation = {},  cost = { }, },
            [11] = {5, levelRequirement = 41.423, statInterpolation = {},  cost = { }, },
            [12] = {5, levelRequirement = 46.772, statInterpolation = {},  cost = { }, },
            [13] = {5, levelRequirement = 52.347, statInterpolation = {},  cost = { }, },
            [14] = {5, levelRequirement = 58.148, statInterpolation = {},  cost = { }, },
            [15] = {5, levelRequirement = 64.175, statInterpolation = {},  cost = { }, },
            [16] = {5, levelRequirement = 70.428, statInterpolation = {},  cost = { }, },
            [17] = {5, levelRequirement = 76.907, statInterpolation = {},  cost = { }, },
            [18] = {5, levelRequirement = 83.612, statInterpolation = {},  cost = { }, },
            [19] = {5, levelRequirement = 90.543, statInterpolation = {},  cost = { }, },
            [20] = {5, levelRequirement = 97.7, statInterpolation = {},  cost = { }, },
            [21] = {5, levelRequirement = 105.083, statInterpolation = {},  cost = { }, },
            [22] = {5, levelRequirement = 112.692, statInterpolation = {},  cost = { }, },
            [23] = {5, levelRequirement = 120.527, statInterpolation = {},  cost = { }, },
            [24] = {5, levelRequirement = 128.588, statInterpolation = {},  cost = { }, },
            [25] = {5, levelRequirement = 136.875, statInterpolation = {},  cost = { }, },
            [26] = {5, levelRequirement = 145.388, statInterpolation = {},  cost = { }, },
            [27] = {5, levelRequirement = 154.127, statInterpolation = {},  cost = { }, },
            [28] = {5, levelRequirement = 163.092, statInterpolation = {},  cost = { }, },
            [29] = {5, levelRequirement = 172.283, statInterpolation = {},  cost = { }, },
            [30] = {5, levelRequirement = 181.7, statInterpolation = {},  cost = { }, },
            [31] = {5, levelRequirement = 191.343, statInterpolation = {},  cost = { }, },
            [32] = {5, levelRequirement = 201.212, statInterpolation = {},  cost = { }, },
            [33] = {5, levelRequirement = 211.307, statInterpolation = {},  cost = { }, },
            [34] = {5, levelRequirement = 221.628, statInterpolation = {},  cost = { }, },
            [35] = {5, levelRequirement = 232.175, statInterpolation = {},  cost = { }, },
            [36] = {5, levelRequirement = 242.948, statInterpolation = {},  cost = { }, },
            [37] = {5, levelRequirement = 253.947, statInterpolation = {},  cost = { }, },
            [38] = {5, levelRequirement = 265.172, statInterpolation = {},  cost = { }, },
            [39] = {5, levelRequirement = 276.623, statInterpolation = {},  cost = { }, },
            [40] = {5, levelRequirement = 288.3, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["CompanionBearSlam"] = {
        name = "[DNT] Bear Slam",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "[DNT] Bear Slam",
        skillTypes = {
            [SkillType.Area] = true,
            [SkillType.Attack] = true,
            [SkillType.Slam] = true,
            [SkillType.Melee] = true,
            [SkillType.Cooldown] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
            melee = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "active_skill_base_area_of_effect_radius",
            "total_attack_time_+_ms_from_bear_standing_stance",
            "is_area_damage",
        },
        levels = {
            [1] = {30, -500, levelRequirement = 1, statInterpolation = {},  cost = { }, },
            [2] = {30, -500, baseMultiplier = 1.1, levelRequirement = 3, statInterpolation = {},  cost = { }, },
            [3] = {30, -500, baseMultiplier = 1.21, levelRequirement = 5, statInterpolation = {},  cost = { }, },
            [4] = {30, -500, baseMultiplier = 1.32, levelRequirement = 7, statInterpolation = {},  cost = { }, },
            [5] = {30, -500, baseMultiplier = 1.42, levelRequirement = 9, statInterpolation = {},  cost = { }, },
            [6] = {30, -500, baseMultiplier = 1.53, levelRequirement = 11, statInterpolation = {},  cost = { }, },
            [7] = {30, -500, baseMultiplier = 1.64, levelRequirement = 13, statInterpolation = {},  cost = { }, },
            [8] = {30, -500, baseMultiplier = 1.74, levelRequirement = 15, statInterpolation = {},  cost = { }, },
            [9] = {30, -500, baseMultiplier = 1.82, levelRequirement = 17, statInterpolation = {},  cost = { }, },
            [10] = {30, -500, baseMultiplier = 1.91, levelRequirement = 19, statInterpolation = {},  cost = { }, },
            [11] = {30, -500, baseMultiplier = 2.01, levelRequirement = 21, statInterpolation = {},  cost = { }, },
            [12] = {30, -500, baseMultiplier = 2.11, levelRequirement = 23, statInterpolation = {},  cost = { }, },
            [13] = {30, -500, baseMultiplier = 2.22, levelRequirement = 25, statInterpolation = {},  cost = { }, },
            [14] = {30, -500, baseMultiplier = 2.33, levelRequirement = 27, statInterpolation = {},  cost = { }, },
            [15] = {30, -500, baseMultiplier = 2.44, levelRequirement = 29, statInterpolation = {},  cost = { }, },
            [16] = {30, -500, baseMultiplier = 2.57, levelRequirement = 31, statInterpolation = {},  cost = { }, },
            [17] = {30, -500, baseMultiplier = 2.69, levelRequirement = 33, statInterpolation = {},  cost = { }, },
            [18] = {30, -500, baseMultiplier = 2.83, levelRequirement = 35, statInterpolation = {},  cost = { }, },
            [19] = {30, -500, baseMultiplier = 2.97, levelRequirement = 37, statInterpolation = {},  cost = { }, },
            [20] = {30, -500, baseMultiplier = 3.12, levelRequirement = 39, statInterpolation = {},  cost = { }, },
            [21] = {30, -500, baseMultiplier = 3.27, levelRequirement = 41, statInterpolation = {},  cost = { }, },
            [22] = {30, -500, baseMultiplier = 3.44, levelRequirement = 43, statInterpolation = {},  cost = { }, },
            [23] = {30, -500, baseMultiplier = 3.61, levelRequirement = 45, statInterpolation = {},  cost = { }, },
            [24] = {30, -500, baseMultiplier = 3.79, levelRequirement = 47, statInterpolation = {},  cost = { }, },
            [25] = {30, -500, baseMultiplier = 3.98, levelRequirement = 49, statInterpolation = {},  cost = { }, },
            [26] = {30, -500, baseMultiplier = 4.18, levelRequirement = 51, statInterpolation = {},  cost = { }, },
            [27] = {30, -500, baseMultiplier = 4.39, levelRequirement = 53, statInterpolation = {},  cost = { }, },
            [28] = {30, -500, baseMultiplier = 4.61, levelRequirement = 55, statInterpolation = {},  cost = { }, },
            [29] = {30, -500, baseMultiplier = 4.84, levelRequirement = 57, statInterpolation = {},  cost = { }, },
            [30] = {30, -500, baseMultiplier = 5.08, levelRequirement = 59, statInterpolation = {},  cost = { }, },
            [31] = {30, -500, baseMultiplier = 5.33, levelRequirement = 61, statInterpolation = {},  cost = { }, },
            [32] = {30, -500, baseMultiplier = 5.6, levelRequirement = 63, statInterpolation = {},  cost = { }, },
            [33] = {30, -500, baseMultiplier = 5.88, levelRequirement = 65, statInterpolation = {},  cost = { }, },
            [34] = {30, -500, baseMultiplier = 6.18, levelRequirement = 67, statInterpolation = {},  cost = { }, },
            [35] = {30, -500, baseMultiplier = 6.48, levelRequirement = 69, statInterpolation = {},  cost = { }, },
            [36] = {30, -500, baseMultiplier = 6.81, levelRequirement = 71, statInterpolation = {},  cost = { }, },
            [37] = {30, -500, baseMultiplier = 7.15, levelRequirement = 73, statInterpolation = {},  cost = { }, },
            [38] = {30, -500, baseMultiplier = 7.51, levelRequirement = 75, statInterpolation = {},  cost = { }, },
            [39] = {30, -500, baseMultiplier = 7.88, levelRequirement = 77, statInterpolation = {},  cost = { }, },
            [40] = {30, -500, baseMultiplier = 8.28, levelRequirement = 79, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["CompanionBearWarcry"] = {
        name = "[DNT] Bear Shout",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        description = "[DNT] Loud Bear",
        skillTypes = {
            [SkillType.Area] = true,
            [SkillType.Warcry] = true,
            [SkillType.Cooldown] = true,
            [SkillType.Duration] = true,
            [SkillType.Buff] = true,
            [SkillType.Nova] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            area = true,
            duration = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "active_skill_base_area_of_effect_radius",
            "base_skill_effect_duration",
            "base_deal_no_damage",
            "enemies_taunted_by_your_warcies_are_intimidated",
            "is_warcry",
        },
        levels = {
            [1] = {50, 8000, levelRequirement = 1, statInterpolation = {},  cost = { }, },
            [2] = {50, 8000, levelRequirement = 3, statInterpolation = {},  cost = { }, },
            [3] = {50, 8000, levelRequirement = 5, statInterpolation = {},  cost = { }, },
            [4] = {50, 8000, levelRequirement = 7, statInterpolation = {},  cost = { }, },
            [5] = {50, 8000, levelRequirement = 9, statInterpolation = {},  cost = { }, },
            [6] = {50, 8000, levelRequirement = 11, statInterpolation = {},  cost = { }, },
            [7] = {50, 8000, levelRequirement = 13, statInterpolation = {},  cost = { }, },
            [8] = {50, 8000, levelRequirement = 15, statInterpolation = {},  cost = { }, },
            [9] = {50, 8000, levelRequirement = 17, statInterpolation = {},  cost = { }, },
            [10] = {50, 8000, levelRequirement = 19, statInterpolation = {},  cost = { }, },
            [11] = {50, 8000, levelRequirement = 21, statInterpolation = {},  cost = { }, },
            [12] = {50, 8000, levelRequirement = 23, statInterpolation = {},  cost = { }, },
            [13] = {50, 8000, levelRequirement = 25, statInterpolation = {},  cost = { }, },
            [14] = {50, 8000, levelRequirement = 27, statInterpolation = {},  cost = { }, },
            [15] = {50, 8000, levelRequirement = 29, statInterpolation = {},  cost = { }, },
            [16] = {50, 8000, levelRequirement = 31, statInterpolation = {},  cost = { }, },
            [17] = {50, 8000, levelRequirement = 33, statInterpolation = {},  cost = { }, },
            [18] = {50, 8000, levelRequirement = 35, statInterpolation = {},  cost = { }, },
            [19] = {50, 8000, levelRequirement = 37, statInterpolation = {},  cost = { }, },
            [20] = {50, 8000, levelRequirement = 39, statInterpolation = {},  cost = { }, },
            [21] = {50, 8000, levelRequirement = 41, statInterpolation = {},  cost = { }, },
            [22] = {50, 8000, levelRequirement = 43, statInterpolation = {},  cost = { }, },
            [23] = {50, 8000, levelRequirement = 45, statInterpolation = {},  cost = { }, },
            [24] = {50, 8000, levelRequirement = 47, statInterpolation = {},  cost = { }, },
            [25] = {50, 8000, levelRequirement = 49, statInterpolation = {},  cost = { }, },
            [26] = {50, 8000, levelRequirement = 51, statInterpolation = {},  cost = { }, },
            [27] = {50, 8000, levelRequirement = 53, statInterpolation = {},  cost = { }, },
            [28] = {50, 8000, levelRequirement = 55, statInterpolation = {},  cost = { }, },
            [29] = {50, 8000, levelRequirement = 57, statInterpolation = {},  cost = { }, },
            [30] = {50, 8000, levelRequirement = 59, statInterpolation = {},  cost = { }, },
            [31] = {50, 8000, levelRequirement = 61, statInterpolation = {},  cost = { }, },
            [32] = {50, 8000, levelRequirement = 63, statInterpolation = {},  cost = { }, },
            [33] = {50, 8000, levelRequirement = 65, statInterpolation = {},  cost = { }, },
            [34] = {50, 8000, levelRequirement = 67, statInterpolation = {},  cost = { }, },
            [35] = {50, 8000, levelRequirement = 69, statInterpolation = {},  cost = { }, },
            [36] = {50, 8000, levelRequirement = 71, statInterpolation = {},  cost = { }, },
            [37] = {50, 8000, levelRequirement = 73, statInterpolation = {},  cost = { }, },
            [38] = {50, 8000, levelRequirement = 75, statInterpolation = {},  cost = { }, },
            [39] = {50, 8000, levelRequirement = 77, statInterpolation = {},  cost = { }, },
            [40] = {50, 8000, levelRequirement = 79, statInterpolation = {},  cost = { }, },
        },
    }
    
    monster no drops or experience [1]
    FamilyMonsterNoDropsOrExperience
    DomainsMonster (3)
    GenerationTypeeinzigartig (3)
    Req. level1
    Stats
  • monster no drops or experience Min: 1 Max: 1 Global
  • ignore actor scale from stats [1]
    FamilyMonsterIgnoreActorScaleFromStats
    DomainsMonster (3)
    GenerationTypeeinzigartig (3)
    Req. level1
    Stats
  • ignore actor scale from stats Min: 1 Max: 1 Global
  • Edit

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