|
|
| Line 1: |
Line 1: |
| __TOC__ | | __TOC__ |
| =Infobox Tests= | | =Infobox Tests= |
| (Note: Only properly viewable with [[User:Samlovesmath/common.css]], and with site's default Common.css disabled.) | | (Note: Full experience with [[Wiki_Redesign.css]] recommended.) |
|
| |
|
| ===Hero Infobox v2=== | | ===Hero Infobox v2=== |
| '''Uses new variables:'''
| | <div><tabber style="width:100%;"> |
| * color1 <span style="font-size:small; opacity:50%">*quote color</span>
| | |-| Abrams= |
| * color1_grad <span style="font-size:small; opacity:50%">*lower background gradient color</span>
| | {{Samlovesmath/Infobox hero |
| * color2 <span style="font-size:small; opacity:50%">*same hue as roster select, brightened for clarity</span>
| | | key = hero_atlas |
| * background image <span style="font-size:small; opacity:50%">*ex. [[:File:Geist_select_background.png|Geist_select_background.png]] for [[Lady Geist]]</span>
| | | voice_actor = Samoa Joe |
| | | | release_date = April 24, 2024 |
| | | | codenames = Atlas; Bull |
| '''Todos:'''
| |
| * APPLY NEW SANDBOX MODULE
| |
| * Fix Stat key word links--certain parts that stand for the same thing point to different places
| |
| * Add class name to bullet/spirit superscript template on certain stats (ex. +48 [heart-gun image]) to make CSS for padding displacement to avoid clipping over where it is placed
| |
| * Fix/finish quote replacement
| |
| * Lang.json:
| |
| ** Change Citadel_HeroPage_BaseStats -- BASE STATS ➔ BASE STATISTICS
| |
| | |
| | |
| '''Errors noted:'''
| |
| * Weapon Stat property "Max Range" is a manual template input for heroes such as [[Bebop]]. Future updates to this value would have to be updated manually. Make it properly implemented in HeroData for automatic changes? (ask Sur/LVL/Domo?)
| |
| | |
| <span style="font-size:small; opacity:50%">'''''WIP -- Last edited: Mar 28, 2026'''''</span>
| |
| <!--
| |
| -->{{#vardefine:key|hero_ghost}}<!-- hero keyname
| |
| | |
| -->{{#vardefine:color1| \#{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|color1}} }} <!--
| |
| -->{{#vardefine:color1_grad| \#{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|color1_grad}} }} <!--
| |
| -->{{#vardefine:color2| \#{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|color2}} }} <!--
| |
| -->{{#vardefine:grad_offset| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|grad_offset}} }} <!--
| |
| | |
| -->{{#vardefine:text_title| \#{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|text_title}} }} <!--
| |
| -->{{#vardefine:stats_text| \#{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|stats_text}} }} <!--
| |
| -->{{#vardefine:stats_back| \#{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|stats_back}} }} <!--
| |
| | |
| -->{{#vardefine:background_height| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|background_height}} }} <!--
| |
| -->{{#vardefine:background_margin| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|background_margin}} }} <!--
| |
| | |
| -->{{#vardefine:logo_height| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|logo_height}} }} <!--
| |
| -->{{#vardefine:logo_bleed| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|logo_bleed}} }} <!--
| |
| -->{{#vardefine:logo_bottom| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|logo_bottom}} }} <!--
| |
| | |
| -->{{#vardefine:grad_height| calc({{#var:grad_offset}} + {{#var:background_height}}) }} <!--
| |
| | |
| | |
| -->{{#vardefine:voice_actor| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|voice_actor}} }} <!--
| |
| -->{{#vardefine:release_date| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|release_date}} }} <!--
| |
| -->{{#vardefine:codenames| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|codenames}} }} <!--
| |
| -->{{#vardefine:pronouns| {{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|pronouns}} }} <!--
| |
| -->{{#vardefine:hero_key_or_en|{{#var:key}}}} <!-- en
| |
| -->{{#vardefine:hero_en|{{#invoke:Lang|get_string|{{#var:key}}|lang_code_override=en}}}}<!-- en
| |
| | |
| -->{{#vardefine:quotemark|"}} <!-- for inserting into html
| |
| | |
| --{{#vardefine:max_range|31}} <!-- debug; manual template value (weapon stats)
| |
| -->
| |
| | |
| <!---- Overridden Variable Styles ---->
| |
| <div class="infobox" style=
| |
| {{#var:quotemark}}
| |
| --infobox_th_color2: {{#var:color2}} !important;
| |
| --infobox_th_text_title: {{#var:text_title}} !important;
| |
| --infobox_th_stats_text: {{#var:stats_text}} !important;
| |
| --infobox_th_stats_back: {{#var:stats_back}} !important;
| |
| --infobox_th_backMargin: {{#var:background_margin}} !important;
| |
| --infobox_th_logoBleed: {{#var:logo_bleed}} !important;
| |
| --infobox_th_logoBottom: {{#var:logo_bottom}} !important;
| |
| {{#var:quotemark}}>
| |
| | |
| <!---- Box Background ---->
| |
| <div class="infobox-background">[[File:{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|background_image}}|x{{#var:background_height}}|right|link=]]</div>
| |
| | |
| {| class="infobox-content" style="background-image: linear-gradient(180deg, {{#var:color1}}b3 calc({{#var:grad_height}} * calc(3/7)), {{#var:color1_grad}} {{#var:grad_height}}); background-color: transparent;"
| |
| ! colspan="2" class="infobox-title" style="font-size: {{{font-size|25px}}};" |
| |
| | |
| <!---- Title + Name Image + Hero Thumbnail ---->
| |
| <div class="infobox-title-hero" style="display: flex; justify-content: space-between;">
| |
| <div class="infobox-title-hero-left"></div>
| |
| <div class="infobox-title-hero-middle">{{If lang|{{#ifeq: {{{no_name|}}}|true|{{{name|{{#invoke:Lang|get_string|{{#var:key}}}}}}}|{{Template:Icon/White|[[File:{{{name|{{#invoke:Lang|get_string|{{#var:key}}}}}}}_name.png|{{#var:logo_height}}|class=notpageimage]]}}}}|{{{name|{{#invoke:Lang|get_string|{{#var:key}}}}}}}}}</div>
| |
| <div class="infobox-title-hero-right"><div>
| |
| <div class="infobox-title-hero-tornbox" style={{#var:quotemark}}background-color:{{#var:color2}};{{#var:quotemark}}></div>
| |
| <div class="infobox-title-hero-icon">{{#ifeq: {{{no_icon|}}}|true||[[Image:{{{icon|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|Name}}}}}.png|center|35px]]}}</div></div>
| |
| </div>
| |
| | |
| <!---- Hero Image Card ---->
| |
| |- | |
| ! colspan="2" class="infobox-image" style="margin:auto; border:none; --secondaryColor: {{#var:color2}};" |<div>[[File:{{{card|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|Name}} card.png}}}|190px|alt={{{BASEPAGENAME}}}]]</div>
| |
| | |
| <!---- Weapon Name ---->
| |
| |- | |
| !colspan="2" class="infobox-text-weapon infotext-bold" | <span class="infotext-title">{{#invoke:Lang|get_string|CitadelCategoryWeapon}}:</span><br><span class="infotext-bold infotext-bigger">''"{{{weapon_name|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|NameKey|true}}}}}"''</span>
| |
| | |
| <!---- "Base Statistics" ---->
| |
| |-
| |
| !colspan="2" class="infobox-text-stat-subtitle" style="border-top: solid 3px {{#var:color2}};"|
| |
| <span class="infotext-bold infotext-title infotext-big">{{#invoke:Lang|get_string|Citadel_HeroPage_BaseStats}}</span>
| |
| | |
| <!---- Weapon Dropdown ---->
| |
| |-
| |
| ! colspan="2" class="infobox-subsection infobox-dropdown infobox-dropdown-weapon" |
| |
| {| class="mw-collapsible mw-collapsed infobox-subsection-child"
| |
| |+ class="infobox-dropdown-header" | [[Stats{{If_lang}}#Weapon|<span class="infotext-bold infobox-dropdown-title">{{#invoke:Lang|get_string|CitadelHeroStats_Weapon}}</span>]]
| |
| |-
| |
| <!---- Damage per second ---->
| |
| | [[Damage per second{{If_lang}}|<span>{{#invoke:Lang|get_string|DPS_label}}</span>]]:
| |
| | style="white-space: nowrap;" | {{Icon/Brown|[[File:Damage.png|20px|link=Damage per second{{If_lang}}]]|{{{dps|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|DPS|3}}}}}}}
| |
| |-
| |
| <!---- Bullet Damage ---->
| |
| | [[Bullet Damage{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_BulletDamage}}</span>]]:
| |
| | style="white-space: nowrap; padding-right: 5px;" | {{Icon/Brown|[[File:Bullet damage.png|20px|link=Bullet Damage{{If_lang}}]]|{{{bullet_damage|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|BulletDamage|3}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|BulletDamage}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|BulletDamage}}}}
| |
| |-
| |
| <!---- Ammo ---->
| |
| | [[Ammo{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_ClipSizeBonus}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Grey|[[File:Clip size icon.png|20px|link=Ammo{{If_lang}}]]|{{{ammo|{{#ifeq: {{{no_ammo|}}}|true|N/A|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|ClipSize|3}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|ClipSize}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|ClipSize}}}}}}}}}
| |
| |-
| |
| <!---- Bullets per sec ---->
| |
| | [[Fire_Rate{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_RoundsPerSecond}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Grey|[[File:Bullets per sec icon.png|20px|link=Fire Rate{{If_lang}}]]|{{{bullets_per_sec|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|RoundsPerSecond|3}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|RoundsPerSecond}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|RoundsPerSecond}}}}
| |
| |-
| |
| <!---- Reload Time ---->
| |
| | [[Reload Time{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_ReloadTime}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Grey|[[File:AttributeIconReloadTime.png|20px|link=Reload Time{{If_lang}}]]|{{{reload_time|{{#ifeq: {{{no_ammo|}}}|true|N/A|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|ReloadTime|3}}s}}}}}}}
| |
| |-
| |
| <!---- Bullet Velocity ---->
| |
| | [[Bullet Velocity{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_BulletSpeed}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Grey|[[File:AttributeIconBulletSpeed.png|20px|link=Bullet Velocity{{If_lang}}]]|{{{bullet_velocity|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|BulletSpeed|3}}}}}m/s}}
| |
| |-
| |
| <!---- Light Melee ---->
| |
| | [[Melee Damage{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_LightMeleeDamage}}</span>]]:
| |
| | style="white-space: nowrap; padding-right: 5px;"| {{Icon/Brown|[[File:Melee damage.png|20px|link=Melee Damage{{If_lang}}]]|{{{light_melee|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|LightMeleeDamage|3}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|LightMeleeDamage}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|LightMeleeDamage}}}}
| |
| |-
| |
| <!---- Heavy Melee ---->
| |
| | [[Melee Damage{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_HeavyMeleeDamage}}</span>]]:
| |
| | style="white-space: nowrap; padding-right: 5px;"| {{Icon/Brown|[[File:Melee damage.png|20px|link=Melee Damage{{If_lang}}]]|{{{heavy_melee|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|HeavyMeleeDamage|3}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|HeavyMeleeDamage}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|HeavyMeleeDamage}}}}
| |
| |-
| |
| <!---- Falloff Range ---->
| |
| | [[Falloff Range{{If_lang}}|<span>{{#invoke:Lang|get_string|CitadelHeroStats_Weapon_Falloff}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Brown||{{{range|{{#ifeq: {{{no_falloff|}}}|true|N/A|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|FalloffStartRange|2}}m <span style="color:#ecac19;">➔</span> {{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|FalloffEndRange|2}}m}}}}}}}
| |
| |-
| |
| <!---- Maximum Range (Manual Input) ---->
| |
| {{#if: {{#var:max_range|}} |
| |
| {{!}} [[Falloff_Range{{If_lang}}|<span>Max Range</span>]]:
| |
| {{!}} style="font-size: 16px;text-shadow: 1.5px 1.5px 0.8px rgba(0, 0, 0, 0.8);text-align:left"{{!}}{{Icon/Brown||31}}}}
| |
| |- | |
| <!---- Crit Bonus Scale ---->
| |
| {{#ifexpr: {{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|CritDamageBonusPercent|3}} != 0 |
| |
| {{!}} [[Weapon Damage{{If_lang}}#Crit_Multiplier|<span>{{#invoke:Lang|get_string|StatDesc_CritDamageBonusScale}}</span>]]:
| |
| {{!}} style="white-space: nowrap;"{{!}}{{Icon/Grey|[[File:Crit reduction.png|20px|link=Weapon Damage#Crit_Multiplier]]|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|CritDamageBonusPercent|3}}%}}}}
| |
| |}
| |
| | |
| <!---- Vitality Dropdown ---->
| |
| |-
| |
| ! colspan="2" class="infobox-subsection infobox-dropdown infobox-dropdown-vitality" |
| |
| {| class="mw-collapsible mw-collapsed infobox-subsection-child"
| |
| |+ class="infobox-dropdown-header" | [[Stats#Vitality|<span class="infotext-bold infobox-dropdown-title">{{#invoke:Lang|get_string|CitadelHeroStats_Vitality}}</span>]]
| |
| |-
| |
| <!---- Health ---->
| |
| | style="padding-top: 8px;"| [[Health{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_HealthAttribute}}</span>]]:
| |
| | style="white-space: nowrap; padding-right: 5px; padding-top: 8px;"| {{Icon/Green|[[File:Health.png|20px|link=Health{{If_lang}}]]|{{{max_health|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|MaxHealth|3}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|MaxHealth}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|MaxHealth}}}}
| |
| |-
| |
| <!---- Health Regen ---->
| |
| | [[Health Regen{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_HealthRegen}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Grey|[[File:Health regen.png|20px|link=Health Regen{{If_lang}}]]|{{{health_regen|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|BaseHealthRegen|2}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|BaseHealthRegen}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|BaseHealthRegen}}}}
| |
| |-
| |
| <!---- Crit Resistance ---->
| |
| {{#if: {{{crit_reduction|}}}{{#invoke:HeroData|hero_has_stat|{{#var:hero_key_or_en}}|CritDamageReceivedPercent}} |
| |
| {{!}}[[Damage Resistance{{If_lang}}#Crit_Reduction|<span>{{#invoke:Lang|get_string|StatDesc_CritDamageReceivedScale}}</span>]]:
| |
| {{!}}style="white-space: nowrap;"{{!}}{{Icon/Grey|[[File:Crit reduction.png|20px|link=Damage Resistance{{If_lang}}#Crit_Reduction]]|{{{crit_reduction|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|CritDamageReceivedPercent|3}}}}}%{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|CritDamageReceivedPercent}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|CritDamageReceivedPercent}}}}}}
| |
| |-
| |
| <!---- Bullet Resistance ---->
| |
| {{#if: {{{bullet_resist|}}}{{#invoke:HeroData|hero_has_stat|{{#var:hero_key_or_en}}|BulletResist}} |
| |
| {{!}}[[Damage Resistance{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_BulletArmorDamageReduction}}</span>]]:
| |
| {{!}}style="white-space: nowrap;"{{!}}{{Icon/Grey|[[File:Bullet Armor.png|20px|link=Bullet Resist{{If_lang}}]]|{{{bullet_resist|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|BulletResist|3}}}}}%{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|BulletResist}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|BulletResist}}}}}}
| |
| |-
| |
| <!---- Spirit Resistance ---->
| |
| {{#if: {{{spirit_resist|}}}{{#invoke:HeroData|hero_has_stat|{{#var:hero_key_or_en}}|TechResist}} |
| |
| {{!}}[[Damage Resistance{{If_lang}}#Spirit_Resist|<span>{{#invoke:Lang|get_string|StatDesc_TechArmorDamageReduction}}</span>]]:
| |
| {{!}}style="white-space: nowrap;"{{!}}{{Icon/Grey|[[File:Spirit Armor.png|20px|link=Damage Resistance{{If_lang}}#Spirit_Resist]]|{{{spirit_resist|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|TechResist|3}}}}}%{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|TechResist}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|TechResist}}}}}}
| |
| |-
| |
| <!---- Melee Resistance ---->
| |
| {{#if: {{{melee_resist|}}}{{#invoke:HeroData|hero_has_stat|{{#var:hero_key_or_en}}|MeleeResist}} |
| |
| {{!}}[[Damage Resistance{{If_lang}}#Melee Resist|<span>{{#invoke:Lang|get_string|StatDesc_MeleeResist}}</span>]]:
| |
| {{!}}style="white-space: nowrap;"{{!}}{{Icon/Grey|[[File:Melee damage.png|20px|link=Damage Resistance{{If_lang}}#Melee Resist]]|{{{melee_resist|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|MeleeResist|3}}}}}%{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|MeleeResist}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|MeleeResist}}}}}}
| |
| |-
| |
| <!---- Bullet Lifesteal ---->
| |
| {{#if: {{{bullet_lifesteal|}}}{{#invoke:HeroData|hero_has_stat|{{#var:hero_key_or_en}}|BulletLifesteal}} |
| |
| {{!}}[[Lifesteal{{If_lang}}#Bullet Lifesteal|<span>{{#invoke:Lang|get_string|StatDesc_BulletLifesteal}}</span>]]:
| |
| {{!}}style="white-space: nowrap;"{{!}}{{Icon/Grey|[[File:AttributeIconBulletLifesteal.png|20px|link=Lifesteal{{If_lang}}#Bullet Lifesteal]]|{{{bullet_lifesteal|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|BulletLifesteal|3}}}}}%{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|BulletLifesteal}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|BulletLifesteal}}}}}}
| |
| |-
| |
| <!---- Spirit Lifesteal ---->
| |
| {{#if: {{{spirit_lifesteal|}}}{{#invoke:HeroData|hero_has_stat|{{#var:hero_key_or_en}}|SpiritLifesteal}} |
| |
| {{!}}[[Lifesteal{{If_lang}}#Spirit Lifesteal|<span>{{#invoke:Lang|get_string|StatDesc_SpiritLifesteal}}</span>]]:
| |
| {{!}}style="white-space: nowrap;"{{!}}{{Icon/Grey|[[File:AttributeIconBulletLifesteal.png|20px|link=Lifesteal{{If_lang}}#Spirit Lifesteal]]|{{{spirit_lifesteal|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|SpiritLifesteal|3}}}}}%{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|SpiritLifesteal}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|SpiritLifesteal}}}}}}
| |
| |-
| |
| <!---- Move Speed ---->
| |
| | [[Move Speed{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_RunSpeed}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Green|[[File:Move speed.png|20px|link=Move Speed]]|{{{move_speed|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|MaxMoveSpeed|2}}}}}m/s{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|MaxMoveSpeed}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|MaxMoveSpeed}}}}
| |
| |-
| |
| <!---- Sprint Speed ---->
| |
| | [[Move Speed{{If_lang}}#Sprint|<span>{{#invoke:Lang|get_string|StatDesc_SprintSpeed}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Green|[[File:Move speed sprint.png|20px|link=Move Speed#Sprint]]|{{{sprint_speed|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|SprintSpeed|2}}}}}m/s{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|SprintSpeed}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|SprintSpeed}}}}
| |
| |-
| |
| <!---- Dash Speed ---->
| |
| | [[Stamina{{If_lang}}#Dash_Speed|<span>{{#invoke:Lang|get_string|DashSpeed_label}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Green|[[File:Springy_boots_icon.png|20px|link=Stamina#Dash_Speed]]|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|GroundDashSpeed|3}}s{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|GroundDashSpeed}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|GroundDashSpeed}}}}
| |
| |-
| |
| <!---- Stamina ---->
| |
| | [[Stamina{{If_lang}}|<span>{{#invoke:Lang|get_string|StatDesc_Stamina}}</span>]]:
| |
| | style="white-space: nowrap;"| {{Icon/Green|[[File:Springy_boots_icon.png|20px|link=Stamina]]|{{{stamina|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|Stamina|2}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|Stamina}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|Stamina}}}}
| |
| |-
| |
| <!---- Stamina Cooldown ---->
| |
| | [[Stamina{{If_lang}}#Cooldown|<span>{{#invoke:Lang|get_string|StatDesc_StaminaCooldown}}</span>]]:
| |
| | style="white-space: nowrap;"|{{Icon/Grey|[[File:AttributeIconTechDuration.png|20px|link=Stamina#Cooldown]]|{{{stamina_cooldown|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|StaminaCooldown|2}}}}}s{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|StaminaCooldown}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|StaminaCooldown}}}}
| |
| |}
| |
| | |
| <!---- Spirit Dropdown ---->
| |
| |-
| |
| ! colspan="2" class="infobox-subsection infobox-dropdown infobox-dropdown-spirit" |
| |
| {| class="mw-collapsible mw-collapsed infobox-subsection-child"
| |
| |+ class="infobox-dropdown-header" | [[Stats#Vitality|<span class="infotext-bold infobox-dropdown-title">{{#invoke:Lang|get_string|CitadelHeroStats_Spirit}}</span>]]
| |
| |-
| |
| | style="padding-top: 8px;"| [[Spirit Power{{If_lang}}|<span>{{#invoke:Lang|get_string|SpiritPower_label}}</span>]]:
| |
| | style="white-space: nowrap; padding-right: 4px; padding-top: 8px;"| {{Icon/Purple|[[File:Spirit_icon_noborder.png|20px|link=Spirit Power{{If_lang}}]]|{{{spirit_power|{{#invoke:HeroData|get_hero_var|{{#var:hero_key_or_en}}|TechPower|2}}}}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Level|TechPower}}{{#invoke:HeroData|get_hero_scalar|{{#var:hero_key_or_en}}|Spirit|TechPower}}}}
| |
| |}
| |
| | |
| <!---- "Information" ---->
| |
| |-
| |
| !colspan="2" class="infobox-text-stat-subtitle"|
| |
| <span class="infotext-bold infotext-title infotext-big">{{#invoke:Dictionary|translate|Information}}</span>
| |
| |-
| |
| ! colspan="2" class="infobox-subsection" |
| |
| {| class="infobox-subsection-child"
| |
| |-
| |
| <!---- Pronouns (Manual Input) ---->
| |
| {{#if: {{#var:pronouns}} |
| |
| {{!}}Pronouns:
| |
| {{!}}{{#var:pronouns}}
| |
| }} | | }} |
| |- | | |-| Dynamo= |
| <!---- Voice Actor (Manual Input) ---->
| | {{Samlovesmath/Infobox hero |
| {{#if: {{#var:voice_actor}} | | | | key = hero_dynamo |
| {{!}}{{#invoke:Dictionary|translate|VoiceActor}}:
| | | voice_actor = John Patrick Lowrie |
| {{!}}{{#var:voice_actor}}
| | | release_date = April 24, 2024 |
| | | codenames = Prof_dynamo; Prof; Sumo; Jeong |
| }} | | }} |
| |- | | |-| Lady Geist= |
| <!---- Release Date (Manual Input) ---->
| | {{Samlovesmath/Infobox hero |
| {{#if: {{#var:release_date}} | | | | key = hero_ghost |
| {{!}}[[Heroes by release{{If_lang}}|<span>{{#invoke:Dictionary|translate|ReleaseDate}}</span>]]:
| | | voice_actor = Abigail Marlowe |
| {{!}}{{#var:release_date}}
| | | release_date = April 24, 2024 |
| | | codenames = Geist; Ghost; Spectre |
| }} | | }} |
| |- | | |-| Rem= |
| <!---- Codenames (Manual Input) ---->
| | {{Samlovesmath/Infobox hero |
| {{#if: {{#var:codenames}} | | | | key = hero_familiar |
| {{!}}{{#invoke:Dictionary|translate|Codenames}}:
| | | release_date = January 26, 2026 |
| {{!}}{{#var:codenames}}
| | | codenames = Familiar |
| }} | | }} |
| |} | | |-| Sinclair= |
| | | {{Samlovesmath/Infobox hero |
| |} | | | key = hero_magician |
| </div>
| | | release_date = January 17, 2025 |
| | | | codenames = Magician |
| <!---- Search Engine Optimization ---->
| | | pronouns = They/Them |
| {{#seo: | | | voice_actor = Harron Atkins (Henry); |
| |keywords=Deadlock, {{{name|{{#invoke:Lang|get_string|{{{key}}}}}}}}, hero, abilities, wiki, MOBA, shooter, character, heroes, game, valve | | Andia Winslow (Savannah) |
| |image_alt = A portrait image of {{{name|{{#invoke:Lang|get_string|{{{key}}}}}}}} from the video game Deadlock | |
| }} | | }} |
| | | </tabber></div> |
| <!---- Quotes rendering ---->
| |
| {{#ifeq: {{{no_summary|}}}|true
| |
| ||{{Quotation||
| |
| <div class{{=}}"infobox-herotags" style{{=}}{{#var:quotemark}}--infobox_th_tags_back: #{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|tags_back}}; --infobox_th_tags_text: #{{#invoke:Samlovesmath/Sandbox|get_value|{{#var:key}}|tags_text}}; {{#var:quotemark}}>
| |
| <div><div class{{=}}"infobox-herotag-back"></div><div class{{=}}"infobox-herotag-text">{{#invoke:HeroData|get_hero_tag|{{#var:hero_en}}|1}}</div></div>
| |
| <div><div class{{=}}"infobox-herotag-back"></div><div class{{=}}"infobox-herotag-text">{{#invoke:HeroData|get_hero_tag|{{#var:hero_en}}|2}}</div></div>
| |
| <div><div class{{=}}"infobox-herotag-back"></div><div class{{=}}"infobox-herotag-text">{{#invoke:HeroData|get_hero_tag|{{#var:hero_en}}|3}}</div></div>
| |
| </div>}}}} | |