https://housamo.wiki/api.php?action=feedcontributions&user=Barry&feedformat=atom?action=feedcontributions&user=Barry&feedformat=atom
Tokyo Afterschool Summoners - User contributions [en]
2024-03-29T14:41:41Z
User contributions
MediaWiki 1.36.2
https://housamo.wiki/index.php?title=Template:AR_Equipment&diff=50898
Template:AR Equipment
2023-12-07T23:50:56Z
<p>Barry: </p>
<hr />
<div><includeonly><onlyinclude>{{#vardefine:ar equipment icon size|20}}{{Or|{{AR Equipment icon|subobject={{{subobject|}}}<br />
|id = {{{id|}}}<br />
|en name = {{{en name|}}}<br />
|jp name = {{{jp name|{{{1|}}}}}}<br />
}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon_equip/equip_icon_{{{Has filename|}}}.png|width={{#var:ar equipment icon size|20}}|height={{#var:ar equipment icon size|20}}}}}} {{Or|{{AR Equipment name|subobject={{{subobject|}}}<br />
|id = {{{id|}}}<br />
|en name = {{{en name|}}}<br />
|jp name = {{{jp name|{{{1|}}}}}}}}|{{{en name|{{{jp name|{{{1|?}}}}}}}}}}}{{#vardefine:ar equipment icon size|}}</includeonly></onlyinclude><br />
<noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:AR_Equipment&diff=50897
Template:AR Equipment
2023-12-07T23:06:30Z
<p>Barry: </p>
<hr />
<div><includeonly><onlyinclude>{{#vardefine:ar equipment icon size|20}}{{AR Equipment icon|subobject={{{subobject|}}}<br />
|id = {{{id|}}}<br />
|en name = {{{en name|}}}<br />
|jp name = {{{jp name|{{{1|}}}}}}<br />
}} {{Or|{{AR Equipment name|subobject={{{subobject|}}}<br />
|id = {{{id|}}}<br />
|en name = {{{en name|}}}<br />
|jp name = {{{jp name|{{{1|}}}}}}}}|{{{en name|{{{jp name|{{{1|?}}}}}}}}}}}{{#vardefine:ar equipment icon size|}}</includeonly></onlyinclude><br />
<noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:Or&diff=50896
Template:Or
2023-12-07T23:05:49Z
<p>Barry: Created page with "{{#if:{{{1|}}}|{{{1|}}}|{{{2|}}}}}"</p>
<hr />
<div>{{#if:{{{1|}}}|{{{1|}}}|{{{2|}}}}}</div>
Barry
https://housamo.wiki/index.php?title=Template:AR_Equipment_icon_result_format&diff=50895
Template:AR Equipment icon result format
2023-12-07T21:36:04Z
<p>Barry: It was actually `equip_icon_.png` the whole time</p>
<hr />
<div><includeonly><onlyinclude>{{#ifeq:{{#var:ar equipment icon size|50}}|50|{{#ifeq:{{#var:show ar eqiupment frame|}}|n|[[{{{AR Equipment subobject|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon_equip/equip_icon_{{{Has filename|}}}.png|width={{{size|{{#var:ar equipment icon size|50}}}}}|height={{{size|{{#var:ar equipment icon size|50}}}}}|loading=lazy}}]]<br />
|<span style="position:relative; display: inline-block; width:58px; height:58px; vertical-align: middle;"><span style="position:absolute; left: 4px; top: 4px;">{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon_equip/equip_icon_{{{Has filename|}}}.png|width={{{size|{{#var:ar equipment icon size|50}}}}}|height={{{size|{{#var:ar equipment icon size|50}}}}}|loading=lazy}}</span><span style="position:absolute; width:58px; height:58px; top: 0px; left: 0px;">[[File:AR icon frame rarity {{{Has rarity|0}}}.png|58x58px|link={{{AR Equipment subobject|}}}]]</span></span>}}<br />
|[[{{{AR Equipment subobject|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon_equip/equip_icon_{{{Has filename|}}}.png|width={{{size|{{#var:ar equipment icon size|50}}}}}|height={{{size|{{#var:ar equipment icon size|50}}}}}|loading=lazy}}]]}}</onlyinclude></includeonly></div>
Barry
https://housamo.wiki/index.php?title=Template:AR_Equipment_icon&diff=50894
Template:AR Equipment icon
2023-12-07T21:35:11Z
<p>Barry: Undo revision 50892 by Barry (talk)</p>
<hr />
<div><includeonly>{{#ask:{{#if:{{{subobject|}}}|<br />
[[{{{subobject}}}]]<br />
|<br />
[[Has game context::AR Equipment]]<br />
{{#if:{{{en name|}}}|[[Has English name::~{{AR name corrector|{{{en name}}}}}]]}}<br />
{{#if:{{{jp name|{{{1|}}}}}}|[[Has Japanese name::{{{jp name|{{{1|}}}}}}]]}}<br />
{{#if:{{{id|}}}|[[Has ID::{{{id|1001}}}]]}}<br />
}}<br />
|?=AR Equipment subobject<br />
|?Has English name<br />
|?Has Japanese name<br />
|?Has filename<br />
|?Has ID<br />
|?Has rarity<br />
|format=template<br />
|template=AR Equipment icon result format<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
|named args=yes<br />
}}</includeonly><noinclude><br />
== Description ==<br />
<br />
<br />
== Usage ==<br />
<br />
<br />
=== Parameters ===<br />
Variables:<br />
<br />
* '''ar equipment icon size''': size of the icon<br />
<br />
* '''show ar equipment frame''': include the frame (set n to remove; removed automatically when icon size is changed)<br />
<br />
=== Examples ===<br />
<pre>{{AR Equipment icon|父と子と}}</pre><br />
{{AR Equipment icon|父と子と}}<br />
<pre>{{AR Equipment icon|id=5029}}</pre><br />
{{AR Equipment icon|id=5029}}<br />
<pre>{{AR Equipment icon|en name=It All Starts with Muscle!}}</pre><br />
{{AR Equipment icon|en name=It All Starts with Muscle!}}<br />
<pre>{{AR Equipment icon|jp name=結合の誓い}}</pre><br />
{{AR Equipment icon|jp name=結合の誓い}}<br />
<br />
</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:AR_Equipment_name&diff=50893
Template:AR Equipment name
2023-12-07T19:19:50Z
<p>Barry: </p>
<hr />
<div><includeonly>{{#ask:{{#if:{{{subobject|}}}|<br />
[[{{{subobject}}}]]<br />
|<br />
[[Has game context::AR Equipment]]<br />
{{#if:{{{en name|}}}|[[Has English name::~{{AR name corrector|{{{en name}}}}}]]}}<br />
{{#if:{{{jp name|{{{1|}}}}}}|[[Has Japanese name::{{{jp name|{{{1|}}}}}}]]}}<br />
{{#if:{{{id|}}}|[[Has ID::{{{id|1001}}}]]}}<br />
}}<br />
|?=AR Equipment subobject<br />
|?Has English name<br />
|?Has Japanese name<br />
|?Has filename<br />
|?Has ID<br />
|format=template<br />
|template=AR Equipment name result format<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
|named args=yes<br />
|default={{{en name|{{{jp name|{{{1|?}}}}}}}}}<br />
}}</includeonly><noinclude><br />
== Description ==<br />
<br />
<br />
== Usage ==<br />
<br />
<br />
=== Parameters ===<br />
<br />
<br />
=== Examples ===<br />
<pre>{{AR Equipment name|父と子と}}</pre><br />
{{AR Equipment name|父と子と}}<br />
<pre>{{AR Equipment name|id=5029}}</pre><br />
{{AR Equipment name|id=5029}}<br />
<pre>{{AR Equipment name|en name=It All Starts with Muscle!}}</pre><br />
{{AR Equipment name|en name=It All Starts with Muscle!}}<br />
<pre>{{AR Equipment name|jp name=結合の誓い}}</pre><br />
{{AR Equipment name|jp name=結合の誓い}}<br />
<pre>{{AR Equipment name|en name=Something That Does Not Exist}}</pre><br />
{{AR Equipment name|en name=Something That Does Not Exist}}<br />
<br />
</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:AR_Equipment_icon&diff=50892
Template:AR Equipment icon
2023-12-07T19:17:30Z
<p>Barry: </p>
<hr />
<div><includeonly>{{#ask:{{#if:{{{subobject|}}}|<br />
[[{{{subobject}}}]]<br />
|<br />
[[Has game context::AR Equipment]]<br />
{{#if:{{{en name|}}}|[[Has English name::~{{AR name corrector|{{{en name}}}}}]]}}<br />
{{#if:{{{jp name|{{{1|}}}}}}|[[Has Japanese name::{{{jp name|{{{1|}}}}}}]]}}<br />
{{#if:{{{id|}}}|[[Has ID::{{{id|1001}}}]]}}<br />
}}<br />
|?=AR Equipment subobject<br />
|?Has English name<br />
|?Has Japanese name<br />
|?Has filename<br />
|?Has ID<br />
|?Has rarity<br />
|format=template<br />
|template=AR Equipment icon result format<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
|named args=yes<br />
|default={{#switch: {{{size|}}}<br />
| medium = <span class="transient-icon-medium"><span class="transient-icon-char">[[File:Unknown icon.png|50x50px|link={{{link|}}}]]</span><span class="transient-icon-rarity">[[File:Icon frame rarity 0.png|58x58px|link={{{link|}}}]]</span><span class="transient-icon-energy">[[File:None element icon.png|14x14px|link={{{link|}}}]]</span><span class="transient-icon-weapon">[[File:None weapon icon.png|14x14px|link={{{link|}}}]]</span></span><br />
| large = <span class="transient-icon-large"><span class="transient-icon-char">[[File:Unknown icon.png|link={{{link|}}}]]</span><span class="transient-icon-rarity">[[File:Icon frame rarity 0.png|116x116px|link={{{link|}}}]]</span><span class="transient-icon-energy">[[File:None element icon.png|29x29px|link={{{link|}}}]]</span><span class="transient-icon-weapon">[[File:None weapon icon.png|29x29px|link={{{link|}}}]]</span></span><br />
| small<br />
|#default = <span class="transient-icon-small"><span class="transient-icon-energy">[[File:None element icon.png|20x20px|link={{{link|}}}]]</span><span class="transient-icon-weapon">[[File:None weapon icon.png|20x20px|link={{{link|}}}]]</span></span>[[File:Unknown icon.png|20x20px|link={{{link|}}}]]{{#if:{{{link|}}}|[[{{{link}}}|{{Name corrector|{{{1|Unknown}}}}}]]|{{Name corrector|{{{1|Unknown}}}}}}}<br />
}}<br />
}}</includeonly><noinclude><br />
== Description ==<br />
<br />
<br />
== Usage ==<br />
<br />
<br />
=== Parameters ===<br />
Variables:<br />
<br />
* '''ar equipment icon size''': size of the icon<br />
<br />
* '''show ar equipment frame''': include the frame (set n to remove; removed automatically when icon size is changed)<br />
<br />
=== Examples ===<br />
<pre>{{AR Equipment icon|父と子と}}</pre><br />
{{AR Equipment icon|父と子と}}<br />
<pre>{{AR Equipment icon|id=5029}}</pre><br />
{{AR Equipment icon|id=5029}}<br />
<pre>{{AR Equipment icon|en name=It All Starts with Muscle!}}</pre><br />
{{AR Equipment icon|en name=It All Starts with Muscle!}}<br />
<pre>{{AR Equipment icon|jp name=結合の誓い}}</pre><br />
{{AR Equipment icon|jp name=結合の誓い}}<br />
<pre>{{AR Equipment name|en name=Something That Does Not Exist}}</pre><br />
{{AR Equipment icon|en name=Something That Does Not Exist}}<br />
<br />
</noinclude></div>
Barry
https://housamo.wiki/index.php?title=MediaWiki:Sidebar&diff=50832
MediaWiki:Sidebar
2023-12-01T19:26:07Z
<p>Barry: </p>
<hr />
<div>* navigation<br />
** mainpage|mainpage-description<br />
** recentchanges-url|recentchanges<br />
** randompage-url|randompage<br />
** Additional Resources|Additional Resources<br />
** Wikicord|Wiki Discord<br />
<br />
* Basic Information<br />
** Getting Started|Getting Started<br />
** tips|Tips and Tricks<br />
** News|Latest Game Updates<br />
** Event Quest|Latest Events<br />
<br />
* General Game Guides<br />
** Event Quest|Event Quests<br />
** Battle System|Battle System<br />
** Quest System|Quest System<br />
** Gacha|Summons<br />
** Stats|Transient Stats<br />
** Skills|Skills and Charge Skills<br />
** Status|Statuses<br />
** Akashic Records|AR Equipment<br />
** Rank|Player Rank<br />
** Login Bonus|Login Bonuses<br />
** Andvari's Shop|Andvari's Shop<br />
** Weekly Missions|Weekly Missions<br />
** Guild|Player Guild<br />
** App Trivia|App Trivia<br />
** Category:Strategy pages|Transient Strategy pages<br />
<br />
* Catalogs<br />
** Catalog|Transients<br />
** Catalog:Mobs|Mobs<br />
** Catalog:AR Equipment|AR Equipment<br />
** Status#List_of_statuses|Statuses<br />
** App Trivia#Unreleased_Characters|Unreleased content<br />
** Items|Items<br />
** Catalog:Guilds|Guilds<br />
** World_(setting)#List_Of_Worlds|Worlds<br />
** Illustrators|Illustrators<br />
** Voice actors|Voice Actors<br />
** Scenario Writers|Scenario Writers<br />
** Backgrounds|VN Backgrounds<br />
** My Guild items|Player Guild Items<br />
<br />
* Quests<br />
** Main Quest|Main Quests<br />
** Free Quest|Free Quests <br />
** Daily Quest|Daily Quests<br />
** Character Quest|Character Quests<br />
** Date Quest|Date Quests <br />
** Skill Quest|Skill Quests<br />
** Dungeon Quest|Dungeon Quests<br />
** Special Quest|Special Quests<br />
<br />
* SEARCH<br />
* TOOLBOX<br />
* LANGUAGES</div>
Barry
https://housamo.wiki/index.php?title=MediaWiki:Sidebar&diff=50831
MediaWiki:Sidebar
2023-12-01T19:24:10Z
<p>Barry: Contact Information is useless</p>
<hr />
<div>* navigation<br />
** mainpage|mainpage-description<br />
** recentchanges-url|recentchanges<br />
** randompage-url|randompage<br />
** Comments|Comments<br />
** Additional Resources|Additional Resources<br />
** Wikicord|Wiki Discord<br />
<br />
* Basic Information<br />
** Getting Started|Getting Started<br />
** tips|Tips and Tricks<br />
** News|Latest Game Updates<br />
** Event Quest|Latest Events<br />
<br />
* General Game Guides<br />
** Event Quest|Event Quests<br />
** Battle System|Battle System<br />
** Quest System|Quest System<br />
** Gacha|Summons<br />
** Stats|Transient Stats<br />
** Skills|Skills and Charge Skills<br />
** Status|Statuses<br />
** Akashic Records|AR Equipment<br />
** Rank|Player Rank<br />
** Login Bonus|Login Bonuses<br />
** Andvari's Shop|Andvari's Shop<br />
** Weekly Missions|Weekly Missions<br />
** Guild|Player Guild<br />
** App Trivia|App Trivia<br />
** Category:Strategy pages|Transient Strategy pages<br />
<br />
* Catalogs<br />
** Catalog|Transients<br />
** Catalog:Mobs|Mobs<br />
** Catalog:AR Equipment|AR Equipment<br />
** Status#List_of_statuses|Statuses<br />
** App Trivia#Unreleased_Characters|Unreleased content<br />
** Items|Items<br />
** Catalog:Guilds|Guilds<br />
** World_(setting)#List_Of_Worlds|Worlds<br />
** Illustrators|Illustrators<br />
** Voice actors|Voice Actors<br />
** Scenario Writers|Scenario Writers<br />
** Backgrounds|VN Backgrounds<br />
** My Guild items|Player Guild Items<br />
<br />
* Quests<br />
** Main Quest|Main Quests<br />
** Free Quest|Free Quests <br />
** Daily Quest|Daily Quests<br />
** Character Quest|Character Quests<br />
** Date Quest|Date Quests <br />
** Skill Quest|Skill Quests<br />
** Dungeon Quest|Dungeon Quests<br />
** Special Quest|Special Quests<br />
<br />
* SEARCH<br />
* TOOLBOX<br />
* LANGUAGES</div>
Barry
https://housamo.wiki/index.php?title=Template:Skill_turn_interval&diff=50251
Template:Skill turn interval
2023-10-01T16:03:06Z
<p>Barry: Undo revision 50250 by Barry (talk)</p>
<hr />
<div><includeonly><onlyinclude>{{#ifeq:{{{interval|0}}}|0|<!--turn intervals should never be 0 unless arguments were parsed incorrectly-->Server Error 😔|{{#ifeq:{{{interval|1}}} {{{surplus|0}}}|1 0||{{#switch:{{{total turn}}}<br />
| 0 = Phase<br />
| 1 = Total<br />
| #default = Battle}} {{#ifexpr:{{{interval|1}}} >= 99|<br />
turn {{#expr:{{{surplus|0}}} + 1}}|<br />
turns {{#expr:{{{surplus|0}}} + 1}}, {{#expr:{{{surplus|0}}} + 1 + {{{interval|1}}}}}, {{#expr:{{{surplus|0}}} + 1 + 2 * {{{interval|1}}}}}...}}}}}}</includeonly></onlyinclude><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:Skill_turn_interval&diff=50250
Template:Skill turn interval
2023-10-01T16:01:05Z
<p>Barry: hot fix until I can figure out why the transient infobox skill strings keep spilling errors but not in the actual skill page</p>
<hr />
<div><includeonly><onlyinclude>{{#ifeq:{{{interval|1}}} {{{surplus|0}}}|1 0||{{#switch:{{{total turn}}}<br />
| 0 = Phase<br />
| 1 = Total<br />
| #default = Battle}} {{#ifexpr:{{{interval|1}}} >= 99|<br />
turn {{#expr:{{{surplus|0}}} + 1}}|<br />
turns {{#expr:{{{surplus|0}}} + 1}}, {{#expr:{{{surplus|0}}} + 1 + {{{interval|1}}}}}, {{#expr:{{{surplus|0}}} + 1 + 2 * {{{interval|1}}}}}...}}}}</includeonly></onlyinclude><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:Skill_turn_interval&diff=50249
Template:Skill turn interval
2023-10-01T16:00:09Z
<p>Barry: Undo revision 50248 by Barry (talk)</p>
<hr />
<div><includeonly><onlyinclude>{{#ifeq:{{{interval|0}}}|0|<!--turn intervals should never be 0 unless arguments were parsed incorrectly-->Server Error 😔|{{#ifeq:{{{interval|1}}} {{{surplus|0}}}|1 0||{{#switch:{{{total turn}}}<br />
| 0 = Phase<br />
| 1 = Total<br />
| #default = Battle}} {{#ifexpr:{{{interval|1}}} >= 99|<br />
turn {{#expr:{{{surplus|0}}} + 1}}|<br />
turns {{#expr:{{{surplus|0}}} + 1}}, {{#expr:{{{surplus|0}}} + 1 + {{{interval|1}}}}}, {{#expr:{{{surplus|0}}} + 1 + 2 * {{{interval|1}}}}}...}}}}}}</includeonly></onlyinclude><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:Skill_turn_interval&diff=50248
Template:Skill turn interval
2023-10-01T15:58:55Z
<p>Barry: </p>
<hr />
<div><includeonly><onlyinclude>{{#ifeq:{{{effect_serial_id|0}}}|0|<!--effect ID should never be 0 unless arguments were parsed incorrectly-->Server Error 😔|{{#ifeq:{{{interval|1}}} {{{surplus|0}}}|1 0||{{#switch:{{{total turn}}}<br />
| 0 = Phase<br />
| 1 = Total<br />
| #default = Battle}} {{#ifexpr:{{{interval|1}}} >= 99|<br />
turn {{#expr:{{{surplus|0}}} + 1}}|<br />
turns {{#expr:{{{surplus|0}}} + 1}}, {{#expr:{{{surplus|0}}} + 1 + {{{interval|1}}}}}, {{#expr:{{{surplus|0}}} + 1 + 2 * {{{interval|1}}}}}...}}}}}}</includeonly></onlyinclude><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Additional_Resources&diff=47530
Additional Resources
2023-01-02T20:44:45Z
<p>Barry: </p>
<hr />
<div>Below is a rather-short list of additional Housamo-related resources with a short description. Additionally, you can leave suggestions in the comments section below.<br />
{| class="wikitable"<br />
|+Additional Resources<br />
!Name<br />
!Description<br />
|-<br />
|https://drive.google.com/open?id=1QUyWI1ZpMl0zDE3gQabDULqF84cNnayE<br />
|An externally handled Drive of additional resources.<br />
|-<br />
|https://api.housamo.xyz/housamo/friend-catalog/<br />
|Hosts the [[User IDs]] in a convenient manner.<br />
|}<br />
<br />
{{Guide}}</div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_extended_infobox&diff=47528
Template:Transient extended infobox
2023-01-02T20:39:06Z
<p>Barry: sex in housamo</p>
<hr />
<div><includeonly>__NOTOC__{{#if: <!-- define vars --><br />
<br />
{{#vardefine:energy|{{#switch:{{lc:{{{energy|{{{element|}}}}}}}}<br />
| 1 | 火 | fire = 火<br />
| 2 | 水 | water = 水<br />
| 3 | 木 | wood | grass | earth | tree = 木<br />
| 4 | 天 | heaven | holy | light | divine | aether = 天<br />
| 5 | 冥 | dark | nether = 冥<br />
| 6 | 魔 | demon | shadow | infernal = 魔<br />
| 0 | 全 | all | all-round = 全<br />
| 7 | 英雄 | hero | valiant = 英雄<br />
| 8 | 世界 | world = 世界<br />
| 9 | 無限 | infinity | infinite | mugen = 無限<br />
| 10 | 零 | zero | null = 零<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type|{{#switch:{{lc:{{{weapon type|}}}}}<br />
| 1 | 斬撃 | 斬 | slash = 斬撃<br />
| 3 | 打撃 | 打 | strike | blow = 打撃<br />
| 2 | 突撃 | 突 | pierce | thrust = 突撃<br />
| 4 | 射撃 | 射 | ranged | shot = 射撃<br />
| 5 | 魔法 | 魔 | magic = 魔法<br />
| 7 | 狙撃 | 狙 | snipe = 狙撃<br />
| 6 | 横一文字 | wide slash | wide-slash | wide-slash | long slash = 横一文字<br />
| 8 | 全域 | wide magic | wide-magic | all = 全域<br />
| 0 | 無し = 無し<br />
| 9 | 無 = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type filename|{{#switch:{{#var:weapon type}}<br />
| 無し | none = nothing<br />
| 斬撃 = slash<br />
| 突撃 = thrust<br />
| 打撃 = knock<br />
| 射撃 = shoot<br />
| 魔法 = magic<br />
| 横一文字 = longslash<br />
| 狙撃 = snipe<br />
| 全域 = all<br />
| 無 = nothing<br />
|#default = nothing<br />
}}<br />
}}<br />
<br />
{{#vardefine:energy filename|{{#switch:{{#var:energy}}<br />
| 全 = none<br />
| 火 = fire<br />
| 水 = water<br />
| 木 = earth<br />
| 天 = light<br />
| 冥 = dark<br />
| 魔 = evil<br />
| 英雄 = hero<br />
| 世界 = world<br />
| 無限 = infinity<br />
| 零 = zero<br />
| #default = none<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:availability|{{#switch:{{lc:{{{availability|}}}}}<br />
| limited = Limited<br />
| event = Event<br />
| unavailable = Unobtainable<br />
| unobtainable = Unobtainable<br />
| scheduled = Scheduled<br />
| enemy = Enemy<br />
| current<br />
|#default = Current<br />
}}<br />
}}<br />
<br />
{{#ifeq:{{lc:{{{acquisition|}}}}} | unobtainable | {{#vardefine:availability|Unobtainable}}<br />
}}<br />
<br />
{{#arraydefine:illustrator|{{{illustrator|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Illustrator]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator en name {{#var:counter}}| <br />
{{#if: {{#var:illustrator subobj {{#var:counter}} }}<br />
| {{#show: {{#var:illustrator subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:scenario writer|{{{scenario writer|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Scenario writer]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer en name {{#var:counter}}| <br />
{{#if: {{#var:scenario writer subobj {{#var:counter}} }}<br />
| {{#show: {{#var:scenario writer subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:voice actor|{{#replace:{{{voice actor|}}}|,|;}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Voice actor]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:max lv|{{#switch:{{{rarity|3}}}<br />
| 5 = 70<br />
| 4 = 65<br />
| 3 = 60<br />
| 2 = 55<br />
| 1 = 50<br />
}}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor en name {{#var:counter}}| <br />
{{#if: {{#var:voice actor subobj {{#var:counter}} }}<br />
| {{#show: {{#var:voice actor subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 subobj|<br />
{{#if: {{{base skill 1|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 1 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 1 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 range|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 desc|<br />
<!--<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br> }}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}|link-radius-image=true}}<br />
}}<br />
--><br />
{{{base skill 1 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 1 subobj|}}|{{formatnum:{{#show: {{#var:base skill 1 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<br />
<!-- escape semi-colons to not run into issues when setting it as a value in the record property --><br />
<!--<br />
{{#vardefine:base skill 1 raw desc|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 2 subobj|<br />
{{#if: {{{base skill 2|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 2 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 2 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 2 en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 2 range|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 2 desc|<br />
<!--<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}<br />
}}<br />
--><br />
{{{base skill 2 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 2 subobj|}}|{{formatnum:{{#show: {{#var:base skill 2 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 2 raw desc|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 3 subobj|<br />
{{#if: {{{base skill 3|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 3 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 3 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 3 en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 3 range|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 3 desc|<br />
<!--<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}<br />
}}<br />
--><br />
{{{base skill 3 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 3 subobj|}}|{{formatnum:{{#show: {{#var:base skill 3 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 3 raw desc|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 4 subobj|<br />
{{#if: {{{base skill 4|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 4 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 range|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 4 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 4 desc|<br />
<!--<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}<br />
}}<br />
--><br />
{{{base skill 4 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 4 subobj|}}|{{formatnum:{{#show: {{#var:base skill 4 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 4 raw desc|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
<br />
{{#vardefine:charge skill subobj|<br />
{{#if: {{{charge skill id|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{charge skill id|}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
<!--{{#vardefine:charge skill en name|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:charge skill desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}<br />
}}<br />
}}<br />
<!--<br />
{{#vardefine:charge skill raw desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
--><br />
{{#vardefine:base skill 1 jp-en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 2 jp-en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 3 jp-en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 4 jp-en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
<!-- overrides --><br />
{{#if:{{{skill id 1|}}}|<br />
{{#vardefine:base skill 1 desc|{{#masterdata:Skill|{{{skill id 1}}}|effects}}}}{{#vardefine:base skill 1 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 1 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 2|}}}|<br />
{{#vardefine:base skill 2 desc|{{#masterdata:Skill|{{{skill id 2}}}|effects}}}}{{#vardefine:base skill 2 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 2 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 3|}}}|<br />
{{#vardefine:base skill 3 desc|{{#masterdata:Skill|{{{skill id 3}}}|effects}}}}{{#vardefine:base skill 3 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 3 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 4|}}}|<br />
{{#vardefine:base skill 4 desc|{{#masterdata:Skill|{{{skill id 4}}}|effects}}}}{{#vardefine:base skill 4 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 4 desc}}}}}}|;|\;}}<br />
}}<br />
{{#vardefine:strategy|{{#ifexist:{{{en name|}}}/Strategy|{{{en name|}}}/Strategy|}}}}<br />
{{#vardefine:enemy|{{#ifexist:{{{en name|}}}/Enemy|{{{en name|}}}/Enemy|}}}}<br />
{{#vardefine:transient id|{{{id|{{#if:{{{jp title|}}}|{{#masterdata:Card|{{{jp title|}}}|id:name.title}}}}}}}}}<br />
{{#ifexpr:{{#var:transient id|}}<2|{{#vardefine:transient id|}}}}<br />
{{#vardefine:charge skill weapon|{{Weapons|{{#replace:{{{charge skill pattern|{{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}}}}|Weapon Spread |}}}}}}<br />
{{#vardefine:height|{{#var:transient height|{{{height|}}}}}}}<br />
{{#vardefine:weight|{{#var:transient weight|{{{weight|}}}}}}}<br />
{{#vardefine:summon date|{{#var:transient summon date|{{{summon date|}}}}}}}<br />
{{#vardefine:guild|{{#var:transient en affiliation|{{{guild|}}}}}}}<br />
{{#vardefine:school|{{#var:transient en school|{{{school|}}}}}}}<br />
{{#vardefine:release date|{{#var:transient release date|{{{release date|2016-12-01}}}}}}}<br />
{{#vardefine:release version|{{#var:transient release version|{{{release version|0.0.0}}}}}}}<br />
{{#arraydefine:skin list|{{{cdn skin artwork|}}}|;}}<br />
}}<!--create vars end-->{{#if: {{NAMESPACE}} | <!-- don't create subobj within namespace --> | <!--<br />
<br />
For Has base skill as well as Has illustrator, Has scenario writer and Has voice actor, the subobject is set to "-" if no subobject is available to return a result in queries in order to properly match names to subobjects in Template:Transient list table result format. Otherwise, name, description, unlocked limit break and subobject (for skills) and name and subobject (for voice actor, scenario writer and illustrator) may be mismatched.<br />
<br />
-->{{#subobject:transient{{#vardefineecho:transientnumber|{{#expr:{{#var:transientnumber|-1}}+1}}}}<br />
| Has game context = Transient<br />
| Has ID = {{#var:transient id|}}<br />
| Has character ID = {{{chara id|}}}<br />
| Has Japanese name ={{{jp name|?}}}<br />
| Has English name ={{{en name|?}}}<br />
| Has lowercase English name ={{lc:{{{en name|?}}}}}<br />
| Has Japanese title ={{{jp title|}}}<br />
| Has English title ={{{en title|}}}<br />
| Has Japanese-English title = {{{jp-en title|}}}<br />
| Has filename = {{{filename|}}}<br />
| Has skins = {{#arrayprint:skin list|;|@@@@|{{#ifeq:{{#explode:@@@@|:|0}}|utage-name||@@@@}}}}|+sep=;<br />
| Has artwork = {{#ifexist:File:{{{artwork|}}}.png|File:{{{artwork}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|}}}}<br />
| Has icon = {{#ifexist:File:{{{icon|}}}.png|File:{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:Unknown icon.png}}}}<br />
| Has strategy = {{#var:strategy|}}<br />
| Has enemies = {{#var:enemy|}}<br />
| Has rarity ={{#ifeq: {{{rarity|0}}} | 0 | 0 | {{{rarity}}} }}<br />
| Has card cost ={{#ifeq: {{{cost|0}}} | 0 | 0 | {{{cost}}} }}<br />
| Has variant ={{{variant|Standard}}}<br />
| Has availability ={{#var:availability}}<br />
| Has acquisition ={{{acquisition|}}}<br />
| Has energy ={{#ifeq:{{#var:energy}}|?||{{#var:energy}}}}<br />
| Has weapon type ={{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}<br />
| Has hp value = {{{hp|0}}}<br />
| Has hp growth value = {{{hp growth|0}}}<br />
| Has atk value = {{{atk|0}}}<br />
| Has atk growth value = {{{atk growth|0}}}<br />
| Has charge skill multiplier = {{{charge skill multiplier|0}}}<br />
| Has charge skill weapon type = {{#var:charge skill weapon}}<br />
| Has species = {{{species|}}}<br />
| Has sex = {{{sex|}}}<br />
| Has gate = {{Gate|{{{gate|Unknown}}}|format=name}}<br />
| Has summon date = {{#var:summon date}}<br />
| Has weight = {{#var:weight}}<br />
| Has height = {{#var:height}}<br />
| Has guild = {{#var:guild}}<br />
| Has school = {{#var:school}}<br />
| Has release date = {{#var:release date}}<br />
| Has release version = {{#var:release version}}<br />
| Has base skill ={{#if:{{{base skill 1|}}}|{{#var:base skill 1 subobj|-}};0;{{{base skill 1}}};{{#var:base skill 1 en name|{{{base skill 1}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 1 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 2|}}}|{{#var:base skill 2 subobj|-}};1;{{{base skill 2}}};{{#var:base skill 2 en name|{{{base skill 2}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 2 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 3|}}}|{{#var:base skill 3 subobj|-}};2;{{{base skill 3}}};{{#var:base skill 3 en name|{{{base skill 3}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 3 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 4|}}}|{{#var:base skill 4 subobj|-}};3;{{{base skill 4}}};{{#var:base skill 4 en name|{{{base skill 4}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 4 id}}}}}<br />
| Has evolved skill = {{#arrayprint:base skill 1 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 2 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 3 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 4 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has charge skill ={{{charge skill name|}}};{{{charge skill jp name|}}};-;{{#var:charge skill weapon}};{{{charge skill id|}}}<br />
| Has illustrator ={{#if:{{{illustrator|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
| ###<br />
| @@@<br />
| {{#var:illustrator subobj {{#var:counter}}|-}};@@@;{{#var:illustrator en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has scenario writer ={{#if:{{{scenario writer|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
| ###<br />
| @@@<br />
| {{#var:scenario writer subobj {{#var:counter}}|-}};@@@;{{#var:scenario writer en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has voice actor ={{#if:{{{voice actor|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
| ###<br />
| @@@<br />
| {{#var:voice actor subobj {{#var:counter}}|-}};@@@;{{#var:voice actor en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
}}<br />
}}<!-- end subobject<br />
-->{{#ifeq:{{#var:transientnumber}}|0|{{#css:<br />
div.transient-infobox {<br />
background-color: #f9f9f9;<br />
padding-bottom: 2px;<br />
position: relative;<br />
width: 850px;<br />
border: 1px solid #aaa;<br />
border-spacing: 0px;<br />
-webkit-text-size-adjust: none;<br />
-moz-text-size-adjust: none;<br />
-ms-text-size-adjust: none;<br />
}<br />
<br />
div.transient-container > .footer {<br />
text-align: center;<br />
padding-left: 75px;<br />
}<br />
<br />
div.transient-infobox > div > .header {<br />
width: auto;<br />
margin: 4px 4px 2px 4px;<br />
padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon {<br />
float: left;<br />
vertical-align: bottom;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon > img {<br />
padding: 1%;<br />
}<br />
<br />
div.transient-infobox > div > .header .weapon-attribute {<br />
position: relative;<br />
top: -27px;<br />
}<br />
<br />
<br />
div.transient-infobox > div > .header .weapon-attribute > img {<br />
position: absolute;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption {<br />
color: #000000;<br />
font-size: 1.5em;<br />
text-align: center;<br />
vertical-align: middle;<br />
width: 86.5%;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .name {<br />
font-weight: bold;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .sub {<br />
font-size: 0.8em;<br />
}<br />
<br />
div.transient-infobox > div > .body {<br />
clear: both;<br />
border-collapse: collapse;<br />
width: 99%;<br />
}<br />
<br />
div.transient-infobox > div > .body tr td {<br />
margin: 0px; padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork {<br />
margin: 0px 2px 4px 4px;<br />
width: 300px;<br />
text-align: center;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork img {<br />
display: inline-block;<br />
max-width: 100%;<br />
height: auto;<br />
width: auto\9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data {<br />
width: 99%;<br />
margin: 0px 2px 2px 2px;<br />
border-collapse: collapse;<br />
}<br />
<br />
div.transient-infobox > div >.body .data tr:not(:first-child) th {<br />
border-top: 2px solid #f9f9f9;<br />
border-right: 2px solid #f9f9f9;<br />
min-width: 100px;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr td {<br />
padding-left: 0.5em;<br />
padding-right: 0.5em;<br />
border-left: 2px solid #f9f9f9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr:not(:first-child) td {<br />
border-top: 2px solid #f9f9f9;<br />
}<br />
<br />
/* fire */<br />
div.fire > .header {<br />
background-color: #ffbfbf;<br />
}<br />
<br />
div.fire > .body .data tr > th {<br />
background-color: #ffd2d0;<br />
}<br />
<br />
div.fire > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffdddc;<br />
}<br />
<br />
/* water */<br />
div.water > .header {<br />
background-color: #bfd9ff;<br />
}<br />
<br />
div.water > .body .data tr > th {<br />
background-color: #d0e3ff;<br />
}<br />
<br />
div.water > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #dceaff;<br />
}<br />
<br />
/* wood */<br />
div.wood > .header {<br />
background-color: #bfffbf;<br />
}<br />
<br />
div.wood > .body .data tr > th {<br />
background-color: #dcffdc;<br />
}<br />
<br />
div.wood > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3ffe3;<br />
}<br />
<br />
/* light */<br />
div.light > .header,<br />
div.aether > .header {<br />
background-color: #ffd4bf;<br />
}<br />
<br />
div.light > .body .data tr > th,<br />
div.aether > .body .data tr > th {<br />
background-color: #ffe0d0;<br />
}<br />
<br />
div.light > .body .data tr > th + th,<br />
width: 100px;<br />
div.aether > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffe8dc;<br />
}<br />
<br />
/* nether */<br />
div.nether > .header,<br />
div.dark > .header {<br />
background-color: #e5ccff;<br />
}<br />
<br />
div.nether > .body .data tr > th,<br />
div.dark > .body .data tr > th {<br />
background-color: #e3d3f3;<br />
}<br />
<br />
div.nether > .body .data tr > th + th,<br />
width: 100px;<br />
div.dark > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f0e0ff;<br />
}<br />
<br />
/* all, demon, none */<br />
div.all > .header,<br />
div.all-round > .header {<br />
background-color: #d4d4d4;<br />
}<br />
<br />
div.demon > .header,<br />
div.shadow > .header,<br />
div.infernal > .header {<br />
background-color: #a1a1a1;<br />
}<br />
<br />
div.all > .body .data tr > th,<br />
div.all-round > .body .data tr > th {<br />
background-color: #dcdcdc;<br />
}<br />
<br />
div.demon > .body .data tr > th,<br />
div.shadow > .body .data tr > th,<br />
div.infernal > .body .data tr > th {<br />
background-color: #aaaaaa;<br />
}<br />
<br />
div.all > .body .data tr > th + th,<br />
width: 100px;<br />
div.all-round > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3e3e3;<br />
}<br />
<br />
div.demon > .body .data tr > th + th,<br />
width: 100px;<br />
div.shadow > .body .data tr > th + th,<br />
width: 100px;<br />
div.infernal > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #b0b0b0;<br />
}<br />
<br />
/* hero */<br />
div.hero > .header,<br />
div.valiant > .header {<br />
background-color: #e9e8ed;<br />
}<br />
<br />
div.hero > .body .data tr > th,<br />
div.valiant > .body .data tr > th {<br />
background-color: #ebeaee;<br />
}<br />
<br />
div.hero > .body .data tr > th + th,<br />
width: 100px;<br />
div.valiant > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f5f4f9;<br />
}<br />
<br />
/* world */<br />
div.world > .header {<br />
background-color: #a67a45;<br />
}<br />
<br />
div.world> .body .data tr > th {<br />
background-color: #ebbe85;<br />
}<br />
<br />
div.world > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffde9f;<br />
}<br />
<br />
/* infinity */<br />
div.infinity > .header {<br />
background-color: #faa357;<br />
}<br />
<br />
div.infinity > .body .data tr > th {<br />
background-color: #f2af74;<br />
}<br />
<br />
div.infinity > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #fccb9f;<br />
}<br />
<br />
/* zero */<br />
div.zero > .header {<br />
background-color: #f488cb;<br />
}<br />
<br />
div.zero > .body .data tr > th {<br />
background-color: #f7a6d8;<br />
}<br />
<br />
div.zero > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #fcbde4;<br />
}<br />
<br />
/* none */<br />
div.none > .header {<br />
background-color: #696969;<br />
}<br />
<br />
div.none > .body .data tr > th {<br />
background-color: #696969;<br />
}<br />
<br />
div.none > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #696969;<br />
}<br />
<br />
div.extended > a > img {<br />
width: 30px;<br />
height: 30px;<br />
}<br />
<br />
ruby > rt {<br />
font-size: 80%;<br />
}<br />
div.tabs {<br />
width: 100%;<br />
}<br />
div.tabs > span {<br />
display: inline-block;<br />
padding: 0px 10px 0px 10px;<br />
text-align: center;<br />
margin: 4px;<br />
}<br />
.transientBox {<br />
position: absolute;<br />
right: 0;<br />
display: inline-block;<br />
<!--width: 320px;--><br />
border: #aaa 1px solid;<br />
padding: 18px;<br />
background-color: #f9f9f9;<br />
max-width: 640px;<br />
}<br />
.spriteSelector {<br />
width: 100%;<br />
display: block;<br />
}<br />
.transientBox > * > .artwork > img {<br />
height: 452px;<br />
width: auto;<br />
}<br />
<br />
.transientBox > * > .body > .data {<br />
width: 100%;<br />
}<br />
<br />
@media only screen and (max-width: 1760px) {<br />
.transientBox {<br />
position: unset;<br />
right: unset;<br />
margin-bottom: 10px;<br />
}<br />
}<br />
<br />
}}<br />
}}<br />
{{#ifeq:{{#var:transientnumber}}|0|<h2>Transient Information</h2><div class='transientBox'><div class="tabs"></div></div>}}<div class="transient-infobox" id="transient{{#var:transientnumber}}"><br />
{{#ifeq:{{#var:transientnumber}}|0|<!--div class="tabs"></div-->}}<br />
<div class="transient-container {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}} transient{{#var:transientnumber}}" data-id="{{#var:transient id|}}"><br />
<div class="header"><br />
<table><br />
<tr><br />
{{#if:{{#var:transient cdn icon|}}||{{#vardefine:transient cdn icon|{{{cdn icon|}}}}}}}<br />
<td class="icon transient{{#var:transientnumber}}">{{#if:{{#var:transient no cdn|}}|[[File:{{{icon}}}.png|60px]]|{{#if:{{#var:transient cdn icon|}}|{{#tag:mediator|{{#var:transient cdn icon|}}|width=60|height=60|loading=lazy}}|{{#ifexist:File:{{{icon|}}}.png|[[File:{{{icon}}}.png|60px]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|60px]]|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}_{{{rarity}}}star_icon.png|60px]]|[[File:Unknown icon.png|60px]]}}}}}}}}}}</td>{{#vardefine:transient cdn icon|}}<br />
<td class="weapon-attribute">{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/ui/button/ui_button_elm_{{#var:energy filename|none}}.png|width=60|height=60|loading=lazy}}{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_weapon_{{#var:weapon type filename|nothing}}.png|width=60|height=60|loading=lazy}}</td><td class="caption"><br />
<div class="name">[{{#if:{{{en title|}}}|{{#if:{{{jp-en title|}}}|<u><span title="{{{jp-en title|}}}">{{{en title}}}</span></u>|{{{en title}}}}}|?}}]&nbsp; {{#if:{{{id|}}}|[https://app.housamo.xyz/cards/{{{id}}}/ {{{en name|?}}}]|{{{en name|?}}}}}<!--{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}--></div><br />
<div class="sub">&#x3010;{{#if:{{{jp title|}}}|{{{jp title}}}|&#xFF1F;}}&#x3011;{{#if:{{{jp name|}}}|{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}{{{jp name}}}|{{#ifeq: {{#var:availability}} | Unobtainable | |&#xFF1F;}}}}</div><br />
</td><br />
<!--{{#if:{{{extended|}}}|<td><div class="extended">[[File:sprite_btn_favorite_on.png|Using the extended template]]</div></td>}}--><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px|link={{Weapon type|{{#var:weapon type}}}}]]|}}</td><br />
}}<br />
</tr><br />
</table><br />
</div><br />
<table class="body"><br />
<tr><br />
{{#if:{{#var:transient cdn artwork|}}||{{#vardefine:transient cdn artwork|{{{cdn artwork|}}}}}}}<br />
<td><div class="transient{{#var:transientnumber}} {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}}"><div class="header"></div><div class="artwork">{{#if:{{#var:transient no cdn|}}|[[File:{{{artwork}}}.png]]|{{#if:{{#var:transient cdn artwork|}}|{{#tag:mediator|{{#var:transient cdn artwork|}}|loading=lazy}}|{{#ifexist:File:{{{artwork|}}}.png|[[File:{{{artwork}}}.png]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png]]|No artwork uploaded.}}|}}|}}}}</div><div class="body" data-chara-a="{{{chara id|}}}" data-chara-b="{{#var:transient chara id|}}"></div></div>{{#vardefine:transient cdn artwork|}}<br />
</td><br />
{{#ifeq: {{{acquisition|}}}|Skin||<br />
<td><br />
<table class="data"><br />
<tr><br />
<!--<th>Acquisition</th><br />
<td>{{{acquisition|?}}}</td>--><br />
{{#if: {{{variant|}}} | {{#ifeq: {{lc:{{{variant}}}}} | standard | |<br />
<th>Variant</th><br />
<td>{{Event link|{{{variant|}}}|unit={{{en name|}}}}}</td><br />
}}<br />
}}<br />
</tr><br />
<tr><br />
{{#ifeq: {{{rarity|0}}} | 0 ||<br />
<th>[[Rarity]]</th><br />
<td>{{{rarity}}}</td><br />
}}<br />
{{#ifeq: {{{cost|0}}} | 0 ||<br />
<th>[[Cost]]</th><br />
<td>{{{cost}}}</td><br />
}}<br />
</tr><br />
<tr><br />
<th>[[HP]]</th><br />
<td>{{{hp|?}}}+{{{hp growth|?}}}*(Lv-1)</td><br />
<th>[[ATK]]</th><br />
<td>{{{atk|?}}}+{{{atk growth|?}}}*(Lv-1)</td><br />
</tr><br />
<tr><br />
<th>HP @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
<th>ATK @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
</tr><br />
<tr><br />
<th>{{Tooltip|Max HP|+15 Lv, +2000 HP}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
<th>{{Tooltip|Max ATK|+15 Lv, +2000 ATK}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
</tr><br />
</table><br />
<table class="data"><br />
<!--<br />
<tr><br />
{{#ifeq:{{Energy|{{#var:energy}}}}|?| |<br />
<th>Energy</th><br />
<td>{{Energy|{{#var:energy}}}}</td><br />
}}<br />
</tr><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<tr><br />
<th>Weapon type</th><br />
<td>{{Weapon type|{{#var:weapon type}}}}</td><br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px]]|}}</td><br />
</tr><br />
}}<br />
--><br />
</table><br />
<!--{{#if: {{#var:base skill 1 subobj|}} | i dont remember if i did this part uncommented when first adding card skins--><br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skills]]</th><br />
</tr><br />
<tr><br />
<!-- {{#if: {{#var:base skill 1 subobj|}}|{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 1 range|0 0 0 0}}">{{#if: {{#var:base skill 1 subobj|}} | [[{{#var:base skill 1 subobj|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }}]] | {{#if:{{{base skill 1|}}}|[[{{{base skill 1}}}]] ({{{base skill 1 id|}}}){{#ifeq:{{#var:availability|}}|Current|[[Category:Transients with missing skill pages]]}}|?}} }}</th><br />
<td>{{#var:base skill 1 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 2 subobj|}}|{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 2 range|0 0 0 0}}">{{#if: {{#var:base skill 2 subobj|}} | [[{{#var:base skill 2 subobj|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }}]] | {{#if:{{{base skill 2|}}}|[[{{{base skill 2}}}]] ({{{base skill 2 id|}}}){{#ifeq:{{#var:availability|}}|Current|[[Category:Transients with missing skill pages]]}}|?}} }}</th><br />
<td>{{#var:base skill 2 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 3 subobj|}}|{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 3 range|0 0 0 0}}">{{#if: {{#var:base skill 3 subobj|}} | [[{{#var:base skill 3 subobj|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }}]] | {{#if:{{{base skill 3|}}}|[[{{{base skill 3}}}]] ({{{base skill 3 id|}}}){{#ifeq:{{#var:availability|}}|Current|[[Category:Transients with missing skill pages]]}}|?}} }}</th><br />
<td>{{#var:base skill 3 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 4 subobj|}}|{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 4 range|0 0 0 0}}">{{#if: {{#var:base skill 4 subobj|}} | [[{{#var:base skill 4 subobj|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }}]] | {{#if:{{{base skill 4|}}}|[[{{{base skill 4}}}]] ({{{base skill 4 id|}}}){{#ifeq:{{#var:availability|}}|Current|[[Category:Transients with missing skill pages]]}}|?}} }}</th><br />
<td>{{#var:base skill 4 desc| ? }}</td><br />
</tr><br />
</table><br />
{{#if: {{#var:has skill evo|}} |<br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skill Evolution]](s)</th><br />
</tr><br />
<!-- {{#if: {{#var:base skill 1 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 1 evo|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 1 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 2 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 2 evo|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 2 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 3 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 3 evo|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 3 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 4 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 4 evo|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 4 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}--><br />
{{#arrayprint:base skill 1 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 2 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 3 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 4 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
</table><br />
}}<br />
<table class="data"><br />
<tr><br />
<th colspan="3">{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}} ({{{charge skill id|}}})}}</span></u>|{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}} ({{{charge skill id|}}}){{#ifeq:{{#var:availability|}}|Current|[[Category:Transients with missing charge skill pages]]}}}}}}|?}}</th><br />
</tr><br />
<tr><br />
<!--th>{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{{charge skill name}}}</span></u>|{{{charge skill name}}}}}|?}}</th--><br />
<td>{{#if:{{{charge skill name|}}}|{{{charge skill description|?}}}|?}}</td><br />
<td style="width:50px; padding: 0px;">[[File:Weapon Spread {{#var:charge skill weapon|}}.png|50px|link={{#var:charge skill weapon|}}]]{{#if:{{{charge skill multiplier|}}}|<br><div style='text-align:center'>{{{charge skill multiplier}}}<!--~{{#expr:2 * {{{charge skill multiplier}}}}}-->x</div>}}</td><br />
</tr><br />
{{#ifeq:{{#var:availability|}}|Current|<tr><br />
<td colspan="3">{{Equippable AR Equipment|{{{en name|{{{jp name|?}}}}}};{{Weapon type|{{#var:weapon type|?}}}};{{Energy|{{#var:energy|?}}}}}}</td><br />
</tr>}}<br />
</table><br />
<!--}}--><br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th>Illustration</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{illustrator|}}}<br />
| {{#arrayprint:illustrator<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:illustrator subobj {{#var:counter}}|}}<br />
| [[{{#var:illustrator subobj {{#var:counter}}}}|{{#var:illustrator en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Scenario</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{scenario writer|}}}<br />
| {{#arrayprint:scenario writer<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:scenario writer subobj {{#var:counter}}|}}<br />
| [[{{#var:scenario writer subobj {{#var:counter}}}}|{{#var:scenario writer en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Voice</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{voice actor|}}}<br />
| {{#arrayprint:voice actor<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:voice actor subobj {{#var:counter}}|}}<br />
| [[{{#var:voice actor subobj {{#var:counter}}}}|{{#var:voice actor en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
{{#if:{{{species|}}}|<br />
<tr><br />
<th>{{Tooltip|Species|Tends to be based on the transient's skillset}}</th><br />
<td>{{{species}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{sex|}}}|<br />
<tr><br />
<th>{{Tooltip|Sex/Gender|As defined in the game data, might not be accurate to official localization}}</th><br />
<td>{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 = None<br />
|#default = {{{sex|Unknown gender}}}<br />
}}</td><br />
</tr><br />
}}<br />
{{#if:{{{gate|}}}|<br />
<tr><br />
<th>Gate</th><br />
<td>{{#ifeq:{{{gate|}}}|Unknown|Unknown|[[{{Gate|{{{gate}}}|format=name}}]]}}</td><br />
</tr><br />
}}<br />
{{#if:{{{guild|}}}|<br />
<tr><br />
<th>Guild</th><br />
<td>{{#ifeq:{{{guild|}}}|Unknown|Unknown|{{{guild}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{school|}}}|<br />
<tr><br />
<th>School</th><br />
<td>{{#ifeq:{{{school|}}}|Unknown|Unknown|{{{school}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:weight}}|<br />
<tr><br />
<th>Weight (kg)</th><br />
<td>{{#var:weight}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:height}}|<br />
<tr><br />
<th>Height (cm)</th><br />
<td>{{#var:height}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:summon date}}|<br />
<tr><br />
<th>Summon Date</th><br />
<td>{{#var:summon date}}</td><br />
</tr><br />
}}<br />
{{#ifeq:{{#var:release date}}|2016-12-01|<!--default value, skip-->|<br />
<tr><br />
<th>Release Date</th><br />
<td>{{#var:release date}} {{#ifeq:{{#var:release version}}|0.0.0|<!--default value, skip-->|(v{{#var:release version}})}}</td><br />
</tr><br />
}}<br />
</table><br />
{{#if:{{#var:strategy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:strategy}}|{{#if:{{#pos:{{#show:{{#var:strategy}}|?Category|link=none}}|Strategy pages}}|Strategy|Strategy (placeholder)}}]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#if:{{#var:enemy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:enemy}}|Enemy-only]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#ifeq:{{{partial|}}}|true|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">Partial Entry</th><br />
</tr><br />
</table><br />
|}}<br />
</td><br />
|}}<br />
</tr><br />
</table><br />
<div class="footer"></div><br />
<div>{{#if:{{{skin artwork|}}}|{{#tag:galleryscript|{{#ifexist:File:{{{artwork|}}}.png|{{{artwork}}}|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full|}}}};{{{skin artwork|}}}|number={{#var:transientnumber}}}}|}}<br />
{{#if:{{{cdn skin artwork|}}}|{{#tag:masterdataskins|{{{cdn skin artwork|}}}|selector-chara-relations=#charaRelations{{{chara id|0}}}|voice={{#var:transient voice filename|}}|selector-fg=div.transient{{#var:transientnumber}} > .artwork > img|selector-icon=td.icon.transient{{#var:transientnumber}} > img|flags={{#var:transient voice condition|}}}}{{#vardefine:transient voice filename|}}{{#vardefine:transient voice condition|}}|}}</div><br />
</div></div>{{#ifexpr:{{{charge skill id|0}}}>0|{{#masterdata:Skill|{{{charge skill id|0}}}|format=blank}}}}{{#arraydefine:base skill 1 evo|}}{{#arraydefine:base skill 2 evo|}}{{#arraydefine:base skill 3 evo|}}{{#arraydefine:base skill 4 evo|}}{{#vardefine:has skill evo|}}<!--<br />
<br />
auto categorization<br />
<br />
-->{{#if: {{#ifeq: {{{categorize|y}}} | n | n }} <!-- categorize is set to don't categorize --><br />
{{NAMESPACE}} <!-- don't categorize if outside namespace --><br />
| <!-- don't categorize --><br />
|<br />
<!-- new template type -- ><br />
{{#if:{{#var:transient id|}}|[[Category:Transient using new data structure]]|[[Category:Transient page that needs updating]]}}<br />
<!-- energy --><br />
{{#ifeq: {{Energy|{{#var:energy}}}} | ? | [[Category:Transients with unknown energy]] |<br />
[[Category:{{Energy|{{#var:energy}}}} transients]]<br />
}}<br />
<!--species--><br />
[[Category:{{#if:{{{species|}}}|{{{species}}}|Unknown species}} transients]]<br />
<!--gate--><br />
{{#if:{{{gate|}}}|[[Category:Transients from {{Gate|{{{gate}}}|use-name=true}}]]}}<br />
<!--sex--><br />
[[Category:{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 | none = Unknown gender<br />
|#default = {{{sex|Unknown gender}}}<br />
}} transients]]<br />
<!-- weapon type --><br />
{{#ifeq: {{Weapon type|{{{weapon type|}}}}} | ? | [[Category:Transients with unknown weapon type]] |<br />
[[Category:{{Weapon type|{{{weapon type}}}}} transients]]<br />
}}<br />
<br />
<!-- availability --><br />
{{#ifeq: {{#var:availability}} | Current | |<br />
[[Category:{{#var:availability}} transients]]<br />
}}<br />
<br />
}}</includeonly><includeonly>{{#ifeq:{{PAGENAME}}|Transient infobox||{{#ifeq:{{#var:transientnumber|0}}|0|{{#seo:<br />
|title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
|titlemode=replace<br />
|keywords=tokyo,afterschool,summoners,housamo,wiki,東京放課後サモナーズ,放サモ,{{{jp name|}}},{{{en name|}}}<br />
|description={{Star}}{{{rarity|0}}}, {{Energy|{{#var:energy}}}}-typed {{Weapon type|{{#var:weapon type}}}} unit.<br />
|og:image={{filepath:{{#ifexist:File:{{{icon|}}}.png|{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|{{{en name}}}_{{{rarity}}}star_icon.png|}}}}}}}}<br />
|og:title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
}}}}}}</includeonly><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Pazuzu&diff=47449
Pazuzu
2022-12-14T22:00:34Z
<p>Barry: </p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient availability|Unavailable}}<br />
{{#vardefine:transient acquisition|Unobtainable}}<br />
{{#vardefine:transient en name|Pazuzu}}<br />
{{#vardefine:transient jp name|パズズ}}<br />
{{#vardefine:transient icon|icon_pazuzu01_skin0}}<br />
{{#vardefine:transient artwork|fg_pazuzu01_skin0}}<br />
{{#masterdata:CardPartial|pazuzu01_skin0|utage-additional-skins=0 0}}</div>
Barry
https://housamo.wiki/index.php?title=Pazuzu&diff=47448
Pazuzu
2022-12-14T21:59:32Z
<p>Barry: Undo revision 47447 by Barry (talk)</p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient availability|Unavailable}}<br />
{{#vardefine:transient acquisition|Unobtainable}}<br />
{{#vardefine:transient en name|Pazuzu}}<br />
{{#vardefine:transient jp name|パズズ}}<br />
{{#vardefine:transient icon|icon_pazuzu01_skin0}}<br />
{{#vardefine:transient artwork|fg_pazuzu01_skin0}}<br />
{{#masterdata:CardPartial|pazuzu01_skin0|utage-additional-skins=0 2}}</div>
Barry
https://housamo.wiki/index.php?title=Pazuzu&diff=47447
Pazuzu
2022-12-14T21:59:03Z
<p>Barry: </p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient availability|Unavailable}}<br />
{{#vardefine:transient acquisition|Unobtainable}}<br />
{{#vardefine:transient en name|Pazuzu}}<br />
{{#vardefine:transient jp name|パズズ}}<br />
{{#vardefine:transient icon|icon_pazuzu01}}<br />
{{#vardefine:transient artwork|fg_pazuzu01}}<br />
{{#masterdata:CardPartial|pazuzu01|utage-additional-skins=0 2}}</div>
Barry
https://housamo.wiki/index.php?title=Pazuzu&diff=47446
Pazuzu
2022-12-14T21:58:43Z
<p>Barry: </p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient availability|Unavailable}}<br />
{{#vardefine:transient acquisition|Unobtainable}}<br />
{{#vardefine:transient en name|Pazuzu}}<br />
{{#vardefine:transient jp name|パズズ}}<br />
{{#vardefine:transient icon|icon_pazuzu01_skin0}}<br />
{{#vardefine:transient artwork|fg_pazuzu01_skin0}}<br />
{{#masterdata:CardPartial|pazuzu01_skin0|utage-additional-skins=0 2}}</div>
Barry
https://housamo.wiki/index.php?title=Beowulf&diff=47430
Beowulf
2022-12-12T19:15:54Z
<p>Barry: Undo revision 47426 by Barry (talk)</p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient en name|Beowulf}}<br />
{{#masterdata:CardPartial|beowulf01|utage-additional-skins=1 2}}</div>
Barry
https://housamo.wiki/index.php?title=Beowulf&diff=47426
Beowulf
2022-12-12T19:11:57Z
<p>Barry: </p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient en name|Beowulf}}<br />
{{#masterdata:CardPartial|beowulf01|utage-additional-skins=0 2}}</div>
Barry
https://housamo.wiki/index.php?title=MediaWiki:Sidebar&diff=46255
MediaWiki:Sidebar
2022-08-30T18:34:58Z
<p>Barry: </p>
<hr />
<div>* navigation<br />
** mainpage|mainpage-description<br />
** recentchanges-url|recentchanges<br />
** randompage-url|randompage<br />
** Comments|Comments<br />
** Contact Information|Contact Information<br />
** Additional Resources|Additional Resources<br />
** Wikicord|Wiki Discord<br />
<br />
* Basic Information<br />
** Getting Started|Getting Started<br />
** tips|Tips and Tricks<br />
** News|Latest Game Updates<br />
** Event Quest|Latest Events<br />
<br />
* General Game Guides<br />
** Event Quest|Event Quests<br />
** Battle System|Battle System<br />
** Quest System|Quest System<br />
** Gacha|Summons<br />
** Stats|Transient Stats<br />
** Skills|Skills and Charge Skills<br />
** Status|Statuses<br />
** Akashic Records|AR Equipment<br />
** Rank|Player Rank<br />
** Login Bonus|Login Bonuses<br />
** Andvari's Shop|Andvari's Shop<br />
** Weekly Missions|Weekly Missions<br />
** Guild|Player Guild<br />
** App Trivia|App Trivia<br />
** Category:Strategy pages|Transient Strategy pages<br />
<br />
* Catalogs<br />
** Catalog|Transients<br />
** Catalog:Mobs|Mobs<br />
** Catalog:AR Equipment|AR Equipment<br />
** Status#List_of_statuses|Statuses<br />
** App Trivia#Unreleased_Characters|Unreleased content<br />
** Items|Items<br />
** Guild#List_of_Guilds|Guilds<br />
** World_(setting)#List_Of_Worlds|Worlds<br />
** Illustrators|Illustrators<br />
** Voice actors|Voice Actors<br />
** Scenario Writers|Scenario Writers<br />
** Backgrounds|VN Backgrounds<br />
** My Guild items|Player Guild Items<br />
<br />
* Quests<br />
** Main Quest|Main Quests<br />
** Free Quest|Free Quests <br />
** Daily Quest|Daily Quests<br />
** Character Quest|Character Quests<br />
** Date Quest|Date Quests <br />
** Skill Quest|Skill Quests<br />
** Dungeon Quest|Dungeon Quests<br />
** Special Quest|Special Quests<br />
<br />
* SEARCH<br />
* TOOLBOX<br />
* LANGUAGES</div>
Barry
https://housamo.wiki/index.php?title=Wikicord&diff=46254
Wikicord
2022-08-30T18:34:47Z
<p>Barry: wow whoa I sure was an ass about this page</p>
<hr />
<div>This wiki has a [https://api.housamo.xyz/discord/invite/ Discord server]. It is recommended for all editors to join that server in order to have an easier method of communication (non-editors are free to join as well).<br />
<br />
Wiki comments are viewable under #comments, tracked wiki page edits appear under #edits, while tracked game updates will pop up under #game-updates. #tweets seldom works, however.<br />
<br />
==Comments==<br />
{{Comments}}</div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_icon&diff=45820
Template:Transient icon
2022-06-20T23:19:10Z
<p>Barry: </p>
<hr />
<div><includeonly>{{#ifeq:{{{frame|n}}}|y|<br />
{{#ask:{{#if:{{{subobject|}}}|<br />
[[{{{subobject}}}]]<br />
|<br />
[[Has game context::Transient]]<br />
{{#if:{{{1|}}}|[[Has lowercase English name::{{Name corrector|{{lc:{{{1|}}}}}}}]]}}<br />
{{#if:{{{id|}}}|[[Has ID::{{{id|}}}]]}}<br />
{{#if:{{{rarity|}}}|[[Has rarity::{{{rarity}}}]]}}<br />
{{#if:{{{variant|}}}|[[Has variant::{{{variant}}}]]}}<br />
{{#if:{{{energy|}}}|[[Has energy::{{{energy}}}]]}}<br />
}}<br />
|?=Transient icon subobject<br />
|?Has English name<br />
|?Has icon<br />
|?Has rarity<br />
|?Has energy<br />
|?Has weapon type<br />
|?Has variant<br />
|?Has ID<br />
|?Has filename<br />
|format=template<br />
|template=Transient icon result format<br />
|userparam=frame=y,size={{#switch:{{lc:{{{size|small}}}}}|<br />
| medium = medium<br />
| large = large<br />
| small<br />
|#default = small<br />
}},link={{{link|}}},show name={{#switch:{{lc:{{{show name|?}}}}}|<br />
| y = y<br />
| n = n<br />
| #default = {{#ifeq:{{lc:{{{size|small}}}}}|small|y|n}}<br />
}},skin={{#if:{{{skin|{{{face|}}}}}}|{{{face|}}} {{{skin|}}};}}<br />
|limit=1<br />
|sort=Has rarity<br />
|order=asc<br />
|searchlabel=<br />
|link=none<br />
|named args=yes<br />
|default={{#switch: {{{size|}}}<br />
| medium = <span class="transient-icon-medium"><span class="transient-icon-char">[[File:Unknown icon.png|50x50px|link={{{link|}}}]]</span><span class="transient-icon-rarity">[[File:Icon frame rarity 0.png|58x58px|link={{{link|}}}]]</span><span class="transient-icon-energy">[[File:None element icon.png|14x14px|link={{{link|}}}]]</span><span class="transient-icon-weapon">[[File:None weapon icon.png|14x14px|link={{{link|}}}]]</span></span><br />
| large = <span class="transient-icon-large"><span class="transient-icon-char">[[File:Unknown icon.png|link={{{link|}}}]]</span><span class="transient-icon-rarity">[[File:Icon frame rarity 0.png|116x116px|link={{{link|}}}]]</span><span class="transient-icon-energy">[[File:None element icon.png|29x29px|link={{{link|}}}]]</span><span class="transient-icon-weapon">[[File:None weapon icon.png|29x29px|link={{{link|}}}]]</span></span><br />
| small<br />
|#default = <span class="transient-icon-small"><span class="transient-icon-energy">[[File:None element icon.png|20x20px|link={{{link|}}}]]</span><span class="transient-icon-weapon">[[File:None weapon icon.png|20x20px|link={{{link|}}}]]</span></span>[[File:Unknown icon.png|20x20px|link={{{link|}}}]]{{#if:{{{link|}}}|[[{{{link}}}|{{Name corrector|{{{1|Unknown}}}}}]]|{{Name corrector|{{{1|Unknown}}}}}}}<br />
}}<!-- end switch --><br />
}}<!-- end ask (with frame) --><br />
|<br />
{{#ask:{{#if:{{{subobject|}}}|<br />
[[{{{subobject}}}]]<br />
|<br />
[[Has game context::Transient]]<br />
{{#if:{{{1|}}}|[[Has lowercase English name::{{Name corrector|{{lc:{{{1|}}}}}}}]]}}<br />
{{#if:{{{id|}}}|[[Has ID::{{{id|}}}]]}}<br />
{{#if:{{{rarity|}}}|[[Has rarity::{{{rarity}}}]]}}<br />
{{#if:{{{variant|}}}|[[Has variant::{{{variant}}}]]}}<br />
{{#if:{{{energy|}}}|[[Has energy::{{{energy}}}]]}}<br />
}}<br />
|?=Transient icon subobject<br />
|?Has English name<br />
|?Has icon<br />
|?Has variant<br />
|?Has ID<br />
|?Has filename<br />
|format=template<br />
|template=Transient icon result format<br />
|userparam=frame=n,size={{#switch:{{lc:{{{size|small}}}}}|<br />
| medium = medium<br />
| large = large<br />
| small<br />
|#default = small<br />
}},link={{{link|}}},show name={{#switch:{{lc:{{{show name|?}}}}}|<br />
| y = y<br />
| n = n<br />
| #default = {{#ifeq:{{lc:{{{size|small}}}}}|small|y|n}}<br />
}},skin={{#if:{{{skin|{{{face|}}}}}}|{{{face|}}} {{{skin|}}};}}<br />
|limit=1<br />
|sort=Has rarity<br />
|order=asc<br />
|searchlabel=<br />
|link=none<br />
|named args=yes<br />
|default={{#switch:{{{size|}}}<br />
| medium = [[File:Unknown icon.png|50x50px|link={{{link|}}}]]<br />
| large = [[File:Unknown icon.png|link={{{link|}}}]]<br />
| small<br />
|#default=[[File:Unknown icon.png|20x20px|link={{{link|}}}]]{{#if:{{{link|}}}|[[{{{link}}}|{{Name corrector|{{{1|Unknown}}}}}]]|[[{{Name corrector|{{{1}}}}}|{{Name corrector|{{{1|Unknown}}}}}]]}}{{#if:{{{link|}}}||[[Category:List of invalid Transient icon template calls]]}}<br />
}}<!-- end switch --><br />
}}<!-- end ask (no frame) --><br />
}}</includeonly><noinclude><br />
== Description ==<br />
<br />
This template displays a link to a transient together with its icon. If multiple transients would fit the search criteria, only the one with the lowest rarity of the standard variant is displayed.<br />
<br />
== Usage ==<br />
<pre>{{Transient icon<br />
|<en transient name><br />
| rarity = <br />
| variant = <br />
| link = <br />
| energy = <br />
| subobject = <br />
| show name = <br />
}}</pre><br />
<br />
=== Parameters ===<br />
<br />
; en transient name : Required. Name of the transient<br />
; rarity : Filter result by the rarity of the transient.<br />
; energy : Filter result by the energy of the transient.<br />
; variant : Filter result by the variant of the transient.<br />
; frame : Set to ''y'' to also display a frame with rarity, energy and weapon type of the transient, ''n'' to only display the icon. Defaults to ''n''.<br />
; size : Set to ''small'', ''medium'' or ''large'' to change the size of the icon. When set to ''small'', also displays the transient's English name. Defaults to ''small''.<br />
; link : Page that the icon should link to. Defaults to the page of the transient.<br />
; show name : Set to ''y'' to show the name, ''n'' to hide. Defaults to ''y'' if '''size''' is set to ''small'', ''n'' otherwise.<br />
; subobject : Subobject of the transient. Can be used by other templates to directly display the correct transient. Do not use this parameter manually.<br />
<br />
=== Examples ===<br />
<br />
<pre>{{Transient icon|Moritaka}}</pre><br />
<br />
{{Transient icon|Moritaka}}<br />
<br />
<pre>{{Transient icon|Moritaka|size=large}}</pre><br />
<br />
{{Transient icon|Moritaka|size=large}}<br />
<br />
<pre>{{Transient icon|Moritaka|size=medium|frame=y}}</pre><br />
<br />
{{Transient icon|Moritaka|size=medium|frame=y}}<br />
<br />
<pre>{{Transient icon|Moritaka|rarity=4}}</pre><br />
<br />
{{Transient icon|Moritaka|rarity=4}}<br />
<br />
<pre>{{Transient icon|Moritaka|variant=Valentine|frame=y}}</pre><br />
<br />
{{Transient icon|Moritaka|variant=Valentine|frame=y}}<br />
<br />
[[Category:Formatting templates]]</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_icon_result_format&diff=45819
Template:Transient icon result format
2022-06-20T23:14:54Z
<p>Barry: </p>
<hr />
<div><includeonly>{{#if: <!-- define vars --><br />
<br />
{{#vardefine:transient icon result format frame|{{#if:{{{#userparam|}}}|<br />
{{#explode:{{#explode:{{{#userparam}}}|,|0}}|=|1}}<br />
|n}}<br />
}}<br />
<br />
{{#vardefine:transient icon result format size|{{#if:{{{#userparam|}}}|<br />
{{#explode:{{#explode:{{{#userparam}}}|,|1}}|=|1}}<br />
|small}}<br />
}}<br />
<br />
{{#vardefine:transient icon result format link|{{#if:{{{#userparam|}}}|<br />
{{#explode:{{#explode:{{{#userparam}}}|,|2}}|=|1}}<br />
|}}<br />
}}<br />
<br />
{{#vardefine:transient icon result format show name|{{#if:{{{#userparam|}}}|<br />
{{#explode:{{#explode:{{{#userparam}}}|,|3}}|=|1}}<br />
|n}}<br />
}}<br />
<br />
{{#vardefine:transient icon result format skin|{{#if:{{{#userparam|}}}|<br />
{{#explode:{{#explode:{{{#userparam}}}|,|4}}|=|1}}<br />
|}}<br />
}}<br />
<br />
{{#vardefine:icon filename|{{lc:{{{Has filename}}}}}}}{{#ifeq: {{#explode:{{#var:icon filename|}}|0|0}} | player | {{#vardefine:icon filename|{{#var:icon filename}}_bodytype{{#expr:1+{{Random number|5}}}}}} }}<br />
<br />
}}<!-- end vardefine -->{{#switch:{{#var:transient icon result format size}}<br />
<br />
| medium = {{#ifeq:{{#var:transient icon result format frame}}|n|<br />
{{#if:{{{Has filename|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_{{#var:icon filename}}.png|width="50"|height="50"|loading=lazy}}|[[{{{Has icon|File:Unknown icon.png}}}|50x50px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]}}<br />
<br />
|<span class="transient-icon-medium"><span class="transient-icon-char">{{#if:{{{Has filename|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_{{#var:icon filename}}.png|width="50"|height="50"|loading=lazy}}|[[{{{Has icon|File:Unknown icon.png}}}|50x50px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]}}</span><span class="transient-icon-rarity">[[File:Icon frame rarity {{{Has rarity|0}}}.png|58x58px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span><span class="transient-icon-energy">[[File:{{Energy|{{{Has energy|None}}}}} element icon.png|14x14px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span><span class="transient-icon-weapon">[[File:{{Weapon type|{{{Has weapon type|None}}}}} weapon icon.png|14x14px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span></span><br />
}}<br />
| large = {{#ifeq:{{#var:transient icon result format frame}}|n|{{#if:{{{Has filename|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_{{#var:icon filename}}.png|width="116"|height="116"|loading=lazy}}|[[{{{Has icon|File:Unknown icon.png}}}|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]}}|<span class="transient-icon-large"><span class="transient-icon-char">{{#if:{{{Has filename|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_{{#var:icon filename}}.png|width="116"|height="116"|loading=lazy}}|[[{{{Has icon|File:Unknown icon.png}}}|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]}}</span><span class="transient-icon-rarity">[[File:Icon frame rarity {{{Has rarity|0}}}.png|116x116px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span><span class="transient-icon-energy">[[File:{{Energy|{{{Has energy|None}}}}} element icon.png|29x29px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span><span class="transient-icon-weapon">[[File:{{Weapon type|{{{Has weapon type|None}}}}} weapon icon.png|29x29px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span></span><br />
}}<br />
| small<br />
|#default = {{#ifeq:{{#var:transient icon result format frame}}|n|{{#if:{{{Has filename|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_{{#var:icon filename}}.png|width="20"|height="20"|loading=lazy}}|[[{{{Has icon|File:Unknown icon.png}}}|20x20px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]}}|<span class="transient-icon-small"><span class="transient-icon-energy">[[File:{{Energy|{{{Has energy|None}}}}} element icon.png|20x20px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span><span class="transient-icon-weapon">[[File:{{Weapon type|{{{Has weapon type|None}}}}} weapon icon.png|20x20px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]</span></span>{{#if:{{{Has filename|}}}|{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_{{#var:icon filename}}.png|width="20"|height="20"|loading=lazy}}|[[{{{Has icon|File:Unknown icon.png}}}|20x20px|link={{#var:transient icon result format link|{{{Transient icon subobject|}}}}}]]}}}}}}<!--name control-->{{#ifeq: {{#var:transient icon result format show name}}|y|&#32;[[{{#var:transient icon result format link|{{{Transient icon subobject|}}}}}{{#if:{{{Has English name|}}}|{{!}}{{{Has English name}}}{{#ifeq:{{{Has variant|}}}|Standard||&#32;({{{Has variant}}})}}}}]]}}</includeonly><noinclude>== Description ==<br />
<br />
This template creates a transient icon using query results. Used by [[Template:Transient icon]].<br />
<br />
[[Category:Formatting Templates]]<br />
</noinclude></div>
Barry
https://housamo.wiki/index.php?title=MediaWiki:Common.css&diff=45818
MediaWiki:Common.css
2022-06-20T23:14:49Z
<p>Barry: </p>
<hr />
<div>/* Collapsables */<br />
mw-collapsible {<br />
width: 700px;<br />
}<br />
<br />
/* Reset italic styling set by user agent */<br />
cite, dfn {<br />
font-style: inherit;<br />
}<br />
<br />
/* Straight quote marks for <q> */<br />
q {<br />
quotes: '"' '"' "'" "'";<br />
}<br />
<br />
/* Avoid collision of blockquote with floating elements by swapping margin and padding */<br />
blockquote {<br />
overflow: hidden;<br />
margin: 1em 0;<br />
padding: 0 40px;<br />
}<br />
<br />
/* Prevent the 'double bold' bug in Firefox when using DirectWrite */<br />
strong.selflink {<br />
font-weight: 700;<br />
}<br />
<br />
/* Consistent size for <small>, <sub> and <sup> */<br />
small {<br />
font-size: 85%;<br />
}<br />
.mw-body-content sub,<br />
.mw-body-content sup,<br />
span.reference /* for Parsoid */ {<br />
font-size: 80%;<br />
}<br />
<br />
/* Same spacing for indented and unidented paragraphs on talk pages */<br />
.ns-talk .mw-body-content dd {<br />
margin-top: 0.4em;<br />
margin-bottom: 0.4em;<br />
}<br />
<br />
/* Main page fixes */<br />
#interwiki-completelist {<br />
font-weight: bold;<br />
}<br />
<br />
/* Reduce page jumps by hiding collapsed/dismissed content */<br />
.client-js .mw-special-Watchlist #watchlist-message,<br />
.client-js .NavFrame.collapsed .NavContent,<br />
.client-js .collapsible.collapsed > tbody > tr:not(:first-child) {<br />
display: none;<br />
}<br />
<br />
/* Tone down 'Changed since last visit' colors */<br />
span.updatedmarker {<br />
background-color: transparent;<br />
color: #006400;<br />
}<br />
<br />
/* Edit window toolbar */<br />
#toolbar {<br />
margin-bottom: 6px;<br />
}<br />
<br />
/* Hide charinsert base for those not using the gadget */<br />
#editpage-specialchars {<br />
display: none;<br />
}<br />
<br />
/* Highlight linked elements (such as clicked references) in blue */<br />
body.action-info .mw-body-content :target,<br />
.citation:target {<br />
background-color: #DEF; /* Fallback */<br />
background-color: rgba(0, 127, 255, 0.133);<br />
}<br />
<br />
/* Styling for citations. Breaks long urls, etc., rather than overflowing box */<br />
.citation {<br />
word-wrap: break-word;<br />
}<br />
<br />
/* For linked citation numbers and document IDs, where the number need not be shown<br />
on a screen or a handheld, but should be included in the printed version */<br />
@media screen, handheld {<br />
.citation .printonly {<br />
display: none;<br />
}<br />
}<br />
<br />
/* Make the list of references smaller */<br />
ol.references,<br />
div.reflist,<br />
div.refbegin {<br />
font-size: 90%; /* Default font-size */<br />
margin-bottom: 0.5em;<br />
}<br />
div.refbegin-100 {<br />
font-size: 100%; /* Option for normal fontsize in {{refbegin}} */<br />
}<br />
div.reflist ol.references {<br />
font-size: 100%; /* Reset font-size when nested in div.reflist */<br />
margin-bottom: 0; /* Avoid double margin when nested in div.reflist */<br />
list-style-type: inherit; /* Enable custom list style types */<br />
}<br />
<br />
/* Ensure refs in table headers and the like aren't bold or italic */<br />
sup.reference {<br />
font-weight: normal;<br />
font-style: normal;<br />
}<br />
<br />
/* Allow hidden ref errors to be shown by user CSS */<br />
span.brokenref {<br />
display: none;<br />
}<br />
<br />
/* Hanging indentation for Template:Refbegin */<br />
.refbegin-hanging-indents > ul {<br />
list-style-type: none;<br />
margin-left: 0;<br />
}<br />
.refbegin-hanging-indents > ul > li,<br />
.refbegin-hanging-indents > dl > dd {<br />
margin-left: 0;<br />
padding-left: 3.2em;<br />
text-indent: -3.2em;<br />
list-style: none;<br />
}<br />
<br />
/* Reset top margin for lists embedded in columns */<br />
div.columns {<br />
margin-top: 0.3em;<br />
}<br />
div.columns dl,<br />
div.columns ol,<br />
div.columns ul {<br />
margin-top: 0;<br />
}<br />
<br />
/* Avoid elements from breaking between columns */<br />
.nocolbreak,<br />
div.columns li,<br />
div.columns dd dd {<br />
-webkit-column-break-inside: avoid;<br />
page-break-inside: avoid;<br />
break-inside: avoid-column;<br />
}<br />
<br />
/* Style for [[Template:Flowlist]] that Lets lists flow around floating objecs */<br />
.flowlist ul {<br />
overflow-x: hidden;<br />
margin-left: 0;<br />
padding-left: 1.6em;<br />
}<br />
.flowlist ol {<br />
overflow-x: hidden;<br />
margin-left: 0;<br />
padding-left: 3.2em;<br />
}<br />
.flowlist dl {<br />
overflow-x: hidden;<br />
}<br />
<br />
/* Style for horizontal lists (separator following item).<br />
@source mediawiki.org/wiki/Snippets/Horizontal_lists<br />
@revision 8 (2016-05-21)<br />
@author [[User:Edokter]]<br />
*/<br />
.hlist dl,<br />
.hlist ol,<br />
.hlist ul {<br />
margin: 0;<br />
padding: 0;<br />
}<br />
/* Display list items inline */<br />
.hlist dd,<br />
.hlist dt,<br />
.hlist li {<br />
margin: 0;<br />
display: inline;<br />
}<br />
/* Display nested lists inline */<br />
.hlist.inline,<br />
.hlist.inline dl,<br />
.hlist.inline ol,<br />
.hlist.inline ul,<br />
.hlist dl dl, .hlist dl ol, .hlist dl ul,<br />
.hlist ol dl, .hlist ol ol, .hlist ol ul,<br />
.hlist ul dl, .hlist ul ol, .hlist ul ul {<br />
display: inline;<br />
}<br />
/* Hide empty list items */<br />
.hlist .mw-empty-li {<br />
display: none;<br />
}<br />
/* Generate interpuncts */<br />
.hlist dt:after {<br />
content: ": ";<br />
}<br />
.hlist dd:after,<br />
.hlist li:after {<br />
content: " · ";<br />
font-weight: bold;<br />
}<br />
.hlist dd:last-child:after,<br />
.hlist dt:last-child:after,<br />
.hlist li:last-child:after {<br />
content: none;<br />
}<br />
/* Add parentheses around nested lists */<br />
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,<br />
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,<br />
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {<br />
content: " (";<br />
font-weight: normal;<br />
}<br />
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,<br />
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,<br />
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {<br />
content: ")";<br />
font-weight: normal;<br />
}<br />
/* Put ordinals in front of ordered list items */<br />
.hlist ol {<br />
counter-reset: listitem;<br />
}<br />
.hlist ol > li {<br />
counter-increment: listitem;<br />
}<br />
.hlist ol > li:before {<br />
content: " " counter(listitem) "\a0";<br />
}<br />
.hlist dd ol > li:first-child:before,<br />
.hlist dt ol > li:first-child:before,<br />
.hlist li ol > li:first-child:before {<br />
content: " (" counter(listitem) "\a0";<br />
}<br />
<br />
/* Unbulleted lists */<br />
.plainlist ol,<br />
.plainlist ul {<br />
line-height: inherit;<br />
list-style: none none;<br />
margin: 0;<br />
}<br />
.plainlist ol li,<br />
.plainlist ul li {<br />
margin-bottom: 0;<br />
}<br />
<br />
/* Default style for navigation boxes */<br />
.navbox { /* Navbox container style */<br />
box-sizing: border-box;<br />
border: 1px solid #a2a9b1;<br />
width: 100%;<br />
clear: both;<br />
font-size: 88%;<br />
text-align: center;<br />
padding: 1px;<br />
margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */<br />
}<br />
.navbox .navbox {<br />
margin-top: 0; /* No top margin for nested navboxes */<br />
}<br />
.navbox + .navbox {<br />
margin-top: -1px; /* Single pixel border between adjacent navboxes */<br />
}<br />
.navbox-inner,<br />
.navbox-subgroup {<br />
width: 100%;<br />
}<br />
.navbox-group,<br />
.navbox-title,<br />
.navbox-abovebelow {<br />
padding: 0.25em 1em; /* Title, group and above/below styles */<br />
line-height: 1.5em;<br />
text-align: center;<br />
}<br />
th.navbox-group { /* Group style */<br />
white-space: nowrap;<br />
/* @noflip */<br />
text-align: right;<br />
}<br />
.navbox,<br />
.navbox-subgroup {<br />
background: #fdfdfd; /* Background color */<br />
}<br />
.navbox-list {<br />
line-height: 1.5em;<br />
border-color: #fdfdfd; /* Must match background color */<br />
}<br />
/* cell spacing for navbox cells */<br />
tr + tr > .navbox-abovebelow,<br />
tr + tr > .navbox-group,<br />
tr + tr > .navbox-image,<br />
tr + tr > .navbox-list { /* Borders above 2nd, 3rd, etc. rows */<br />
border-top: 2px solid #fdfdfd; /* Must match background color */<br />
}<br />
.navbox th,<br />
.navbox-title {<br />
background: #ccccff; /* Level 1 color */<br />
}<br />
.navbox-abovebelow,<br />
th.navbox-group,<br />
.navbox-subgroup .navbox-title {<br />
background: #ddddff; /* Level 2 color */<br />
}<br />
.navbox-subgroup .navbox-group,<br />
.navbox-subgroup .navbox-abovebelow {<br />
background: #e6e6ff; /* Level 3 color */<br />
}<br />
.navbox-even {<br />
background: #f7f7f7; /* Even row striping */<br />
}<br />
.navbox-odd {<br />
background: transparent; /* Odd row striping */<br />
}<br />
.navbox .hlist td dl,<br />
.navbox .hlist td ol,<br />
.navbox .hlist td ul,<br />
.navbox td.hlist dl,<br />
.navbox td.hlist ol,<br />
.navbox td.hlist ul {<br />
padding: 0.125em 0; /* Adjust hlist padding in navboxes */<br />
}<br />
<br />
/* Default styling for Navbar template */<br />
.navbar {<br />
display: inline;<br />
font-size: 88%;<br />
font-weight: normal;<br />
}<br />
.navbar ul {<br />
display: inline;<br />
white-space: nowrap;<br />
}<br />
.mw-body-content .navbar ul {<br />
line-height: inherit;<br />
}<br />
.navbar li {<br />
word-spacing: -0.125em;<br />
}<br />
.navbar.mini li abbr[title] {<br />
font-variant: small-caps;<br />
border-bottom: none;<br />
text-decoration: none;<br />
cursor: inherit;<br />
}<br />
/* Navbar styling when nested in infobox and navbox */<br />
.infobox .navbar {<br />
font-size: 100%;<br />
}<br />
.navbox .navbar {<br />
display: block;<br />
font-size: 100%;<br />
}<br />
.navbox-title .navbar {<br />
/* @noflip */<br />
float: left;<br />
/* @noflip */<br />
text-align: left;<br />
/* @noflip */<br />
margin-right: 0.5em;<br />
}<br />
<br />
/* 'show'/'hide' buttons created dynamically by the CollapsibleTables javascript<br />
in [[MediaWiki:Common.js]] are styled here so they can be customised. */<br />
.collapseButton {<br />
/* @noflip */<br />
float: right;<br />
font-weight: normal;<br />
/* @noflip */<br />
margin-left: 0.5em;<br />
/* @noflip */<br />
text-align: right;<br />
width: auto;<br />
}<br />
<br />
/* Styling for JQuery makeCollapsible, matching that of collapseButton */<br />
.mw-parser-output .mw-collapsible-toggle {<br />
font-weight: normal;<br />
/* @noflip */<br />
text-align: right;<br />
padding-right: 0.2em;<br />
padding-left: 0.2em;<br />
}<br />
.mw-collapsible-leftside-toggle .mw-collapsible-toggle {<br />
/* @noflip */<br />
float: left;<br />
/* @noflip */<br />
text-align: left;<br />
}<br />
<br />
/* Infobox template style */<br />
.infobox {<br />
border: 1px solid #a2a9b1;<br />
border-spacing: 3px;<br />
background-color: #f8f9fa;<br />
color: black;<br />
/* @noflip */<br />
margin: 0.5em 0 0.5em 1em;<br />
padding: 0.2em;<br />
/* @noflip */<br />
float: right;<br />
/* @noflip */<br />
clear: right;<br />
font-size: 88%;<br />
line-height: 1.5em;<br />
}<br />
.infobox caption {<br />
font-size: 125%;<br />
font-weight: bold;<br />
padding: 0.2em;<br />
text-align: center;<br />
}<br />
.infobox td,<br />
.infobox th {<br />
vertical-align: top;<br />
/* @noflip */<br />
text-align: left;<br />
}<br />
.infobox.bordered {<br />
border-collapse: collapse;<br />
}<br />
.infobox.bordered td,<br />
.infobox.bordered th {<br />
border: 1px solid #a2a9b1;<br />
}<br />
.infobox.bordered .borderless td,<br />
.infobox.bordered .borderless th {<br />
border: 0;<br />
}<br />
<br />
.infobox.sisterproject {<br />
width: 20em;<br />
font-size: 90%;<br />
}<br />
<br />
.infobox.standard-talk {<br />
border: 1px solid #c0c090;<br />
background-color: #f8eaba;<br />
}<br />
.infobox.standard-talk.bordered td,<br />
.infobox.standard-talk.bordered th {<br />
border: 1px solid #c0c090;<br />
}<br />
<br />
/* styles for bordered infobox with merged rows */<br />
.infobox.bordered .mergedtoprow td,<br />
.infobox.bordered .mergedtoprow th {<br />
border: 0;<br />
border-top: 1px solid #a2a9b1;<br />
/* @noflip */<br />
border-right: 1px solid #a2a9b1;<br />
}<br />
<br />
.infobox.bordered .mergedrow td,<br />
.infobox.bordered .mergedrow th {<br />
border: 0;<br />
/* @noflip */<br />
border-right: 1px solid #a2a9b1;<br />
}<br />
<br />
/* Styles for geography infoboxes, eg countries,<br />
country subdivisions, cities, etc. */<br />
.infobox.geography {<br />
border-collapse: collapse;<br />
line-height: 1.2em;<br />
font-size: 90%;<br />
}<br />
<br />
.infobox.geography td,<br />
.infobox.geography th {<br />
border-top: 1px solid #a2a9b1;<br />
padding: 0.4em 0.6em 0.4em 0.6em;<br />
}<br />
.infobox.geography .mergedtoprow td,<br />
.infobox.geography .mergedtoprow th {<br />
border-top: 1px solid #a2a9b1;<br />
padding: 0.4em 0.6em 0.2em 0.6em;<br />
}<br />
<br />
.infobox.geography .mergedrow td,<br />
.infobox.geography .mergedrow th {<br />
border: 0;<br />
padding: 0 0.6em 0.2em 0.6em;<br />
}<br />
<br />
.infobox.geography .mergedbottomrow td,<br />
.infobox.geography .mergedbottomrow th {<br />
border-top: 0;<br />
border-bottom: 1px solid #a2a9b1;<br />
padding: 0 0.6em 0.4em 0.6em;<br />
}<br />
<br />
.infobox.geography .maptable td,<br />
.infobox.geography .maptable th {<br />
border: 0;<br />
padding: 0;<br />
}<br />
<br />
/* Normal font styling for table row headers with scope="row" tag */<br />
.wikitable.plainrowheaders th[scope=row] {<br />
font-weight: normal;<br />
/* @noflip */<br />
text-align: left;<br />
}<br />
<br />
/* Lists in data cells are always left-aligned */<br />
.wikitable td ul,<br />
.wikitable td ol,<br />
.wikitable td dl {<br />
/* @noflip */<br />
text-align: left;<br />
}<br />
/* ...unless they also use the hlist class */<br />
.toc.hlist ul,<br />
#toc.hlist ul,<br />
.wikitable.hlist td ul,<br />
.wikitable.hlist td ol,<br />
.wikitable.hlist td dl {<br />
text-align: inherit;<br />
}<br />
<br />
/* Icons for medialist templates [[Template:Listen]],<br />
[[Template:Multi-listen_start]], [[Template:Video]],<br />
[[Template:Multi-video_start]] */<br />
div.listenlist {<br />
background: url("//upload.wikimedia.org/wikipedia/commons/4/47/Sound-icon.svg") no-repeat scroll 0 0 transparent;<br />
background-size: 30px;<br />
padding-left: 40px;<br />
}<br />
<br />
/* Fix for hieroglyphs specificality issue in infoboxes ([[Phabricator:43869]]) */<br />
table.mw-hiero-table td {<br />
vertical-align: middle;<br />
}<br />
<br />
/* Style rules for media list templates */<br />
div.medialist {<br />
min-height: 50px;<br />
margin: 1em;<br />
/* @noflip */<br />
background-position: top left;<br />
background-repeat: no-repeat;<br />
}<br />
div.medialist ul {<br />
list-style-type: none;<br />
list-style-image: none;<br />
margin: 0;<br />
}<br />
div.medialist ul li {<br />
padding-bottom: 0.5em;<br />
}<br />
div.medialist ul li li {<br />
font-size: 91%;<br />
padding-bottom: 0;<br />
}<br />
<br />
/* Change the external link icon to an Adobe icon for all PDF files<br />
in browsers that support these CSS selectors, like Mozilla and Opera */<br />
div#content a[href$=".pdf"].external,<br />
div#content a[href*=".pdf?"].external,<br />
div#content a[href*=".pdf#"].external,<br />
div#content a[href$=".PDF"].external,<br />
div#content a[href*=".PDF?"].external,<br />
div#content a[href*=".PDF#"].external,<br />
div#mw_content a[href$=".pdf"].external,<br />
div#mw_content a[href*=".pdf?"].external,<br />
div#mw_content a[href*=".pdf#"].external,<br />
div#mw_content a[href$=".PDF"].external,<br />
div#mw_content a[href*=".PDF?"].external,<br />
div#mw_content a[href*=".PDF#"].external {<br />
background: url("//upload.wikimedia.org/wikipedia/commons/2/23/Icons-mini-file_acrobat.gif") no-repeat right;<br />
/* @noflip */<br />
padding-right: 18px;<br />
}<br />
<br />
/* Content in columns with CSS instead of tables ([[Template:Columns]]) */<br />
div.columns-2 div.column {<br />
/* @noflip */<br />
float: left;<br />
width: 50%;<br />
min-width: 300px;<br />
}<br />
div.columns-3 div.column {<br />
/* @noflip */<br />
float: left;<br />
width: 33.3%;<br />
min-width: 200px;<br />
}<br />
div.columns-4 div.column {<br />
/* @noflip */<br />
float: left;<br />
width: 25%;<br />
min-width: 150px;<br />
}<br />
div.columns-5 div.column {<br />
/* @noflip */<br />
float: left;<br />
width: 20%;<br />
min-width: 120px;<br />
}<br />
<br />
/* Messagebox templates */<br />
.messagebox {<br />
border: 1px solid #a2a9b1;<br />
background-color: #f8f9fa;<br />
width: 80%;<br />
margin: 0 auto 1em auto;<br />
padding: .2em;<br />
}<br />
.messagebox.merge {<br />
border: 1px solid #c0b8cc;<br />
background-color: #f0e5ff;<br />
text-align: center;<br />
}<br />
.messagebox.cleanup {<br />
border: 1px solid #9f9fff;<br />
background-color: #efefff;<br />
text-align: center;<br />
}<br />
.messagebox.standard-talk {<br />
border: 1px solid #c0c090;<br />
background-color: #f8eaba;<br />
margin: 4px auto;<br />
}<br />
/* For old WikiProject banners inside banner shells. */<br />
.mbox-inside .standard-talk,<br />
.messagebox.nested-talk {<br />
border: 1px solid #c0c090;<br />
background-color: #f8eaba;<br />
width: 100%;<br />
margin: 2px 0;<br />
padding: 2px;<br />
}<br />
.messagebox.small {<br />
width: 238px;<br />
font-size: 85%;<br />
/* @noflip */<br />
float: right;<br />
clear: both;<br />
/* @noflip */<br />
margin: 0 0 1em 1em;<br />
line-height: 1.25em;<br />
}<br />
.messagebox.small-talk {<br />
width: 238px;<br />
font-size: 85%;<br />
/* @noflip */<br />
float: right;<br />
clear: both;<br />
/* @noflip */<br />
margin: 0 0 1em 1em;<br />
line-height: 1.25em;<br />
background: #F8EABA;<br />
}<br />
<br />
/* Cell sizes for ambox/tmbox/imbox/cmbox/ombox/fmbox/dmbox message boxes */<br />
th.mbox-text, td.mbox-text { /* The message body cell(s) */<br />
border: none;<br />
/* @noflip */<br />
padding: 0.25em 0.9em; /* 0.9em left/right */<br />
width: 100%; /* Make all mboxes the same width regardless of text length */<br />
}<br />
td.mbox-image { /* The left image cell */<br />
border: none;<br />
/* @noflip */<br />
padding: 2px 0 2px 0.9em; /* 0.9em left, 0px right */<br />
text-align: center;<br />
}<br />
td.mbox-imageright { /* The right image cell */<br />
border: none;<br />
/* @noflip */<br />
padding: 2px 0.9em 2px 0; /* 0px left, 0.9em right */<br />
text-align: center;<br />
}<br />
td.mbox-empty-cell { /* An empty narrow cell */<br />
border: none;<br />
padding: 0;<br />
width: 1px;<br />
}<br />
<br />
/* Article message box styles */<br />
table.ambox {<br />
margin: 0 10%; /* 10% = Will not overlap with other elements */<br />
border: 1px solid #a2a9b1;<br />
/* @noflip */<br />
border-left: 10px solid #36c; /* Default "notice" blue */<br />
background: #fbfbfb;<br />
}<br />
table.ambox + table.ambox { /* Single border between stacked boxes. */<br />
margin-top: -1px;<br />
}<br />
.ambox th.mbox-text,<br />
.ambox td.mbox-text { /* The message body cell(s) */<br />
padding: 0.25em 0.5em; /* 0.5em left/right */<br />
}<br />
.ambox td.mbox-image { /* The left image cell */<br />
/* @noflip */<br />
padding: 2px 0 2px 0.5em; /* 0.5em left, 0px right */<br />
}<br />
.ambox td.mbox-imageright { /* The right image cell */<br />
/* @noflip */<br />
padding: 2px 0.5em 2px 0; /* 0px left, 0.5em right */<br />
}<br />
<br />
table.ambox-notice {<br />
/* @noflip */<br />
border-left: 10px solid #36c; /* Blue */<br />
}<br />
table.ambox-speedy {<br />
/* @noflip */<br />
border-left: 10px solid #b32424; /* Red */<br />
background: #fee7e6; /* Pink */<br />
}<br />
table.ambox-delete {<br />
/* @noflip */<br />
border-left: 10px solid #b32424; /* Red */<br />
}<br />
table.ambox-content {<br />
/* @noflip */<br />
border-left: 10px solid #f28500; /* Orange */<br />
}<br />
table.ambox-style {<br />
/* @noflip */<br />
border-left: 10px solid #fc3; /* Yellow */<br />
}<br />
table.ambox-move {<br />
/* @noflip */<br />
border-left: 10px solid #9932cc; /* Purple */<br />
}<br />
table.ambox-protection {<br />
/* @noflip */<br />
border-left: 10px solid #a2a9b1; /* Gray-gold */<br />
}<br />
<br />
/* Image message box styles */<br />
table.imbox {<br />
margin: 4px 10%;<br />
border-collapse: collapse;<br />
border: 3px solid #36c; /* Default "notice" blue */<br />
background: #fbfbfb;<br />
}<br />
.imbox .mbox-text .imbox { /* For imboxes inside imbox-text cells. */<br />
margin: 0 -0.5em; /* 0.9 - 0.5 = 0.4em left/right. */<br />
display: block; /* Fix for webkit to force 100% width. */<br />
}<br />
.mbox-inside .imbox { /* For imboxes inside other templates. */<br />
margin: 4px;<br />
}<br />
<br />
table.imbox-notice {<br />
border: 3px solid #36c; /* Blue */<br />
}<br />
table.imbox-speedy {<br />
border: 3px solid #b32424; /* Red */<br />
background: #fee7e6; /* Pink */<br />
}<br />
table.imbox-delete {<br />
border: 3px solid #b32424; /* Red */<br />
}<br />
table.imbox-content {<br />
border: 3px solid #f28500; /* Orange */<br />
}<br />
table.imbox-style {<br />
border: 3px solid #fc3; /* Yellow */<br />
}<br />
table.imbox-move {<br />
border: 3px solid #9932cc; /* Purple */<br />
}<br />
table.imbox-protection {<br />
border: 3px solid #a2a9b1; /* Gray-gold */<br />
}<br />
table.imbox-license {<br />
border: 3px solid #88a; /* Dark gray */<br />
background: #f7f8ff; /* Light gray */<br />
}<br />
table.imbox-featured {<br />
border: 3px solid #cba135; /* Brown-gold */<br />
}<br />
<br />
/* Category message box styles */<br />
table.cmbox {<br />
margin: 3px 10%;<br />
border-collapse: collapse;<br />
border: 1px solid #a2a9b1;<br />
background: #DFE8FF; /* Default "notice" blue */<br />
}<br />
<br />
table.cmbox-notice {<br />
background: #D8E8FF; /* Blue */<br />
}<br />
table.cmbox-speedy {<br />
margin-top: 4px;<br />
margin-bottom: 4px;<br />
border: 4px solid #b32424; /* Red */<br />
background: #FFDBDB; /* Pink */<br />
}<br />
table.cmbox-delete {<br />
background: #FFDBDB; /* Red */<br />
}<br />
table.cmbox-content {<br />
background: #FFE7CE; /* Orange */<br />
}<br />
table.cmbox-style {<br />
background: #FFF9DB; /* Yellow */<br />
}<br />
table.cmbox-move {<br />
background: #E4D8FF; /* Purple */<br />
}<br />
table.cmbox-protection {<br />
background: #EFEFE1; /* Gray-gold */<br />
}<br />
<br />
/* Other pages message box styles */<br />
table.ombox {<br />
margin: 4px 10%;<br />
border-collapse: collapse;<br />
border: 1px solid #a2a9b1; /* Default "notice" gray */<br />
background: #f8f9fa;<br />
}<br />
<br />
table.ombox-notice {<br />
border: 1px solid #a2a9b1; /* Gray */<br />
}<br />
table.ombox-speedy {<br />
border: 2px solid #b32424; /* Red */<br />
background: #fee7e6; /* Pink */<br />
}<br />
table.ombox-delete {<br />
border: 2px solid #b32424; /* Red */<br />
}<br />
table.ombox-content {<br />
border: 1px solid #f28500; /* Orange */<br />
}<br />
table.ombox-style {<br />
border: 1px solid #fc3; /* Yellow */<br />
}<br />
table.ombox-move {<br />
border: 1px solid #9932cc; /* Purple */<br />
}<br />
table.ombox-protection {<br />
border: 2px solid #a2a9b1; /* Gray-gold */<br />
}<br />
<br />
/* Talk page message box styles */<br />
table.tmbox {<br />
margin: 4px 10%;<br />
border-collapse: collapse;<br />
border: 1px solid #c0c090; /* Default "notice" gray-brown */<br />
background: #f8eaba;<br />
}<br />
.mediawiki .mbox-inside .tmbox { /* For tmboxes inside other templates. The "mediawiki" class ensures that */<br />
margin: 2px 0; /* this declaration overrides other styles (including mbox-small above) */<br />
width: 100%; /* For Safari and Opera */<br />
}<br />
.mbox-inside .tmbox.mbox-small { /* "small" tmboxes should not be small when */<br />
line-height: 1.5em; /* also "nested", so reset styles that are */<br />
font-size: 100%; /* set in "mbox-small" above. */<br />
}<br />
<br />
table.tmbox-speedy {<br />
border: 2px solid #b32424; /* Red */<br />
background: #fee7e6; /* Pink */<br />
}<br />
table.tmbox-delete {<br />
border: 2px solid #b32424; /* Red */<br />
}<br />
table.tmbox-content {<br />
border: 2px solid #f28500; /* Orange */<br />
}<br />
table.tmbox-style {<br />
border: 2px solid #fc3; /* Yellow */<br />
}<br />
table.tmbox-move {<br />
border: 2px solid #9932cc; /* Purple */<br />
}<br />
table.tmbox-protection,<br />
table.tmbox-notice {<br />
border: 1px solid #c0c090; /* Gray-brown */<br />
}<br />
<br />
/* Disambig and set index box styles */<br />
table.dmbox {<br />
clear: both;<br />
margin: 0.9em 1em;<br />
border-top: 1px solid #ccc;<br />
border-bottom: 1px solid #ccc;<br />
background: transparent;<br />
}<br />
<br />
/* Footer and header message box styles */<br />
table.fmbox {<br />
clear: both;<br />
margin: 0.2em 0;<br />
width: 100%;<br />
border: 1px solid #a2a9b1;<br />
background: #f8f9fa; /* Default "system" gray */<br />
}<br />
table.fmbox-system {<br />
background: #f8f9fa;<br />
}<br />
table.fmbox-warning {<br />
border: 1px solid #bb7070; /* Dark pink */<br />
background: #ffdbdb; /* Pink */<br />
}<br />
table.fmbox-editnotice {<br />
background: transparent;<br />
}<br />
/* Div based "warning" style fmbox messages. */<br />
div.mw-warning-with-logexcerpt,<br />
div.mw-lag-warn-high,<br />
div.mw-cascadeprotectedwarning,<br />
div#mw-protect-cascadeon,<br />
div.titleblacklist-warning,<br />
div.locked-warning {<br />
clear: both;<br />
margin: 0.2em 0;<br />
border: 1px solid #bb7070;<br />
background: #ffdbdb;<br />
padding: 0.25em 0.9em;<br />
}<br />
/* Div based "system" style fmbox messages.<br />
Used in [[MediaWiki:Readonly lag]]. */<br />
div.mw-lag-warn-normal,<br />
div.fmbox-system {<br />
clear: both;<br />
margin: 0.2em 0;<br />
border: 1px solid #a2a9b1;<br />
background: #f8f9fa;<br />
padding: 0.25em 0.9em;<br />
}<br />
<br />
/* These mbox-small classes must be placed after all other<br />
ambox/tmbox/ombox etc classes. "html body.mediawiki" is so<br />
they override "table.ambox + table.ambox" above. */<br />
html body.mediawiki .mbox-small { /* For the "small=yes" option. */<br />
/* @noflip */<br />
clear: right;<br />
/* @noflip */<br />
float: right;<br />
/* @noflip */<br />
margin: 4px 0 4px 1em;<br />
box-sizing: border-box;<br />
width: 238px;<br />
font-size: 88%;<br />
line-height: 1.25em;<br />
}<br />
html body.mediawiki .mbox-small-left { /* For the "small=left" option. */<br />
/* @noflip */<br />
margin: 4px 1em 4px 0;<br />
box-sizing: border-box;<br />
overflow: hidden;<br />
width: 238px;<br />
border-collapse: collapse;<br />
font-size: 88%;<br />
line-height: 1.25em;<br />
}<br />
<br />
/* Style for compact ambox */<br />
/* Hide the images */<br />
.compact-ambox table .mbox-image,<br />
.compact-ambox table .mbox-imageright,<br />
.compact-ambox table .mbox-empty-cell {<br />
display: none;<br />
}<br />
/* Remove borders, backgrounds, padding, etc. */<br />
.compact-ambox table.ambox {<br />
border: none;<br />
border-collapse: collapse;<br />
background: transparent;<br />
margin: 0 0 0 1.6em !important;<br />
padding: 0 !important;<br />
width: auto;<br />
display: block;<br />
}<br />
body.mediawiki .compact-ambox table.mbox-small-left {<br />
font-size: 100%;<br />
width: auto;<br />
margin: 0;<br />
}<br />
/* Style the text cell as a list item and remove its padding */<br />
.compact-ambox table .mbox-text {<br />
padding: 0 !important;<br />
margin: 0 !important;<br />
}<br />
.compact-ambox table .mbox-text-span {<br />
display: list-item;<br />
line-height: 1.5em;<br />
list-style-type: square;<br />
list-style-image: url(/w/skins/MonoBook/bullet.gif);<br />
}<br />
.skin-vector .compact-ambox table .mbox-text-span {<br />
list-style-type: disc;<br />
list-style-image: url(/w/skins/Vector/images/bullet-icon.svg);<br />
list-style-image: url(/w/skins/Vector/images/bullet-icon.png)\9;<br />
}<br />
/* Allow for hiding text in compact form */<br />
.compact-ambox .hide-when-compact {<br />
display: none;<br />
}<br />
<br />
/* Remove default styles for [[MediaWiki:Noarticletext]]. */<br />
div.noarticletext {<br />
border: none;<br />
background: transparent;<br />
padding: 0;<br />
}<br />
<br />
/* Hide (formatting) elements from screen, but not from screenreaders */<br />
.visualhide {<br />
position: absolute;<br />
left: -10000px;<br />
top: auto;<br />
width: 1px;<br />
height: 1px;<br />
overflow: hidden;<br />
}<br />
<br />
/* suppress missing interwiki image links where #ifexist cannot<br />
be used due to high number of requests see .hidden-redlink on<br />
[[m:MediaWiki:Common.css]] */<br />
.check-icon a.new {<br />
display: none;<br />
speak: none;<br />
}<br />
<br />
/* Removes underlines from certain links */<br />
.nounderlines a,<br />
.IPA a:link, .IPA a:visited {<br />
text-decoration: none !important;<br />
}<br />
<br />
/* Standard Navigationsleisten, aka box hiding thingy<br />
from .de. Documentation at [[Wikipedia:NavFrame]]. */<br />
div.NavFrame {<br />
margin: 0;<br />
padding: 4px;<br />
border: 1px solid #a2a9b1;<br />
text-align: center;<br />
border-collapse: collapse;<br />
font-size: 95%;<br />
}<br />
div.NavFrame + div.NavFrame {<br />
border-top-style: none;<br />
border-top-style: hidden;<br />
}<br />
div.NavPic {<br />
background-color: #fff;<br />
margin: 0;<br />
padding: 2px;<br />
/* @noflip */<br />
float: left;<br />
}<br />
div.NavFrame div.NavHead {<br />
line-height: 1.6em;<br />
font-weight: bold;<br />
background-color: #ccf;<br />
position: relative;<br />
}<br />
div.NavFrame p,<br />
div.NavFrame div.NavContent,<br />
div.NavFrame div.NavContent p {<br />
font-size: 100%;<br />
}<br />
div.NavEnd {<br />
margin: 0;<br />
padding: 0;<br />
line-height: 1px;<br />
clear: both;<br />
}<br />
a.NavToggle {<br />
position: absolute;<br />
top: 0;<br />
/* @noflip */<br />
right: 3px;<br />
font-weight: normal;<br />
font-size: 90%;<br />
}<br />
<br />
/* Hatnotes and disambiguation notices */<br />
.hatnote {<br />
font-style: italic;<br />
}<br />
.hatnote i {<br />
font-style: normal;<br />
}<br />
div.hatnote {<br />
/* @noflip */<br />
padding-left: 1.6em;<br />
margin-bottom: 0.5em;<br />
}<br />
div.hatnote + div.hatnote {<br />
margin-top: -0.5em;<br />
}<br />
<br />
/* Allow transcluded pages to display in lists rather than a table. */<br />
.listify td { display: list-item; }<br />
.listify tr { display: block; }<br />
.listify table { display: block; }<br />
<br />
/* Geographical coordinates defaults. See [[Template:Coord/link]]<br />
for how these are used. The classes "geo", "longitude", and<br />
"latitude" are used by the [[Geo microformat]]. */<br />
.geo-default, .geo-dms, .geo-dec { display: inline; }<br />
.geo-nondefault, .geo-multi-punct { display: none; }<br />
.longitude, .latitude { white-space: nowrap; }<br />
<br />
/* Temporary(!) fix for horizontal TOC in Blink (Chrone/Opera) */<br />
.hlist .tocnumber,<br />
.hlist .toctext {<br />
display: inline;<br />
}<br />
/* When <div class="nonumtoc"> is used on the table of contents,<br />
the ToC will display without numbers */<br />
.nonumtoc .tocnumber {<br />
display: none;<br />
}<br />
.nonumtoc #toc ul,<br />
.nonumtoc .toc ul {<br />
line-height: 1.5em;<br />
list-style: none none;<br />
margin: .3em 0 0;<br />
padding: 0;<br />
}<br />
.hlist.nonumtoc #toc ul ul,<br />
.hlist.nonumtoc .toc ul ul {<br />
/* @noflip */<br />
margin: 0;<br />
}<br />
<br />
/* Allow limiting of which header levels are shown in a TOC;<br />
<div class="toclimit-3">, for instance, will limit to<br />
showing ==headings== and ===headings=== but no further<br />
(as long as there are no =headings= on the page, which<br />
there shouldn't be according to the MoS). */<br />
.toclimit-2 .toclevel-1 ul,<br />
.toclimit-3 .toclevel-2 ul,<br />
.toclimit-4 .toclevel-3 ul,<br />
.toclimit-5 .toclevel-4 ul,<br />
.toclimit-6 .toclevel-5 ul,<br />
.toclimit-7 .toclevel-6 ul {<br />
display: none;<br />
}<br />
<br />
/* Styling for Template:Quote */<br />
blockquote.templatequote div.templatequotecite {<br />
line-height: 1.5em;<br />
/* @noflip */<br />
text-align: left;<br />
/* @noflip */<br />
padding-left: 1.6em;<br />
margin-top: 0;<br />
}<br />
<br />
/* User block messages */<br />
div.user-block {<br />
padding: 5px;<br />
margin-bottom: 0.5em;<br />
border: 1px solid #A9A9A9;<br />
background-color: #FFEFD5;<br />
}<br />
<br />
/* Prevent line breaks in silly places:<br />
1) Where desired<br />
2) Links when we don't want them to<br />
3) Bold "links" to the page itself */<br />
.nowrap,<br />
.nowraplinks a,<br />
.nowraplinks .selflink {<br />
white-space: nowrap;<br />
}<br />
.nowrap pre {<br />
white-space: pre;<br />
}<br />
/* But allow wrapping where desired: */<br />
.wrap,<br />
.wraplinks a {<br />
white-space: normal;<br />
}<br />
<br />
/* For template documentation */<br />
.template-documentation {<br />
clear: both;<br />
margin: 1em 0 0 0;<br />
border: 1px solid #a2a9b1;<br />
background-color: #ecfcf4;<br />
padding: 1em;<br />
}<br />
<br />
/* Increase the height of the image upload box */<br />
#wpUploadDescription {<br />
height: 13em;<br />
}<br />
<br />
/* Minimum thumb width */<br />
.thumbinner {<br />
min-width: 100px;<br />
}<br />
<br />
/* Prevent floating boxes from overlapping any category listings,<br />
file histories, edit previews, and edit [Show changes] views. */<br />
#mw-subcategories, #mw-pages, #mw-category-media,<br />
#filehistory, #wikiPreview, #wikiDiff {<br />
clear: both;<br />
}<br />
<br />
/* Selectively hide headers in WikiProject banners */<br />
.wpb .wpb-header { display: none; }<br />
.wpbs-inner .wpb .wpb-header { display: block; } /* for IE */<br />
.wpbs-inner .wpb .wpb-header { display: table-row; } /* for real browsers */<br />
.wpbs-inner .wpb-outside { display: none; } /* hide things that should only display outside shells */<br />
<br />
/* Styling for Abuse Filter tags */<br />
.mw-tag-markers {<br />
font-style:italic;<br />
font-size:90%;<br />
}<br />
<br />
/* Hide stuff meant for accounts with special permissions. Made visible again in<br />
[[MediaWiki:Group-sysop.css]], [[MediaWiki:Group-patroller.css]],<br />
[[MediaWiki:Group-templateeditor.css]], [[MediaWiki:Group-extendedmover.css]] and [[Mediawiki:Group-autoconfirmed.css]]. */<br />
.sysop-show,<br />
.templateeditor-show,<br />
.extendedmover-show,<br />
.patroller-show,<br />
.autoconfirmed-show,<br />
.user-show {<br />
display: none;<br />
}<br />
<br />
/**<br />
* Hide the redlink generated by {{Editnotice}},<br />
* this overrides the ".sysop-show { display: none; }" above that applies<br />
* to the same link as well. See [[phab:T45013]]<br />
*<br />
* Hide the images in editnotices to keep them readable in VE view.<br />
* Long term, editnotices should become a core feature so that they can be designed responsive.<br />
*/<br />
.ve-ui-mwNoticesPopupTool-item .editnotice-redlink,<br />
.ve-ui-mwNoticesPopupTool-item .mbox-image,<br />
.ve-ui-mwNoticesPopupTool-item .mbox-imageright {<br />
display: none !important;<br />
}<br />
<br />
/* Remove bullets when there are multiple edit page warnings */<br />
ul.permissions-errors > li {<br />
list-style: none none;<br />
}<br />
ul.permissions-errors {<br />
margin: 0;<br />
}<br />
<br />
/* Pie chart: transparent borders */<br />
.transborder {<br />
border: solid transparent;<br />
}<br />
<br />
/* Generic class for Times-based serif, texhtml class for inline math */<br />
.times-serif,<br />
span.texhtml {<br />
font-family: "Nimbus Roman No9 L", "Times New Roman", Times, serif;<br />
font-size: 118%;<br />
line-height: 1;<br />
}<br />
span.texhtml {<br />
white-space: nowrap;<br />
}<br />
span.texhtml span.texhtml {<br />
font-size: 100%;<br />
}<br />
span.mwe-math-mathml-inline {<br />
font-size: 118%;<br />
}<br />
<br />
/* Force tabular and lining display for digits and texhtml */<br />
.digits,<br />
.texhtml {<br />
-moz-font-feature-settings: "lnum", "tnum", "kern" 0;<br />
-webkit-font-feature-settings: "lnum", "tnum", "kern" 0;<br />
font-feature-settings: "lnum", "tnum", "kern" 0;<br />
font-variant-numeric: lining-nums tabular-nums;<br />
font-kerning: none;<br />
}<br />
<br />
/* Make <math display="block"> be left aligned with one space indent for compatibility with style conventions */<br />
.mwe-math-fallback-image-display,<br />
.mwe-math-mathml-display {<br />
margin-left: 1.6em !important;<br />
margin-top: 0.6em;<br />
margin-bottom: 0.6em;<br />
}<br />
.mwe-math-mathml-display math {<br />
display: inline;<br />
}<br />
<br />
/* Fix styling of transcluded prefindex tables */<br />
table#mw-prefixindex-list-table,<br />
table#mw-prefixindex-nav-table {<br />
width: 98%;<br />
}<br />
<br />
/* For portals, added 2011-12-07 -bv<br />
On wide screens, show these as two columns<br />
On narrow and mobile screens, let them collapse into a single column */<br />
.portal-column-left {<br />
float: left;<br />
width: 50%;<br />
}<br />
.portal-column-right {<br />
float: right;<br />
width: 49%;<br />
}<br />
.portal-column-left-wide {<br />
float: left;<br />
width: 60%;<br />
}<br />
.portal-column-right-narrow {<br />
float: right;<br />
width: 39%;<br />
}<br />
.portal-column-left-extra-wide {<br />
float: left;<br />
width: 70%;<br />
}<br />
.portal-column-right-extra-narrow {<br />
float: right;<br />
width: 29%;<br />
}<br />
@media only screen and (max-width: 800px) {<br />
/* Decouple the columns on narrow screens */<br />
.portal-column-left,<br />
.portal-column-right,<br />
.portal-column-left-wide,<br />
.portal-column-right-narrow,<br />
.portal-column-left-extra-wide,<br />
.portal-column-right-extra-narrow {<br />
float: inherit;<br />
width: inherit;<br />
}<br />
}<br />
<br />
/* Formerly for announcements, now used intermittently */<br />
#bodyContent .letterhead {<br />
background-image:url('//upload.wikimedia.org/wikipedia/commons/e/e0/Tan-page-corner.png');<br />
background-repeat:no-repeat;<br />
padding: 2em;<br />
background-color: #faf9f2;<br />
}<br />
<br />
/* Tree style lists */<br />
.treeview ul {<br />
padding: 0;<br />
margin: 0;<br />
}<br />
.treeview li {<br />
padding: 0;<br />
margin: 0;<br />
list-style-type: none;<br />
list-style-image: none;<br />
}<br />
.treeview li li {<br />
background: url("//upload.wikimedia.org/wikipedia/commons/f/f2/Treeview-grey-line.png") no-repeat 0 -2981px;<br />
/* @noflip */<br />
padding-left: 20px;<br />
text-indent: 0.3em;<br />
}<br />
.treeview li li.lastline {<br />
background-position: 0 -5971px<br />
}<br />
.treeview li.emptyline > ul {<br />
/* @noflip */<br />
margin-left: -1px;<br />
}<br />
.treeview li.emptyline > ul > li:first-child {<br />
background-position: 0 9px<br />
}<br />
<br />
/* hidden sortkey for tablesorter */<br />
td .sortkey,<br />
th .sortkey {<br />
display: none;<br />
speak: none;<br />
}<br />
<br />
/* Make it possible to hide checkboxes in <inputbox> */<br />
.inputbox-hidecheckboxes form .inputbox-element,<br />
.inputbox-hidecheckboxes .mw-ui-checkbox {<br />
display: none !important;<br />
}<br />
<br />
/* Work-around for [[Phabricator:25965]] (Kaltura advertisement) */<br />
.k-player .k-attribution {<br />
visibility: hidden;<br />
}<br />
<br />
/* Move 'play' button of video player to bottom left corner */<br />
.PopUpMediaTransform a .play-btn-large {<br />
margin: 0;<br />
top: auto;<br />
right: auto;<br />
bottom: 0;<br />
left: 0;<br />
}<br />
<br />
/* Hide FlaggedRevs notice UI when there are no pending changes */<br />
.flaggedrevs_draft_synced,<br />
.flaggedrevs_stable_synced {<br />
display: none;<br />
}<br />
<br />
/* Gallery styles background changes are restricted to screen view. In printing we should avoid applying backgrounds. */<br />
@media screen {<br />
/* The backgrounds for galleries. */<br />
#content .gallerybox div.thumb {<br />
/* Light gray padding */<br />
background-color: #f8f9fa;<br />
}<br />
<br />
/* Put a chequered background behind images, only visible if they have transparency.<br />
'.filehistory a img' and '#file img:hover' are handled by MediaWiki core (as of 1.19) */<br />
.gallerybox .thumb img {<br />
background: #fff url(//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png) repeat;<br />
}<br />
/* But not on articles, user pages, portals or with opt-out. */<br />
.ns-0 .gallerybox .thumb img,<br />
.ns-2 .gallerybox .thumb img,<br />
.ns-100 .gallerybox .thumb img,<br />
.nochecker .gallerybox .thumb img {<br />
background: #fff;<br />
}<br />
<br />
/* T178626 */<br />
#contentSub:empty,<br />
#contentSub2:empty {<br />
display: block !important;<br />
}<br />
<br />
#contentSub:empty ~ #jump-to-nav,<br />
#contentSub2:empty ~ #jump-to-nav {<br />
margin-top: -1.4em !important;<br />
margin-bottom: 1.4em !important;<br />
}<br />
<br />
<br />
}<br />
<br />
/* Prevent text resizing on mobile */<br />
#mw-content-text {<br />
-webkit-text-size-adjust: none;<br />
-moz-text-size-adjust: none;<br />
-ms-text-size-adjust: none;<br />
}<br />
<br />
<br />
/* I'm too lazy to find the Comments extension's CSS so deal with it */<br />
/* disabling images because spam */<br />
.c-comment > img {<br />
max-width: 100%;<br />
max-height: 0px;<br />
visibility: hidden;<br />
}<br />
.c-comment > .mw-parser-output > p > img {<br />
max-width: 100%;<br />
max-height: 0px;<br />
visibility: hidden;<br />
}<br />
<br />
/* */<br />
.transient-icon-medium {<br />
position:relative;<br />
display: inline-block;<br />
width:58px;<br />
height:58px;<br />
vertical-align: middle;<br />
}<br />
<br />
.transient-icon-medium > .transient-icon-char {<br />
position:absolute;<br />
left: 4px;<br />
top: 4px;<br />
}<br />
<br />
.transient-icon-medium > .transient-icon-rarity {<br />
position:absolute;<br />
width: 58px;<br />
height: 58px;<br />
top: 0px;<br />
left: 0px;<br />
}<br />
<br />
.transient-icon-medium > .transient-icon-energy {<br />
position:absolute;<br />
top: -2px;<br />
left: 3px; <br />
}<br />
<br />
.transient-icon-medium > .transient-icon-weapon {<br />
position:absolute;<br />
top: -2px;<br />
left: 3px;<br />
}<br />
<br />
.transient-icon-large {<br />
position:relative;<br />
display: inline-block;<br />
width:116px;<br />
height:116px;<br />
vertical-align: middle;<br />
}<br />
<br />
.transient-icon-large > .transient-icon-char {<br />
position:absolute;<br />
left: 8px;<br />
top: 8px;<br />
}<br />
<br />
.transient-icon-large > .transient-icon-rarity {<br />
position:absolute;<br />
width:116px;<br />
height:116px;<br />
top: 0px;<br />
left: 0px;<br />
}<br />
<br />
.transient-icon-large > .transient-icon-energy {<br />
position:absolute;<br />
top: 6px;<br />
left: 6px;<br />
}<br />
<br />
.transient-icon-large > .transient-icon-weapon {<br />
position:absolute;<br />
top: 6px;<br />
left: 6px;<br />
}<br />
<br />
.transient-icon-small {<br />
position: relative;<br />
display: inline-block;<br />
width: 20px;<br />
height: 20px;<br />
vertical-align: top;<br />
}<br />
<br />
.transient-icon-small > .transient-icon-energy {<br />
position: absolute;<br />
top: 0px;<br />
left: 0px;<br />
}<br />
<br />
.transient-icon-small > .transient-icon-weapon {<br />
position:absolute;<br />
top: 0px;<br />
left: 0px;<br />
}</div>
Barry
https://housamo.wiki/index.php?title=Catalog&diff=45817
Catalog
2022-06-20T04:41:31Z
<p>Barry: smegtest</p>
<hr />
<div>☆1 and ☆2 are located [[Catalog:Mobs|here]].<br />
<br />
A list of characters grouped by their affiliated guilds can also be found [[Catalog:Guilds|here]].<br />
<br />
A list of non-mob transients grouped by their Charge Skill weapon spread can be found [[Catalog/Misc/Charge_Skill|here]].<br />
<br />
Additionally there are lists of transients sorted by their [[Catalog/Misc/Height|height]], [[Catalog/Misc/Weight|weight]] and [[Catalog/Misc/Summon Date|summon date]]<br />
<br />
{{#css:<br />
.toclimit-2 .toclevel-1 ul,<br />
.toclimit-3 .toclevel-2 ul,<br />
.toclimit-4 .toclevel-3 ul,<br />
.toclimit-5 .toclevel-4 ul,<br />
.toclimit-6 .toclevel-5 ul,<br />
.toclimit-7 .toclevel-6 ul {<br />
display: none;<br />
}<br />
}}<div class="toclimit-2">{{__TOC__}}</div><br />
=={{Star|3}}==<br />
<br />
=== All ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 全<br />
| rarity = 3<br />
}}<br />
<br />
=== Infernal ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 魔<br />
| rarity = 3<br />
}}<br />
<br />
=== Valiant ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 英雄<br />
| rarity = 3<br />
}}<br />
<br />
=== World ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| size = medium<br />
| show name = y<br />
| energy = 世界<br />
| rarity = 3<br />
}}<br />
<br />
=== Fire ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 火<br />
| rarity = 3<br />
}}<br />
<br />
=== Water ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 水<br />
| rarity = 3<br />
}}<br />
<br />
=== Wood ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 木<br />
| rarity = 3<br />
}}<br />
<br />
=== Aether ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 天<br />
| rarity = 3<br />
}}<br />
<br />
=== Nether ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 冥 <br />
| rarity = 3<br />
}}<br />
<br />
=={{Star|4}}==<br />
<br />
=== All ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 全<br />
| rarity = 4<br />
}}<br />
<br />
=== Infernal ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 魔<br />
| rarity = 4<br />
}}<br />
<br />
=== Valiant ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 英雄<br />
| rarity = 4<br />
}}<br />
<br />
=== World ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 世界<br />
| rarity = 4<br />
}}<br />
<br />
=== Fire ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 火<br />
| rarity = 4<br />
}}<br />
<br />
=== Water ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 水<br />
| rarity = 4<br />
}}<br />
<br />
=== Wood ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 木<br />
| rarity = 4<br />
}}<br />
<br />
=== Aether ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 天<br />
| rarity = 4<br />
}}<br />
<br />
=== Nether ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 冥 <br />
| rarity = 4<br />
}}<br />
<br />
=={{Star|5}}==<br />
<br />
=== All ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 全<br />
| rarity = 5<br />
}}<br />
<br />
=== Infernal ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 魔<br />
| rarity = 5<br />
}}<br />
<br />
=== Valiant ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 英雄<br />
| rarity = 5<br />
}}<br />
<br />
=== World ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| size = medium<br />
| show name = y<br />
| energy = 世界<br />
| rarity = 5<br />
}}<br />
<br />
=== Fire ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 火<br />
| rarity = 5<br />
}}<br />
<br />
=== Water ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 水<br />
| rarity = 5<br />
}}<br />
<br />
=== Wood ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 木<br />
| rarity = 5<br />
}}<br />
<br />
=== Aether ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 天<br />
| rarity = 5<br />
}}<br />
<br />
=== Nether ===<br />
<br />
{{Transient list<br />
| format = ul<br />
| frame = y<br />
| columns = 4<br />
| size = medium<br />
| show name = y<br />
| energy = 冥 <br />
| rarity = 5<br />
}}<br />
<br />
<br />
{{Guide}}<br />
<br />
[[Category:Transients]]</div>
Barry
https://housamo.wiki/index.php?title=Attention_Whore&diff=45107
Attention Whore
2022-05-04T13:16:49Z
<p>Barry: Reverted edits by Slingring (talk) to last revision by SurtrFan8511</p>
<hr />
<div>{{#masterdata:Skill|337|format=wiki}}</div>
Barry
https://housamo.wiki/index.php?title=File:New_Semester_2022_Banner.png&diff=44820
File:New Semester 2022 Banner.png
2022-04-05T17:08:25Z
<p>Barry: test</p>
<hr />
<div>== Summary ==<br />
test</div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_extended_infobox&diff=44241
Template:Transient extended infobox
2021-12-25T03:20:51Z
<p>Barry: </p>
<hr />
<div><includeonly>__NOTOC__{{#if: <!-- define vars --><br />
<br />
{{#vardefine:energy|{{#switch:{{lc:{{{energy|{{{element|}}}}}}}}<br />
| 1 | 火 | fire = 火<br />
| 2 | 水 | water = 水<br />
| 3 | 木 | wood | grass | earth | tree = 木<br />
| 4 | 天 | heaven | holy | light | divine | aether = 天<br />
| 5 | 冥 | dark | nether = 冥<br />
| 6 | 魔 | demon | shadow | infernal = 魔<br />
| 0 | 全 | all | all-round = 全<br />
| 7 | 英雄 | hero | valiant = 英雄<br />
| 8 | 世界 | world = 世界<br />
| 9 | 無 | none = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type|{{#switch:{{lc:{{{weapon type|}}}}}<br />
| 1 | 斬撃 | 斬 | slash = 斬撃<br />
| 3 | 打撃 | 打 | strike | blow = 打撃<br />
| 2 | 突撃 | 突 | pierce | thrust = 突撃<br />
| 4 | 射撃 | 射 | ranged | shot = 射撃<br />
| 5 | 魔法 | 魔 | magic = 魔法<br />
| 7 | 狙撃 | 狙 | snipe = 狙撃<br />
| 6 | 横一文字 | wide slash | wide-slash | wide-slash | long slash = 横一文字<br />
| 8 | 全域 | wide magic | wide-magic | all = 全域<br />
| 0 | 無し = 無し<br />
| 9 | 無 = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type filename|{{#switch:{{#var:weapon type}}<br />
| 無し | none = nothing<br />
| 斬撃 = slash<br />
| 突撃 = thrust<br />
| 打撃 = knock<br />
| 射撃 = shoot<br />
| 魔法 = magic<br />
| 横一文字 = longslash<br />
| 狙撃 = snipe<br />
| 全域 = all<br />
| 無 = nothing<br />
|#default = nothing<br />
}}<br />
}}<br />
<br />
{{#vardefine:energy filename|{{#switch:{{#var:energy}}<br />
| 全 = none<br />
| 火 = fire<br />
| 水 = water<br />
| 木 = earth<br />
| 天 = light<br />
| 冥 = dark<br />
| 魔 = evil<br />
| 英雄 = hero<br />
| 世界 = world<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:availability|{{#switch:{{lc:{{{availability|}}}}}<br />
| limited = Limited<br />
| event = Event<br />
| unavailable = Unobtainable<br />
| unobtainable = Unobtainable<br />
| scheduled = Scheduled<br />
| enemy = Enemy<br />
| current<br />
|#default = Current<br />
}}<br />
}}<br />
<br />
{{#ifeq:{{lc:{{{acquisition|}}}}} | unobtainable | {{#vardefine:availability|Unobtainable}}<br />
}}<br />
<br />
{{#arraydefine:illustrator|{{{illustrator|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Illustrator]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator en name {{#var:counter}}| <br />
{{#if: {{#var:illustrator subobj {{#var:counter}} }}<br />
| {{#show: {{#var:illustrator subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:scenario writer|{{{scenario writer|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Scenario writer]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer en name {{#var:counter}}| <br />
{{#if: {{#var:scenario writer subobj {{#var:counter}} }}<br />
| {{#show: {{#var:scenario writer subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:voice actor|{{#replace:{{{voice actor|}}}|,|;}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Voice actor]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:max lv|{{#switch:{{{rarity|3}}}<br />
| 5 = 70<br />
| 4 = 65<br />
| 3 = 60<br />
| 2 = 55<br />
| 1 = 50<br />
}}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor en name {{#var:counter}}| <br />
{{#if: {{#var:voice actor subobj {{#var:counter}} }}<br />
| {{#show: {{#var:voice actor subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 subobj|<br />
{{#if: {{{base skill 1|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 1 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 1 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 range|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 desc|<br />
<!--<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br> }}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}|link-radius-image=true}}<br />
}}<br />
--><br />
{{{base skill 1 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 1 subobj|}}|{{formatnum:{{#show: {{#var:base skill 1 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<br />
<!-- escape semi-colons to not run into issues when setting it as a value in the record property --><br />
<!--<br />
{{#vardefine:base skill 1 raw desc|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 2 subobj|<br />
{{#if: {{{base skill 2|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 2 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 2 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 2 en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 2 range|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 2 desc|<br />
<!--<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}<br />
}}<br />
--><br />
{{{base skill 2 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 2 subobj|}}|{{formatnum:{{#show: {{#var:base skill 2 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 2 raw desc|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 3 subobj|<br />
{{#if: {{{base skill 3|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 3 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 3 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 3 en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 3 range|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 3 desc|<br />
<!--<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}<br />
}}<br />
--><br />
{{{base skill 3 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 3 subobj|}}|{{formatnum:{{#show: {{#var:base skill 3 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 3 raw desc|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 4 subobj|<br />
{{#if: {{{base skill 4|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 4 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 range|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 4 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 4 desc|<br />
<!--<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}<br />
}}<br />
--><br />
{{{base skill 4 bundle|{{#masterdata:SkillDescription| {{#if: {{#var:base skill 4 subobj|}}|{{formatnum:{{#show: {{#var:base skill 4 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}|link-radius-image=true}}}}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 4 raw desc|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
<br />
{{#vardefine:charge skill subobj|<br />
{{#if: {{{charge skill id|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{charge skill id|}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
<!--{{#vardefine:charge skill en name|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:charge skill desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}<br />
}}<br />
}}<br />
<!--<br />
{{#vardefine:charge skill raw desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
--><br />
{{#vardefine:base skill 1 jp-en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 2 jp-en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 3 jp-en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 4 jp-en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
<!-- overrides --><br />
{{#if:{{{skill id 1|}}}|<br />
{{#vardefine:base skill 1 desc|{{#masterdata:Skill|{{{skill id 1}}}|effects}}}}{{#vardefine:base skill 1 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 1 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 2|}}}|<br />
{{#vardefine:base skill 2 desc|{{#masterdata:Skill|{{{skill id 2}}}|effects}}}}{{#vardefine:base skill 2 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 2 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 3|}}}|<br />
{{#vardefine:base skill 3 desc|{{#masterdata:Skill|{{{skill id 3}}}|effects}}}}{{#vardefine:base skill 3 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 3 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 4|}}}|<br />
{{#vardefine:base skill 4 desc|{{#masterdata:Skill|{{{skill id 4}}}|effects}}}}{{#vardefine:base skill 4 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 4 desc}}}}}}|;|\;}}<br />
}}<br />
{{#vardefine:strategy|{{#ifexist:{{{en name|}}}/Strategy|{{{en name|}}}/Strategy|}}}}<br />
{{#vardefine:enemy|{{#ifexist:{{{en name|}}}/Enemy|{{{en name|}}}/Enemy|}}}}<br />
{{#vardefine:transient id|{{{id|{{#if:{{{jp title|}}}|{{#masterdata:Card|{{{jp title|}}}|id:name.title}}}}}}}}}<br />
{{#ifexpr:{{#var:transient id|}}<2|{{#vardefine:transient id|}}}}<br />
{{#vardefine:charge skill weapon|{{Weapons|{{#replace:{{{charge skill pattern|{{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}}}}|Weapon Spread |}}}}}}<br />
{{#vardefine:height|{{#var:transient height|{{{height|}}}}}}}<br />
{{#vardefine:weight|{{#var:transient weight|{{{weight|}}}}}}}<br />
{{#vardefine:summon date|{{#var:transient summon date|{{{summon date|}}}}}}}<br />
{{#vardefine:guild|{{#var:transient en affiliation|{{{guild|}}}}}}}<br />
{{#arraydefine:skin list|{{{cdn skin artwork|}}}|;}}<br />
}}<!--create vars end-->{{#if: {{NAMESPACE}} | <!-- don't create subobj within namespace --> | <!--<br />
<br />
For Has base skill as well as Has illustrator, Has scenario writer and Has voice actor, the subobject is set to "-" if no subobject is available to return a result in queries in order to properly match names to subobjects in Template:Transient list table result format. Otherwise, name, description, unlocked limit break and subobject (for skills) and name and subobject (for voice actor, scenario writer and illustrator) may be mismatched.<br />
<br />
-->{{#subobject:transient{{#vardefineecho:transientnumber|{{#expr:{{#var:transientnumber|-1}}+1}}}}<br />
| Has game context = Transient<br />
| Has ID = {{#var:transient id|}}<br />
| Has character ID = {{{chara id|}}}<br />
| Has Japanese name ={{{jp name|?}}}<br />
| Has English name ={{{en name|?}}}<br />
| Has lowercase English name ={{lc:{{{en name|?}}}}}<br />
| Has Japanese title ={{{jp title|}}}<br />
| Has English title ={{{en title|}}}<br />
| Has Japanese-English title = {{{jp-en title|}}}<br />
| Has filename = {{{filename|}}}<br />
| Has skins = {{#arrayprint:skin list|;|@@@@|{{#ifeq:{{#explode:@@@@|:|0}}|utage-name||@@@@}}}}|+sep=;<br />
| Has artwork = {{#ifexist:File:{{{artwork|}}}.png|File:{{{artwork}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|}}}}<br />
| Has icon = {{#ifexist:File:{{{icon|}}}.png|File:{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:Unknown icon.png}}}}<br />
| Has strategy = {{#var:strategy|}}<br />
| Has enemies = {{#var:enemy|}}<br />
| Has rarity ={{#ifeq: {{{rarity|0}}} | 0 | 0 | {{{rarity}}} }}<br />
| Has card cost ={{#ifeq: {{{cost|0}}} | 0 | 0 | {{{cost}}} }}<br />
| Has variant ={{{variant|Standard}}}<br />
| Has availability ={{#var:availability}}<br />
| Has acquisition ={{{acquisition|}}}<br />
| Has energy ={{#ifeq:{{#var:energy}}|?||{{#var:energy}}}}<br />
| Has weapon type ={{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}<br />
| Has hp value = {{{hp|0}}}<br />
| Has hp growth value = {{{hp growth|0}}}<br />
| Has atk value = {{{atk|0}}}<br />
| Has atk growth value = {{{atk growth|0}}}<br />
| Has charge skill multiplier = {{{charge skill multiplier|0}}}<br />
| Has charge skill weapon type = {{#var:charge skill weapon}}<br />
| Has species = {{{species|}}}<br />
| Has sex = {{{sex|}}}<br />
| Has gate = {{{gate|}}}<br />
| Has summon date = {{#var:summon date}}<br />
| Has weight = {{#var:weight}}<br />
| Has height = {{#var:height}}<br />
| Has guild = {{#var:guild}}<br />
| Has base skill ={{#if:{{{base skill 1|}}}|{{#var:base skill 1 subobj|-}};0;{{{base skill 1}}};{{#var:base skill 1 en name|{{{base skill 1}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 1 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 2|}}}|{{#var:base skill 2 subobj|-}};1;{{{base skill 2}}};{{#var:base skill 2 en name|{{{base skill 2}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 2 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 3|}}}|{{#var:base skill 3 subobj|-}};2;{{{base skill 3}}};{{#var:base skill 3 en name|{{{base skill 3}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 3 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 4|}}}|{{#var:base skill 4 subobj|-}};3;{{{base skill 4}}};{{#var:base skill 4 en name|{{{base skill 4}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 4 id}}}}}<br />
| Has evolved skill = {{#arrayprint:base skill 1 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 2 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 3 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 4 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has charge skill ={{{charge skill name|}}};{{{charge skill jp name|}}};-;{{#var:charge skill weapon}};{{{charge skill id|}}}<br />
| Has illustrator ={{#if:{{{illustrator|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
| ###<br />
| @@@<br />
| {{#var:illustrator subobj {{#var:counter}}|-}};@@@;{{#var:illustrator en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has scenario writer ={{#if:{{{scenario writer|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
| ###<br />
| @@@<br />
| {{#var:scenario writer subobj {{#var:counter}}|-}};@@@;{{#var:scenario writer en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has voice actor ={{#if:{{{voice actor|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
| ###<br />
| @@@<br />
| {{#var:voice actor subobj {{#var:counter}}|-}};@@@;{{#var:voice actor en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
}}<br />
}}<!-- end subobject<br />
-->{{#ifeq:{{#var:transientnumber}}|0|{{#css:<br />
div.transient-infobox {<br />
background-color: #f9f9f9;<br />
padding-bottom: 2px;<br />
position: relative;<br />
width: 850px;<br />
border: 1px solid #aaa;<br />
border-spacing: 0px;<br />
-webkit-text-size-adjust: none;<br />
-moz-text-size-adjust: none;<br />
-ms-text-size-adjust: none;<br />
}<br />
<br />
div.transient-container > .footer {<br />
text-align: center;<br />
padding-left: 75px;<br />
}<br />
<br />
div.transient-infobox > div > .header {<br />
width: auto;<br />
margin: 4px 4px 2px 4px;<br />
padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon {<br />
float: left;<br />
vertical-align: bottom;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon > img {<br />
padding: 1%;<br />
}<br />
<br />
div.transient-infobox > div > .header .weapon-attribute {<br />
position: relative;<br />
top: -27px;<br />
}<br />
<br />
<br />
div.transient-infobox > div > .header .weapon-attribute > img {<br />
position: absolute;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption {<br />
color: #000000;<br />
font-size: 1.5em;<br />
text-align: center;<br />
vertical-align: middle;<br />
width: 86.5%;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .name {<br />
font-weight: bold;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .sub {<br />
font-size: 0.8em;<br />
}<br />
<br />
div.transient-infobox > div > .body {<br />
clear: both;<br />
border-collapse: collapse;<br />
width: 99%;<br />
}<br />
<br />
div.transient-infobox > div > .body tr td {<br />
margin: 0px; padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork {<br />
margin: 0px 2px 4px 4px;<br />
width: 300px;<br />
text-align: center;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork img {<br />
display: inline-block;<br />
max-width: 100%;<br />
height: auto;<br />
width: auto\9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data {<br />
width: 99%;<br />
margin: 0px 2px 2px 2px;<br />
border-collapse: collapse;<br />
}<br />
<br />
div.transient-infobox > div >.body .data tr:not(:first-child) th {<br />
border-top: 2px solid #f9f9f9;<br />
border-right: 2px solid #f9f9f9;<br />
min-width: 100px;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr td {<br />
padding-left: 0.5em;<br />
padding-right: 0.5em;<br />
border-left: 2px solid #f9f9f9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr:not(:first-child) td {<br />
border-top: 2px solid #f9f9f9;<br />
}<br />
<br />
/* fire */<br />
div.fire > .header {<br />
background-color: #ffbfbf;<br />
}<br />
<br />
div.fire > .body .data tr > th {<br />
background-color: #ffd2d0;<br />
}<br />
<br />
div.fire > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffdddc;<br />
}<br />
<br />
/* water */<br />
div.water > .header {<br />
background-color: #bfd9ff;<br />
}<br />
<br />
div.water > .body .data tr > th {<br />
background-color: #d0e3ff;<br />
}<br />
<br />
div.water > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #dceaff;<br />
}<br />
<br />
/* wood */<br />
div.wood > .header {<br />
background-color: #bfffbf;<br />
}<br />
<br />
div.wood > .body .data tr > th {<br />
background-color: #dcffdc;<br />
}<br />
<br />
div.wood > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3ffe3;<br />
}<br />
<br />
/* light */<br />
div.light > .header,<br />
div.aether > .header {<br />
background-color: #ffd4bf;<br />
}<br />
<br />
div.light > .body .data tr > th,<br />
div.aether > .body .data tr > th {<br />
background-color: #ffe0d0;<br />
}<br />
<br />
div.light > .body .data tr > th + th,<br />
width: 100px;<br />
div.aether > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffe8dc;<br />
}<br />
<br />
/* nether */<br />
div.nether > .header,<br />
div.dark > .header {<br />
background-color: #e5ccff;<br />
}<br />
<br />
div.nether > .body .data tr > th,<br />
div.dark > .body .data tr > th {<br />
background-color: #e3d3f3;<br />
}<br />
<br />
div.nether > .body .data tr > th + th,<br />
width: 100px;<br />
div.dark > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f0e0ff;<br />
}<br />
<br />
/* all, demon, none */<br />
div.all > .header,<br />
div.all-round > .header,<br />
div.none > .header {<br />
background-color: #d4d4d4;<br />
}<br />
<br />
div.demon > .header,<br />
div.shadow > .header,<br />
div.infernal > .header {<br />
background-color: #a1a1a1;<br />
}<br />
<br />
div.all > .body .data tr > th,<br />
div.all-round > .body .data tr > th,<br />
div.none > .body .data tr > th {<br />
background-color: #dcdcdc;<br />
}<br />
<br />
div.demon > .body .data tr > th,<br />
div.shadow > .body .data tr > th,<br />
div.infernal > .body .data tr > th {<br />
background-color: #aaaaaa;<br />
}<br />
<br />
div.all > .body .data tr > th + th,<br />
width: 100px;<br />
div.all-round > .body .data tr > th + th,<br />
width: 100px;<br />
div.none > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3e3e3;<br />
}<br />
<br />
div.demon > .body .data tr > th + th,<br />
width: 100px;<br />
div.shadow > .body .data tr > th + th,<br />
width: 100px;<br />
div.infernal > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #b0b0b0;<br />
}<br />
<br />
/* hero */<br />
div.hero > .header,<br />
div.valiant > .header {<br />
background-color: #e9e8ed;<br />
}<br />
<br />
div.hero > .body .data tr > th,<br />
div.valiant > .body .data tr > th {<br />
background-color: #ebeaee;<br />
}<br />
<br />
div.hero > .body .data tr > th + th,<br />
width: 100px;<br />
div.valiant > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f5f4f9;<br />
}<br />
<br />
/* world */<br />
div.world > .header {<br />
background-color: #a67a45;<br />
}<br />
<br />
div.world> .body .data tr > th {<br />
background-color: #ebbe85;<br />
}<br />
<br />
div.world > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffde9f;<br />
}<br />
<br />
div.extended > a > img {<br />
width: 30px;<br />
height: 30px;<br />
}<br />
<br />
ruby > rt {<br />
font-size: 80%;<br />
}<br />
div.tabs {<br />
width: 100%;<br />
}<br />
div.tabs > span {<br />
display: inline-block;<br />
padding: 0px 10px 0px 10px;<br />
text-align: center;<br />
margin: 4px;<br />
}<br />
.transientBox {<br />
position: absolute;<br />
right: 0;<br />
display: inline-block;<br />
<!--width: 320px;--><br />
border: #aaa 1px solid;<br />
padding: 18px;<br />
background-color: #f9f9f9;<br />
max-width: 640px;<br />
}<br />
.spriteSelector {<br />
width: 100%;<br />
display: block;<br />
}<br />
.transientBox > * > .artwork > img {<br />
height: 452px;<br />
width: auto;<br />
}<br />
<br />
.transientBox > * > .body > .data {<br />
width: 100%;<br />
}<br />
<br />
@media only screen and (max-width: 1760px) {<br />
.transientBox {<br />
position: unset;<br />
right: unset;<br />
margin-bottom: 10px;<br />
}<br />
}<br />
<br />
}}<br />
}}<br />
{{#ifeq:{{#var:transientnumber}}|0|<h2>Transient Information</h2><div class='transientBox'><div class="tabs"></div></div>}}<div class="transient-infobox" id="transient{{#var:transientnumber}}"><br />
{{#ifeq:{{#var:transientnumber}}|0|<!--div class="tabs"></div-->}}<br />
<div class="transient-container {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}} transient{{#var:transientnumber}}" data-id="{{#var:transient id|}}"><br />
<div class="header"><br />
<table><br />
<tr><br />
{{#if:{{#var:transient cdn icon|}}||{{#vardefine:transient cdn icon|{{{cdn icon|}}}}}}}<br />
<td class="icon transient{{#var:transientnumber}}">{{#if:{{#var:transient no cdn|}}|[[File:{{{icon}}}.png|60px]]|{{#if:{{#var:transient cdn icon|}}|{{#tag:mediator|{{#var:transient cdn icon|}}|width=60|height=60|loading=lazy}}|{{#ifexist:File:{{{icon|}}}.png|[[File:{{{icon}}}.png|60px]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|60px]]|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}_{{{rarity}}}star_icon.png|60px]]|[[File:Unknown icon.png|60px]]}}}}}}}}}}</td>{{#vardefine:transient cdn icon|}}<br />
<td class="weapon-attribute">{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/ui/button/ui_button_elm_{{#var:energy filename|none}}.png|width=60|height=60|loading=lazy}}{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_weapon_{{#var:weapon type filename|nothing}}.png|width=60|height=60|loading=lazy}}</td><td class="caption"><br />
<div class="name">[{{#if:{{{en title|}}}|{{#if:{{{jp-en title|}}}|<u><span title="{{{jp-en title|}}}">{{{en title}}}</span></u>|{{{en title}}}}}|?}}]&nbsp; {{#if:{{{id|}}}|[https://app.housamo.xyz/cards/{{{id}}}/ {{{en name|?}}}]|{{{en name|?}}}}}<!--{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}--></div><br />
<div class="sub">&#x3010;{{#if:{{{jp title|}}}|{{{jp title}}}|&#xFF1F;}}&#x3011;{{#if:{{{jp name|}}}|{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}{{{jp name}}}|{{#ifeq: {{#var:availability}} | Unobtainable | |&#xFF1F;}}}}</div><br />
</td><br />
<!--{{#if:{{{extended|}}}|<td><div class="extended">[[File:sprite_btn_favorite_on.png|Using the extended template]]</div></td>}}--><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px|link={{Weapon type|{{#var:weapon type}}}}]]|}}</td><br />
}}<br />
</tr><br />
</table><br />
</div><br />
<table class="body"><br />
<tr><br />
{{#if:{{#var:transient cdn artwork|}}||{{#vardefine:transient cdn artwork|{{{cdn artwork|}}}}}}}<br />
<td><div class="transient{{#var:transientnumber}} {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}}"><div class="header"></div><div class="artwork">{{#if:{{#var:transient no cdn|}}|[[File:{{{artwork}}}.png]]|{{#if:{{#var:transient cdn artwork|}}|{{#tag:mediator|{{#var:transient cdn artwork|}}|loading=lazy}}|{{#ifexist:File:{{{artwork|}}}.png|[[File:{{{artwork}}}.png]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png]]|No artwork uploaded.}}|}}|}}}}</div><div class="body" data-chara-a="{{{chara id|}}}" data-chara-b="{{#var:transient chara id|}}"></div></div>{{#vardefine:transient cdn artwork|}}<br />
</td><br />
{{#ifeq: {{{acquisition|}}}|Skin||<br />
<td><br />
<table class="data"><br />
<tr><br />
<!--<th>Acquisition</th><br />
<td>{{{acquisition|?}}}</td>--><br />
{{#if: {{{variant|}}} | {{#ifeq: {{lc:{{{variant}}}}} | standard | |<br />
<th>Variant</th><br />
<td>{{Event link|{{{variant|}}}|unit={{{en name|}}}}}</td><br />
}}<br />
}}<br />
</tr><br />
<tr><br />
{{#ifeq: {{{rarity|0}}} | 0 ||<br />
<th>[[Rarity]]</th><br />
<td>{{{rarity}}}</td><br />
}}<br />
{{#ifeq: {{{cost|0}}} | 0 ||<br />
<th>[[Cost]]</th><br />
<td>{{{cost}}}</td><br />
}}<br />
</tr><br />
<tr><br />
<th>[[HP]]</th><br />
<td>{{{hp|?}}}+{{{hp growth|?}}}*(Lv-1)</td><br />
<th>[[ATK]]</th><br />
<td>{{{atk|?}}}+{{{atk growth|?}}}*(Lv-1)</td><br />
</tr><br />
<tr><br />
<th>HP @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
<th>ATK @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
</tr><br />
<tr><br />
<th>{{Tooltip|Max HP|+15 Lv, +2000 HP}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
<th>{{Tooltip|Max ATK|+15 Lv, +2000 ATK}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
</tr><br />
</table><br />
<table class="data"><br />
<!--<br />
<tr><br />
{{#ifeq:{{Energy|{{#var:energy}}}}|?| |<br />
<th>Energy</th><br />
<td>{{Energy|{{#var:energy}}}}</td><br />
}}<br />
</tr><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<tr><br />
<th>Weapon type</th><br />
<td>{{Weapon type|{{#var:weapon type}}}}</td><br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px]]|}}</td><br />
</tr><br />
}}<br />
--><br />
</table><br />
<!--{{#if: {{#var:base skill 1 subobj|}} | i dont remember if i did this part uncommented when first adding card skins--><br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skills]]</th><br />
</tr><br />
<tr><br />
<!-- {{#if: {{#var:base skill 1 subobj|}}|{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 1 range|0 0 0 0}}">{{#if: {{#var:base skill 1 subobj|}} | [[{{#var:base skill 1 subobj|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }}]] | {{#if:{{{base skill 1|}}}|[[{{{base skill 1}}}]] ({{{base skill 1 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 1 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 2 subobj|}}|{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 2 range|0 0 0 0}}">{{#if: {{#var:base skill 2 subobj|}} | [[{{#var:base skill 2 subobj|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }}]] | {{#if:{{{base skill 2|}}}|[[{{{base skill 2}}}]] ({{{base skill 2 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 2 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 3 subobj|}}|{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 3 range|0 0 0 0}}">{{#if: {{#var:base skill 3 subobj|}} | [[{{#var:base skill 3 subobj|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }}]] | {{#if:{{{base skill 3|}}}|[[{{{base skill 3}}}]] ({{{base skill 3 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 3 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 4 subobj|}}|{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 4 range|0 0 0 0}}">{{#if: {{#var:base skill 4 subobj|}} | [[{{#var:base skill 4 subobj|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }}]] | {{#if:{{{base skill 4|}}}|[[{{{base skill 4}}}]] ({{{base skill 4 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 4 desc| ? }}</td><br />
</tr><br />
</table><br />
{{#if: {{#var:has skill evo|}} |<br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skill Evolution]](s)</th><br />
</tr><br />
<!-- {{#if: {{#var:base skill 1 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 1 evo|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 1 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 2 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 2 evo|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 2 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 3 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 3 evo|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 3 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 4 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 4 evo|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 4 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}--><br />
{{#arrayprint:base skill 1 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 2 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 3 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 4 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
</table><br />
}}<br />
<table class="data"><br />
<tr><br />
<th colspan="3">{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}</span></u>|{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}}}|?}}</th><br />
</tr><br />
<tr><br />
<!--th>{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{{charge skill name}}}</span></u>|{{{charge skill name}}}}}|?}}</th--><br />
<td>{{#if:{{{charge skill name|}}}|{{{charge skill description|?}}}|?}}</td><br />
<td style="width:50px; padding: 0px;">[[File:Weapon Spread {{#var:charge skill weapon|}}.png|50px|link={{#var:charge skill weapon|}}]]{{#if:{{{charge skill multiplier|}}}|<br><div style='text-align:center'>{{{charge skill multiplier}}}<!--~{{#expr:2 * {{{charge skill multiplier}}}}}-->x</div>}}</td><br />
</tr><br />
{{#ifeq:{{#var:availability|}}|Current|<tr><br />
<td colspan="3">{{Equippable AR Equipment|{{{en name|{{{jp name|?}}}}}};{{Weapon type|{{#var:weapon type|?}}}};{{Energy|{{#var:energy|?}}}}}}</td><br />
</tr>}}<br />
</table><br />
<!--}}--><br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th>Illustration</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{illustrator|}}}<br />
| {{#arrayprint:illustrator<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:illustrator subobj {{#var:counter}}|}}<br />
| [[{{#var:illustrator subobj {{#var:counter}}}}|{{#var:illustrator en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Scenario</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{scenario writer|}}}<br />
| {{#arrayprint:scenario writer<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:scenario writer subobj {{#var:counter}}|}}<br />
| [[{{#var:scenario writer subobj {{#var:counter}}}}|{{#var:scenario writer en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Voice</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{voice actor|}}}<br />
| {{#arrayprint:voice actor<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:voice actor subobj {{#var:counter}}|}}<br />
| [[{{#var:voice actor subobj {{#var:counter}}}}|{{#var:voice actor en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
{{#if:{{{species|}}}|<br />
<tr><br />
<th>{{Tooltip|Species|Tends to be based on the transient's skillset}}</th><br />
<td>{{{species}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{sex|}}}|<br />
<tr><br />
<th>{{Tooltip|Gender|As defined in the game data, might not be accurate to reality}}</th><br />
<td>{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 = None<br />
|#default = {{{sex|Unknown gender}}}<br />
}}</td><br />
</tr><br />
}}<br />
{{#if:{{{gate|}}}|<br />
<tr><br />
<th>Gate</th><br />
<td>{{#ifeq:{{{gate|}}}|Unknown|Unknown|[[{{Gate|{{{gate}}}|format=name}}]]}}</td><br />
</tr><br />
}}<br />
{{#if:{{{guild|}}}|<br />
<tr><br />
<th>Guild</th><br />
<td>{{#ifeq:{{{guild|}}}|Unknown|Unknown|{{{guild}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{school|}}}|<br />
<tr><br />
<th>School</th><br />
<td>{{#ifeq:{{{school|}}}|Unknown|Unknown|{{{school}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:weight}}|<br />
<tr><br />
<th>Weight (kg)</th><br />
<td>{{#var:weight}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:height}}|<br />
<tr><br />
<th>Height (cm)</th><br />
<td>{{#var:height}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:summon date}}|<br />
<tr><br />
<th>Summon Date</th><br />
<td>{{#var:summon date}}</td><br />
</tr><br />
}}<br />
</table><br />
{{#if:{{#var:strategy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:strategy}}|{{#if:{{#pos:{{#show:{{#var:strategy}}|?Category|link=none}}|Strategy pages}}|Strategy|Strategy (placeholder)}}]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#if:{{#var:enemy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:enemy}}|Enemy-only]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#ifeq:{{{partial|}}}|true|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">Partial Entry</th><br />
</tr><br />
</table><br />
|}}<br />
</td><br />
|}}<br />
</tr><br />
</table><br />
<div class="footer"></div><br />
<div>{{#if:{{{skin artwork|}}}|{{#tag:galleryscript|{{#ifexist:File:{{{artwork|}}}.png|{{{artwork}}}|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full|}}}};{{{skin artwork|}}}|number={{#var:transientnumber}}}}|}}<br />
{{#if:{{{cdn skin artwork|}}}|{{#tag:masterdataskins|{{{cdn skin artwork|}}}|selector-chara-relations=#charaRelations{{{chara id|0}}}|voice={{#var:transient voice filename|}}|selector-fg=div.transient{{#var:transientnumber}} > .artwork > img|selector-icon=td.icon.transient{{#var:transientnumber}} > img|flags={{#var:transient voice condition|}}}}{{#vardefine:transient voice filename|}}{{#vardefine:transient voice condition|}}|}}</div><br />
</div></div>{{#ifexpr:{{{charge skill id|0}}}>0|{{#masterdata:Skill|{{{charge skill id|0}}}|format=blank}}}}{{#arraydefine:base skill 1 evo|}}{{#arraydefine:base skill 2 evo|}}{{#arraydefine:base skill 3 evo|}}{{#arraydefine:base skill 4 evo|}}{{#vardefine:has skill evo|}}<!--<br />
<br />
auto categorization<br />
<br />
-->{{#if: {{#ifeq: {{{categorize|y}}} | n | n }} <!-- categorize is set to don't categorize --><br />
{{NAMESPACE}} <!-- don't categorize if outside namespace --><br />
| <!-- don't categorize --><br />
|<br />
<!-- new template type -- ><br />
{{#if:{{#var:transient id|}}|[[Category:Transient using new data structure]]|[[Category:Transient page that needs updating]]}}<br />
<!-- energy --><br />
{{#ifeq: {{Energy|{{#var:energy}}}} | ? | [[Category:Transients with unknown energy]] |<br />
[[Category:{{Energy|{{#var:energy}}}} transients]]<br />
}}<br />
<!--species--><br />
[[Category:{{#if:{{{species|}}}|{{{species}}}|Unknown species}} transients]]<br />
<!--gate--><br />
{{#if:{{{gate|}}}|[[Category:Transients from {{Gate|{{{gate}}}|use-name=true}}]]}}<br />
<!--sex--><br />
[[Category:{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 | none = Unknown gender<br />
|#default = {{{sex|Unknown gender}}}<br />
}} transients]]<br />
<!-- weapon type --><br />
{{#ifeq: {{Weapon type|{{{weapon type|}}}}} | ? | [[Category:Transients with unknown weapon type]] |<br />
[[Category:{{Weapon type|{{{weapon type}}}}} transients]]<br />
}}<br />
<br />
<!-- availability --><br />
{{#ifeq: {{#var:availability}} | Current | |<br />
[[Category:{{#var:availability}} transients]]<br />
}}<br />
<br />
}}</includeonly><includeonly>{{#ifeq:{{PAGENAME}}|Transient infobox||{{#ifeq:{{#var:transientnumber|0}}|0|{{#seo:<br />
|title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
|titlemode=replace<br />
|keywords=tokyo,afterschool,summoners,housamo,wiki,東京放課後サモナーズ,放サモ,{{{jp name|}}},{{{en name|}}}<br />
|description={{Star}}{{{rarity|0}}}, {{Energy|{{#var:energy}}}}-typed {{Weapon type|{{#var:weapon type}}}} unit.<br />
|og:image={{filepath:{{#ifexist:File:{{{icon|}}}.png|{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|{{{en name}}}_{{{rarity}}}star_icon.png|}}}}}}}}<br />
|og:title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
}}}}}}</includeonly><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Camouflager&diff=43824
Camouflager
2021-11-27T00:07:55Z
<p>Barry: i wanted to look at them</p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient availability|Unavailable}}<br />
{{#vardefine:transient acquisition|Unobtainable}}<br />
<br />
{{#vardefine:transient en name|Fire Camouflager}}<br />
{{#vardefine:transient jp name|火のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerFire01}}<br />
{{#vardefine:transient artwork|fg_camouflagerFire01}}<br />
{{#masterdata:CardPartial|camouflagerFire01}}<br />
<br />
{{#vardefine:transient en name|Water Camouflager}}<br />
{{#vardefine:transient jp name|水のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerWater01}}<br />
{{#vardefine:transient artwork|fg_camouflagerWater01}}<br />
{{#masterdata:CardPartial|camouflagerWater01}}<br />
<br />
{{#vardefine:transient en name|Earth Camouflager}}<br />
{{#vardefine:transient jp name|木のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerEarth01}}<br />
{{#vardefine:transient artwork|fg_camouflagerEarth01}}<br />
{{#masterdata:CardPartial|camouflagerEarth01}}<br />
<br />
{{#vardefine:transient en name|Light Camouflager}}<br />
{{#vardefine:transient jp name|天のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerLight01}}<br />
{{#vardefine:transient artwork|fg_camouflagerLight01}}<br />
{{#masterdata:CardPartial|camouflagerLight01}}<br />
<br />
{{#vardefine:transient en name|Dark Camouflager}}<br />
{{#vardefine:transient jp name|冥のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerDark01}}<br />
{{#vardefine:transient artwork|fg_camouflagerDark01}}<br />
{{#masterdata:CardPartial|camouflagerDark01}}<br />
<br />
{{#vardefine:transient en name|Evil Camouflager}}<br />
{{#vardefine:transient jp name|魔のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerEvil01}}<br />
{{#vardefine:transient artwork|fg_camouflagerEvil01}}<br />
{{#masterdata:CardPartial|camouflagerEvil01}}<br />
<br />
{{#vardefine:transient en name|Hero Camouflager}}<br />
{{#vardefine:transient jp name|英雄のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerHero01}}<br />
{{#vardefine:transient artwork|fg_camouflagerHero01}}<br />
{{#masterdata:CardPartial|camouflagerHero01}}<br />
<br />
{{#vardefine:transient en name|World Camouflager}}<br />
{{#vardefine:transient jp name|世界のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerWorld01}}<br />
{{#vardefine:transient artwork|fg_camouflagerWorld01}}<br />
{{#masterdata:CardPartial|camouflagerWorld01}}<br />
<br />
== Notes ==<br />
{{Comments}}</div>
Barry
https://housamo.wiki/index.php?title=Camouflager&diff=43823
Camouflager
2021-11-27T00:07:14Z
<p>Barry: Created page with "{{Transient:Unreleased}} {{#vardefine:transient availability|Unavailable}} {{#vardefine:transient acquisition|Unobtainable}} {{#vardefine:transient en name|Fire Camouflager}}..."</p>
<hr />
<div>{{Transient:Unreleased}}<br />
{{#vardefine:transient availability|Unavailable}}<br />
{{#vardefine:transient acquisition|Unobtainable}}<br />
<br />
{{#vardefine:transient en name|Fire Camouflager}}<br />
{{#vardefine:transient jp name|火のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerFire01}}<br />
{{#vardefine:transient artwork|fg_camouflagerFire01}}<br />
{{#masterdata:CardPartial|camouflagerFire01}}<br />
<br />
{{#vardefine:transient en name|Water Camouflager}}<br />
{{#vardefine:transient jp name|水のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerWater01}}<br />
{{#vardefine:transient artwork|fg_camouflagerWater01}}<br />
{{#masterdata:CardPartial|camouflagerWater01}}<br />
<br />
{{#vardefine:transient en name|Earth Camouflager}}<br />
{{#vardefine:transient jp name|木のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerEarth01}}<br />
{{#vardefine:transient artwork|fg_camouflagerEarth01}}<br />
{{#masterdata:CardPartial|camouflagerEarth01}}<br />
<br />
{{#vardefine:transient en name|Light Camouflager}}<br />
{{#vardefine:transient jp name|天のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerLight01}}<br />
{{#vardefine:transient artwork|fg_camouflagerLight01}}<br />
{{#masterdata:CardPartial|camouflagerLight01}}<br />
<br />
{{#vardefine:transient en name|Dark Camouflager}}<br />
{{#vardefine:transient jp name|冥のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerDark01}}<br />
{{#vardefine:transient artwork|fg_camouflagerDark01}}<br />
{{#masterdata:CardPartial|camouflagerDark01}}<br />
<br />
{{#vardefine:transient en name|Evil Camouflager}}<br />
{{#vardefine:transient jp name|魔のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerEvil01}}<br />
{{#vardefine:transient artwork|fg_camouflagerEvil01}}<br />
{{#masterdata:CardPartial|camouflagerEvil01}}<br />
<br />
{{#vardefine:transient en name|Hero Camouflager}}<br />
{{#vardefine:transient jp name|英雄のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerHero01}}<br />
{{#vardefine:transient artwork|fg_camouflagerHero01}}<br />
{{#masterdata:CardPartial|camouflagerHero01}}<br />
<br />
{{#vardefine:transient en name|World Camouflager}}<br />
{{#vardefine:transient jp name|世界のカムフラージャー}}<br />
{{#vardefine:transient icon|icon_camouflagerWorld01}}<br />
{{#vardefine:transient artwork|fg_camouflagerWorld01}}<br />
{{#masterdata:CardPartial|camouflagerWorld01}}<br />
== Notes ==<br />
{{Comments}}</div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_extended_infobox&diff=43559
Template:Transient extended infobox
2021-10-18T15:33:58Z
<p>Barry: </p>
<hr />
<div><includeonly>__NOTOC__{{#if: <!-- define vars --><br />
<br />
{{#vardefine:energy|{{#switch:{{lc:{{{energy|{{{element|}}}}}}}}<br />
| 1 | 火 | fire = 火<br />
| 2 | 水 | water = 水<br />
| 3 | 木 | wood | grass | earth | tree = 木<br />
| 4 | 天 | heaven | holy | light | divine | aether = 天<br />
| 5 | 冥 | dark | nether = 冥<br />
| 6 | 魔 | demon | shadow | infernal = 魔<br />
| 0 | 全 | all | all-round = 全<br />
| 7 | 英雄 | hero | valiant = 英雄<br />
| 8 | 世界 | world = 世界<br />
| 9 | 無 | none = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type|{{#switch:{{lc:{{{weapon type|}}}}}<br />
| 1 | 斬撃 | 斬 | slash = 斬撃<br />
| 3 | 打撃 | 打 | strike | blow = 打撃<br />
| 2 | 突撃 | 突 | pierce | thrust = 突撃<br />
| 4 | 射撃 | 射 | ranged | shot = 射撃<br />
| 5 | 魔法 | 魔 | magic = 魔法<br />
| 7 | 狙撃 | 狙 | snipe = 狙撃<br />
| 6 | 横一文字 | wide slash | wide-slash | wide-slash | long slash = 横一文字<br />
| 8 | 全域 | wide magic | wide-magic | all = 全域<br />
| 0 | 無し = 無し<br />
| 9 | 無 = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type filename|{{#switch:{{#var:weapon type}}<br />
| 無し | none = nothing<br />
| 斬撃 = slash<br />
| 突撃 = thrust<br />
| 打撃 = knock<br />
| 射撃 = shoot<br />
| 魔法 = magic<br />
| 横一文字 = longslash<br />
| 狙撃 = snipe<br />
| 全域 = all<br />
| 無 = nothing<br />
|#default = nothing<br />
}}<br />
}}<br />
<br />
{{#vardefine:energy filename|{{#switch:{{#var:energy}}<br />
| 全 = none<br />
| 火 = fire<br />
| 水 = water<br />
| 木 = earth<br />
| 天 = light<br />
| 冥 = dark<br />
| 魔 = evil<br />
| 英雄 = hero<br />
| 世界 = world<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:availability|{{#switch:{{lc:{{{availability|}}}}}<br />
| limited = Limited<br />
| event = Event<br />
| unavailable = Unobtainable<br />
| unobtainable = Unobtainable<br />
| scheduled = Scheduled<br />
| enemy = Enemy<br />
| current<br />
|#default = Current<br />
}}<br />
}}<br />
<br />
{{#ifeq:{{lc:{{{acquisition|}}}}} | unobtainable | {{#vardefine:availability|Unobtainable}}<br />
}}<br />
<br />
{{#arraydefine:illustrator|{{{illustrator|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Illustrator]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator en name {{#var:counter}}| <br />
{{#if: {{#var:illustrator subobj {{#var:counter}} }}<br />
| {{#show: {{#var:illustrator subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:scenario writer|{{{scenario writer|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Scenario writer]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer en name {{#var:counter}}| <br />
{{#if: {{#var:scenario writer subobj {{#var:counter}} }}<br />
| {{#show: {{#var:scenario writer subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:voice actor|{{#replace:{{{voice actor|}}}|,|;}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Voice actor]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:max lv|{{#switch:{{{rarity|3}}}<br />
| 5 = 70<br />
| 4 = 65<br />
| 3 = 60<br />
| 2 = 55<br />
| 1 = 50<br />
}}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor en name {{#var:counter}}| <br />
{{#if: {{#var:voice actor subobj {{#var:counter}} }}<br />
| {{#show: {{#var:voice actor subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 subobj|<br />
{{#if: {{{base skill 1|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 1 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 1 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 range|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 desc|<br />
<!--<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br> }}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}|link-radius-image=true}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 1 subobj|}}|{{formatnum:{{#show: {{#var:base skill 1 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<br />
<!-- escape semi-colons to not run into issues when setting it as a value in the record property --><br />
<!--<br />
{{#vardefine:base skill 1 raw desc|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 2 subobj|<br />
{{#if: {{{base skill 2|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 2 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 2 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 2 en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 2 range|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 2 desc|<br />
<!--<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 2 subobj|}}|{{formatnum:{{#show: {{#var:base skill 2 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 2 raw desc|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 3 subobj|<br />
{{#if: {{{base skill 3|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 3 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 3 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 3 en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 3 range|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 3 desc|<br />
<!--<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 3 subobj|}}|{{formatnum:{{#show: {{#var:base skill 3 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 3 raw desc|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 4 subobj|<br />
{{#if: {{{base skill 4|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 4 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 range|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 4 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 4 desc|<br />
<!--<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 4 subobj|}}|{{formatnum:{{#show: {{#var:base skill 4 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 4 raw desc|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
<br />
{{#vardefine:charge skill subobj|<br />
{{#if: {{{charge skill id|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{charge skill id|}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
<!--{{#vardefine:charge skill en name|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:charge skill desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}<br />
}}<br />
}}<br />
<!--<br />
{{#vardefine:charge skill raw desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
--><br />
{{#vardefine:base skill 1 jp-en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 2 jp-en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 3 jp-en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 4 jp-en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
<!-- overrides --><br />
{{#if:{{{skill id 1|}}}|<br />
{{#vardefine:base skill 1 desc|{{#masterdata:Skill|{{{skill id 1}}}|effects}}}}{{#vardefine:base skill 1 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 1 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 2|}}}|<br />
{{#vardefine:base skill 2 desc|{{#masterdata:Skill|{{{skill id 2}}}|effects}}}}{{#vardefine:base skill 2 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 2 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 3|}}}|<br />
{{#vardefine:base skill 3 desc|{{#masterdata:Skill|{{{skill id 3}}}|effects}}}}{{#vardefine:base skill 3 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 3 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 4|}}}|<br />
{{#vardefine:base skill 4 desc|{{#masterdata:Skill|{{{skill id 4}}}|effects}}}}{{#vardefine:base skill 4 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 4 desc}}}}}}|;|\;}}<br />
}}<br />
{{#vardefine:strategy|{{#ifexist:{{{en name|}}}/Strategy|{{{en name|}}}/Strategy|}}}}<br />
{{#vardefine:enemy|{{#ifexist:{{{en name|}}}/Enemy|{{{en name|}}}/Enemy|}}}}<br />
{{#vardefine:transient id|{{{id|{{#if:{{{jp title|}}}|{{#masterdata:Card|{{{jp title|}}}|id:name.title}}}}}}}}}<br />
{{#ifexpr:{{#var:transient id|}}<2|{{#vardefine:transient id|}}}}<br />
{{#vardefine:charge skill weapon|{{Weapons|{{#replace:{{{charge skill pattern|{{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}}}}|Weapon Spread |}}}}}}<br />
{{#vardefine:height|{{#var:transient height|{{{height|}}}}}}}<br />
{{#vardefine:weight|{{#var:transient weight|{{{weight|}}}}}}}<br />
{{#vardefine:summon date|{{#var:transient summon date|{{{summon date|}}}}}}}<br />
{{#vardefine:guild|{{#var:transient en affiliation|{{{guild|}}}}}}}<br />
{{#arraydefine:skin list|{{{cdn skin artwork|}}}|;}}<br />
}}<!--create vars end-->{{#if: {{NAMESPACE}} | <!-- don't create subobj within namespace --> | <!--<br />
<br />
For Has base skill as well as Has illustrator, Has scenario writer and Has voice actor, the subobject is set to "-" if no subobject is available to return a result in queries in order to properly match names to subobjects in Template:Transient list table result format. Otherwise, name, description, unlocked limit break and subobject (for skills) and name and subobject (for voice actor, scenario writer and illustrator) may be mismatched.<br />
<br />
-->{{#subobject:transient{{#vardefineecho:transientnumber|{{#expr:{{#var:transientnumber|-1}}+1}}}}<br />
| Has game context = Transient<br />
| Has ID = {{#var:transient id|}}<br />
| Has character ID = {{{chara id|}}}<br />
| Has Japanese name ={{{jp name|?}}}<br />
| Has English name ={{{en name|?}}}<br />
| Has lowercase English name ={{lc:{{{en name|?}}}}}<br />
| Has Japanese title ={{{jp title|}}}<br />
| Has English title ={{{en title|}}}<br />
| Has Japanese-English title = {{{jp-en title|}}}<br />
| Has filename = {{{filename|}}}<br />
| Has skins = {{#arrayprint:skin list|;|@@@@|{{#ifeq:{{#explode:@@@@|:|0}}|utage-name||@@@@}}}}|+sep=;<br />
| Has artwork = {{#ifexist:File:{{{artwork|}}}.png|File:{{{artwork}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|}}}}<br />
| Has icon = {{#ifexist:File:{{{icon|}}}.png|File:{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:Unknown icon.png}}}}<br />
| Has strategy = {{#var:strategy|}}<br />
| Has enemies = {{#var:enemy|}}<br />
| Has rarity ={{#ifeq: {{{rarity|0}}} | 0 | 0 | {{{rarity}}} }}<br />
| Has card cost ={{#ifeq: {{{cost|0}}} | 0 | 0 | {{{cost}}} }}<br />
| Has variant ={{{variant|Standard}}}<br />
| Has availability ={{#var:availability}}<br />
| Has acquisition ={{{acquisition|}}}<br />
| Has energy ={{#ifeq:{{#var:energy}}|?||{{#var:energy}}}}<br />
| Has weapon type ={{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}<br />
| Has hp value = {{{hp|0}}}<br />
| Has hp growth value = {{{hp growth|0}}}<br />
| Has atk value = {{{atk|0}}}<br />
| Has atk growth value = {{{atk growth|0}}}<br />
| Has charge skill multiplier = {{{charge skill multiplier|0}}}<br />
| Has charge skill weapon type = {{#var:charge skill weapon}}<br />
| Has species = {{{species|}}}<br />
| Has sex = {{{sex|}}}<br />
| Has gate = {{{gate|}}}<br />
| Has summon date = {{#var:summon date}}<br />
| Has weight = {{#var:weight}}<br />
| Has height = {{#var:height}}<br />
| Has guild = {{#var:guild}}<br />
| Has base skill ={{#if:{{{base skill 1|}}}|{{#var:base skill 1 subobj|-}};0;{{{base skill 1}}};{{#var:base skill 1 en name|{{{base skill 1}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 1 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 2|}}}|{{#var:base skill 2 subobj|-}};1;{{{base skill 2}}};{{#var:base skill 2 en name|{{{base skill 2}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 2 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 3|}}}|{{#var:base skill 3 subobj|-}};2;{{{base skill 3}}};{{#var:base skill 3 en name|{{{base skill 3}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 3 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 4|}}}|{{#var:base skill 4 subobj|-}};3;{{{base skill 4}}};{{#var:base skill 4 en name|{{{base skill 4}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 4 id}}}}}<br />
| Has evolved skill = {{#arrayprint:base skill 1 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 2 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 3 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 4 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has charge skill ={{{charge skill name|}}};{{{charge skill jp name|}}};-;{{#var:charge skill weapon}};{{{charge skill id|}}}<br />
| Has illustrator ={{#if:{{{illustrator|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
| ###<br />
| @@@<br />
| {{#var:illustrator subobj {{#var:counter}}|-}};@@@;{{#var:illustrator en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has scenario writer ={{#if:{{{scenario writer|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
| ###<br />
| @@@<br />
| {{#var:scenario writer subobj {{#var:counter}}|-}};@@@;{{#var:scenario writer en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has voice actor ={{#if:{{{voice actor|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
| ###<br />
| @@@<br />
| {{#var:voice actor subobj {{#var:counter}}|-}};@@@;{{#var:voice actor en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
}}<br />
}}<!-- end subobject<br />
-->{{#ifeq:{{#var:transientnumber}}|0|{{#css:<br />
div.transient-infobox {<br />
background-color: #f9f9f9;<br />
padding-bottom: 2px;<br />
position: relative;<br />
width: 850px;<br />
border: 1px solid #aaa;<br />
border-spacing: 0px;<br />
-webkit-text-size-adjust: none;<br />
-moz-text-size-adjust: none;<br />
-ms-text-size-adjust: none;<br />
}<br />
<br />
div.transient-container > .footer {<br />
text-align: center;<br />
padding-left: 75px;<br />
}<br />
<br />
div.transient-infobox > div > .header {<br />
width: auto;<br />
margin: 4px 4px 2px 4px;<br />
padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon {<br />
float: left;<br />
vertical-align: bottom;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon > img {<br />
padding: 1%;<br />
}<br />
<br />
div.transient-infobox > div > .header .weapon-attribute {<br />
position: relative;<br />
top: -27px;<br />
}<br />
<br />
<br />
div.transient-infobox > div > .header .weapon-attribute > img {<br />
position: absolute;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption {<br />
color: #000000;<br />
font-size: 1.5em;<br />
text-align: center;<br />
vertical-align: middle;<br />
width: 86.5%;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .name {<br />
font-weight: bold;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .sub {<br />
font-size: 0.8em;<br />
}<br />
<br />
div.transient-infobox > div > .body {<br />
clear: both;<br />
border-collapse: collapse;<br />
width: 99%;<br />
}<br />
<br />
div.transient-infobox > div > .body tr td {<br />
margin: 0px; padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork {<br />
margin: 0px 2px 4px 4px;<br />
width: 300px;<br />
text-align: center;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork img {<br />
display: inline-block;<br />
max-width: 100%;<br />
height: auto;<br />
width: auto\9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data {<br />
width: 99%;<br />
margin: 0px 2px 2px 2px;<br />
border-collapse: collapse;<br />
}<br />
<br />
div.transient-infobox > div >.body .data tr:not(:first-child) th {<br />
border-top: 2px solid #f9f9f9;<br />
border-right: 2px solid #f9f9f9;<br />
min-width: 100px;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr td {<br />
padding-left: 0.5em;<br />
padding-right: 0.5em;<br />
border-left: 2px solid #f9f9f9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr:not(:first-child) td {<br />
border-top: 2px solid #f9f9f9;<br />
}<br />
<br />
/* fire */<br />
div.fire > .header {<br />
background-color: #ffbfbf;<br />
}<br />
<br />
div.fire > .body .data tr > th {<br />
background-color: #ffd2d0;<br />
}<br />
<br />
div.fire > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffdddc;<br />
}<br />
<br />
/* water */<br />
div.water > .header {<br />
background-color: #bfd9ff;<br />
}<br />
<br />
div.water > .body .data tr > th {<br />
background-color: #d0e3ff;<br />
}<br />
<br />
div.water > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #dceaff;<br />
}<br />
<br />
/* wood */<br />
div.wood > .header {<br />
background-color: #bfffbf;<br />
}<br />
<br />
div.wood > .body .data tr > th {<br />
background-color: #dcffdc;<br />
}<br />
<br />
div.wood > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3ffe3;<br />
}<br />
<br />
/* light */<br />
div.light > .header,<br />
div.aether > .header {<br />
background-color: #ffd4bf;<br />
}<br />
<br />
div.light > .body .data tr > th,<br />
div.aether > .body .data tr > th {<br />
background-color: #ffe0d0;<br />
}<br />
<br />
div.light > .body .data tr > th + th,<br />
width: 100px;<br />
div.aether > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffe8dc;<br />
}<br />
<br />
/* nether */<br />
div.nether > .header,<br />
div.dark > .header {<br />
background-color: #e5ccff;<br />
}<br />
<br />
div.nether > .body .data tr > th,<br />
div.dark > .body .data tr > th {<br />
background-color: #e3d3f3;<br />
}<br />
<br />
div.nether > .body .data tr > th + th,<br />
width: 100px;<br />
div.dark > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f0e0ff;<br />
}<br />
<br />
/* all, demon, none */<br />
div.all > .header,<br />
div.all-round > .header,<br />
div.none > .header {<br />
background-color: #d4d4d4;<br />
}<br />
<br />
div.demon > .header,<br />
div.shadow > .header,<br />
div.infernal > .header {<br />
background-color: #a1a1a1;<br />
}<br />
<br />
div.all > .body .data tr > th,<br />
div.all-round > .body .data tr > th,<br />
div.none > .body .data tr > th {<br />
background-color: #dcdcdc;<br />
}<br />
<br />
div.demon > .body .data tr > th,<br />
div.shadow > .body .data tr > th,<br />
div.infernal > .body .data tr > th {<br />
background-color: #aaaaaa;<br />
}<br />
<br />
div.all > .body .data tr > th + th,<br />
width: 100px;<br />
div.all-round > .body .data tr > th + th,<br />
width: 100px;<br />
div.none > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3e3e3;<br />
}<br />
<br />
div.demon > .body .data tr > th + th,<br />
width: 100px;<br />
div.shadow > .body .data tr > th + th,<br />
width: 100px;<br />
div.infernal > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #b0b0b0;<br />
}<br />
<br />
/* hero */<br />
div.hero > .header,<br />
div.valiant > .header {<br />
background-color: #e9e8ed;<br />
}<br />
<br />
div.hero > .body .data tr > th,<br />
div.valiant > .body .data tr > th {<br />
background-color: #ebeaee;<br />
}<br />
<br />
div.hero > .body .data tr > th + th,<br />
width: 100px;<br />
div.valiant > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f5f4f9;<br />
}<br />
<br />
/* world */<br />
div.world > .header {<br />
background-color: #a67a45;<br />
}<br />
<br />
div.world> .body .data tr > th {<br />
background-color: #ebbe85;<br />
}<br />
<br />
div.world > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffde9f;<br />
}<br />
<br />
div.extended > a > img {<br />
width: 30px;<br />
height: 30px;<br />
}<br />
<br />
ruby > rt {<br />
font-size: 80%;<br />
}<br />
div.tabs {<br />
width: 100%;<br />
}<br />
div.tabs > span {<br />
display: inline-block;<br />
padding: 0px 10px 0px 10px;<br />
text-align: center;<br />
margin: 4px;<br />
}<br />
.transientBox {<br />
position: absolute;<br />
right: 0;<br />
display: inline-block;<br />
<!--width: 320px;--><br />
border: #aaa 1px solid;<br />
padding: 18px;<br />
background-color: #f9f9f9;<br />
max-width: 640px;<br />
}<br />
.spriteSelector {<br />
width: 100%;<br />
display: block;<br />
}<br />
.transientBox > * > .artwork > img {<br />
height: 452px;<br />
width: auto;<br />
}<br />
<br />
.transientBox > * > .body > .data {<br />
width: 100%;<br />
}<br />
<br />
@media only screen and (max-width: 1760px) {<br />
.transientBox {<br />
position: unset;<br />
right: unset;<br />
margin-bottom: 10px;<br />
}<br />
}<br />
<br />
}}<br />
}}<br />
{{#ifeq:{{#var:transientnumber}}|0|<h2>Transient Information</h2><div class='transientBox'><div class="tabs"></div></div>}}<div class="transient-infobox" id="transient{{#var:transientnumber}}"><br />
{{#ifeq:{{#var:transientnumber}}|0|<!--div class="tabs"></div-->}}<br />
<div class="transient-container {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}} transient{{#var:transientnumber}}" data-id="{{#var:transient id|}}"><br />
<div class="header"><br />
<table><br />
<tr><br />
{{#if:{{#var:transient cdn icon|}}||{{#vardefine:transient cdn icon|{{{cdn icon|}}}}}}}<br />
<td class="icon transient{{#var:transientnumber}}">{{#if:{{#var:transient no cdn|}}|[[File:{{{icon}}}.png|60px]]|{{#if:{{#var:transient cdn icon|}}|{{#tag:mediator|{{#var:transient cdn icon|}}|width=60|height=60|loading=lazy}}|{{#ifexist:File:{{{icon|}}}.png|[[File:{{{icon}}}.png|60px]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|60px]]|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}_{{{rarity}}}star_icon.png|60px]]|[[File:Unknown icon.png|60px]]}}}}}}}}}}</td>{{#vardefine:transient cdn icon|}}<br />
<td class="weapon-attribute">{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/ui/button/ui_button_elm_{{#var:energy filename|none}}.png|width=60|height=60|loading=lazy}}{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_weapon_{{#var:weapon type filename|nothing}}.png|width=60|height=60|loading=lazy}}</td><td class="caption"><br />
<div class="name">[{{#if:{{{en title|}}}|{{#if:{{{jp-en title|}}}|<u><span title="{{{jp-en title|}}}">{{{en title}}}</span></u>|{{{en title}}}}}|?}}]&nbsp; {{#if:{{{id|}}}|[https://app.housamo.xyz/cards/{{{id}}}/ {{{en name|?}}}]|{{{en name|?}}}}}<!--{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}--></div><br />
<div class="sub">&#x3010;{{#if:{{{jp title|}}}|{{{jp title}}}|&#xFF1F;}}&#x3011;{{#if:{{{jp name|}}}|{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}{{{jp name}}}|{{#ifeq: {{#var:availability}} | Unobtainable | |&#xFF1F;}}}}</div><br />
</td><br />
<!--{{#if:{{{extended|}}}|<td><div class="extended">[[File:sprite_btn_favorite_on.png|Using the extended template]]</div></td>}}--><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px|link={{Weapon type|{{#var:weapon type}}}}]]|}}</td><br />
}}<br />
</tr><br />
</table><br />
</div><br />
<table class="body"><br />
<tr><br />
{{#if:{{#var:transient cdn artwork|}}||{{#vardefine:transient cdn artwork|{{{cdn artwork|}}}}}}}<br />
<td><div class="transient{{#var:transientnumber}} {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}}"><div class="header"></div><div class="artwork">{{#if:{{#var:transient no cdn|}}|[[File:{{{artwork}}}.png]]|{{#if:{{#var:transient cdn artwork|}}|{{#tag:mediator|{{#var:transient cdn artwork|}}|loading=lazy}}|{{#ifexist:File:{{{artwork|}}}.png|[[File:{{{artwork}}}.png]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png]]|No artwork uploaded.}}|}}|}}}}</div><div class="body" data-chara-a="{{{chara id|}}}" data-chara-b="{{#var:transient chara id|}}"></div></div>{{#vardefine:transient cdn artwork|}}<br />
</td><br />
{{#ifeq: {{{acquisition|}}}|Skin||<br />
<td><br />
<table class="data"><br />
<tr><br />
<!--<th>Acquisition</th><br />
<td>{{{acquisition|?}}}</td>--><br />
{{#if: {{{variant|}}} | {{#ifeq: {{lc:{{{variant}}}}} | standard | |<br />
<th>Variant</th><br />
<td>{{Event link|{{{variant|}}}|unit={{{en name|}}}}}</td><br />
}}<br />
}}<br />
</tr><br />
<tr><br />
{{#ifeq: {{{rarity|0}}} | 0 ||<br />
<th>[[Rarity]]</th><br />
<td>{{{rarity}}}</td><br />
}}<br />
{{#ifeq: {{{cost|0}}} | 0 ||<br />
<th>[[Cost]]</th><br />
<td>{{{cost}}}</td><br />
}}<br />
</tr><br />
<tr><br />
<th>[[HP]]</th><br />
<td>{{{hp|?}}}+{{{hp growth|?}}}*(Lv-1)</td><br />
<th>[[ATK]]</th><br />
<td>{{{atk|?}}}+{{{atk growth|?}}}*(Lv-1)</td><br />
</tr><br />
<tr><br />
<th>HP @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
<th>ATK @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
</tr><br />
<tr><br />
<th>{{Tooltip|Max HP|+15 Lv, +2000 HP}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
<th>{{Tooltip|Max ATK|+15 Lv, +2000 ATK}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
</tr><br />
</table><br />
<table class="data"><br />
<!--<br />
<tr><br />
{{#ifeq:{{Energy|{{#var:energy}}}}|?| |<br />
<th>Energy</th><br />
<td>{{Energy|{{#var:energy}}}}</td><br />
}}<br />
</tr><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<tr><br />
<th>Weapon type</th><br />
<td>{{Weapon type|{{#var:weapon type}}}}</td><br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px]]|}}</td><br />
</tr><br />
}}<br />
--><br />
</table><br />
<!--{{#if: {{#var:base skill 1 subobj|}} | i dont remember if i did this part uncommented when first adding card skins--><br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skills]]</th><br />
</tr><br />
<tr><br />
<!-- {{#if: {{#var:base skill 1 subobj|}}|{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 1 range|0 0 0 0}}">{{#if: {{#var:base skill 1 subobj|}} | [[{{#var:base skill 1 subobj|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }}]] | {{#if:{{{base skill 1|}}}|[[{{{base skill 1}}}]] ({{{base skill 1 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 1 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 2 subobj|}}|{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 2 range|0 0 0 0}}">{{#if: {{#var:base skill 2 subobj|}} | [[{{#var:base skill 2 subobj|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }}]] | {{#if:{{{base skill 2|}}}|[[{{{base skill 2}}}]] ({{{base skill 2 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 2 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 3 subobj|}}|{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 3 range|0 0 0 0}}">{{#if: {{#var:base skill 3 subobj|}} | [[{{#var:base skill 3 subobj|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }}]] | {{#if:{{{base skill 3|}}}|[[{{{base skill 3}}}]] ({{{base skill 3 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 3 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 4 subobj|}}|{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 4 range|0 0 0 0}}">{{#if: {{#var:base skill 4 subobj|}} | [[{{#var:base skill 4 subobj|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }}]] | {{#if:{{{base skill 4|}}}|[[{{{base skill 4}}}]] ({{{base skill 4 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 4 desc| ? }}</td><br />
</tr><br />
</table><br />
{{#if: {{#var:has skill evo|}} |<br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skill Evolution]](s)</th><br />
</tr><br />
<!-- {{#if: {{#var:base skill 1 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 1 evo|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 1 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 2 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 2 evo|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 2 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 3 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 3 evo|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 3 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 4 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 4 evo|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 4 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}--><br />
{{#arrayprint:base skill 1 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 2 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 3 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 4 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
</table><br />
}}<br />
<table class="data"><br />
<tr><br />
<th colspan="3">{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}</span></u>|{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}}}|?}}</th><br />
</tr><br />
<tr><br />
<!--th>{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{{charge skill name}}}</span></u>|{{{charge skill name}}}}}|?}}</th--><br />
<td>{{#if:{{{charge skill name|}}}|{{{charge skill description|?}}}|?}}</td><br />
<td style="width:50px; padding: 0px;">[[File:Weapon Spread {{#var:charge skill weapon|}}.png|50px|link={{#var:charge skill weapon|}}]]{{#if:{{{charge skill multiplier|}}}|<br><div style='text-align:center'>{{{charge skill multiplier}}}<!--~{{#expr:2 * {{{charge skill multiplier}}}}}-->x</div>}}</td><br />
</tr><br />
{{#ifeq:{{#var:availability|}}|Current|<tr><br />
<td colspan="3">{{Equippable AR Equipment|{{{en name|{{{jp name|?}}}}}};{{Weapon type|{{#var:weapon type|?}}}};{{Energy|{{#var:energy|?}}}}}}</td><br />
</tr>}}<br />
</table><br />
<!--}}--><br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th>Illustration</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{illustrator|}}}<br />
| {{#arrayprint:illustrator<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:illustrator subobj {{#var:counter}}|}}<br />
| [[{{#var:illustrator subobj {{#var:counter}}}}|{{#var:illustrator en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Scenario</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{scenario writer|}}}<br />
| {{#arrayprint:scenario writer<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:scenario writer subobj {{#var:counter}}|}}<br />
| [[{{#var:scenario writer subobj {{#var:counter}}}}|{{#var:scenario writer en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Voice</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{voice actor|}}}<br />
| {{#arrayprint:voice actor<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:voice actor subobj {{#var:counter}}|}}<br />
| [[{{#var:voice actor subobj {{#var:counter}}}}|{{#var:voice actor en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
{{#if:{{{species|}}}|<br />
<tr><br />
<th>{{Tooltip|Species|Tends to be based on the transient's skillset}}</th><br />
<td>{{{species}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{sex|}}}|<br />
<tr><br />
<th>{{Tooltip|Gender|As defined in the game data, might not be accurate to reality}}</th><br />
<td>{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 = None<br />
|#default = {{{sex|Unknown gender}}}<br />
}}</td><br />
</tr><br />
}}<br />
{{#if:{{{gate|}}}|<br />
<tr><br />
<th>Gate</th><br />
<td>{{#ifeq:{{{gate|}}}|Unknown|Unknown|[[{{Gate|{{{gate}}}|format=name}}]]}}</td><br />
</tr><br />
}}<br />
{{#if:{{{guild|}}}|<br />
<tr><br />
<th>Guild</th><br />
<td>{{#ifeq:{{{guild|}}}|Unknown|Unknown|{{{guild}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{school|}}}|<br />
<tr><br />
<th>School</th><br />
<td>{{#ifeq:{{{school|}}}|Unknown|Unknown|{{{school}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:weight}}|<br />
<tr><br />
<th>Weight (kg)</th><br />
<td>{{#var:weight}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:height}}|<br />
<tr><br />
<th>Height (cm)</th><br />
<td>{{#var:height}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:summon date}}|<br />
<tr><br />
<th>Summon Date</th><br />
<td>{{#var:summon date}}</td><br />
</tr><br />
}}<br />
</table><br />
{{#if:{{#var:strategy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:strategy}}|{{#if:{{#pos:{{#show:{{#var:strategy}}|?Category|link=none}}|Strategy pages}}|Strategy|Strategy (placeholder)}}]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#if:{{#var:enemy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:enemy}}|Enemy-only]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#ifeq:{{{partial|}}}|true|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">Partial Entry</th><br />
</tr><br />
</table><br />
|}}<br />
</td><br />
|}}<br />
</tr><br />
</table><br />
<div class="footer"></div><br />
<div>{{#if:{{{skin artwork|}}}|{{#tag:galleryscript|{{#ifexist:File:{{{artwork|}}}.png|{{{artwork}}}|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full|}}}};{{{skin artwork|}}}|number={{#var:transientnumber}}}}|}}<br />
{{#if:{{{cdn skin artwork|}}}|{{#tag:masterdataskins|{{{cdn skin artwork|}}}|selector-chara-relations=#charaRelations{{{chara id|0}}}|voice={{#var:transient voice filename|}}|selector-fg=div.transient{{#var:transientnumber}} > .artwork > img|selector-icon=td.icon.transient{{#var:transientnumber}} > img|flags={{#var:transient voice condition|}}}}{{#vardefine:transient voice filename|}}{{#vardefine:transient voice condition|}}|}}</div><br />
</div></div>{{#ifexpr:{{{charge skill id|0}}}>0|{{#masterdata:Skill|{{{charge skill id|0}}}|format=blank}}}}{{#arraydefine:base skill 1 evo|}}{{#arraydefine:base skill 2 evo|}}{{#arraydefine:base skill 3 evo|}}{{#arraydefine:base skill 4 evo|}}{{#vardefine:has skill evo|}}<!--<br />
<br />
auto categorization<br />
<br />
-->{{#if: {{#ifeq: {{{categorize|y}}} | n | n }} <!-- categorize is set to don't categorize --><br />
{{NAMESPACE}} <!-- don't categorize if outside namespace --><br />
| <!-- don't categorize --><br />
|<br />
<!-- new template type -- ><br />
{{#if:{{#var:transient id|}}|[[Category:Transient using new data structure]]|[[Category:Transient page that needs updating]]}}<br />
<!-- energy --><br />
{{#ifeq: {{Energy|{{#var:energy}}}} | ? | [[Category:Transients with unknown energy]] |<br />
[[Category:{{Energy|{{#var:energy}}}} transients]]<br />
}}<br />
<!--species--><br />
[[Category:{{#if:{{{species|}}}|{{{species}}}|Unknown species}} transients]]<br />
<!--gate--><br />
{{#if:{{{gate|}}}|[[Category:Transients from {{Gate|{{{gate}}}|use-name=true}}]]}}<br />
<!--sex--><br />
[[Category:{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 | none = Unknown gender<br />
|#default = {{{sex|Unknown gender}}}<br />
}} transients]]<br />
<!-- weapon type --><br />
{{#ifeq: {{Weapon type|{{{weapon type|}}}}} | ? | [[Category:Transients with unknown weapon type]] |<br />
[[Category:{{Weapon type|{{{weapon type}}}}} transients]]<br />
}}<br />
<br />
<!-- availability --><br />
{{#ifeq: {{#var:availability}} | Current | |<br />
[[Category:{{#var:availability}} transients]]<br />
}}<br />
<br />
}}</includeonly><includeonly>{{#ifeq:{{PAGENAME}}|Transient infobox||{{#ifeq:{{#var:transientnumber|0}}|0|{{#seo:<br />
|title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
|titlemode=replace<br />
|keywords=tokyo,afterschool,summoners,housamo,wiki,東京放課後サモナーズ,放サモ,{{{jp name|}}},{{{en name|}}}<br />
|description={{Star}}{{{rarity|0}}}, {{Energy|{{#var:energy}}}}-typed {{Weapon type|{{#var:weapon type}}}} unit.<br />
|og:image={{filepath:{{#ifexist:File:{{{icon|}}}.png|{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|{{{en name}}}_{{{rarity}}}star_icon.png|}}}}}}}}<br />
|og:title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
}}}}}}</includeonly><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_character&diff=43558
Template:Transient character
2021-10-18T15:28:41Z
<p>Barry: </p>
<hr />
<div><includeonly><onlyinclude>{{Transient icon|id={{#ask:<br />
[[Has game context::Transient]]<br />
[[Has character ID::{{{id|{{{1|}}}}}}]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
|mainlabel=-<br />
|?Has ID=<br />
}}}}<div data-test="{{{id|{{{1|}}}}}}" data-test-b="{{{1|}}}"></div></onlyinclude></includeonly>== Examples ==<br />
{{Transient character|109}}<br />
<br />
{{Transient character|143}}<br />
<br />
{{Transient character|150}}</div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_character&diff=43557
Template:Transient character
2021-10-18T15:06:04Z
<p>Barry: </p>
<hr />
<div><includeonly><onlyinclude>{{Transient icon|id={{#ask:<br />
[[Has game context::Transient]]<br />
[[Has character ID::{{{id|{{{1|}}}}}}]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
|?Has ID<br />
}}}}<div data-test="{{{id|{{{1|}}}}}}" data-test-b="{{{1|}}}"></div></onlyinclude></includeonly>== Examples ==<br />
{{Transient character|109}}<br />
<br />
{{Transient character|143}}<br />
<br />
{{Transient character|150}}</div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_character&diff=43556
Template:Transient character
2021-10-18T15:04:50Z
<p>Barry: </p>
<hr />
<div><includeonly><onlyinclude>{{Transient icon|id={{#ask:<br />
[[Has game context::Transient]]<br />
[[Has character ID::{{{id|{{{1|}}}}}}]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
|?Has ID<br />
}}}}<div data-test="{{{id|}}}" data-test-b="{{{1|}}}"></div></onlyinclude></includeonly>== Examples ==<br />
{{Transient character|109}}<br />
<br />
{{Transient character|143}}<br />
<br />
{{Transient character|150}}</div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_extended_infobox&diff=43555
Template:Transient extended infobox
2021-10-18T14:59:35Z
<p>Barry: </p>
<hr />
<div><includeonly>__NOTOC__{{#if: <!-- define vars --><br />
<br />
{{#vardefine:energy|{{#switch:{{lc:{{{energy|{{{element|}}}}}}}}<br />
| 1 | 火 | fire = 火<br />
| 2 | 水 | water = 水<br />
| 3 | 木 | wood | grass | earth | tree = 木<br />
| 4 | 天 | heaven | holy | light | divine | aether = 天<br />
| 5 | 冥 | dark | nether = 冥<br />
| 6 | 魔 | demon | shadow | infernal = 魔<br />
| 0 | 全 | all | all-round = 全<br />
| 7 | 英雄 | hero | valiant = 英雄<br />
| 8 | 世界 | world = 世界<br />
| 9 | 無 | none = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type|{{#switch:{{lc:{{{weapon type|}}}}}<br />
| 1 | 斬撃 | 斬 | slash = 斬撃<br />
| 3 | 打撃 | 打 | strike | blow = 打撃<br />
| 2 | 突撃 | 突 | pierce | thrust = 突撃<br />
| 4 | 射撃 | 射 | ranged | shot = 射撃<br />
| 5 | 魔法 | 魔 | magic = 魔法<br />
| 7 | 狙撃 | 狙 | snipe = 狙撃<br />
| 6 | 横一文字 | wide slash | wide-slash | wide-slash | long slash = 横一文字<br />
| 8 | 全域 | wide magic | wide-magic | all = 全域<br />
| 0 | 無し = 無し<br />
| 9 | 無 = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type filename|{{#switch:{{#var:weapon type}}<br />
| 無し | none = nothing<br />
| 斬撃 = slash<br />
| 突撃 = thrust<br />
| 打撃 = knock<br />
| 射撃 = shoot<br />
| 魔法 = magic<br />
| 横一文字 = longslash<br />
| 狙撃 = snipe<br />
| 全域 = all<br />
| 無 = nothing<br />
|#default = nothing<br />
}}<br />
}}<br />
<br />
{{#vardefine:energy filename|{{#switch:{{#var:energy}}<br />
| 全 = none<br />
| 火 = fire<br />
| 水 = water<br />
| 木 = earth<br />
| 天 = light<br />
| 冥 = dark<br />
| 魔 = evil<br />
| 英雄 = hero<br />
| 世界 = world<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:availability|{{#switch:{{lc:{{{availability|}}}}}<br />
| limited = Limited<br />
| event = Event<br />
| unavailable = Unobtainable<br />
| unobtainable = Unobtainable<br />
| scheduled = Scheduled<br />
| enemy = Enemy<br />
| current<br />
|#default = Current<br />
}}<br />
}}<br />
<br />
{{#ifeq:{{lc:{{{acquisition|}}}}} | unobtainable | {{#vardefine:availability|Unobtainable}}<br />
}}<br />
<br />
{{#arraydefine:illustrator|{{{illustrator|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Illustrator]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator en name {{#var:counter}}| <br />
{{#if: {{#var:illustrator subobj {{#var:counter}} }}<br />
| {{#show: {{#var:illustrator subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:scenario writer|{{{scenario writer|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Scenario writer]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer en name {{#var:counter}}| <br />
{{#if: {{#var:scenario writer subobj {{#var:counter}} }}<br />
| {{#show: {{#var:scenario writer subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:voice actor|{{#replace:{{{voice actor|}}}|,|;}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Voice actor]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:max lv|{{#switch:{{{rarity|3}}}<br />
| 5 = 70<br />
| 4 = 65<br />
| 3 = 60<br />
| 2 = 55<br />
| 1 = 50<br />
}}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor en name {{#var:counter}}| <br />
{{#if: {{#var:voice actor subobj {{#var:counter}} }}<br />
| {{#show: {{#var:voice actor subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 subobj|<br />
{{#if: {{{base skill 1|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 1 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 1 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 range|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 desc|<br />
<!--<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br> }}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}|link-radius-image=true}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 1 subobj|}}|{{formatnum:{{#show: {{#var:base skill 1 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<br />
<!-- escape semi-colons to not run into issues when setting it as a value in the record property --><br />
<!--<br />
{{#vardefine:base skill 1 raw desc|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 2 subobj|<br />
{{#if: {{{base skill 2|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 2 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 2 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 2 en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 2 range|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 2 desc|<br />
<!--<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 2 subobj|}}|{{formatnum:{{#show: {{#var:base skill 2 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 2 raw desc|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 3 subobj|<br />
{{#if: {{{base skill 3|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 3 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 3 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 3 en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 3 range|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 3 desc|<br />
<!--<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 3 subobj|}}|{{formatnum:{{#show: {{#var:base skill 3 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 3 raw desc|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 4 subobj|<br />
{{#if: {{{base skill 4|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 4 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 range|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 4 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 4 desc|<br />
<!--<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 4 subobj|}}|{{formatnum:{{#show: {{#var:base skill 4 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 4 raw desc|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
<br />
{{#vardefine:charge skill subobj|<br />
{{#if: {{{charge skill id|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{charge skill id|}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
<!--{{#vardefine:charge skill en name|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:charge skill desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}<br />
}}<br />
}}<br />
<!--<br />
{{#vardefine:charge skill raw desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
--><br />
{{#vardefine:base skill 1 jp-en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 2 jp-en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 3 jp-en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 4 jp-en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
<!-- overrides --><br />
{{#if:{{{skill id 1|}}}|<br />
{{#vardefine:base skill 1 desc|{{#masterdata:Skill|{{{skill id 1}}}|effects}}}}{{#vardefine:base skill 1 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 1 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 2|}}}|<br />
{{#vardefine:base skill 2 desc|{{#masterdata:Skill|{{{skill id 2}}}|effects}}}}{{#vardefine:base skill 2 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 2 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 3|}}}|<br />
{{#vardefine:base skill 3 desc|{{#masterdata:Skill|{{{skill id 3}}}|effects}}}}{{#vardefine:base skill 3 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 3 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 4|}}}|<br />
{{#vardefine:base skill 4 desc|{{#masterdata:Skill|{{{skill id 4}}}|effects}}}}{{#vardefine:base skill 4 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 4 desc}}}}}}|;|\;}}<br />
}}<br />
{{#vardefine:strategy|{{#ifexist:{{{en name|}}}/Strategy|{{{en name|}}}/Strategy|}}}}<br />
{{#vardefine:enemy|{{#ifexist:{{{en name|}}}/Enemy|{{{en name|}}}/Enemy|}}}}<br />
{{#vardefine:transient id|{{{id|{{#if:{{{jp title|}}}|{{#masterdata:Card|{{{jp title|}}}|id:name.title}}}}}}}}}<br />
{{#ifexpr:{{#var:transient id|}}<2|{{#vardefine:transient id|}}}}<br />
{{#vardefine:charge skill weapon|{{Weapons|{{#replace:{{{charge skill pattern|{{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}}}}|Weapon Spread |}}}}}}<br />
{{#vardefine:height|{{#var:transient height|{{{height|}}}}}}}<br />
{{#vardefine:weight|{{#var:transient weight|{{{weight|}}}}}}}<br />
{{#vardefine:summon date|{{#var:transient summon date|{{{summon date|}}}}}}}<br />
{{#vardefine:guild|{{#var:transient en affiliation|{{{guild|}}}}}}}<br />
{{#arraydefine:skin list|{{{cdn skin artwork|}}}|;}}<br />
}}<!--create vars end-->{{#if: {{NAMESPACE}} | <!-- don't create subobj within namespace --> | <!--<br />
<br />
For Has base skill as well as Has illustrator, Has scenario writer and Has voice actor, the subobject is set to "-" if no subobject is available to return a result in queries in order to properly match names to subobjects in Template:Transient list table result format. Otherwise, name, description, unlocked limit break and subobject (for skills) and name and subobject (for voice actor, scenario writer and illustrator) may be mismatched.<br />
<br />
-->{{#subobject:transient{{#vardefineecho:transientnumber|{{#expr:{{#var:transientnumber|-1}}+1}}}}<br />
| Has game context = Transient<br />
| Has ID = {{#var:transient id|}}<br />
| Has character ID = {{{chara id|}}<br />
| Has Japanese name ={{{jp name|?}}}<br />
| Has English name ={{{en name|?}}}<br />
| Has lowercase English name ={{lc:{{{en name|?}}}}}<br />
| Has Japanese title ={{{jp title|}}}<br />
| Has English title ={{{en title|}}}<br />
| Has Japanese-English title = {{{jp-en title|}}}<br />
| Has filename = {{{filename|}}}<br />
| Has skins = {{#arrayprint:skin list|;|@@@@|{{#ifeq:{{#explode:@@@@|:|0}}|utage-name||@@@@}}}}|+sep=;<br />
| Has artwork = {{#ifexist:File:{{{artwork|}}}.png|File:{{{artwork}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|}}}}<br />
| Has icon = {{#ifexist:File:{{{icon|}}}.png|File:{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:Unknown icon.png}}}}<br />
| Has strategy = {{#var:strategy|}}<br />
| Has enemies = {{#var:enemy|}}<br />
| Has rarity ={{#ifeq: {{{rarity|0}}} | 0 | 0 | {{{rarity}}} }}<br />
| Has card cost ={{#ifeq: {{{cost|0}}} | 0 | 0 | {{{cost}}} }}<br />
| Has variant ={{{variant|Standard}}}<br />
| Has availability ={{#var:availability}}<br />
| Has acquisition ={{{acquisition|}}}<br />
| Has energy ={{#ifeq:{{#var:energy}}|?||{{#var:energy}}}}<br />
| Has weapon type ={{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}<br />
| Has hp value = {{{hp|0}}}<br />
| Has hp growth value = {{{hp growth|0}}}<br />
| Has atk value = {{{atk|0}}}<br />
| Has atk growth value = {{{atk growth|0}}}<br />
| Has charge skill multiplier = {{{charge skill multiplier|0}}}<br />
| Has charge skill weapon type = {{#var:charge skill weapon}}<br />
| Has species = {{{species|}}}<br />
| Has sex = {{{sex|}}}<br />
| Has gate = {{{gate|}}}<br />
| Has summon date = {{#var:summon date}}<br />
| Has weight = {{#var:weight}}<br />
| Has height = {{#var:height}}<br />
| Has guild = {{#var:guild}}<br />
| Has base skill ={{#if:{{{base skill 1|}}}|{{#var:base skill 1 subobj|-}};0;{{{base skill 1}}};{{#var:base skill 1 en name|{{{base skill 1}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 1 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 2|}}}|{{#var:base skill 2 subobj|-}};1;{{{base skill 2}}};{{#var:base skill 2 en name|{{{base skill 2}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 2 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 3|}}}|{{#var:base skill 3 subobj|-}};2;{{{base skill 3}}};{{#var:base skill 3 en name|{{{base skill 3}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 3 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 4|}}}|{{#var:base skill 4 subobj|-}};3;{{{base skill 4}}};{{#var:base skill 4 en name|{{{base skill 4}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 4 id}}}}}<br />
| Has evolved skill = {{#arrayprint:base skill 1 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 2 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 3 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 4 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has charge skill ={{{charge skill name|}}};{{{charge skill jp name|}}};-;{{#var:charge skill weapon}};{{{charge skill id|}}}<br />
| Has illustrator ={{#if:{{{illustrator|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
| ###<br />
| @@@<br />
| {{#var:illustrator subobj {{#var:counter}}|-}};@@@;{{#var:illustrator en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has scenario writer ={{#if:{{{scenario writer|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
| ###<br />
| @@@<br />
| {{#var:scenario writer subobj {{#var:counter}}|-}};@@@;{{#var:scenario writer en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has voice actor ={{#if:{{{voice actor|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
| ###<br />
| @@@<br />
| {{#var:voice actor subobj {{#var:counter}}|-}};@@@;{{#var:voice actor en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
}}<br />
}}<!-- end subobject<br />
-->{{#ifeq:{{#var:transientnumber}}|0|{{#css:<br />
div.transient-infobox {<br />
background-color: #f9f9f9;<br />
padding-bottom: 2px;<br />
position: relative;<br />
width: 850px;<br />
border: 1px solid #aaa;<br />
border-spacing: 0px;<br />
-webkit-text-size-adjust: none;<br />
-moz-text-size-adjust: none;<br />
-ms-text-size-adjust: none;<br />
}<br />
<br />
div.transient-container > .footer {<br />
text-align: center;<br />
padding-left: 75px;<br />
}<br />
<br />
div.transient-infobox > div > .header {<br />
width: auto;<br />
margin: 4px 4px 2px 4px;<br />
padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon {<br />
float: left;<br />
vertical-align: bottom;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon > img {<br />
padding: 1%;<br />
}<br />
<br />
div.transient-infobox > div > .header .weapon-attribute {<br />
position: relative;<br />
top: -27px;<br />
}<br />
<br />
<br />
div.transient-infobox > div > .header .weapon-attribute > img {<br />
position: absolute;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption {<br />
color: #000000;<br />
font-size: 1.5em;<br />
text-align: center;<br />
vertical-align: middle;<br />
width: 86.5%;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .name {<br />
font-weight: bold;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .sub {<br />
font-size: 0.8em;<br />
}<br />
<br />
div.transient-infobox > div > .body {<br />
clear: both;<br />
border-collapse: collapse;<br />
width: 99%;<br />
}<br />
<br />
div.transient-infobox > div > .body tr td {<br />
margin: 0px; padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork {<br />
margin: 0px 2px 4px 4px;<br />
width: 300px;<br />
text-align: center;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork img {<br />
display: inline-block;<br />
max-width: 100%;<br />
height: auto;<br />
width: auto\9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data {<br />
width: 99%;<br />
margin: 0px 2px 2px 2px;<br />
border-collapse: collapse;<br />
}<br />
<br />
div.transient-infobox > div >.body .data tr:not(:first-child) th {<br />
border-top: 2px solid #f9f9f9;<br />
border-right: 2px solid #f9f9f9;<br />
min-width: 100px;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr td {<br />
padding-left: 0.5em;<br />
padding-right: 0.5em;<br />
border-left: 2px solid #f9f9f9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr:not(:first-child) td {<br />
border-top: 2px solid #f9f9f9;<br />
}<br />
<br />
/* fire */<br />
div.fire > .header {<br />
background-color: #ffbfbf;<br />
}<br />
<br />
div.fire > .body .data tr > th {<br />
background-color: #ffd2d0;<br />
}<br />
<br />
div.fire > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffdddc;<br />
}<br />
<br />
/* water */<br />
div.water > .header {<br />
background-color: #bfd9ff;<br />
}<br />
<br />
div.water > .body .data tr > th {<br />
background-color: #d0e3ff;<br />
}<br />
<br />
div.water > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #dceaff;<br />
}<br />
<br />
/* wood */<br />
div.wood > .header {<br />
background-color: #bfffbf;<br />
}<br />
<br />
div.wood > .body .data tr > th {<br />
background-color: #dcffdc;<br />
}<br />
<br />
div.wood > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3ffe3;<br />
}<br />
<br />
/* light */<br />
div.light > .header,<br />
div.aether > .header {<br />
background-color: #ffd4bf;<br />
}<br />
<br />
div.light > .body .data tr > th,<br />
div.aether > .body .data tr > th {<br />
background-color: #ffe0d0;<br />
}<br />
<br />
div.light > .body .data tr > th + th,<br />
width: 100px;<br />
div.aether > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffe8dc;<br />
}<br />
<br />
/* nether */<br />
div.nether > .header,<br />
div.dark > .header {<br />
background-color: #e5ccff;<br />
}<br />
<br />
div.nether > .body .data tr > th,<br />
div.dark > .body .data tr > th {<br />
background-color: #e3d3f3;<br />
}<br />
<br />
div.nether > .body .data tr > th + th,<br />
width: 100px;<br />
div.dark > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f0e0ff;<br />
}<br />
<br />
/* all, demon, none */<br />
div.all > .header,<br />
div.all-round > .header,<br />
div.none > .header {<br />
background-color: #d4d4d4;<br />
}<br />
<br />
div.demon > .header,<br />
div.shadow > .header,<br />
div.infernal > .header {<br />
background-color: #a1a1a1;<br />
}<br />
<br />
div.all > .body .data tr > th,<br />
div.all-round > .body .data tr > th,<br />
div.none > .body .data tr > th {<br />
background-color: #dcdcdc;<br />
}<br />
<br />
div.demon > .body .data tr > th,<br />
div.shadow > .body .data tr > th,<br />
div.infernal > .body .data tr > th {<br />
background-color: #aaaaaa;<br />
}<br />
<br />
div.all > .body .data tr > th + th,<br />
width: 100px;<br />
div.all-round > .body .data tr > th + th,<br />
width: 100px;<br />
div.none > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3e3e3;<br />
}<br />
<br />
div.demon > .body .data tr > th + th,<br />
width: 100px;<br />
div.shadow > .body .data tr > th + th,<br />
width: 100px;<br />
div.infernal > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #b0b0b0;<br />
}<br />
<br />
/* hero */<br />
div.hero > .header,<br />
div.valiant > .header {<br />
background-color: #e9e8ed;<br />
}<br />
<br />
div.hero > .body .data tr > th,<br />
div.valiant > .body .data tr > th {<br />
background-color: #ebeaee;<br />
}<br />
<br />
div.hero > .body .data tr > th + th,<br />
width: 100px;<br />
div.valiant > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f5f4f9;<br />
}<br />
<br />
/* world */<br />
div.world > .header {<br />
background-color: #a67a45;<br />
}<br />
<br />
div.world> .body .data tr > th {<br />
background-color: #ebbe85;<br />
}<br />
<br />
div.world > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffde9f;<br />
}<br />
<br />
div.extended > a > img {<br />
width: 30px;<br />
height: 30px;<br />
}<br />
<br />
ruby > rt {<br />
font-size: 80%;<br />
}<br />
div.tabs {<br />
width: 100%;<br />
}<br />
div.tabs > span {<br />
display: inline-block;<br />
padding: 0px 10px 0px 10px;<br />
text-align: center;<br />
margin: 4px;<br />
}<br />
.transientBox {<br />
position: absolute;<br />
right: 0;<br />
display: inline-block;<br />
<!--width: 320px;--><br />
border: #aaa 1px solid;<br />
padding: 18px;<br />
background-color: #f9f9f9;<br />
max-width: 640px;<br />
}<br />
.spriteSelector {<br />
width: 100%;<br />
display: block;<br />
}<br />
.transientBox > * > .artwork > img {<br />
height: 452px;<br />
width: auto;<br />
}<br />
<br />
.transientBox > * > .body > .data {<br />
width: 100%;<br />
}<br />
<br />
@media only screen and (max-width: 1760px) {<br />
.transientBox {<br />
position: unset;<br />
right: unset;<br />
margin-bottom: 10px;<br />
}<br />
}<br />
<br />
}}<br />
}}<br />
{{#ifeq:{{#var:transientnumber}}|0|<h2>Transient Information</h2><div class='transientBox'><div class="tabs"></div></div>}}<div class="transient-infobox" id="transient{{#var:transientnumber}}"><br />
{{#ifeq:{{#var:transientnumber}}|0|<!--div class="tabs"></div-->}}<br />
<div class="transient-container {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}} transient{{#var:transientnumber}}" data-id="{{#var:transient id|}}"><br />
<div class="header"><br />
<table><br />
<tr><br />
{{#if:{{#var:transient cdn icon|}}||{{#vardefine:transient cdn icon|{{{cdn icon|}}}}}}}<br />
<td class="icon transient{{#var:transientnumber}}">{{#if:{{#var:transient no cdn|}}|[[File:{{{icon}}}.png|60px]]|{{#if:{{#var:transient cdn icon|}}|{{#tag:mediator|{{#var:transient cdn icon|}}|width=60|height=60|loading=lazy}}|{{#ifexist:File:{{{icon|}}}.png|[[File:{{{icon}}}.png|60px]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|60px]]|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}_{{{rarity}}}star_icon.png|60px]]|[[File:Unknown icon.png|60px]]}}}}}}}}}}</td>{{#vardefine:transient cdn icon|}}<br />
<td class="weapon-attribute">{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/ui/button/ui_button_elm_{{#var:energy filename|none}}.png|width=60|height=60|loading=lazy}}{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_weapon_{{#var:weapon type filename|nothing}}.png|width=60|height=60|loading=lazy}}</td><td class="caption"><br />
<div class="name">[{{#if:{{{en title|}}}|{{#if:{{{jp-en title|}}}|<u><span title="{{{jp-en title|}}}">{{{en title}}}</span></u>|{{{en title}}}}}|?}}]&nbsp; {{#if:{{{id|}}}|[https://app.housamo.xyz/cards/{{{id}}}/ {{{en name|?}}}]|{{{en name|?}}}}}<!--{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}--></div><br />
<div class="sub">&#x3010;{{#if:{{{jp title|}}}|{{{jp title}}}|&#xFF1F;}}&#x3011;{{#if:{{{jp name|}}}|{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}{{{jp name}}}|{{#ifeq: {{#var:availability}} | Unobtainable | |&#xFF1F;}}}}</div><br />
</td><br />
<!--{{#if:{{{extended|}}}|<td><div class="extended">[[File:sprite_btn_favorite_on.png|Using the extended template]]</div></td>}}--><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px|link={{Weapon type|{{#var:weapon type}}}}]]|}}</td><br />
}}<br />
</tr><br />
</table><br />
</div><br />
<table class="body"><br />
<tr><br />
{{#if:{{#var:transient cdn artwork|}}||{{#vardefine:transient cdn artwork|{{{cdn artwork|}}}}}}}<br />
<td><div class="transient{{#var:transientnumber}} {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}}"><div class="header"></div><div class="artwork">{{#if:{{#var:transient no cdn|}}|[[File:{{{artwork}}}.png]]|{{#if:{{#var:transient cdn artwork|}}|{{#tag:mediator|{{#var:transient cdn artwork|}}|loading=lazy}}|{{#ifexist:File:{{{artwork|}}}.png|[[File:{{{artwork}}}.png]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png]]|No artwork uploaded.}}|}}|}}}}</div><div class="body" data-chara-a="{{{chara id|}}}" data-chara-b="{{#var:transient chara id|}}"></div></div>{{#vardefine:transient cdn artwork|}}<br />
</td><br />
{{#ifeq: {{{acquisition|}}}|Skin||<br />
<td><br />
<table class="data"><br />
<tr><br />
<!--<th>Acquisition</th><br />
<td>{{{acquisition|?}}}</td>--><br />
{{#if: {{{variant|}}} | {{#ifeq: {{lc:{{{variant}}}}} | standard | |<br />
<th>Variant</th><br />
<td>{{Event link|{{{variant|}}}|unit={{{en name|}}}}}</td><br />
}}<br />
}}<br />
</tr><br />
<tr><br />
{{#ifeq: {{{rarity|0}}} | 0 ||<br />
<th>[[Rarity]]</th><br />
<td>{{{rarity}}}</td><br />
}}<br />
{{#ifeq: {{{cost|0}}} | 0 ||<br />
<th>[[Cost]]</th><br />
<td>{{{cost}}}</td><br />
}}<br />
</tr><br />
<tr><br />
<th>[[HP]]</th><br />
<td>{{{hp|?}}}+{{{hp growth|?}}}*(Lv-1)</td><br />
<th>[[ATK]]</th><br />
<td>{{{atk|?}}}+{{{atk growth|?}}}*(Lv-1)</td><br />
</tr><br />
<tr><br />
<th>HP @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
<th>ATK @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
</tr><br />
<tr><br />
<th>{{Tooltip|Max HP|+15 Lv, +2000 HP}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
<th>{{Tooltip|Max ATK|+15 Lv, +2000 ATK}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
</tr><br />
</table><br />
<table class="data"><br />
<!--<br />
<tr><br />
{{#ifeq:{{Energy|{{#var:energy}}}}|?| |<br />
<th>Energy</th><br />
<td>{{Energy|{{#var:energy}}}}</td><br />
}}<br />
</tr><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<tr><br />
<th>Weapon type</th><br />
<td>{{Weapon type|{{#var:weapon type}}}}</td><br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px]]|}}</td><br />
</tr><br />
}}<br />
--><br />
</table><br />
<!--{{#if: {{#var:base skill 1 subobj|}} | i dont remember if i did this part uncommented when first adding card skins--><br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skills]]</th><br />
</tr><br />
<tr><br />
<!-- {{#if: {{#var:base skill 1 subobj|}}|{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 1 range|0 0 0 0}}">{{#if: {{#var:base skill 1 subobj|}} | [[{{#var:base skill 1 subobj|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }}]] | {{#if:{{{base skill 1|}}}|[[{{{base skill 1}}}]] ({{{base skill 1 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 1 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 2 subobj|}}|{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 2 range|0 0 0 0}}">{{#if: {{#var:base skill 2 subobj|}} | [[{{#var:base skill 2 subobj|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }}]] | {{#if:{{{base skill 2|}}}|[[{{{base skill 2}}}]] ({{{base skill 2 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 2 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 3 subobj|}}|{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 3 range|0 0 0 0}}">{{#if: {{#var:base skill 3 subobj|}} | [[{{#var:base skill 3 subobj|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }}]] | {{#if:{{{base skill 3|}}}|[[{{{base skill 3}}}]] ({{{base skill 3 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 3 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 4 subobj|}}|{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 4 range|0 0 0 0}}">{{#if: {{#var:base skill 4 subobj|}} | [[{{#var:base skill 4 subobj|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }}]] | {{#if:{{{base skill 4|}}}|[[{{{base skill 4}}}]] ({{{base skill 4 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 4 desc| ? }}</td><br />
</tr><br />
</table><br />
{{#if: {{#var:has skill evo|}} |<br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skill Evolution]](s)</th><br />
</tr><br />
<!-- {{#if: {{#var:base skill 1 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 1 evo|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 1 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 2 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 2 evo|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 2 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 3 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 3 evo|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 3 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 4 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 4 evo|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 4 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}--><br />
{{#arrayprint:base skill 1 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 2 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 3 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 4 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
</table><br />
}}<br />
<table class="data"><br />
<tr><br />
<th colspan="3">{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}</span></u>|{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}}}|?}}</th><br />
</tr><br />
<tr><br />
<!--th>{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{{charge skill name}}}</span></u>|{{{charge skill name}}}}}|?}}</th--><br />
<td>{{#if:{{{charge skill name|}}}|{{{charge skill description|?}}}|?}}</td><br />
<td style="width:50px; padding: 0px;">[[File:Weapon Spread {{#var:charge skill weapon|}}.png|50px|link={{#var:charge skill weapon|}}]]{{#if:{{{charge skill multiplier|}}}|<br><div style='text-align:center'>{{{charge skill multiplier}}}<!--~{{#expr:2 * {{{charge skill multiplier}}}}}-->x</div>}}</td><br />
</tr><br />
{{#ifeq:{{#var:availability|}}|Current|<tr><br />
<td colspan="3">{{Equippable AR Equipment|{{{en name|{{{jp name|?}}}}}};{{Weapon type|{{#var:weapon type|?}}}};{{Energy|{{#var:energy|?}}}}}}</td><br />
</tr>}}<br />
</table><br />
<!--}}--><br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th>Illustration</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{illustrator|}}}<br />
| {{#arrayprint:illustrator<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:illustrator subobj {{#var:counter}}|}}<br />
| [[{{#var:illustrator subobj {{#var:counter}}}}|{{#var:illustrator en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Scenario</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{scenario writer|}}}<br />
| {{#arrayprint:scenario writer<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:scenario writer subobj {{#var:counter}}|}}<br />
| [[{{#var:scenario writer subobj {{#var:counter}}}}|{{#var:scenario writer en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Voice</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{voice actor|}}}<br />
| {{#arrayprint:voice actor<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:voice actor subobj {{#var:counter}}|}}<br />
| [[{{#var:voice actor subobj {{#var:counter}}}}|{{#var:voice actor en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
{{#if:{{{species|}}}|<br />
<tr><br />
<th>{{Tooltip|Species|Tends to be based on the transient's skillset}}</th><br />
<td>{{{species}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{sex|}}}|<br />
<tr><br />
<th>{{Tooltip|Gender|As defined in the game data, might not be accurate to reality}}</th><br />
<td>{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 = None<br />
|#default = {{{sex|Unknown gender}}}<br />
}}</td><br />
</tr><br />
}}<br />
{{#if:{{{gate|}}}|<br />
<tr><br />
<th>Gate</th><br />
<td>{{#ifeq:{{{gate|}}}|Unknown|Unknown|[[{{Gate|{{{gate}}}|format=name}}]]}}</td><br />
</tr><br />
}}<br />
{{#if:{{{guild|}}}|<br />
<tr><br />
<th>Guild</th><br />
<td>{{#ifeq:{{{guild|}}}|Unknown|Unknown|{{{guild}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{school|}}}|<br />
<tr><br />
<th>School</th><br />
<td>{{#ifeq:{{{school|}}}|Unknown|Unknown|{{{school}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:weight}}|<br />
<tr><br />
<th>Weight (kg)</th><br />
<td>{{#var:weight}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:height}}|<br />
<tr><br />
<th>Height (cm)</th><br />
<td>{{#var:height}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:summon date}}|<br />
<tr><br />
<th>Summon Date</th><br />
<td>{{#var:summon date}}</td><br />
</tr><br />
}}<br />
</table><br />
{{#if:{{#var:strategy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:strategy}}|{{#if:{{#pos:{{#show:{{#var:strategy}}|?Category|link=none}}|Strategy pages}}|Strategy|Strategy (placeholder)}}]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#if:{{#var:enemy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:enemy}}|Enemy-only]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#ifeq:{{{partial|}}}|true|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">Partial Entry</th><br />
</tr><br />
</table><br />
|}}<br />
</td><br />
|}}<br />
</tr><br />
</table><br />
<div class="footer"></div><br />
<div>{{#if:{{{skin artwork|}}}|{{#tag:galleryscript|{{#ifexist:File:{{{artwork|}}}.png|{{{artwork}}}|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full|}}}};{{{skin artwork|}}}|number={{#var:transientnumber}}}}|}}<br />
{{#if:{{{cdn skin artwork|}}}|{{#tag:masterdataskins|{{{cdn skin artwork|}}}|selector-chara-relations=#charaRelations{{{chara id|0}}}|voice={{#var:transient voice filename|}}|selector-fg=div.transient{{#var:transientnumber}} > .artwork > img|selector-icon=td.icon.transient{{#var:transientnumber}} > img|flags={{#var:transient voice condition|}}}}{{#vardefine:transient voice filename|}}{{#vardefine:transient voice condition|}}|}}</div><br />
</div></div>{{#ifexpr:{{{charge skill id|0}}}>0|{{#masterdata:Skill|{{{charge skill id|0}}}|format=blank}}}}{{#arraydefine:base skill 1 evo|}}{{#arraydefine:base skill 2 evo|}}{{#arraydefine:base skill 3 evo|}}{{#arraydefine:base skill 4 evo|}}{{#vardefine:has skill evo|}}<!--<br />
<br />
auto categorization<br />
<br />
-->{{#if: {{#ifeq: {{{categorize|y}}} | n | n }} <!-- categorize is set to don't categorize --><br />
{{NAMESPACE}} <!-- don't categorize if outside namespace --><br />
| <!-- don't categorize --><br />
|<br />
<!-- new template type -- ><br />
{{#if:{{#var:transient id|}}|[[Category:Transient using new data structure]]|[[Category:Transient page that needs updating]]}}<br />
<!-- energy --><br />
{{#ifeq: {{Energy|{{#var:energy}}}} | ? | [[Category:Transients with unknown energy]] |<br />
[[Category:{{Energy|{{#var:energy}}}} transients]]<br />
}}<br />
<!--species--><br />
[[Category:{{#if:{{{species|}}}|{{{species}}}|Unknown species}} transients]]<br />
<!--gate--><br />
{{#if:{{{gate|}}}|[[Category:Transients from {{Gate|{{{gate}}}|use-name=true}}]]}}<br />
<!--sex--><br />
[[Category:{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 | none = Unknown gender<br />
|#default = {{{sex|Unknown gender}}}<br />
}} transients]]<br />
<!-- weapon type --><br />
{{#ifeq: {{Weapon type|{{{weapon type|}}}}} | ? | [[Category:Transients with unknown weapon type]] |<br />
[[Category:{{Weapon type|{{{weapon type}}}}} transients]]<br />
}}<br />
<br />
<!-- availability --><br />
{{#ifeq: {{#var:availability}} | Current | |<br />
[[Category:{{#var:availability}} transients]]<br />
}}<br />
<br />
}}</includeonly><includeonly>{{#ifeq:{{PAGENAME}}|Transient infobox||{{#ifeq:{{#var:transientnumber|0}}|0|{{#seo:<br />
|title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
|titlemode=replace<br />
|keywords=tokyo,afterschool,summoners,housamo,wiki,東京放課後サモナーズ,放サモ,{{{jp name|}}},{{{en name|}}}<br />
|description={{Star}}{{{rarity|0}}}, {{Energy|{{#var:energy}}}}-typed {{Weapon type|{{#var:weapon type}}}} unit.<br />
|og:image={{filepath:{{#ifexist:File:{{{icon|}}}.png|{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|{{{en name}}}_{{{rarity}}}star_icon.png|}}}}}}}}<br />
|og:title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
}}}}}}</includeonly><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Template:Transient_extended_infobox&diff=43554
Template:Transient extended infobox
2021-10-18T14:55:10Z
<p>Barry: </p>
<hr />
<div><includeonly>__NOTOC__{{#if: <!-- define vars --><br />
<br />
{{#vardefine:energy|{{#switch:{{lc:{{{energy|{{{element|}}}}}}}}<br />
| 1 | 火 | fire = 火<br />
| 2 | 水 | water = 水<br />
| 3 | 木 | wood | grass | earth | tree = 木<br />
| 4 | 天 | heaven | holy | light | divine | aether = 天<br />
| 5 | 冥 | dark | nether = 冥<br />
| 6 | 魔 | demon | shadow | infernal = 魔<br />
| 0 | 全 | all | all-round = 全<br />
| 7 | 英雄 | hero | valiant = 英雄<br />
| 8 | 世界 | world = 世界<br />
| 9 | 無 | none = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type|{{#switch:{{lc:{{{weapon type|}}}}}<br />
| 1 | 斬撃 | 斬 | slash = 斬撃<br />
| 3 | 打撃 | 打 | strike | blow = 打撃<br />
| 2 | 突撃 | 突 | pierce | thrust = 突撃<br />
| 4 | 射撃 | 射 | ranged | shot = 射撃<br />
| 5 | 魔法 | 魔 | magic = 魔法<br />
| 7 | 狙撃 | 狙 | snipe = 狙撃<br />
| 6 | 横一文字 | wide slash | wide-slash | wide-slash | long slash = 横一文字<br />
| 8 | 全域 | wide magic | wide-magic | all = 全域<br />
| 0 | 無し = 無し<br />
| 9 | 無 = 無<br />
|#default = ?<br />
}}<br />
}}<br />
<br />
{{#vardefine:weapon type filename|{{#switch:{{#var:weapon type}}<br />
| 無し | none = nothing<br />
| 斬撃 = slash<br />
| 突撃 = thrust<br />
| 打撃 = knock<br />
| 射撃 = shoot<br />
| 魔法 = magic<br />
| 横一文字 = longslash<br />
| 狙撃 = snipe<br />
| 全域 = all<br />
| 無 = nothing<br />
|#default = nothing<br />
}}<br />
}}<br />
<br />
{{#vardefine:energy filename|{{#switch:{{#var:energy}}<br />
| 全 = none<br />
| 火 = fire<br />
| 水 = water<br />
| 木 = earth<br />
| 天 = light<br />
| 冥 = dark<br />
| 魔 = evil<br />
| 英雄 = hero<br />
| 世界 = world<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:availability|{{#switch:{{lc:{{{availability|}}}}}<br />
| limited = Limited<br />
| event = Event<br />
| unavailable = Unobtainable<br />
| unobtainable = Unobtainable<br />
| scheduled = Scheduled<br />
| enemy = Enemy<br />
| current<br />
|#default = Current<br />
}}<br />
}}<br />
<br />
{{#ifeq:{{lc:{{{acquisition|}}}}} | unobtainable | {{#vardefine:availability|Unobtainable}}<br />
}}<br />
<br />
{{#arraydefine:illustrator|{{{illustrator|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Illustrator]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
|<br />
| @@@<br />
| {{#vardefine:illustrator en name {{#var:counter}}| <br />
{{#if: {{#var:illustrator subobj {{#var:counter}} }}<br />
| {{#show: {{#var:illustrator subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:scenario writer|{{{scenario writer|}}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Scenario writer]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
|<br />
| @@@<br />
| {{#vardefine:scenario writer en name {{#var:counter}}| <br />
{{#if: {{#var:scenario writer subobj {{#var:counter}} }}<br />
| {{#show: {{#var:scenario writer subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#arraydefine:voice actor|{{#replace:{{{voice actor|}}}|,|;}}|;}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor subobj {{#var:counter}}| <br />
{{#ask:<br />
[[Has game context::Voice actor]]<br />
[[Has Japanese name::@@@]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:max lv|{{#switch:{{{rarity|3}}}<br />
| 5 = 70<br />
| 4 = 65<br />
| 3 = 60<br />
| 2 = 55<br />
| 1 = 50<br />
}}<br />
}}<br />
<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
|<br />
| @@@<br />
| {{#vardefine:voice actor en name {{#var:counter}}| <br />
{{#if: {{#var:voice actor subobj {{#var:counter}} }}<br />
| {{#show: {{#var:voice actor subobj {{#var:counter}} }} |?Has English name }}<br />
}}<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 subobj|<br />
{{#if: {{{base skill 1|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 1 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 1 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 1 evo|{{#show: {{#var:base skill 1 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 1 en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 range|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 1 desc|<br />
<!--<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br> }}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}|link-radius-image=true}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 1 subobj|}}|{{formatnum:{{#show: {{#var:base skill 1 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 1}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<br />
<!-- escape semi-colons to not run into issues when setting it as a value in the record property --><br />
<!--<br />
{{#vardefine:base skill 1 raw desc|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 1 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 2 subobj|<br />
{{#if: {{{base skill 2|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 2 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 2 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 2 evo|{{#show: {{#var:base skill 2 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 2 en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 2 range|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 2 desc|<br />
<!--<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 2 subobj|}}|{{formatnum:{{#show: {{#var:base skill 2 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 2}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 2 raw desc|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 2 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 3 subobj|<br />
{{#if: {{{base skill 3|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 3 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 3 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 3 evo|{{#show: {{#var:base skill 3 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 3 en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 3 range|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
<br />
{{#vardefine:base skill 3 desc|<br />
<!--<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 3 subobj|}}|{{formatnum:{{#show: {{#var:base skill 3 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 3}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 3 raw desc|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 3 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
{{#vardefine:base skill 4 subobj|<br />
{{#if: {{{base skill 4|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{base skill 4 id}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:base skill 4 range|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has range }}<br />
}}<br />
}}<br />
<br />
{{#if: {{#var:base skill 4 subobj|}}|<br />
<!--{{#if:{{#vardefineecho:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}}}|{{#vardefine:has skill evo|true}}}}--><br />
{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}}|{{#arraydefine:base skill 4 evo|{{#show: {{#var:base skill 4 subobj}} |?Has evolved skill|link=none}} }}{{#vardefine:has skill evo|true}} }}<br />
}}<br />
<br />
{{#vardefine:base skill 4 desc|<br />
<!--<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}<br />
|{{#masterdata:SkillDescription|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}<br />
}}<br />
--><br />
{{#masterdata:SkillDescription| {{#if: {{#var:base skill 4 subobj|}}|{{formatnum:{{#show: {{#var:base skill 4 subobj}} |?Has ID}}|R}}|{{#masterdata:Skill|{{{base skill 4}}}|id:name}}}}|link-radius-image=true}}<br />
}}<br />
<!--<br />
{{#vardefine:base skill 4 raw desc|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:base skill 4 subobj}} |?Has preformatted English description |sep=<br>}}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
<br />
{{#vardefine:charge skill subobj|<br />
{{#if: {{{charge skill id|}}}<br />
|{{#ask:<br />
[[Has game context::Skill]]<br />
[[Has ID::{{{charge skill id|}}}]]<br />
[[Has effect ID::1]]<br />
|link=none<br />
|limit=1<br />
|headers=hide<br />
|searchlabel=<br />
}} <br />
}}<br />
}}<br />
<br />
<!--{{#vardefine:charge skill en name|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has English name }}<br />
}}<br />
}}<br />
<br />
{{#vardefine:charge skill desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}<br />
}}<br />
}}<br />
<!--<br />
{{#vardefine:charge skill raw desc|<br />
{{#if: {{#var:charge skill subobj|}}<br />
|{{#replace:{{#tag:strip|{{#show: {{#var:charge skill subobj}} |?Has preformatted English description }}}}|;|\;}}<br />
}}<br />
}}<br />
--><br />
--><br />
{{#vardefine:base skill 1 jp-en name|<br />
{{#if: {{#var:base skill 1 subobj|}}<br />
|{{#show: {{#var:base skill 1 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 2 jp-en name|<br />
{{#if: {{#var:base skill 2 subobj|}}<br />
|{{#show: {{#var:base skill 2 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 3 jp-en name|<br />
{{#if: {{#var:base skill 3 subobj|}}<br />
|{{#show: {{#var:base skill 3 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
{{#vardefine:base skill 4 jp-en name|<br />
{{#if: {{#var:base skill 4 subobj|}}<br />
|{{#show: {{#var:base skill 4 subobj}} |?Has Japanese-English name }}<br />
}}<br />
}}<br />
<!-- overrides --><br />
{{#if:{{{skill id 1|}}}|<br />
{{#vardefine:base skill 1 desc|{{#masterdata:Skill|{{{skill id 1}}}|effects}}}}{{#vardefine:base skill 1 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 1 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 2|}}}|<br />
{{#vardefine:base skill 2 desc|{{#masterdata:Skill|{{{skill id 2}}}|effects}}}}{{#vardefine:base skill 2 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 2 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 3|}}}|<br />
{{#vardefine:base skill 3 desc|{{#masterdata:Skill|{{{skill id 3}}}|effects}}}}{{#vardefine:base skill 3 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 3 desc}}}}}}|;|\;}}<br />
}}<br />
{{#if:{{{skill id 4|}}}|<br />
{{#vardefine:base skill 4 desc|{{#masterdata:Skill|{{{skill id 4}}}|effects}}}}{{#vardefine:base skill 4 raw desc|{{#replace:{{#tag:strip|{{#var:base skill 4 desc}}}}}}|;|\;}}<br />
}}<br />
{{#vardefine:strategy|{{#ifexist:{{{en name|}}}/Strategy|{{{en name|}}}/Strategy|}}}}<br />
{{#vardefine:enemy|{{#ifexist:{{{en name|}}}/Enemy|{{{en name|}}}/Enemy|}}}}<br />
{{#vardefine:transient id|{{{id|{{#if:{{{jp title|}}}|{{#masterdata:Card|{{{jp title|}}}|id:name.title}}}}}}}}}<br />
{{#ifexpr:{{#var:transient id|}}<2|{{#vardefine:transient id|}}}}<br />
{{#vardefine:charge skill weapon|{{Weapons|{{#replace:{{{charge skill pattern|{{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}}}}|Weapon Spread |}}}}}}<br />
{{#vardefine:height|{{#var:transient height|{{{height|}}}}}}}<br />
{{#vardefine:weight|{{#var:transient weight|{{{weight|}}}}}}}<br />
{{#vardefine:summon date|{{#var:transient summon date|{{{summon date|}}}}}}}<br />
{{#vardefine:guild|{{#var:transient en affiliation|{{{guild|}}}}}}}<br />
{{#arraydefine:skin list|{{{cdn skin artwork|}}}|;}}<br />
}}<!--create vars end-->{{#if: {{NAMESPACE}} | <!-- don't create subobj within namespace --> | <!--<br />
<br />
For Has base skill as well as Has illustrator, Has scenario writer and Has voice actor, the subobject is set to "-" if no subobject is available to return a result in queries in order to properly match names to subobjects in Template:Transient list table result format. Otherwise, name, description, unlocked limit break and subobject (for skills) and name and subobject (for voice actor, scenario writer and illustrator) may be mismatched.<br />
<br />
-->{{#subobject:transient{{#vardefineecho:transientnumber|{{#expr:{{#var:transientnumber|-1}}+1}}}}<br />
| Has game context = Transient<br />
| Has ID = {{#var:transient id|}}<br />
| Has character ID = {{{chara id|{{#var:transient chara id|}}}}}<br />
| Has Japanese name ={{{jp name|?}}}<br />
| Has English name ={{{en name|?}}}<br />
| Has lowercase English name ={{lc:{{{en name|?}}}}}<br />
| Has Japanese title ={{{jp title|}}}<br />
| Has English title ={{{en title|}}}<br />
| Has Japanese-English title = {{{jp-en title|}}}<br />
| Has filename = {{{filename|}}}<br />
| Has skins = {{#arrayprint:skin list|;|@@@@|{{#ifeq:{{#explode:@@@@|:|0}}|utage-name||@@@@}}}}|+sep=;<br />
| Has artwork = {{#ifexist:File:{{{artwork|}}}.png|File:{{{artwork}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|}}}}<br />
| Has icon = {{#ifexist:File:{{{icon|}}}.png|File:{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|File:Unknown icon.png}}}}<br />
| Has strategy = {{#var:strategy|}}<br />
| Has enemies = {{#var:enemy|}}<br />
| Has rarity ={{#ifeq: {{{rarity|0}}} | 0 | 0 | {{{rarity}}} }}<br />
| Has card cost ={{#ifeq: {{{cost|0}}} | 0 | 0 | {{{cost}}} }}<br />
| Has variant ={{{variant|Standard}}}<br />
| Has availability ={{#var:availability}}<br />
| Has acquisition ={{{acquisition|}}}<br />
| Has energy ={{#ifeq:{{#var:energy}}|?||{{#var:energy}}}}<br />
| Has weapon type ={{#ifeq:{{#var:weapon type}}|?||{{#var:weapon type}}}}<br />
| Has hp value = {{{hp|0}}}<br />
| Has hp growth value = {{{hp growth|0}}}<br />
| Has atk value = {{{atk|0}}}<br />
| Has atk growth value = {{{atk growth|0}}}<br />
| Has charge skill multiplier = {{{charge skill multiplier|0}}}<br />
| Has charge skill weapon type = {{#var:charge skill weapon}}<br />
| Has species = {{{species|}}}<br />
| Has sex = {{{sex|}}}<br />
| Has gate = {{{gate|}}}<br />
| Has summon date = {{#var:summon date}}<br />
| Has weight = {{#var:weight}}<br />
| Has height = {{#var:height}}<br />
| Has guild = {{#var:guild}}<br />
| Has base skill ={{#if:{{{base skill 1|}}}|{{#var:base skill 1 subobj|-}};0;{{{base skill 1}}};{{#var:base skill 1 en name|{{{base skill 1}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 1 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 2|}}}|{{#var:base skill 2 subobj|-}};1;{{{base skill 2}}};{{#var:base skill 2 en name|{{{base skill 2}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 2 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 3|}}}|{{#var:base skill 3 subobj|-}};2;{{{base skill 3}}};{{#var:base skill 3 en name|{{{base skill 3}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 3 id}}}}}<br />
| Has base skill ={{#if:{{{base skill 4|}}}|{{#var:base skill 4 subobj|-}};3;{{{base skill 4}}};{{#var:base skill 4 en name|{{{base skill 4}}}}};[?] ? / ?%;[?] ? / ?%;{{{base skill 4 id}}}}}<br />
| Has evolved skill = {{#arrayprint:base skill 1 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 2 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 3 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has evolved skill = {{#arrayprint:base skill 4 evo|;|@@@@|[[@@@@]]}}|+sep=;<br />
| Has charge skill ={{{charge skill name|}}};{{{charge skill jp name|}}};-;{{#var:charge skill weapon}};{{{charge skill id|}}}<br />
| Has illustrator ={{#if:{{{illustrator|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:illustrator<br />
| ###<br />
| @@@<br />
| {{#var:illustrator subobj {{#var:counter}}|-}};@@@;{{#var:illustrator en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has scenario writer ={{#if:{{{scenario writer|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:scenario writer<br />
| ###<br />
| @@@<br />
| {{#var:scenario writer subobj {{#var:counter}}|-}};@@@;{{#var:scenario writer en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
| Has voice actor ={{#if:{{{voice actor|}}}|<br />
{{#vardefine:counter|0}}<br />
{{#arrayprint:voice actor<br />
| ###<br />
| @@@<br />
| {{#var:voice actor subobj {{#var:counter}}|-}};@@@;{{#var:voice actor en name {{#var:counter}}|@@@}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
}}|+sep=###<br />
}}<br />
}}<!-- end subobject<br />
-->{{#ifeq:{{#var:transientnumber}}|0|{{#css:<br />
div.transient-infobox {<br />
background-color: #f9f9f9;<br />
padding-bottom: 2px;<br />
position: relative;<br />
width: 850px;<br />
border: 1px solid #aaa;<br />
border-spacing: 0px;<br />
-webkit-text-size-adjust: none;<br />
-moz-text-size-adjust: none;<br />
-ms-text-size-adjust: none;<br />
}<br />
<br />
div.transient-container > .footer {<br />
text-align: center;<br />
padding-left: 75px;<br />
}<br />
<br />
div.transient-infobox > div > .header {<br />
width: auto;<br />
margin: 4px 4px 2px 4px;<br />
padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon {<br />
float: left;<br />
vertical-align: bottom;<br />
}<br />
<br />
div.transient-infobox > div > .header .icon > img {<br />
padding: 1%;<br />
}<br />
<br />
div.transient-infobox > div > .header .weapon-attribute {<br />
position: relative;<br />
top: -27px;<br />
}<br />
<br />
<br />
div.transient-infobox > div > .header .weapon-attribute > img {<br />
position: absolute;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption {<br />
color: #000000;<br />
font-size: 1.5em;<br />
text-align: center;<br />
vertical-align: middle;<br />
width: 86.5%;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .name {<br />
font-weight: bold;<br />
}<br />
<br />
<!--div.transient-infobox > div > -->.header .caption > .sub {<br />
font-size: 0.8em;<br />
}<br />
<br />
div.transient-infobox > div > .body {<br />
clear: both;<br />
border-collapse: collapse;<br />
width: 99%;<br />
}<br />
<br />
div.transient-infobox > div > .body tr td {<br />
margin: 0px; padding: 0px;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork {<br />
margin: 0px 2px 4px 4px;<br />
width: 300px;<br />
text-align: center;<br />
}<br />
<br />
div.transient-infobox > div > .body .artwork img {<br />
display: inline-block;<br />
max-width: 100%;<br />
height: auto;<br />
width: auto\9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data {<br />
width: 99%;<br />
margin: 0px 2px 2px 2px;<br />
border-collapse: collapse;<br />
}<br />
<br />
div.transient-infobox > div >.body .data tr:not(:first-child) th {<br />
border-top: 2px solid #f9f9f9;<br />
border-right: 2px solid #f9f9f9;<br />
min-width: 100px;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr td {<br />
padding-left: 0.5em;<br />
padding-right: 0.5em;<br />
border-left: 2px solid #f9f9f9;<br />
}<br />
<br />
div.transient-infobox > div > .body .data tr:not(:first-child) td {<br />
border-top: 2px solid #f9f9f9;<br />
}<br />
<br />
/* fire */<br />
div.fire > .header {<br />
background-color: #ffbfbf;<br />
}<br />
<br />
div.fire > .body .data tr > th {<br />
background-color: #ffd2d0;<br />
}<br />
<br />
div.fire > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffdddc;<br />
}<br />
<br />
/* water */<br />
div.water > .header {<br />
background-color: #bfd9ff;<br />
}<br />
<br />
div.water > .body .data tr > th {<br />
background-color: #d0e3ff;<br />
}<br />
<br />
div.water > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #dceaff;<br />
}<br />
<br />
/* wood */<br />
div.wood > .header {<br />
background-color: #bfffbf;<br />
}<br />
<br />
div.wood > .body .data tr > th {<br />
background-color: #dcffdc;<br />
}<br />
<br />
div.wood > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3ffe3;<br />
}<br />
<br />
/* light */<br />
div.light > .header,<br />
div.aether > .header {<br />
background-color: #ffd4bf;<br />
}<br />
<br />
div.light > .body .data tr > th,<br />
div.aether > .body .data tr > th {<br />
background-color: #ffe0d0;<br />
}<br />
<br />
div.light > .body .data tr > th + th,<br />
width: 100px;<br />
div.aether > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffe8dc;<br />
}<br />
<br />
/* nether */<br />
div.nether > .header,<br />
div.dark > .header {<br />
background-color: #e5ccff;<br />
}<br />
<br />
div.nether > .body .data tr > th,<br />
div.dark > .body .data tr > th {<br />
background-color: #e3d3f3;<br />
}<br />
<br />
div.nether > .body .data tr > th + th,<br />
width: 100px;<br />
div.dark > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f0e0ff;<br />
}<br />
<br />
/* all, demon, none */<br />
div.all > .header,<br />
div.all-round > .header,<br />
div.none > .header {<br />
background-color: #d4d4d4;<br />
}<br />
<br />
div.demon > .header,<br />
div.shadow > .header,<br />
div.infernal > .header {<br />
background-color: #a1a1a1;<br />
}<br />
<br />
div.all > .body .data tr > th,<br />
div.all-round > .body .data tr > th,<br />
div.none > .body .data tr > th {<br />
background-color: #dcdcdc;<br />
}<br />
<br />
div.demon > .body .data tr > th,<br />
div.shadow > .body .data tr > th,<br />
div.infernal > .body .data tr > th {<br />
background-color: #aaaaaa;<br />
}<br />
<br />
div.all > .body .data tr > th + th,<br />
width: 100px;<br />
div.all-round > .body .data tr > th + th,<br />
width: 100px;<br />
div.none > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #e3e3e3;<br />
}<br />
<br />
div.demon > .body .data tr > th + th,<br />
width: 100px;<br />
div.shadow > .body .data tr > th + th,<br />
width: 100px;<br />
div.infernal > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #b0b0b0;<br />
}<br />
<br />
/* hero */<br />
div.hero > .header,<br />
div.valiant > .header {<br />
background-color: #e9e8ed;<br />
}<br />
<br />
div.hero > .body .data tr > th,<br />
div.valiant > .body .data tr > th {<br />
background-color: #ebeaee;<br />
}<br />
<br />
div.hero > .body .data tr > th + th,<br />
width: 100px;<br />
div.valiant > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #f5f4f9;<br />
}<br />
<br />
/* world */<br />
div.world > .header {<br />
background-color: #a67a45;<br />
}<br />
<br />
div.world> .body .data tr > th {<br />
background-color: #ebbe85;<br />
}<br />
<br />
div.world > .body .data tr > th + th {<br />
width: 100px;<br />
background-color: #ffde9f;<br />
}<br />
<br />
div.extended > a > img {<br />
width: 30px;<br />
height: 30px;<br />
}<br />
<br />
ruby > rt {<br />
font-size: 80%;<br />
}<br />
div.tabs {<br />
width: 100%;<br />
}<br />
div.tabs > span {<br />
display: inline-block;<br />
padding: 0px 10px 0px 10px;<br />
text-align: center;<br />
margin: 4px;<br />
}<br />
.transientBox {<br />
position: absolute;<br />
right: 0;<br />
display: inline-block;<br />
<!--width: 320px;--><br />
border: #aaa 1px solid;<br />
padding: 18px;<br />
background-color: #f9f9f9;<br />
max-width: 640px;<br />
}<br />
.spriteSelector {<br />
width: 100%;<br />
display: block;<br />
}<br />
.transientBox > * > .artwork > img {<br />
height: 452px;<br />
width: auto;<br />
}<br />
<br />
.transientBox > * > .body > .data {<br />
width: 100%;<br />
}<br />
<br />
@media only screen and (max-width: 1760px) {<br />
.transientBox {<br />
position: unset;<br />
right: unset;<br />
margin-bottom: 10px;<br />
}<br />
}<br />
<br />
}}<br />
}}<br />
{{#ifeq:{{#var:transientnumber}}|0|<h2>Transient Information</h2><div class='transientBox'><div class="tabs"></div></div>}}<div class="transient-infobox" id="transient{{#var:transientnumber}}"><br />
{{#ifeq:{{#var:transientnumber}}|0|<!--div class="tabs"></div-->}}<br />
<div class="transient-container {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}} transient{{#var:transientnumber}}" data-id="{{#var:transient id|}}"><br />
<div class="header"><br />
<table><br />
<tr><br />
{{#if:{{#var:transient cdn icon|}}||{{#vardefine:transient cdn icon|{{{cdn icon|}}}}}}}<br />
<td class="icon transient{{#var:transientnumber}}">{{#if:{{#var:transient no cdn|}}|[[File:{{{icon}}}.png|60px]]|{{#if:{{#var:transient cdn icon|}}|{{#tag:mediator|{{#var:transient cdn icon|}}|width=60|height=60|loading=lazy}}|{{#ifexist:File:{{{icon|}}}.png|[[File:{{{icon}}}.png|60px]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|60px]]|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|[[File:{{{en name}}}_{{{rarity}}}star_icon.png|60px]]|[[File:Unknown icon.png|60px]]}}}}}}}}}}</td>{{#vardefine:transient cdn icon|}}<br />
<td class="weapon-attribute">{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/ui/button/ui_button_elm_{{#var:energy filename|none}}.png|width=60|height=60|loading=lazy}}{{#tag:mediator|https://cdn.housamo.xyz/housamo/unity/Android/icon/icon_weapon_{{#var:weapon type filename|nothing}}.png|width=60|height=60|loading=lazy}}</td><td class="caption"><br />
<div class="name">[{{#if:{{{en title|}}}|{{#if:{{{jp-en title|}}}|<u><span title="{{{jp-en title|}}}">{{{en title}}}</span></u>|{{{en title}}}}}|?}}]&nbsp; {{#if:{{{id|}}}|[https://app.housamo.xyz/cards/{{{id}}}/ {{{en name|?}}}]|{{{en name|?}}}}}<!--{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}--></div><br />
<div class="sub">&#x3010;{{#if:{{{jp title|}}}|{{{jp title}}}|&#xFF1F;}}&#x3011;{{#if:{{{jp name|}}}|{{#ifeq:{{{surname|―}}}|―||{{{surname}}}}}{{{jp name}}}|{{#ifeq: {{#var:availability}} | Unobtainable | |&#xFF1F;}}}}</div><br />
</td><br />
<!--{{#if:{{{extended|}}}|<td><div class="extended">[[File:sprite_btn_favorite_on.png|Using the extended template]]</div></td>}}--><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px|link={{Weapon type|{{#var:weapon type}}}}]]|}}</td><br />
}}<br />
</tr><br />
</table><br />
</div><br />
<table class="body"><br />
<tr><br />
{{#if:{{#var:transient cdn artwork|}}||{{#vardefine:transient cdn artwork|{{{cdn artwork|}}}}}}}<br />
<td><div class="transient{{#var:transientnumber}} {{#ifeq:{{#var:energy}}|?|none|{{lc:{{Energy|{{#var:energy}}}}}}}}"><div class="header"></div><div class="artwork">{{#if:{{#var:transient no cdn|}}|[[File:{{{artwork}}}.png]]|{{#if:{{#var:transient cdn artwork|}}|{{#tag:mediator|{{#var:transient cdn artwork|}}|loading=lazy}}|{{#ifexist:File:{{{artwork|}}}.png|[[File:{{{artwork}}}.png]]|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|[[File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png]]|No artwork uploaded.}}|}}|}}}}</div><div class="body" data-chara-a="{{{chara id|}}}" data-chara-b="{{#var:transient chara id|}}"></div></div>{{#vardefine:transient cdn artwork|}}<br />
</td><br />
{{#ifeq: {{{acquisition|}}}|Skin||<br />
<td><br />
<table class="data"><br />
<tr><br />
<!--<th>Acquisition</th><br />
<td>{{{acquisition|?}}}</td>--><br />
{{#if: {{{variant|}}} | {{#ifeq: {{lc:{{{variant}}}}} | standard | |<br />
<th>Variant</th><br />
<td>{{Event link|{{{variant|}}}|unit={{{en name|}}}}}</td><br />
}}<br />
}}<br />
</tr><br />
<tr><br />
{{#ifeq: {{{rarity|0}}} | 0 ||<br />
<th>[[Rarity]]</th><br />
<td>{{{rarity}}}</td><br />
}}<br />
{{#ifeq: {{{cost|0}}} | 0 ||<br />
<th>[[Cost]]</th><br />
<td>{{{cost}}}</td><br />
}}<br />
</tr><br />
<tr><br />
<th>[[HP]]</th><br />
<td>{{{hp|?}}}+{{{hp growth|?}}}*(Lv-1)</td><br />
<th>[[ATK]]</th><br />
<td>{{{atk|?}}}+{{{atk growth|?}}}*(Lv-1)</td><br />
</tr><br />
<tr><br />
<th>HP @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
<th>ATK @ Lv {{#var:max lv|}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}-1) }}</td><br />
</tr><br />
<tr><br />
<th>{{Tooltip|Max HP|+15 Lv, +2000 HP}}</th><br />
<td>{{#expr: {{{hp|0}}}+{{{hp growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
<th>{{Tooltip|Max ATK|+15 Lv, +2000 ATK}}</th><br />
<td>{{#expr: {{{atk|0}}}+{{{atk growth|0}}}*({{#var:max lv|0}}+15-1) + 2000 }}</td><br />
</tr><br />
</table><br />
<table class="data"><br />
<!--<br />
<tr><br />
{{#ifeq:{{Energy|{{#var:energy}}}}|?| |<br />
<th>Energy</th><br />
<td>{{Energy|{{#var:energy}}}}</td><br />
}}<br />
</tr><br />
{{#ifeq:{{Weapon type|{{#var:weapon type}}}}|?| |<br />
<tr><br />
<th>Weapon type</th><br />
<td>{{Weapon type|{{#var:weapon type}}}}</td><br />
<td rowspan="2" style="width:50px; padding: 0px;">{{#ifexist:File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|[[File:Weapon_Spread_{{Weapon type|{{#var:weapon type}}}}.png|50px]]|}}</td><br />
</tr><br />
}}<br />
--><br />
</table><br />
<!--{{#if: {{#var:base skill 1 subobj|}} | i dont remember if i did this part uncommented when first adding card skins--><br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skills]]</th><br />
</tr><br />
<tr><br />
<!-- {{#if: {{#var:base skill 1 subobj|}}|{{#if:{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 1 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 1 range|0 0 0 0}}">{{#if: {{#var:base skill 1 subobj|}} | [[{{#var:base skill 1 subobj|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }}]] | {{#if:{{{base skill 1|}}}|[[{{{base skill 1}}}]] ({{{base skill 1 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 1 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 2 subobj|}}|{{#if:{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 2 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 2 range|0 0 0 0}}">{{#if: {{#var:base skill 2 subobj|}} | [[{{#var:base skill 2 subobj|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }}]] | {{#if:{{{base skill 2|}}}|[[{{{base skill 2}}}]] ({{{base skill 2 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 2 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 3 subobj|}}|{{#if:{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 3 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 3 range|0 0 0 0}}">{{#if: {{#var:base skill 3 subobj|}} | [[{{#var:base skill 3 subobj|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }}]] | {{#if:{{{base skill 3|}}}|[[{{{base skill 3}}}]] ({{{base skill 3 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 3 desc| ? }}</td><br />
</tr><br />
<!-- {{#if: {{#var:base skill 4 subobj|}}|{{#if:{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|<tr><th colspan="3"><b>The skill below has its additional effects viewable [[{{#show: {{#var:base skill 4 subobj}} |?Has additional skills }}|here]].</b></th></tr>}}}}--><br />
<tr><br />
<th data-spread="{{#var:base skill 4 range|0 0 0 0}}">{{#if: {{#var:base skill 4 subobj|}} | [[{{#var:base skill 4 subobj|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }}]] | {{#if:{{{base skill 4|}}}|[[{{{base skill 4}}}]] ({{{base skill 4 id|}}})|?}} }}</th><br />
<td>{{#var:base skill 4 desc| ? }}</td><br />
</tr><br />
</table><br />
{{#if: {{#var:has skill evo|}} |<br />
<table class="data"><br />
<tr><br />
<th colspan="3">[[Skill Evolution]](s)</th><br />
</tr><br />
<!-- {{#if: {{#var:base skill 1 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 1 evo|}}|{{#var:base skill 1 en name|{{{base skill 1}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 1 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 2 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 2 evo|}}|{{#var:base skill 2 en name|{{{base skill 2}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 2 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 3 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 3 evo|}}|{{#var:base skill 3 en name|{{{base skill 3}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 3 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}<br />
{{#if: {{#var:base skill 4 evo|}} |<br />
<tr><br />
<th>[[{{#var:base skill 4 evo|}}|{{#var:base skill 4 en name|{{{base skill 4}}} }} Plus]]</th><br />
<td>{{#masterdata:SkillDescription|{{#show: {{#var:base skill 4 evo}} |?Has ID}}}}</td><br />
</tr><br />
}}--><br />
{{#arrayprint:base skill 1 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 2 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 3 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
{{#arrayprint:base skill 4 evo||@@@@<br />
|<tr><br />
<th>[[@@@@|{{#if:{{#show:@@@@|?Has English name}}|{{#show:@@@@|?Has English name|link=none}}|{{#show:@@@@|?Has Japanese name|link=none}}}}]]</th><br />
<td>{{#masterdata:SkillDescription|{{formatnum:{{#show: @@@@ |?Has ID}}|R}}}}</td><br />
</tr><br />
}}<br />
</table><br />
}}<br />
<table class="data"><br />
<tr><br />
<th colspan="3">{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}</span></u>|{{#if:{{#var:charge skill subobj}}|[[{{#var:charge skill subobj}}|{{{charge skill name}}}]]|{{{charge skill name}}}}}}}|?}}</th><br />
</tr><br />
<tr><br />
<!--th>{{#if:{{{charge skill name|}}}|{{#if:{{{charge skill jp-en name|}}}|<u><span title="{{{charge skill jp-en name}}}">{{{charge skill name}}}</span></u>|{{{charge skill name}}}}}|?}}</th--><br />
<td>{{#if:{{{charge skill name|}}}|{{{charge skill description|?}}}|?}}</td><br />
<td style="width:50px; padding: 0px;">[[File:Weapon Spread {{#var:charge skill weapon|}}.png|50px|link={{#var:charge skill weapon|}}]]{{#if:{{{charge skill multiplier|}}}|<br><div style='text-align:center'>{{{charge skill multiplier}}}<!--~{{#expr:2 * {{{charge skill multiplier}}}}}-->x</div>}}</td><br />
</tr><br />
{{#ifeq:{{#var:availability|}}|Current|<tr><br />
<td colspan="3">{{Equippable AR Equipment|{{{en name|{{{jp name|?}}}}}};{{Weapon type|{{#var:weapon type|?}}}};{{Energy|{{#var:energy|?}}}}}}</td><br />
</tr>}}<br />
</table><br />
<!--}}--><br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th>Illustration</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{illustrator|}}}<br />
| {{#arrayprint:illustrator<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:illustrator subobj {{#var:counter}}|}}<br />
| [[{{#var:illustrator subobj {{#var:counter}}}}|{{#var:illustrator en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Scenario</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{scenario writer|}}}<br />
| {{#arrayprint:scenario writer<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:scenario writer subobj {{#var:counter}}|}}<br />
| [[{{#var:scenario writer subobj {{#var:counter}}}}|{{#var:scenario writer en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
<tr><br />
<th>Voice</th><br />
<td>{{#vardefine:counter|0}}{{#if: {{{voice actor|}}}<br />
| {{#arrayprint:voice actor<br />
|,&#32;<br />
|@@@<br />
| {{#if: {{#var:voice actor subobj {{#var:counter}}|}}<br />
| [[{{#var:voice actor subobj {{#var:counter}}}}|{{#var:voice actor en name {{#var:counter}}|@@@ }}]]<br />
| @@@<br />
}}<br />
{{#vardefine:counter|{{#expr:{{#var:counter}}+1}} }}<br />
}}<br />
| &mdash;&mdash;<br />
}}</td><br />
</tr><br />
{{#if:{{{species|}}}|<br />
<tr><br />
<th>{{Tooltip|Species|Tends to be based on the transient's skillset}}</th><br />
<td>{{{species}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{sex|}}}|<br />
<tr><br />
<th>{{Tooltip|Gender|As defined in the game data, might not be accurate to reality}}</th><br />
<td>{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 = None<br />
|#default = {{{sex|Unknown gender}}}<br />
}}</td><br />
</tr><br />
}}<br />
{{#if:{{{gate|}}}|<br />
<tr><br />
<th>Gate</th><br />
<td>{{#ifeq:{{{gate|}}}|Unknown|Unknown|[[{{Gate|{{{gate}}}|format=name}}]]}}</td><br />
</tr><br />
}}<br />
{{#if:{{{guild|}}}|<br />
<tr><br />
<th>Guild</th><br />
<td>{{#ifeq:{{{guild|}}}|Unknown|Unknown|{{{guild}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{{school|}}}|<br />
<tr><br />
<th>School</th><br />
<td>{{#ifeq:{{{school|}}}|Unknown|Unknown|{{{school}}}}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:weight}}|<br />
<tr><br />
<th>Weight (kg)</th><br />
<td>{{#var:weight}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:height}}|<br />
<tr><br />
<th>Height (cm)</th><br />
<td>{{#var:height}}</td><br />
</tr><br />
}}<br />
{{#if:{{#var:summon date}}|<br />
<tr><br />
<th>Summon Date</th><br />
<td>{{#var:summon date}}</td><br />
</tr><br />
}}<br />
</table><br />
{{#if:{{#var:strategy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:strategy}}|{{#if:{{#pos:{{#show:{{#var:strategy}}|?Category|link=none}}|Strategy pages}}|Strategy|Strategy (placeholder)}}]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#if:{{#var:enemy|}}|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">[[{{#var:enemy}}|Enemy-only]]</th><br />
</tr><br />
</table><br />
|}}<br />
{{#ifeq:{{{partial|}}}|true|<br />
<table class="data transientInfo{{#var:transientnumber}}"><br />
<tr><br />
<th colspan="3">Partial Entry</th><br />
</tr><br />
</table><br />
|}}<br />
</td><br />
|}}<br />
</tr><br />
</table><br />
<div class="footer"></div><br />
<div>{{#if:{{{skin artwork|}}}|{{#tag:galleryscript|{{#ifexist:File:{{{artwork|}}}.png|{{{artwork}}}|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_full|}}}};{{{skin artwork|}}}|number={{#var:transientnumber}}}}|}}<br />
{{#if:{{{cdn skin artwork|}}}|{{#tag:masterdataskins|{{{cdn skin artwork|}}}|selector-chara-relations=#charaRelations{{{chara id|0}}}|voice={{#var:transient voice filename|}}|selector-fg=div.transient{{#var:transientnumber}} > .artwork > img|selector-icon=td.icon.transient{{#var:transientnumber}} > img|flags={{#var:transient voice condition|}}}}{{#vardefine:transient voice filename|}}{{#vardefine:transient voice condition|}}|}}</div><br />
</div></div>{{#ifexpr:{{{charge skill id|0}}}>0|{{#masterdata:Skill|{{{charge skill id|0}}}|format=blank}}}}{{#arraydefine:base skill 1 evo|}}{{#arraydefine:base skill 2 evo|}}{{#arraydefine:base skill 3 evo|}}{{#arraydefine:base skill 4 evo|}}{{#vardefine:has skill evo|}}<!--<br />
<br />
auto categorization<br />
<br />
-->{{#if: {{#ifeq: {{{categorize|y}}} | n | n }} <!-- categorize is set to don't categorize --><br />
{{NAMESPACE}} <!-- don't categorize if outside namespace --><br />
| <!-- don't categorize --><br />
|<br />
<!-- new template type -- ><br />
{{#if:{{#var:transient id|}}|[[Category:Transient using new data structure]]|[[Category:Transient page that needs updating]]}}<br />
<!-- energy --><br />
{{#ifeq: {{Energy|{{#var:energy}}}} | ? | [[Category:Transients with unknown energy]] |<br />
[[Category:{{Energy|{{#var:energy}}}} transients]]<br />
}}<br />
<!--species--><br />
[[Category:{{#if:{{{species|}}}|{{{species}}}|Unknown species}} transients]]<br />
<!--gate--><br />
{{#if:{{{gate|}}}|[[Category:Transients from {{Gate|{{{gate}}}|use-name=true}}]]}}<br />
<!--sex--><br />
[[Category:{{#switch:{{lc:{{{sex|}}}}}<br />
| man = Male<br />
| woman = Female<br />
| 無 | none = Unknown gender<br />
|#default = {{{sex|Unknown gender}}}<br />
}} transients]]<br />
<!-- weapon type --><br />
{{#ifeq: {{Weapon type|{{{weapon type|}}}}} | ? | [[Category:Transients with unknown weapon type]] |<br />
[[Category:{{Weapon type|{{{weapon type}}}}} transients]]<br />
}}<br />
<br />
<!-- availability --><br />
{{#ifeq: {{#var:availability}} | Current | |<br />
[[Category:{{#var:availability}} transients]]<br />
}}<br />
<br />
}}</includeonly><includeonly>{{#ifeq:{{PAGENAME}}|Transient infobox||{{#ifeq:{{#var:transientnumber|0}}|0|{{#seo:<br />
|title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
|titlemode=replace<br />
|keywords=tokyo,afterschool,summoners,housamo,wiki,東京放課後サモナーズ,放サモ,{{{jp name|}}},{{{en name|}}}<br />
|description={{Star}}{{{rarity|0}}}, {{Energy|{{#var:energy}}}}-typed {{Weapon type|{{#var:weapon type}}}} unit.<br />
|og:image={{filepath:{{#ifexist:File:{{{icon|}}}.png|{{{icon}}}.png|{{#ifexist:File:{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{{en name}}}{{#if:{{{variant|}}}|_{{{variant}}}|}}_{{{rarity}}}star_icon.png|{{#ifexist:File:{{{en name}}}_{{{rarity}}}star_icon.png|{{{en name}}}_{{{rarity}}}star_icon.png|}}}}}}}}<br />
|og:title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki<br />
}}}}}}</includeonly><noinclude>{{Documentation}}</noinclude></div>
Barry
https://housamo.wiki/index.php?title=Property:Has_character_ID&diff=43553
Property:Has character ID
2021-10-18T14:37:04Z
<p>Barry: </p>
<hr />
<div>This is a [[Has type::Number]] property.</div>
Barry
https://housamo.wiki/index.php?title=Property:Has_character_ID&diff=43552
Property:Has character ID
2021-10-18T14:34:29Z
<p>Barry: </p>
<hr />
<div>This is a [[Has type::Number] property.</div>
Barry
https://housamo.wiki/index.php?title=Module:Navbox/styles.css&diff=43522
Module:Navbox/styles.css
2021-10-14T23:32:13Z
<p>Barry: </p>
<hr />
<div>.navbox {<br />
border: 1px solid #aaa;<br />
box-sizing: border-box;<br />
width: 100%;<br />
margin: auto;<br />
clear: both;<br />
font-size: 88%;<br />
text-align: center;<br />
padding: 1px;<br />
}<br />
<br />
.navbox-inner,<br />
.navbox-subgroup {<br />
width: 100%;<br />
}<br />
<br />
.navbox + .navbox-styles + .navbox {<br />
/* Single pixel border between adjacent navboxes */<br />
margin-top: -1px;<br />
}<br />
<br />
.navbox th,<br />
.navbox-title,<br />
.navbox-abovebelow {<br />
text-align: center;<br />
/* Title and above/below styles */<br />
padding-left: 1em;<br />
padding-right: 1em;<br />
}<br />
<br />
th.navbox-group {<br />
/* Group style */<br />
white-space: nowrap;<br />
/* @noflip */<br />
text-align: right;<br />
}<br />
<br />
.navbox,<br />
.navbox-subgroup {<br />
background: #fdfdfd;<br />
}<br />
.navbox-list {<br />
/* Must match background color */<br />
border-color: #fdfdfd;<br />
}<br />
<br />
.navbox th,<br />
.navbox-title {<br />
/* Level 1 color */<br />
background: #eaeeff;<br />
}<br />
<br />
.navbox-abovebelow,<br />
th.navbox-group,<br />
.navbox-subgroup .navbox-title {<br />
/* Level 2 color */<br />
background: #ddddff;<br />
}<br />
<br />
.navbox-subgroup .navbox-group,<br />
.navbox-subgroup .navbox-abovebelow {<br />
/* Level 3 color */<br />
background: #e6e6ff;<br />
}<br />
<br />
.navbox-even {<br />
/* Even row striping */<br />
background: #f7f7f7;<br />
}<br />
<br />
.navbox-odd {<br />
/* Odd row striping */<br />
background: transparent;<br />
}<br />
<br />
th.navbox-title1 {<br />
border-left: 2px solid #fdfdfd;<br />
width: 100%;<br />
}<br />
<br />
td.navbox-list1 {<br />
text-align: left;<br />
border-left-width: 2px;<br />
border-left-style: solid;<br />
}<br />
<br />
.navbox .hlist td dl,<br />
.navbox .hlist td ol,<br />
.navbox .hlist td ul,<br />
.navbox td.hlist dl,<br />
.navbox td.hlist ol,<br />
.navbox td.hlist ul {<br />
/* Adjust hlist padding in navboxes */<br />
padding: 0.125em 0;<br />
}<br />
<br />
.navbox .hlist dd,<br />
.navbox .hlist dt,<br />
.navbox .hlist li {<br />
/* Nowrap list items in navboxes */<br />
white-space: /*nowrap*/ normal;<br />
}<br />
<br />
.navbox .hlist dd dl,<br />
.navbox .hlist dt dl,<br />
.navbox .hlist li ol,<br />
.navbox .hlist li ul {<br />
/* But allow parent list items to be wrapped */<br />
white-space: normal;<br />
}<br />
<br />
ol + .navbox-styles + .navbox,<br />
ul + .navbox-styles + .navbox {<br />
/* Prevent lists from clinging to navboxes */<br />
margin-top: 0.5em;<br />
}</div>
Barry
https://housamo.wiki/index.php?title=MediaWiki:Common.js&diff=43512
MediaWiki:Common.js
2021-10-10T13:32:30Z
<p>Barry: </p>
<hr />
<div>/**<br />
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally<br />
* loaded for all users on every wiki page. If possible create a gadget that is<br />
* enabled by default instead of adding it here (since gadgets are fully<br />
* optimized ResourceLoader modules with possibility to add dependencies etc.)<br />
*<br />
* Since Common.js isn't a gadget, there is no place to declare its<br />
* dependencies, so we have to lazy load them with mw.loader.using on demand and<br />
* then execute the rest in the callback. In most cases these dependencies will<br />
* be loaded (or loading) already and the callback will not be delayed. In case a<br />
* dependency hasn't arrived yet it'll make sure those are loaded before this.<br />
*/<br />
<br />
/* global mw, $ */<br />
/* jshint strict:false, browser:true */<br />
<br />
mw.loader.using( [ 'mediawiki.util' ] ).done( function () {<br />
/* Begin of mw.loader.using callback */<br />
<br />
/**<br />
* Main Page layout fixes<br />
*<br />
* Description: Adds an additional link to the complete list of languages available. <br />
* Should T18962 be completed this can be removed along with associated CSS in common.css<br />
* Maintainers: [[User:AzaToth]]<br />
*/<br />
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {<br />
$( function () {<br />
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',<br />
'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );<br />
} );<br />
}<br />
<br />
/**<br />
* Map addPortletLink to mw.util<br />
* @deprecated: Use mw.util.addPortletLink instead.<br />
*/<br />
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );<br />
<br />
/**<br />
* Extract a URL parameter from the current URL<br />
* @deprecated: Use mw.util.getParamValue with proper escaping<br />
*/<br />
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );<br />
<br />
/**<br />
* Test if an element has a certain class<br />
* @deprecated: Use $(element).hasClass() instead.<br />
*/<br />
mw.log.deprecate( window, 'hasClass', function ( element, className ) {<br />
return $( element ).hasClass( className );<br />
}, 'Use jQuery.hasClass() instead' );<br />
<br />
/**<br />
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL<br />
* @rev 6<br />
*/<br />
var extraCSS = mw.util.getParamValue( 'withCSS' ),<br />
extraJS = mw.util.getParamValue( 'withJS' );<br />
<br />
if ( extraCSS ) {<br />
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {<br />
mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );<br />
} else {<br />
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );<br />
}<br />
}<br />
<br />
if ( extraJS ) {<br />
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {<br />
mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );<br />
} else {<br />
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );<br />
}<br />
}<br />
<br />
/**<br />
* WikiMiniAtlas<br />
*<br />
* Description: WikiMiniAtlas is a popup click and drag world map.<br />
* This script causes all of our coordinate links to display the WikiMiniAtlas popup button.<br />
* The script itself is located on meta because it is used by many projects.<br />
* See [[Meta:WikiMiniAtlas]] for more information.<br />
* Note - use of this service is recommended to be replaced with mw:Help:Extension:Kartographer<br />
*/<br />
$( function () {<br />
var requireWikiminiatlas = $( 'a.external.text[href*="geohack"]' ).length || $( 'div.kmldata' ).length;<br />
if ( requireWikiminiatlas ) {<br />
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );<br />
}<br />
} );<br />
<br />
/**<br />
* Collapsible tables; reimplemented with mw-collapsible<br />
* Styling is also in place to avoid FOUC<br />
*<br />
* Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].<br />
* @version 3.0.0 (2018-05-20)<br />
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js<br />
* @author [[User:R. Koot]]<br />
* @author [[User:Krinkle]]<br />
* @author [[User:TheDJ]]<br />
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which<br />
* is supported in MediaWiki core. Shimmable since MediaWiki 1.32<br />
*<br />
* @param {jQuery} $content<br />
*/<br />
function makeCollapsibleMwCollapsible( $content ) {<br />
var $tables = $content<br />
.find( 'table.collapsible:not(.mw-collapsible)' )<br />
.addClass( 'mw-collapsible' );<br />
<br />
$.each( $tables, function ( index, table ) {<br />
// mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.');<br />
if ( $( table ).hasClass( 'collapsed' ) ) {<br />
$( table ).addClass( 'mw-collapsed' );<br />
// mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.');<br />
}<br />
} );<br />
if ( $tables.length > 0 ) {<br />
mw.loader.using( 'jquery.makeCollapsible' ).then( function () {<br />
$tables.makeCollapsible();<br />
} );<br />
}<br />
}<br />
mw.hook( 'wikipage.content' ).add( makeCollapsibleMwCollapsible );<br />
<br />
/**<br />
* Add support to mw-collapsible for autocollapse, innercollapse and outercollapse<br />
*<br />
* Maintainers: TheDJ<br />
*/<br />
function mwCollapsibleSetup( $collapsibleContent ) {<br />
var $element,<br />
$toggle,<br />
autoCollapseThreshold = 2;<br />
$.each( $collapsibleContent, function ( index, element ) {<br />
$element = $( element );<br />
if ( $element.hasClass( 'collapsible' ) ) {<br />
$element.find( 'tr:first > th:first' ).prepend( $element.find( 'tr:first > * > .mw-collapsible-toggle' ) );<br />
}<br />
if ( $collapsibleContent.length >= autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {<br />
$element.data( 'mw-collapsible' ).collapse();<br />
} else if ( $element.hasClass( 'innercollapse' ) ) {<br />
if ( $element.parents( '.outercollapse' ).length > 0 ) {<br />
$element.data( 'mw-collapsible' ).collapse();<br />
}<br />
}<br />
// because of colored backgrounds, style the link in the text color<br />
// to ensure accessible contrast<br />
$toggle = $element.find( '.mw-collapsible-toggle' );<br />
if ( $toggle.length ) {<br />
// Make the toggle inherit text color<br />
if ( $toggle.parent()[ 0 ].style.color ) {<br />
$toggle.find( 'a' ).css( 'color', 'inherit' );<br />
}<br />
}<br />
} );<br />
}<br />
<br />
mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );<br />
<br />
/**<br />
* Magic editintros ****************************************************<br />
*<br />
* Description: Adds editintros on disambiguation pages and BLP pages.<br />
* Maintainers: [[User:RockMFR]]<br />
*<br />
* @param {string} name<br />
*/<br />
function addEditIntro( name ) {<br />
$( '.mw-editsection, #ca-edit, #ca-ve-edit' ).find( 'a' ).each( function ( i, el ) {<br />
el.href = $( this ).attr( 'href' ) + '&editintro=' + name;<br />
} );<br />
}<br />
<br />
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {<br />
$( function () {<br />
if ( document.getElementById( 'disambigbox' ) ) {<br />
addEditIntro( 'Template:Disambig_editintro' );<br />
}<br />
} );<br />
<br />
$( function () {<br />
var cats = mw.config.get( 'wgCategories' );<br />
if ( !cats ) {<br />
return;<br />
}<br />
if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {<br />
addEditIntro( 'Template:BLP_editintro' );<br />
}<br />
} );<br />
}<br />
<br />
/* Actions specific to the edit page */<br />
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {<br />
/**<br />
* Fix edit summary prompt for undo<br />
*<br />
* Fixes the fact that the undo function combined with the "no edit summary prompter"<br />
* complains about missing editsummary, if leaving the edit summary unchanged.<br />
* Added by [[User:Deskana]], code by [[User:Tra]].<br />
* See also [[phab:T10912]].<br />
*/<br />
$( function () {<br />
if ( document.location.search.indexOf( 'undo=' ) !== -1 && document.getElementsByName( 'wpAutoSummary' )[ 0 ] ) {<br />
document.getElementsByName( 'wpAutoSummary' )[ 0 ].value = '1';<br />
}<br />
} );<br />
}<br />
<br />
/* End of mw.loader.using callback */<br />
} );<br />
/* DO NOT ADD CODE BELOW THIS LINE */</div>
Barry
https://housamo.wiki/index.php?title=MediaWiki:Common.js&diff=43511
MediaWiki:Common.js
2021-10-10T13:30:44Z
<p>Barry: </p>
<hr />
<div>/* Any JavaScript here will be loaded for all users on every page load. */<br />
/**<br />
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally<br />
* loaded for all users on every wiki page. If possible create a gadget that is<br />
* enabled by default instead of adding it here (since gadgets are fully<br />
* optimized ResourceLoader modules with possibility to add dependencies etc.)<br />
*<br />
* Since Common.js isn't a gadget, there is no place to declare its<br />
* dependencies, so we have to lazy load them with mw.loader.using on demand and<br />
* then execute the rest in the callback. In most cases these dependencies will<br />
* be loaded (or loading) already and the callback will not be delayed. In case a<br />
* dependency hasn't arrived yet it'll make sure those are loaded before this.<br />
*/<br />
<br />
/* global mw, $ */<br />
/* jshint strict:false, browser:true */<br />
<br />
mw.loader.using( ['mediawiki.user', 'mediawiki.util', 'mediawiki.notify'] ).done( function () {<br />
/* Begin of mw.loader.using callback */<br />
<br />
/**<br />
* Main Page layout fixes<br />
*<br />
* Description: Adds an additional link to the complete list of languages available.<br />
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]<br />
*/<br />
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {<br />
$( function () {<br />
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',<br />
'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );<br />
} );<br />
}<br />
<br />
/**<br />
* Redirect User:Name/skin.js and skin.css to the current skin's pages<br />
* (unless the 'skin' page really exists)<br />
* @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js<br />
* @rev: 2<br />
*/<br />
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {<br />
var titleParts = mw.config.get( 'wgPageName' ).split( '/' );<br />
/* Make sure there was a part before and after the slash<br />
and that the latter is 'skin.js' or 'skin.css' */<br />
if ( titleParts.length == 2 ) {<br />
var userSkinPage = titleParts.shift() + '/' + mw.config.get( 'skin' );<br />
if ( titleParts.slice( -1 ) == 'skin.js' ) {<br />
window.location.href = mw.util.getUrl( userSkinPage + '.js' );<br />
} else if ( titleParts.slice( -1 ) == 'skin.css' ) {<br />
window.location.href = mw.util.getUrl( userSkinPage + '.css' );<br />
}<br />
}<br />
}<br />
<br />
/**<br />
* Map addPortletLink to mw.util<br />
* @deprecated: Use mw.util.addPortletLink instead.<br />
*/<br />
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );<br />
<br />
/**<br />
* Extract a URL parameter from the current URL<br />
* @deprecated: Use mw.util.getParamValue with proper escaping<br />
*/<br />
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );<br />
<br />
/**<br />
* Test if an element has a certain class<br />
* @deprecated: Use $(element).hasClass() instead.<br />
*/<br />
mw.log.deprecate( window, 'hasClass', function ( element, className ) {<br />
return $( element ).hasClass( className );<br />
}, 'Use jQuery.hasClass() instead' );<br />
<br />
/**<br />
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL<br />
* @rev 6<br />
*/<br />
var extraCSS = mw.util.getParamValue( 'withCSS' ),<br />
extraJS = mw.util.getParamValue( 'withJS' );<br />
<br />
if ( extraCSS ) {<br />
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {<br />
mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );<br />
} else {<br />
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );<br />
}<br />
}<br />
<br />
if ( extraJS ) {<br />
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {<br />
mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );<br />
} else {<br />
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );<br />
}<br />
}<br />
<br />
/**<br />
* WikiMiniAtlas<br />
*<br />
* Description: WikiMiniAtlas is a popup click and drag world map.<br />
* This script causes all of our coordinate links to display the WikiMiniAtlas popup button.<br />
* The script itself is located on meta because it is used by many projects.<br />
* See [[Meta:WikiMiniAtlas]] for more information.<br />
* Note - use of this service is recommended to be repalced with mw:Help:Extension:Kartographer<br />
*/<br />
( function () {<br />
var require_wikiminiatlas = false;<br />
var coord_filter = /geohack/;<br />
$( function () {<br />
$( 'a.external.text' ).each( function( key, link ) {<br />
if ( link.href && coord_filter.exec( link.href ) ) {<br />
require_wikiminiatlas = true;<br />
// break from loop<br />
return false;<br />
}<br />
} );<br />
if ( $( 'div.kmldata' ).length ) {<br />
require_wikiminiatlas = true;<br />
}<br />
if ( require_wikiminiatlas ) {<br />
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );<br />
}<br />
} );<br />
} )();<br />
<br />
/**<br />
* Collapsible tables<br />
*<br />
* Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].<br />
*<br />
* @version 2.0.3 (2014-03-14)<br />
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js<br />
* @author [[User:R. Koot]]<br />
* @author [[User:Krinkle]]<br />
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which<br />
* is supported in MediaWiki core.<br />
*/<br />
<br />
var autoCollapse = 2;<br />
var collapseCaption = 'hide';<br />
var expandCaption = 'show';<br />
var tableIndex = 0;<br />
<br />
function collapseTable( tableIndex ) {<br />
var Button = document.getElementById( 'collapseButton' + tableIndex );<br />
var Table = document.getElementById( 'collapsibleTable' + tableIndex );<br />
<br />
if ( !Table || !Button ) {<br />
return false;<br />
}<br />
<br />
var Rows = Table.rows;<br />
var i;<br />
var $row0 = $(Rows[0]);<br />
<br />
if ( Button.firstChild.data === collapseCaption ) {<br />
for ( i = 1; i < Rows.length; i++ ) {<br />
Rows[i].style.display = 'none';<br />
}<br />
Button.firstChild.data = expandCaption;<br />
} else {<br />
for ( i = 1; i < Rows.length; i++ ) {<br />
Rows[i].style.display = $row0.css( 'display' );<br />
}<br />
Button.firstChild.data = collapseCaption;<br />
}<br />
}<br />
<br />
function createClickHandler( tableIndex ) {<br />
return function ( e ) {<br />
e.preventDefault();<br />
collapseTable( tableIndex );<br />
};<br />
}<br />
<br />
function createCollapseButtons( $content ) {<br />
var NavigationBoxes = {};<br />
var $Tables = $content.find( 'table' );<br />
var i;<br />
<br />
$Tables.each( function( i, table ) {<br />
if ( $(table).hasClass( 'collapsible' ) ) {<br />
<br />
/* only add button and increment count if there is a header row to work with */<br />
var HeaderRow = table.getElementsByTagName( 'tr' )[0];<br />
if ( !HeaderRow ) {<br />
return;<br />
}<br />
var Header = table.getElementsByTagName( 'th' )[0];<br />
if ( !Header ) {<br />
return;<br />
}<br />
<br />
NavigationBoxes[ tableIndex ] = table;<br />
table.setAttribute( 'id', 'collapsibleTable' + tableIndex );<br />
<br />
var Button = document.createElement( 'span' );<br />
var ButtonLink = document.createElement( 'a' );<br />
var ButtonText = document.createTextNode( collapseCaption );<br />
// Styles are declared in [[MediaWiki:Common.css]]<br />
Button.className = 'collapseButton';<br />
<br />
ButtonLink.style.color = Header.style.color;<br />
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );<br />
ButtonLink.setAttribute( 'href', '#' );<br />
$( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );<br />
ButtonLink.appendChild( ButtonText );<br />
<br />
Button.appendChild( document.createTextNode( '[' ) );<br />
Button.appendChild( ButtonLink );<br />
Button.appendChild( document.createTextNode( ']' ) );<br />
<br />
Header.insertBefore( Button, Header.firstChild );<br />
tableIndex++;<br />
}<br />
} );<br />
<br />
for ( i = 0; i < tableIndex; i++ ) {<br />
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||<br />
( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )<br />
) {<br />
collapseTable( i );<br />
}<br />
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {<br />
var element = NavigationBoxes[i];<br />
while ((element = element.parentNode)) {<br />
if ( $( element ).hasClass( 'outercollapse' ) ) {<br />
collapseTable ( i );<br />
break;<br />
}<br />
}<br />
}<br />
}<br />
}<br />
<br />
mw.hook( 'wikipage.content' ).add( createCollapseButtons );<br />
<br />
/**<br />
* Add support to mw-collapsible for autocollapse, innercollapse and outercollapse<br />
*<br />
* Maintainers: TheDJ<br />
*/<br />
function mwCollapsibleSetup( $collapsibleContent ) {<br />
var $element,<br />
$toggle,<br />
autoCollapseThreshold = 2;<br />
$.each( $collapsibleContent, function (index, element) {<br />
$element = $( element );<br />
if ( $collapsibleContent.length > autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {<br />
$element.data( 'mw-collapsible' ).collapse();<br />
} else if ( $element.hasClass( 'innercollapse' ) ) {<br />
if ( $element.parents( '.outercollapse' ).length > 0 ) {<br />
$element.data( 'mw-collapsible' ).collapse();<br />
}<br />
}<br />
$toggle = $element.find( '.mw-collapsible-toggle' );<br />
if ( $toggle.length ) {<br />
// Make the toggle inherit text color<br />
if( $toggle.parent()[0].style.color ) {<br />
$toggle.find( 'a' ).css( 'color', 'inherit' );<br />
}<br />
}<br />
} );<br />
}<br />
<br />
mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );<br />
<br />
/**<br />
* Dynamic Navigation Bars (experimental)<br />
*<br />
* Description: See [[Wikipedia:NavFrame]].<br />
* Maintainers: UNMAINTAINED<br />
*/<br />
<br />
/* set up the words in your language */<br />
var NavigationBarHide = '[' + collapseCaption + ']';<br />
var NavigationBarShow = '[' + expandCaption + ']';<br />
var indexNavigationBar = 0;<br />
<br />
/**<br />
* Shows and hides content and picture (if available) of navigation bars<br />
* Parameters:<br />
* indexNavigationBar: the index of navigation bar to be toggled<br />
**/<br />
window.toggleNavigationBar = function ( indexNavigationBar, event ) {<br />
var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );<br />
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );<br />
var NavChild;<br />
<br />
if ( !NavFrame || !NavToggle ) {<br />
return false;<br />
}<br />
<br />
/* if shown now */<br />
if ( NavToggle.firstChild.data === NavigationBarHide ) {<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {<br />
NavChild.style.display = 'none';<br />
}<br />
}<br />
NavToggle.firstChild.data = NavigationBarShow;<br />
<br />
/* if hidden now */<br />
} else if ( NavToggle.firstChild.data === NavigationBarShow ) {<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {<br />
NavChild.style.display = 'block';<br />
}<br />
}<br />
NavToggle.firstChild.data = NavigationBarHide;<br />
}<br />
<br />
event.preventDefault();<br />
};<br />
<br />
/* adds show/hide-button to navigation bars */<br />
function createNavigationBarToggleButton( $content ) {<br />
var NavChild;<br />
/* iterate over all < div >-elements */<br />
var $divs = $content.find( 'div' );<br />
$divs.each( function ( i, NavFrame ) {<br />
/* if found a navigation bar */<br />
if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {<br />
<br />
indexNavigationBar++;<br />
var NavToggle = document.createElement( 'a' );<br />
NavToggle.className = 'NavToggle';<br />
NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );<br />
NavToggle.setAttribute( 'href', '#' );<br />
$( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );<br />
<br />
var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );<br />
/**<br />
* Check if any children are already hidden. This loop is here for backwards compatibility:<br />
* the old way of making NavFrames start out collapsed was to manually add style="display:none"<br />
* to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make<br />
* the content visible without JavaScript support), the new recommended way is to add the class<br />
* "collapsed" to the NavFrame itself, just like with collapsible tables.<br />
*/<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null && !isCollapsed; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {<br />
if ( NavChild.style.display === 'none' ) {<br />
isCollapsed = true;<br />
}<br />
}<br />
}<br />
if ( isCollapsed ) {<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {<br />
NavChild.style.display = 'none';<br />
}<br />
}<br />
}<br />
var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );<br />
NavToggle.appendChild( NavToggleText );<br />
<br />
/* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */<br />
for( var j = 0; j < NavFrame.childNodes.length; j++ ) {<br />
if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {<br />
NavToggle.style.color = NavFrame.childNodes[j].style.color;<br />
NavFrame.childNodes[j].appendChild( NavToggle );<br />
}<br />
}<br />
NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );<br />
}<br />
} );<br />
}<br />
<br />
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );<br />
<br />
/**<br />
* Uploadwizard_newusers<br />
* Switches in a message for non-autoconfirmed users at [[Wikipedia:Upload]]<br />
*<br />
* Maintainers: [[User:Krimpet]]<br />
*/<br />
function uploadwizard_newusers() {<br />
if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && mw.config.get( 'wgTitle' ) === 'Upload' && mw.config.get( 'wgAction' ) === 'view' ) {<br />
var oldDiv = document.getElementById( 'autoconfirmedusers' ),<br />
newDiv = document.getElementById( 'newusers' );<br />
if ( oldDiv && newDiv ) {<br />
var userGroups = mw.config.get( 'wgUserGroups' );<br />
if ( userGroups ) {<br />
for ( var i = 0; i < userGroups.length; i++ ) {<br />
if ( userGroups[i] === 'autoconfirmed' ) {<br />
oldDiv.style.display = 'block';<br />
newDiv.style.display = 'none';<br />
return;<br />
}<br />
}<br />
}<br />
oldDiv.style.display = 'none';<br />
newDiv.style.display = 'block';<br />
return;<br />
}<br />
}<br />
}<br />
<br />
$(uploadwizard_newusers);<br />
<br />
/**<br />
* Magic editintros ****************************************************<br />
*<br />
* Description: Adds editintros on disambiguation pages and BLP pages.<br />
* Maintainers: [[User:RockMFR]]<br />
*/<br />
function addEditIntro( name ) {<br />
$( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function ( i, el ) {<br />
el.href = $( this ).attr( 'href' ) + '&editintro=' + name;<br />
} );<br />
}<br />
<br />
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {<br />
$( function () {<br />
if ( document.getElementById( 'disambigbox' ) ) {<br />
addEditIntro( 'Template:Disambig_editintro' );<br />
}<br />
} );<br />
<br />
$( function () {<br />
var cats = mw.config.get('wgCategories');<br />
if ( !cats ) {<br />
return;<br />
}<br />
if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {<br />
addEditIntro( 'Template:BLP_editintro' );<br />
}<br />
} );<br />
}<br />
<br />
/* Actions specific to the edit page */<br />
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {<br />
/**<br />
* Fix edit summary prompt for undo<br />
*<br />
* Fixes the fact that the undo function combined with the "no edit summary prompter"<br />
* complains about missing editsummary, if leaving the edit summary unchanged.<br />
* Added by [[User:Deskana]], code by [[User:Tra]].<br />
* See also [[phab:T10912]].<br />
*/<br />
$(function () {<br />
if (document.location.search.indexOf('undo=') !== -1 && document.getElementsByName('wpAutoSummary')[0]) {<br />
document.getElementsByName('wpAutoSummary')[0].value = '1';<br />
}<br />
});<br />
}<br />
<br />
$(function () {<br />
if ($('.mw-collapsible').length > 1) {<br />
// if there's more than one collapsible element<br />
// simulate a click to collapse uncollapsed autocollapse elements<br />
$('.mw-collapsible.autocollapse:not(.mw-collapsed)').each(function (i, el) {<br />
$(el).find('.mw-collapsible-toggle > a').click();<br />
});<br />
}<br />
});<br />
<br />
/* End of mw.loader.using callback */<br />
} );<br />
/* DO NOT ADD CODE BELOW THIS LINE */</div>
Barry
https://housamo.wiki/index.php?title=Module:Navbox&diff=43510
Module:Navbox
2021-10-10T13:29:54Z
<p>Barry: </p>
<hr />
<div>--<br />
-- This module implements {{Navbox}}<br />
--<br />
<br />
local p = {}<br />
<br />
local navbar = require('Module:Navbar')._navbar<br />
local getArgs -- lazily initialized<br />
<br />
local args<br />
local border<br />
local listnums<br />
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'<br />
local RESTART_MARKER = '\127_ODDEVEN0_\127'<br />
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'<br />
<br />
local function striped(wikitext)<br />
-- Return wikitext with markers replaced for odd/even striping.<br />
-- Child (subgroup) navboxes are flagged with a category that is removed<br />
-- by parent navboxes. The result is that the category shows all pages<br />
-- where a child navbox is not contained in a parent navbox.<br />
local orphanCat = '[[Category:Navbox orphans]]'<br />
if border == 'subgroup' and args.orphan ~= 'yes' then<br />
-- No change; striping occurs in outermost navbox.<br />
return wikitext .. orphanCat<br />
end<br />
local first, second = 'odd', 'even'<br />
if args.evenodd then<br />
if args.evenodd == 'swap' then<br />
first, second = second, first<br />
else<br />
first = args.evenodd<br />
second = first<br />
end<br />
end<br />
local changer<br />
if first == second then<br />
changer = first<br />
else<br />
local index = 0<br />
changer = function (code)<br />
if code == '0' then<br />
-- Current occurrence is for a group before a nested table.<br />
-- Set it to first as a valid although pointless class.<br />
-- The next occurrence will be the first row after a title<br />
-- in a subgroup and will also be first.<br />
index = 0<br />
return first<br />
end<br />
index = index + 1<br />
return index % 2 == 1 and first or second<br />
end<br />
end<br />
local regex = orphanCat:gsub('([%[%]])', '%%%1')<br />
return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer)) -- () omits gsub count<br />
end<br />
<br />
local function processItem(item, nowrapitems)<br />
if item:sub(1, 2) == '{|' then<br />
-- Applying nowrap to lines in a table does not make sense.<br />
-- Add newlines to compensate for trim of x in |parm=x in a template.<br />
return '\n' .. item ..'\n'<br />
end<br />
if nowrapitems == 'yes' then<br />
local lines = {}<br />
for line in (item .. '\n'):gmatch('([^\n]*)\n') do<br />
local prefix, content = line:match('^([*:;#]+)%s*(.*)')<br />
if prefix and not content:match('^<span class="nowrap">') then<br />
line = prefix .. '<span class="nowrap">' .. content .. '</span>'<br />
end<br />
table.insert(lines, line)<br />
end<br />
item = table.concat(lines, '\n')<br />
end<br />
if item:match('^[*:;#]') then<br />
return '\n' .. item ..'\n'<br />
end<br />
return item<br />
end<br />
<br />
-- Separate function so that we can evaluate properly whether hlist should<br />
-- be added by the module<br />
local function has_navbar()<br />
return args.navbar ~= 'off' and args.navbar ~= 'plain' and<br />
(args.name or mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Navbox')<br />
end<br />
<br />
local function renderNavBar(titleCell)<br />
<br />
if has_navbar() then<br />
titleCell:wikitext(navbar{<br />
args.name,<br />
-- we depend on this being mini = 1 when the navbox module decides<br />
-- to add hlist templatestyles. we also depend on navbar outputting<br />
-- a copy of the hlist templatestyles.<br />
mini = 1,<br />
fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';background:none transparent;border:none;box-shadow:none; padding:0;'<br />
})<br />
end<br />
<br />
end<br />
<br />
--<br />
-- Title row<br />
--<br />
local function renderTitleRow(tbl)<br />
if not args.title then return end<br />
<br />
local titleRow = tbl:tag('tr')<br />
<br />
if args.titlegroup then<br />
titleRow<br />
:tag('th')<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.titlegroupclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.groupstyle)<br />
:cssText(args.titlegroupstyle)<br />
:wikitext(args.titlegroup)<br />
end<br />
<br />
local titleCell = titleRow:tag('th'):attr('scope', 'col')<br />
<br />
if args.titlegroup then<br />
titleCell<br />
:addClass('navbox-title1')<br />
end<br />
<br />
local titleColspan = 2<br />
if args.imageleft then titleColspan = titleColspan + 1 end<br />
if args.image then titleColspan = titleColspan + 1 end<br />
if args.titlegroup then titleColspan = titleColspan - 1 end<br />
<br />
titleCell<br />
:cssText(args.basestyle)<br />
:cssText(args.titlestyle)<br />
:addClass('navbox-title')<br />
:attr('colspan', titleColspan)<br />
<br />
renderNavBar(titleCell)<br />
<br />
titleCell<br />
:tag('div')<br />
-- id for aria-labelledby attribute<br />
:attr('id', mw.uri.anchorEncode(args.title))<br />
:addClass(args.titleclass)<br />
:css('font-size', '114%')<br />
:css('margin', '0 4em')<br />
:wikitext(processItem(args.title))<br />
end<br />
<br />
--<br />
-- Above/Below rows<br />
--<br />
<br />
local function getAboveBelowColspan()<br />
local ret = 2<br />
if args.imageleft then ret = ret + 1 end<br />
if args.image then ret = ret + 1 end<br />
return ret<br />
end<br />
<br />
local function renderAboveRow(tbl)<br />
if not args.above then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.aboveclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.abovestyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
-- id for aria-labelledby attribute, if no title<br />
:attr('id', args.title and nil or mw.uri.anchorEncode(args.above))<br />
:wikitext(processItem(args.above, args.nowrapitems))<br />
end<br />
<br />
local function renderBelowRow(tbl)<br />
if not args.below then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.belowclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.belowstyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
:wikitext(processItem(args.below, args.nowrapitems))<br />
end<br />
<br />
--<br />
-- List rows<br />
--<br />
local function renderListRow(tbl, index, listnum)<br />
local row = tbl:tag('tr')<br />
<br />
if index == 1 and args.imageleft then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 2px 0px 0px')<br />
:cssText(args.imageleftstyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.imageleft))<br />
end<br />
<br />
if args['group' .. listnum] then<br />
local groupCell = row:tag('th')<br />
<br />
-- id for aria-labelledby attribute, if lone group with no title or above<br />
if listnum == 1 and not (args.title or args.above or args.group2) then<br />
groupCell<br />
:attr('id', mw.uri.anchorEncode(args.group1))<br />
end<br />
<br />
groupCell<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.groupclass)<br />
:cssText(args.basestyle)<br />
:css('width', args.groupwidth or '1%') -- If groupwidth not specified, minimize width<br />
<br />
groupCell<br />
:cssText(args.groupstyle)<br />
:cssText(args['group' .. listnum .. 'style'])<br />
:wikitext(args['group' .. listnum])<br />
end<br />
<br />
local listCell = row:tag('td')<br />
<br />
if args['group' .. listnum] then<br />
listCell<br />
:addClass('navbox-list1')<br />
else<br />
listCell:attr('colspan', 2)<br />
end<br />
<br />
if not args.groupwidth then<br />
listCell:css('width', '100%')<br />
end<br />
<br />
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing<br />
if index % 2 == 1 then<br />
rowstyle = args.oddstyle<br />
else<br />
rowstyle = args.evenstyle<br />
end<br />
<br />
local listText = args['list' .. listnum]<br />
local oddEven = ODD_EVEN_MARKER<br />
if listText:sub(1, 12) == '</div><table' then<br />
-- Assume list text is for a subgroup navbox so no automatic striping for this row.<br />
oddEven = listText:find('<th[^>]*"navbox%-title"') and RESTART_MARKER or 'odd'<br />
end<br />
listCell<br />
:css('padding', '0px')<br />
:cssText(args.liststyle)<br />
:cssText(rowstyle)<br />
:cssText(args['list' .. listnum .. 'style'])<br />
:addClass('navbox-list')<br />
:addClass('navbox-' .. oddEven)<br />
:addClass(args.listclass)<br />
:addClass(args['list' .. listnum .. 'class'])<br />
:tag('div')<br />
:css('padding', (index == 1 and args.list1padding) or args.listpadding or '0em 0.25em')<br />
:wikitext(processItem(listText, args.nowrapitems))<br />
<br />
if index == 1 and args.image then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 0px 0px 2px')<br />
:cssText(args.imagestyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.image))<br />
end<br />
end<br />
<br />
<br />
--<br />
-- Tracking categories<br />
--<br />
<br />
local function needsHorizontalLists()<br />
if border == 'subgroup' or args.tracking == 'no' then<br />
return false<br />
end<br />
local listClasses = {<br />
['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,<br />
['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,<br />
['hlist vevent'] = true,<br />
}<br />
return not (listClasses[args.listclass] or listClasses[args.bodyclass])<br />
end<br />
<br />
-- there are a lot of list classes in the wild, so we have a function to find<br />
-- them and add their TemplateStyles<br />
local function addListStyles()<br />
local frame = mw.getCurrentFrame()<br />
-- TODO?: Should maybe take a table of classes for e.g. hnum, hwrap as above<br />
-- I'm going to do the stupid thing first though<br />
-- Also not sure hnum and hwrap are going to live in the same TemplateStyles<br />
-- as hlist<br />
local function _addListStyles(htmlclass, templatestyles)<br />
local class_args = { -- rough order of probability of use<br />
'bodyclass', 'listclass', 'aboveclass', 'belowclass', 'titleclass',<br />
'navboxclass', 'groupclass', 'titlegroupclass', 'imageclass'<br />
}<br />
local patterns = {<br />
'^' .. htmlclass .. '$',<br />
'%s' .. htmlclass .. '$',<br />
'^' .. htmlclass .. '%s',<br />
'%s' .. htmlclass .. '%s'<br />
}<br />
<br />
local found = false<br />
for _, arg in ipairs(class_args) do<br />
for _, pattern in ipairs(patterns) do<br />
if mw.ustring.find(args[arg] or '', pattern) then<br />
found = true<br />
break<br />
end<br />
end<br />
if found then break end<br />
end<br />
if found then<br />
return frame:extensionTag{<br />
name = 'templatestyles', args = { src = templatestyles }<br />
}<br />
else<br />
return ''<br />
end<br />
end<br />
<br />
local hlist_styles = ''<br />
-- navbar always has mini = 1, so here (on this wiki) we can assume that<br />
-- we don't need to output hlist styles in navbox again.<br />
if not has_navbar() then<br />
hlist_styles = _addListStyles('hlist', 'Flatlist/styles.css')<br />
end<br />
local plainlist_styles = _addListStyles('plainlist', 'Plainlist/styles.css')<br />
<br />
return hlist_styles .. plainlist_styles<br />
end<br />
<br />
local function hasBackgroundColors()<br />
for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('background', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function hasBorders()<br />
for _, key in ipairs({'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('border', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function isIllegible()<br />
-- require('Module:Color contrast') absent on mediawiki.org<br />
return false<br />
end<br />
<br />
local function getTrackingCategories()<br />
local cats = {}<br />
if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end<br />
if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end<br />
if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end<br />
if hasBorders() then table.insert(cats, 'Navboxes using borders') end<br />
return cats<br />
end<br />
<br />
local function renderTrackingCategories(builder)<br />
local title = mw.title.getCurrentTitle()<br />
if title.namespace ~= 10 then return end -- not in template space<br />
local subpage = title.subpageText<br />
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end<br />
<br />
for _, cat in ipairs(getTrackingCategories()) do<br />
builder:wikitext('[[Category:' .. cat .. ']]')<br />
end<br />
end<br />
<br />
--<br />
-- Main navbox tables<br />
--<br />
local function renderMainTable()<br />
local tbl = mw.html.create('table')<br />
:addClass('nowraplinks')<br />
:addClass(args.bodyclass)<br />
<br />
if args.title and (args.state ~= 'plain' and args.state ~= 'off') then<br />
if args.state == 'collapsed' then args.state = 'mw-collapsed' end<br />
tbl<br />
:addClass('mw-collapsible')<br />
:addClass(args.state or 'autocollapse')<br />
end<br />
<br />
tbl:css('border-spacing', 0)<br />
if border == 'subgroup' or border == 'none' then<br />
tbl<br />
:addClass('navbox-subgroup')<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
else -- regular navbox - bodystyle and style will be applied to the wrapper table<br />
tbl<br />
:addClass('navbox-inner')<br />
:css('background', 'transparent')<br />
:css('color', 'inherit')<br />
end<br />
tbl:cssText(args.innerstyle)<br />
<br />
renderTitleRow(tbl)<br />
renderAboveRow(tbl)<br />
for i, listnum in ipairs(listnums) do<br />
renderListRow(tbl, i, listnum)<br />
end<br />
renderBelowRow(tbl)<br />
<br />
return tbl<br />
end<br />
<br />
function p._navbox(navboxArgs)<br />
args = navboxArgs<br />
listnums = {}<br />
<br />
for k, _ in pairs(args) do<br />
if type(k) == 'string' then<br />
local listnum = k:match('^list(%d+)$')<br />
if listnum then table.insert(listnums, tonumber(listnum)) end<br />
end<br />
end<br />
table.sort(listnums)<br />
<br />
border = mw.text.trim(args.border or args[1] or '')<br />
if border == 'child' then<br />
border = 'subgroup'<br />
end<br />
<br />
-- render the main body of the navbox<br />
local tbl = renderMainTable()<br />
<br />
-- get templatestyles<br />
local frame = mw.getCurrentFrame()<br />
local base_templatestyles = frame:extensionTag{<br />
name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' }<br />
}<br />
local templatestyles = ''<br />
if args.templatestyles and args.templatestyles ~= '' then<br />
templatestyles = frame:extensionTag{<br />
name = 'templatestyles', args = { src = args.templatestyles }<br />
}<br />
end<br />
<br />
local res = mw.html.create()<br />
-- 'navbox-styles' exists for two reasons:<br />
-- 1. To wrap the styles to work around phab: T200206 more elegantly. Instead<br />
-- of combinatorial rules, this ends up being linear number of CSS rules.<br />
-- 2. To allow MobileFrontend to rip the styles out with 'nomobile' such that<br />
-- they are not dumped into the mobile view.<br />
res:tag('div')<br />
:addClass('navbox-styles')<br />
:addClass('nomobile')<br />
:wikitext(base_templatestyles .. templatestyles)<br />
:done()<br />
<br />
-- render the appropriate wrapper around the navbox, depending on the border param<br />
if border == 'none' then<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
elseif border == 'subgroup' then<br />
-- We assume that this navbox is being rendered in a list cell of a<br />
-- parent navbox, and is therefore inside a div with padding:0em 0.25em.<br />
-- We start with a </div> to avoid the padding being applied, and at the<br />
-- end add a <div> to balance out the parent's </div><br />
res<br />
:wikitext('</div>')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
:wikitext('<div>')<br />
else<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:addClass('navbox')<br />
:addClass(args.navboxclass)<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
:css('padding', '3px')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
end<br />
<br />
if (args.nocat or 'false'):lower() == 'false' then<br />
renderTrackingCategories(res)<br />
end<br />
<br />
return striped(tostring(res))<br />
end<br />
<br />
function p.navbox(frame)<br />
if not getArgs then<br />
getArgs = require('Module:Arguments').getArgs<br />
end<br />
args = getArgs(frame, {wrappers = {'Template:Navbox', 'Template:Navbox subgroup'}})<br />
if frame.args.border then<br />
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.<br />
args.border = frame.args.border<br />
end<br />
<br />
-- Read the arguments in the order they'll be output in, to make references number in the right order.<br />
local _<br />
_ = args.title<br />
_ = args.above<br />
for i = 1, 20 do<br />
_ = args["group" .. tostring(i)]<br />
_ = args["list" .. tostring(i)]<br />
end<br />
_ = args.below<br />
<br />
return p._navbox(args)<br />
end<br />
<br />
return p</div>
Barry
https://housamo.wiki/index.php?title=Module:Navbox&diff=43509
Module:Navbox
2021-10-10T13:28:52Z
<p>Barry: </p>
<hr />
<div>--<br />
-- This module implements {{Navbox}}<br />
--<br />
<br />
local p = {}<br />
<br />
local navbar = require('Module:Navbar')._navbar<br />
local getArgs -- lazily initialized<br />
<br />
local args<br />
local border<br />
local listnums<br />
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'<br />
local RESTART_MARKER = '\127_ODDEVEN0_\127'<br />
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'<br />
<br />
local function striped(wikitext)<br />
-- Return wikitext with markers replaced for odd/even striping.<br />
-- Child (subgroup) navboxes are flagged with a category that is removed<br />
-- by parent navboxes. The result is that the category shows all pages<br />
-- where a child navbox is not contained in a parent navbox.<br />
local orphanCat = '[[Category:Navbox orphans]]'<br />
if border == 'subgroup' and args.orphan ~= 'yes' then<br />
-- No change; striping occurs in outermost navbox.<br />
return wikitext .. orphanCat<br />
end<br />
local first, second = 'odd', 'even'<br />
if args.evenodd then<br />
if args.evenodd == 'swap' then<br />
first, second = second, first<br />
else<br />
first = args.evenodd<br />
second = first<br />
end<br />
end<br />
local changer<br />
if first == second then<br />
changer = first<br />
else<br />
local index = 0<br />
changer = function (code)<br />
if code == '0' then<br />
-- Current occurrence is for a group before a nested table.<br />
-- Set it to first as a valid although pointless class.<br />
-- The next occurrence will be the first row after a title<br />
-- in a subgroup and will also be first.<br />
index = 0<br />
return first<br />
end<br />
index = index + 1<br />
return index % 2 == 1 and first or second<br />
end<br />
end<br />
local regex = orphanCat:gsub('([%[%]])', '%%%1')<br />
return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer)) -- () omits gsub count<br />
end<br />
<br />
local function processItem(item, nowrapitems)<br />
if item:sub(1, 2) == '{|' then<br />
-- Applying nowrap to lines in a table does not make sense.<br />
-- Add newlines to compensate for trim of x in |parm=x in a template.<br />
return '\n' .. item ..'\n'<br />
end<br />
if nowrapitems == 'yes' then<br />
local lines = {}<br />
for line in (item .. '\n'):gmatch('([^\n]*)\n') do<br />
local prefix, content = line:match('^([*:;#]+)%s*(.*)')<br />
if prefix and not content:match('^<span class="nowrap">') then<br />
line = prefix .. '<span class="nowrap">' .. content .. '</span>'<br />
end<br />
table.insert(lines, line)<br />
end<br />
item = table.concat(lines, '\n')<br />
end<br />
if item:match('^[*:;#]') then<br />
return '\n' .. item ..'\n'<br />
end<br />
return item<br />
end<br />
<br />
-- Separate function so that we can evaluate properly whether hlist should<br />
-- be added by the module<br />
local function has_navbar()<br />
return args.navbar ~= 'off' and args.navbar ~= 'plain' and<br />
(args.name or mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Navbox')<br />
end<br />
<br />
local function renderNavBar(titleCell)<br />
<br />
if has_navbar() then<br />
titleCell:wikitext(navbar{<br />
args.name,<br />
-- we depend on this being mini = 1 when the navbox module decides<br />
-- to add hlist templatestyles. we also depend on navbar outputting<br />
-- a copy of the hlist templatestyles.<br />
mini = 1,<br />
fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';background:none transparent;border:none;box-shadow:none; padding:0;'<br />
})<br />
end<br />
<br />
end<br />
<br />
--<br />
-- Title row<br />
--<br />
local function renderTitleRow(tbl)<br />
if not args.title then return end<br />
<br />
local titleRow = tbl:tag('tr')<br />
<br />
if args.titlegroup then<br />
titleRow<br />
:tag('th')<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.titlegroupclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.groupstyle)<br />
:cssText(args.titlegroupstyle)<br />
:wikitext(args.titlegroup)<br />
end<br />
<br />
local titleCell = titleRow:tag('th'):attr('scope', 'col')<br />
<br />
if args.titlegroup then<br />
titleCell<br />
:addClass('navbox-title1')<br />
end<br />
<br />
local titleColspan = 2<br />
if args.imageleft then titleColspan = titleColspan + 1 end<br />
if args.image then titleColspan = titleColspan + 1 end<br />
if args.titlegroup then titleColspan = titleColspan - 1 end<br />
<br />
titleCell<br />
:cssText(args.basestyle)<br />
:cssText(args.titlestyle)<br />
:addClass('navbox-title')<br />
:attr('colspan', titleColspan)<br />
<br />
renderNavBar(titleCell)<br />
<br />
titleCell<br />
:tag('div')<br />
-- id for aria-labelledby attribute<br />
:attr('id', mw.uri.anchorEncode(args.title))<br />
:addClass(args.titleclass)<br />
:css('font-size', '114%')<br />
:css('margin', '0 4em')<br />
:wikitext(processItem(args.title))<br />
end<br />
<br />
--<br />
-- Above/Below rows<br />
--<br />
<br />
local function getAboveBelowColspan()<br />
local ret = 2<br />
if args.imageleft then ret = ret + 1 end<br />
if args.image then ret = ret + 1 end<br />
return ret<br />
end<br />
<br />
local function renderAboveRow(tbl)<br />
if not args.above then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.aboveclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.abovestyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
-- id for aria-labelledby attribute, if no title<br />
:attr('id', args.title and nil or mw.uri.anchorEncode(args.above))<br />
:wikitext(processItem(args.above, args.nowrapitems))<br />
end<br />
<br />
local function renderBelowRow(tbl)<br />
if not args.below then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.belowclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.belowstyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
:wikitext(processItem(args.below, args.nowrapitems))<br />
end<br />
<br />
--<br />
-- List rows<br />
--<br />
local function renderListRow(tbl, index, listnum)<br />
local row = tbl:tag('tr')<br />
<br />
if index == 1 and args.imageleft then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 2px 0px 0px')<br />
:cssText(args.imageleftstyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.imageleft))<br />
end<br />
<br />
if args['group' .. listnum] then<br />
local groupCell = row:tag('th')<br />
<br />
-- id for aria-labelledby attribute, if lone group with no title or above<br />
if listnum == 1 and not (args.title or args.above or args.group2) then<br />
groupCell<br />
:attr('id', mw.uri.anchorEncode(args.group1))<br />
end<br />
<br />
groupCell<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.groupclass)<br />
:cssText(args.basestyle)<br />
:css('width', args.groupwidth or '1%') -- If groupwidth not specified, minimize width<br />
<br />
groupCell<br />
:cssText(args.groupstyle)<br />
:cssText(args['group' .. listnum .. 'style'])<br />
:wikitext(args['group' .. listnum])<br />
end<br />
<br />
local listCell = row:tag('td')<br />
<br />
if args['group' .. listnum] then<br />
listCell<br />
:addClass('navbox-list1')<br />
else<br />
listCell:attr('colspan', 2)<br />
end<br />
<br />
if not args.groupwidth then<br />
listCell:css('width', '100%')<br />
end<br />
<br />
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing<br />
if index % 2 == 1 then<br />
rowstyle = args.oddstyle<br />
else<br />
rowstyle = args.evenstyle<br />
end<br />
<br />
local listText = args['list' .. listnum]<br />
local oddEven = ODD_EVEN_MARKER<br />
if listText:sub(1, 12) == '</div><table' then<br />
-- Assume list text is for a subgroup navbox so no automatic striping for this row.<br />
oddEven = listText:find('<th[^>]*"navbox%-title"') and RESTART_MARKER or 'odd'<br />
end<br />
listCell<br />
:css('padding', '0px')<br />
:cssText(args.liststyle)<br />
:cssText(rowstyle)<br />
:cssText(args['list' .. listnum .. 'style'])<br />
:addClass('navbox-list')<br />
:addClass('navbox-' .. oddEven)<br />
:addClass(args.listclass)<br />
:addClass(args['list' .. listnum .. 'class'])<br />
:tag('div')<br />
:css('padding', (index == 1 and args.list1padding) or args.listpadding or '0em 0.25em')<br />
:wikitext(processItem(listText, args.nowrapitems))<br />
<br />
if index == 1 and args.image then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 0px 0px 2px')<br />
:cssText(args.imagestyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.image))<br />
end<br />
end<br />
<br />
<br />
--<br />
-- Tracking categories<br />
--<br />
<br />
local function needsHorizontalLists()<br />
if border == 'subgroup' or args.tracking == 'no' then<br />
return false<br />
end<br />
local listClasses = {<br />
['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,<br />
['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,<br />
['hlist vevent'] = true,<br />
}<br />
return not (listClasses[args.listclass] or listClasses[args.bodyclass])<br />
end<br />
<br />
-- there are a lot of list classes in the wild, so we have a function to find<br />
-- them and add their TemplateStyles<br />
local function addListStyles()<br />
local frame = mw.getCurrentFrame()<br />
-- TODO?: Should maybe take a table of classes for e.g. hnum, hwrap as above<br />
-- I'm going to do the stupid thing first though<br />
-- Also not sure hnum and hwrap are going to live in the same TemplateStyles<br />
-- as hlist<br />
local function _addListStyles(htmlclass, templatestyles)<br />
local class_args = { -- rough order of probability of use<br />
'bodyclass', 'listclass', 'aboveclass', 'belowclass', 'titleclass',<br />
'navboxclass', 'groupclass', 'titlegroupclass', 'imageclass'<br />
}<br />
local patterns = {<br />
'^' .. htmlclass .. '$',<br />
'%s' .. htmlclass .. '$',<br />
'^' .. htmlclass .. '%s',<br />
'%s' .. htmlclass .. '%s'<br />
}<br />
<br />
local found = false<br />
for _, arg in ipairs(class_args) do<br />
for _, pattern in ipairs(patterns) do<br />
if mw.ustring.find(args[arg] or '', pattern) then<br />
found = true<br />
break<br />
end<br />
end<br />
if found then break end<br />
end<br />
if found then<br />
return frame:extensionTag{<br />
name = 'templatestyles', args = { src = templatestyles }<br />
}<br />
else<br />
return ''<br />
end<br />
end<br />
<br />
local hlist_styles = ''<br />
-- navbar always has mini = 1, so here (on this wiki) we can assume that<br />
-- we don't need to output hlist styles in navbox again.<br />
if not has_navbar() then<br />
hlist_styles = _addListStyles('hlist', 'Flatlist/styles.css')<br />
end<br />
local plainlist_styles = _addListStyles('plainlist', 'Plainlist/styles.css')<br />
<br />
return hlist_styles .. plainlist_styles<br />
end<br />
<br />
local function hasBackgroundColors()<br />
for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('background', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function hasBorders()<br />
for _, key in ipairs({'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('border', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function isIllegible()<br />
-- require('Module:Color contrast') absent on mediawiki.org<br />
return false<br />
end<br />
<br />
local function getTrackingCategories()<br />
local cats = {}<br />
if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end<br />
if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end<br />
if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end<br />
if hasBorders() then table.insert(cats, 'Navboxes using borders') end<br />
return cats<br />
end<br />
<br />
local function renderTrackingCategories(builder)<br />
local title = mw.title.getCurrentTitle()<br />
if title.namespace ~= 10 then return end -- not in template space<br />
local subpage = title.subpageText<br />
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end<br />
<br />
for _, cat in ipairs(getTrackingCategories()) do<br />
builder:wikitext('[[Category:' .. cat .. ']]')<br />
end<br />
end<br />
<br />
--<br />
-- Main navbox tables<br />
--<br />
local function renderMainTable()<br />
local tbl = mw.html.create('table')<br />
:addClass('nowraplinks')<br />
:addClass(args.bodyclass)<br />
<br />
if args.title and (args.state ~= 'plain' and args.state ~= 'off') then<br />
if args.state == 'collapsed' then args.state = 'mw-collapsed' end<br />
tbl<br />
:addClass('mw-collapsible')<br />
:addClass(args.state or 'mw-autocollapse')<br />
end<br />
<br />
tbl:css('border-spacing', 0)<br />
if border == 'subgroup' or border == 'none' then<br />
tbl<br />
:addClass('navbox-subgroup')<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
else -- regular navbox - bodystyle and style will be applied to the wrapper table<br />
tbl<br />
:addClass('navbox-inner')<br />
:css('background', 'transparent')<br />
:css('color', 'inherit')<br />
end<br />
tbl:cssText(args.innerstyle)<br />
<br />
renderTitleRow(tbl)<br />
renderAboveRow(tbl)<br />
for i, listnum in ipairs(listnums) do<br />
renderListRow(tbl, i, listnum)<br />
end<br />
renderBelowRow(tbl)<br />
<br />
return tbl<br />
end<br />
<br />
function p._navbox(navboxArgs)<br />
args = navboxArgs<br />
listnums = {}<br />
<br />
for k, _ in pairs(args) do<br />
if type(k) == 'string' then<br />
local listnum = k:match('^list(%d+)$')<br />
if listnum then table.insert(listnums, tonumber(listnum)) end<br />
end<br />
end<br />
table.sort(listnums)<br />
<br />
border = mw.text.trim(args.border or args[1] or '')<br />
if border == 'child' then<br />
border = 'subgroup'<br />
end<br />
<br />
-- render the main body of the navbox<br />
local tbl = renderMainTable()<br />
<br />
-- get templatestyles<br />
local frame = mw.getCurrentFrame()<br />
local base_templatestyles = frame:extensionTag{<br />
name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' }<br />
}<br />
local templatestyles = ''<br />
if args.templatestyles and args.templatestyles ~= '' then<br />
templatestyles = frame:extensionTag{<br />
name = 'templatestyles', args = { src = args.templatestyles }<br />
}<br />
end<br />
<br />
local res = mw.html.create()<br />
-- 'navbox-styles' exists for two reasons:<br />
-- 1. To wrap the styles to work around phab: T200206 more elegantly. Instead<br />
-- of combinatorial rules, this ends up being linear number of CSS rules.<br />
-- 2. To allow MobileFrontend to rip the styles out with 'nomobile' such that<br />
-- they are not dumped into the mobile view.<br />
res:tag('div')<br />
:addClass('navbox-styles')<br />
:addClass('nomobile')<br />
:wikitext(base_templatestyles .. templatestyles)<br />
:done()<br />
<br />
-- render the appropriate wrapper around the navbox, depending on the border param<br />
if border == 'none' then<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
elseif border == 'subgroup' then<br />
-- We assume that this navbox is being rendered in a list cell of a<br />
-- parent navbox, and is therefore inside a div with padding:0em 0.25em.<br />
-- We start with a </div> to avoid the padding being applied, and at the<br />
-- end add a <div> to balance out the parent's </div><br />
res<br />
:wikitext('</div>')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
:wikitext('<div>')<br />
else<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:addClass('navbox')<br />
:addClass(args.navboxclass)<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
:css('padding', '3px')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
end<br />
<br />
if (args.nocat or 'false'):lower() == 'false' then<br />
renderTrackingCategories(res)<br />
end<br />
<br />
return striped(tostring(res))<br />
end<br />
<br />
function p.navbox(frame)<br />
if not getArgs then<br />
getArgs = require('Module:Arguments').getArgs<br />
end<br />
args = getArgs(frame, {wrappers = {'Template:Navbox', 'Template:Navbox subgroup'}})<br />
if frame.args.border then<br />
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.<br />
args.border = frame.args.border<br />
end<br />
<br />
-- Read the arguments in the order they'll be output in, to make references number in the right order.<br />
local _<br />
_ = args.title<br />
_ = args.above<br />
for i = 1, 20 do<br />
_ = args["group" .. tostring(i)]<br />
_ = args["list" .. tostring(i)]<br />
end<br />
_ = args.below<br />
<br />
return p._navbox(args)<br />
end<br />
<br />
return p</div>
Barry
https://housamo.wiki/index.php?title=MediaWiki:Common.js&diff=43508
MediaWiki:Common.js
2021-10-10T13:25:02Z
<p>Barry: </p>
<hr />
<div>/* Any JavaScript here will be loaded for all users on every page load. */<br />
/**<br />
* Keep code in MediaWiki:Common.js to a minimum as it is unconditionally<br />
* loaded for all users on every wiki page. If possible create a gadget that is<br />
* enabled by default instead of adding it here (since gadgets are fully<br />
* optimized ResourceLoader modules with possibility to add dependencies etc.)<br />
*<br />
* Since Common.js isn't a gadget, there is no place to declare its<br />
* dependencies, so we have to lazy load them with mw.loader.using on demand and<br />
* then execute the rest in the callback. In most cases these dependencies will<br />
* be loaded (or loading) already and the callback will not be delayed. In case a<br />
* dependency hasn't arrived yet it'll make sure those are loaded before this.<br />
*/<br />
<br />
/* global mw, $ */<br />
/* jshint strict:false, browser:true */<br />
<br />
mw.loader.using( ['mediawiki.user', 'mediawiki.util', 'mediawiki.notify'] ).done( function () {<br />
/* Begin of mw.loader.using callback */<br />
<br />
/**<br />
* Main Page layout fixes<br />
*<br />
* Description: Adds an additional link to the complete list of languages available.<br />
* Maintainers: [[User:AzaToth]], [[User:R. Koot]], [[User:Alex Smotrov]]<br />
*/<br />
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' || mw.config.get( 'wgPageName' ) === 'Talk:Main_Page' ) {<br />
$( function () {<br />
mw.util.addPortletLink( 'p-lang', '//meta.wikimedia.org/wiki/List_of_Wikipedias',<br />
'Complete list', 'interwiki-completelist', 'Complete list of Wikipedias' );<br />
} );<br />
}<br />
<br />
/**<br />
* Redirect User:Name/skin.js and skin.css to the current skin's pages<br />
* (unless the 'skin' page really exists)<br />
* @source: http://www.mediawiki.org/wiki/Snippets/Redirect_skin.js<br />
* @rev: 2<br />
*/<br />
if ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgNamespaceNumber' ) === 2 ) {<br />
var titleParts = mw.config.get( 'wgPageName' ).split( '/' );<br />
/* Make sure there was a part before and after the slash<br />
and that the latter is 'skin.js' or 'skin.css' */<br />
if ( titleParts.length == 2 ) {<br />
var userSkinPage = titleParts.shift() + '/' + mw.config.get( 'skin' );<br />
if ( titleParts.slice( -1 ) == 'skin.js' ) {<br />
window.location.href = mw.util.getUrl( userSkinPage + '.js' );<br />
} else if ( titleParts.slice( -1 ) == 'skin.css' ) {<br />
window.location.href = mw.util.getUrl( userSkinPage + '.css' );<br />
}<br />
}<br />
}<br />
<br />
/**<br />
* Map addPortletLink to mw.util<br />
* @deprecated: Use mw.util.addPortletLink instead.<br />
*/<br />
mw.log.deprecate( window, 'addPortletLink', mw.util.addPortletLink, 'Use mw.util.addPortletLink instead' );<br />
<br />
/**<br />
* Extract a URL parameter from the current URL<br />
* @deprecated: Use mw.util.getParamValue with proper escaping<br />
*/<br />
mw.log.deprecate( window, 'getURLParamValue', mw.util.getParamValue, 'Use mw.util.getParamValue instead' );<br />
<br />
/**<br />
* Test if an element has a certain class<br />
* @deprecated: Use $(element).hasClass() instead.<br />
*/<br />
mw.log.deprecate( window, 'hasClass', function ( element, className ) {<br />
return $( element ).hasClass( className );<br />
}, 'Use jQuery.hasClass() instead' );<br />
<br />
/**<br />
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL<br />
* @rev 6<br />
*/<br />
var extraCSS = mw.util.getParamValue( 'withCSS' ),<br />
extraJS = mw.util.getParamValue( 'withJS' );<br />
<br />
if ( extraCSS ) {<br />
if ( extraCSS.match( /^MediaWiki:[^&<>=%#]*\.css$/ ) ) {<br />
mw.loader.load( '/w/index.php?title=' + extraCSS + '&action=raw&ctype=text/css', 'text/css' );<br />
} else {<br />
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' } );<br />
}<br />
}<br />
<br />
if ( extraJS ) {<br />
if ( extraJS.match( /^MediaWiki:[^&<>=%#]*\.js$/ ) ) {<br />
mw.loader.load( '/w/index.php?title=' + extraJS + '&action=raw&ctype=text/javascript' );<br />
} else {<br />
mw.notify( 'Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' } );<br />
}<br />
}<br />
<br />
/**<br />
* WikiMiniAtlas<br />
*<br />
* Description: WikiMiniAtlas is a popup click and drag world map.<br />
* This script causes all of our coordinate links to display the WikiMiniAtlas popup button.<br />
* The script itself is located on meta because it is used by many projects.<br />
* See [[Meta:WikiMiniAtlas]] for more information.<br />
* Note - use of this service is recommended to be repalced with mw:Help:Extension:Kartographer<br />
*/<br />
( function () {<br />
var require_wikiminiatlas = false;<br />
var coord_filter = /geohack/;<br />
$( function () {<br />
$( 'a.external.text' ).each( function( key, link ) {<br />
if ( link.href && coord_filter.exec( link.href ) ) {<br />
require_wikiminiatlas = true;<br />
// break from loop<br />
return false;<br />
}<br />
} );<br />
if ( $( 'div.kmldata' ).length ) {<br />
require_wikiminiatlas = true;<br />
}<br />
if ( require_wikiminiatlas ) {<br />
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );<br />
}<br />
} );<br />
} )();<br />
<br />
/**<br />
* Collapsible tables<br />
*<br />
* Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]].<br />
*<br />
* @version 2.0.3 (2014-03-14)<br />
* @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js<br />
* @author [[User:R. Koot]]<br />
* @author [[User:Krinkle]]<br />
* @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which<br />
* is supported in MediaWiki core.<br />
*/<br />
<br />
var autoCollapse = 2;<br />
var collapseCaption = 'hide';<br />
var expandCaption = 'show';<br />
var tableIndex = 0;<br />
<br />
function collapseTable( tableIndex ) {<br />
var Button = document.getElementById( 'collapseButton' + tableIndex );<br />
var Table = document.getElementById( 'collapsibleTable' + tableIndex );<br />
<br />
if ( !Table || !Button ) {<br />
return false;<br />
}<br />
<br />
var Rows = Table.rows;<br />
var i;<br />
var $row0 = $(Rows[0]);<br />
<br />
if ( Button.firstChild.data === collapseCaption ) {<br />
for ( i = 1; i < Rows.length; i++ ) {<br />
Rows[i].style.display = 'none';<br />
}<br />
Button.firstChild.data = expandCaption;<br />
} else {<br />
for ( i = 1; i < Rows.length; i++ ) {<br />
Rows[i].style.display = $row0.css( 'display' );<br />
}<br />
Button.firstChild.data = collapseCaption;<br />
}<br />
}<br />
<br />
function createClickHandler( tableIndex ) {<br />
return function ( e ) {<br />
e.preventDefault();<br />
collapseTable( tableIndex );<br />
};<br />
}<br />
<br />
function createCollapseButtons( $content ) {<br />
var NavigationBoxes = {};<br />
var $Tables = $content.find( 'table' );<br />
var i;<br />
<br />
$Tables.each( function( i, table ) {<br />
if ( $(table).hasClass( 'collapsible' ) ) {<br />
<br />
/* only add button and increment count if there is a header row to work with */<br />
var HeaderRow = table.getElementsByTagName( 'tr' )[0];<br />
if ( !HeaderRow ) {<br />
return;<br />
}<br />
var Header = table.getElementsByTagName( 'th' )[0];<br />
if ( !Header ) {<br />
return;<br />
}<br />
<br />
NavigationBoxes[ tableIndex ] = table;<br />
table.setAttribute( 'id', 'collapsibleTable' + tableIndex );<br />
<br />
var Button = document.createElement( 'span' );<br />
var ButtonLink = document.createElement( 'a' );<br />
var ButtonText = document.createTextNode( collapseCaption );<br />
// Styles are declared in [[MediaWiki:Common.css]]<br />
Button.className = 'collapseButton';<br />
<br />
ButtonLink.style.color = Header.style.color;<br />
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );<br />
ButtonLink.setAttribute( 'href', '#' );<br />
$( ButtonLink ).on( 'click', createClickHandler( tableIndex ) );<br />
ButtonLink.appendChild( ButtonText );<br />
<br />
Button.appendChild( document.createTextNode( '[' ) );<br />
Button.appendChild( ButtonLink );<br />
Button.appendChild( document.createTextNode( ']' ) );<br />
<br />
Header.insertBefore( Button, Header.firstChild );<br />
tableIndex++;<br />
}<br />
} );<br />
<br />
for ( i = 0; i < tableIndex; i++ ) {<br />
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) ||<br />
( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) )<br />
) {<br />
collapseTable( i );<br />
}<br />
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {<br />
var element = NavigationBoxes[i];<br />
while ((element = element.parentNode)) {<br />
if ( $( element ).hasClass( 'outercollapse' ) ) {<br />
collapseTable ( i );<br />
break;<br />
}<br />
}<br />
}<br />
}<br />
}<br />
<br />
mw.hook( 'wikipage.content' ).add( createCollapseButtons );<br />
<br />
/**<br />
* Add support to mw-collapsible for autocollapse, innercollapse and outercollapse<br />
*<br />
* Maintainers: TheDJ<br />
*/<br />
function mwCollapsibleSetup( $collapsibleContent ) {<br />
var $element,<br />
$toggle,<br />
autoCollapseThreshold = 2;<br />
$.each( $collapsibleContent, function (index, element) {<br />
$element = $( element );<br />
if ( $collapsibleContent.length > autoCollapseThreshold && $element.hasClass( 'autocollapse' ) ) {<br />
$element.data( 'mw-collapsible' ).collapse();<br />
} else if ( $element.hasClass( 'innercollapse' ) ) {<br />
if ( $element.parents( '.outercollapse' ).length > 0 ) {<br />
$element.data( 'mw-collapsible' ).collapse();<br />
}<br />
}<br />
$toggle = $element.find( '.mw-collapsible-toggle' );<br />
if ( $toggle.length ) {<br />
// Make the toggle inherit text color<br />
if( $toggle.parent()[0].style.color ) {<br />
$toggle.find( 'a' ).css( 'color', 'inherit' );<br />
}<br />
}<br />
} );<br />
}<br />
<br />
mw.hook( 'wikipage.collapsibleContent' ).add( mwCollapsibleSetup );<br />
<br />
/**<br />
* Dynamic Navigation Bars (experimental)<br />
*<br />
* Description: See [[Wikipedia:NavFrame]].<br />
* Maintainers: UNMAINTAINED<br />
*/<br />
<br />
/* set up the words in your language */<br />
var NavigationBarHide = '[' + collapseCaption + ']';<br />
var NavigationBarShow = '[' + expandCaption + ']';<br />
var indexNavigationBar = 0;<br />
<br />
/**<br />
* Shows and hides content and picture (if available) of navigation bars<br />
* Parameters:<br />
* indexNavigationBar: the index of navigation bar to be toggled<br />
**/<br />
window.toggleNavigationBar = function ( indexNavigationBar, event ) {<br />
var NavToggle = document.getElementById( 'NavToggle' + indexNavigationBar );<br />
var NavFrame = document.getElementById( 'NavFrame' + indexNavigationBar );<br />
var NavChild;<br />
<br />
if ( !NavFrame || !NavToggle ) {<br />
return false;<br />
}<br />
<br />
/* if shown now */<br />
if ( NavToggle.firstChild.data === NavigationBarHide ) {<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {<br />
NavChild.style.display = 'none';<br />
}<br />
}<br />
NavToggle.firstChild.data = NavigationBarShow;<br />
<br />
/* if hidden now */<br />
} else if ( NavToggle.firstChild.data === NavigationBarShow ) {<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavContent' ) || $( NavChild ).hasClass( 'NavPic' ) ) {<br />
NavChild.style.display = 'block';<br />
}<br />
}<br />
NavToggle.firstChild.data = NavigationBarHide;<br />
}<br />
<br />
event.preventDefault();<br />
};<br />
<br />
/* adds show/hide-button to navigation bars */<br />
function createNavigationBarToggleButton( $content ) {<br />
var NavChild;<br />
/* iterate over all < div >-elements */<br />
var $divs = $content.find( 'div' );<br />
$divs.each( function ( i, NavFrame ) {<br />
/* if found a navigation bar */<br />
if ( $( NavFrame ).hasClass( 'NavFrame' ) ) {<br />
<br />
indexNavigationBar++;<br />
var NavToggle = document.createElement( 'a' );<br />
NavToggle.className = 'NavToggle';<br />
NavToggle.setAttribute( 'id', 'NavToggle' + indexNavigationBar );<br />
NavToggle.setAttribute( 'href', '#' );<br />
$( NavToggle ).on( 'click', $.proxy( window.toggleNavigationBar, window, indexNavigationBar ) );<br />
<br />
var isCollapsed = $( NavFrame ).hasClass( 'collapsed' );<br />
/**<br />
* Check if any children are already hidden. This loop is here for backwards compatibility:<br />
* the old way of making NavFrames start out collapsed was to manually add style="display:none"<br />
* to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make<br />
* the content visible without JavaScript support), the new recommended way is to add the class<br />
* "collapsed" to the NavFrame itself, just like with collapsible tables.<br />
*/<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null && !isCollapsed; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {<br />
if ( NavChild.style.display === 'none' ) {<br />
isCollapsed = true;<br />
}<br />
}<br />
}<br />
if ( isCollapsed ) {<br />
for ( NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling ) {<br />
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {<br />
NavChild.style.display = 'none';<br />
}<br />
}<br />
}<br />
var NavToggleText = document.createTextNode( isCollapsed ? NavigationBarShow : NavigationBarHide );<br />
NavToggle.appendChild( NavToggleText );<br />
<br />
/* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */<br />
for( var j = 0; j < NavFrame.childNodes.length; j++ ) {<br />
if ( $( NavFrame.childNodes[j] ).hasClass( 'NavHead' ) ) {<br />
NavToggle.style.color = NavFrame.childNodes[j].style.color;<br />
NavFrame.childNodes[j].appendChild( NavToggle );<br />
}<br />
}<br />
NavFrame.setAttribute( 'id', 'NavFrame' + indexNavigationBar );<br />
}<br />
} );<br />
}<br />
<br />
mw.hook( 'wikipage.content' ).add( createNavigationBarToggleButton );<br />
<br />
/**<br />
* Uploadwizard_newusers<br />
* Switches in a message for non-autoconfirmed users at [[Wikipedia:Upload]]<br />
*<br />
* Maintainers: [[User:Krimpet]]<br />
*/<br />
function uploadwizard_newusers() {<br />
if ( mw.config.get( 'wgNamespaceNumber' ) === 4 && mw.config.get( 'wgTitle' ) === 'Upload' && mw.config.get( 'wgAction' ) === 'view' ) {<br />
var oldDiv = document.getElementById( 'autoconfirmedusers' ),<br />
newDiv = document.getElementById( 'newusers' );<br />
if ( oldDiv && newDiv ) {<br />
var userGroups = mw.config.get( 'wgUserGroups' );<br />
if ( userGroups ) {<br />
for ( var i = 0; i < userGroups.length; i++ ) {<br />
if ( userGroups[i] === 'autoconfirmed' ) {<br />
oldDiv.style.display = 'block';<br />
newDiv.style.display = 'none';<br />
return;<br />
}<br />
}<br />
}<br />
oldDiv.style.display = 'none';<br />
newDiv.style.display = 'block';<br />
return;<br />
}<br />
}<br />
}<br />
<br />
$(uploadwizard_newusers);<br />
<br />
/**<br />
* Magic editintros ****************************************************<br />
*<br />
* Description: Adds editintros on disambiguation pages and BLP pages.<br />
* Maintainers: [[User:RockMFR]]<br />
*/<br />
function addEditIntro( name ) {<br />
$( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function ( i, el ) {<br />
el.href = $( this ).attr( 'href' ) + '&editintro=' + name;<br />
} );<br />
}<br />
<br />
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {<br />
$( function () {<br />
if ( document.getElementById( 'disambigbox' ) ) {<br />
addEditIntro( 'Template:Disambig_editintro' );<br />
}<br />
} );<br />
<br />
$( function () {<br />
var cats = mw.config.get('wgCategories');<br />
if ( !cats ) {<br />
return;<br />
}<br />
if ( $.inArray( 'Living people', cats ) !== -1 || $.inArray( 'Possibly living people', cats ) !== -1 ) {<br />
addEditIntro( 'Template:BLP_editintro' );<br />
}<br />
} );<br />
}<br />
<br />
/* Actions specific to the edit page */<br />
if ( mw.config.get( 'wgAction' ) === 'edit' || mw.config.get( 'wgAction' ) === 'submit' ) {<br />
/**<br />
* Fix edit summary prompt for undo<br />
*<br />
* Fixes the fact that the undo function combined with the "no edit summary prompter"<br />
* complains about missing editsummary, if leaving the edit summary unchanged.<br />
* Added by [[User:Deskana]], code by [[User:Tra]].<br />
* See also [[phab:T10912]].<br />
*/<br />
$(function () {<br />
if (document.location.search.indexOf('undo=') !== -1 && document.getElementsByName('wpAutoSummary')[0]) {<br />
document.getElementsByName('wpAutoSummary')[0].value = '1';<br />
}<br />
});<br />
}<br />
<br />
$(function () {<br />
if ($('.mw-collapsible').length > 1) {<br />
// if there's more than one collapsible element<br />
// simulate a click to collapse uncollapsed autocollapse elements<br />
$('.mw-collapsible.mw-autocollapse:not(.mw-collapsed)').each(function (i, el) {<br />
$(el).find('.mw-collapsible-toggle > a').click();<br />
});<br />
}<br />
});<br />
<br />
/* End of mw.loader.using callback */<br />
} );<br />
/* DO NOT ADD CODE BELOW THIS LINE */</div>
Barry
https://housamo.wiki/index.php?title=User:Barry/timeless.css&diff=43507
User:Barry/timeless.css
2021-10-10T13:17:47Z
<p>Barry: Blanked the page</p>
<hr />
<div></div>
Barry
https://housamo.wiki/index.php?title=User:Barry/timeless.css&diff=43506
User:Barry/timeless.css
2021-10-10T13:15:47Z
<p>Barry: Created page with "@import 'https://www.mediawiki.org/wiki/Skin:Timeless-DarkCSS/timeless-dark.css?action=raw&ctype=text/css';"</p>
<hr />
<div>@import 'https://www.mediawiki.org/wiki/Skin:Timeless-DarkCSS/timeless-dark.css?action=raw&ctype=text/css';</div>
Barry
https://housamo.wiki/index.php?title=Module:Navbox/styles.css&diff=43505
Module:Navbox/styles.css
2021-10-10T12:28:12Z
<p>Barry: Created page with ".navbox { border: 1px solid #aaa; box-sizing: border-box; width: 100%; margin: auto; clear: both; font-size: 88%; text-align: center; padding: 1px; } .navbox-inner, ...."</p>
<hr />
<div>.navbox {<br />
border: 1px solid #aaa;<br />
box-sizing: border-box;<br />
width: 100%;<br />
margin: auto;<br />
clear: both;<br />
font-size: 88%;<br />
text-align: center;<br />
padding: 1px;<br />
}<br />
<br />
.navbox-inner,<br />
.navbox-subgroup {<br />
width: 100%;<br />
}<br />
<br />
.navbox + .navbox-styles + .navbox {<br />
/* Single pixel border between adjacent navboxes */<br />
margin-top: -1px;<br />
}<br />
<br />
.navbox th,<br />
.navbox-title,<br />
.navbox-abovebelow {<br />
text-align: center;<br />
/* Title and above/below styles */<br />
padding-left: 1em;<br />
padding-right: 1em;<br />
}<br />
<br />
th.navbox-group {<br />
/* Group style */<br />
white-space: nowrap;<br />
/* @noflip */<br />
text-align: right;<br />
}<br />
<br />
.navbox,<br />
.navbox-subgroup {<br />
background: #fdfdfd;<br />
}<br />
.navbox-list {<br />
/* Must match background color */<br />
border-color: #fdfdfd;<br />
}<br />
<br />
.navbox th,<br />
.navbox-title {<br />
/* Level 1 color */<br />
background: #eaeeff;<br />
}<br />
<br />
.navbox-abovebelow,<br />
th.navbox-group,<br />
.navbox-subgroup .navbox-title {<br />
/* Level 2 color */<br />
background: #ddddff;<br />
}<br />
<br />
.navbox-subgroup .navbox-group,<br />
.navbox-subgroup .navbox-abovebelow {<br />
/* Level 3 color */<br />
background: #e6e6ff;<br />
}<br />
<br />
.navbox-even {<br />
/* Even row striping */<br />
background: #f7f7f7;<br />
}<br />
<br />
.navbox-odd {<br />
/* Odd row striping */<br />
background: transparent;<br />
}<br />
<br />
th.navbox-title1 {<br />
border-left: 2px solid #fdfdfd;<br />
width: 100%;<br />
}<br />
<br />
td.navbox-list1 {<br />
text-align: left;<br />
border-left-width: 2px;<br />
border-left-style: solid;<br />
}<br />
<br />
.navbox .hlist td dl,<br />
.navbox .hlist td ol,<br />
.navbox .hlist td ul,<br />
.navbox td.hlist dl,<br />
.navbox td.hlist ol,<br />
.navbox td.hlist ul {<br />
/* Adjust hlist padding in navboxes */<br />
padding: 0.125em 0;<br />
}<br />
<br />
.navbox .hlist dd,<br />
.navbox .hlist dt,<br />
.navbox .hlist li {<br />
/* Nowrap list items in navboxes */<br />
white-space: nowrap;<br />
}<br />
<br />
.navbox .hlist dd dl,<br />
.navbox .hlist dt dl,<br />
.navbox .hlist li ol,<br />
.navbox .hlist li ul {<br />
/* But allow parent list items to be wrapped */<br />
white-space: normal;<br />
}<br />
<br />
ol + .navbox-styles + .navbox,<br />
ul + .navbox-styles + .navbox {<br />
/* Prevent lists from clinging to navboxes */<br />
margin-top: 0.5em;<br />
}</div>
Barry
https://housamo.wiki/index.php?title=Module:Navbox&diff=43504
Module:Navbox
2021-10-10T12:21:58Z
<p>Barry: </p>
<hr />
<div>--<br />
-- This module implements {{Navbox}}<br />
--<br />
<br />
local p = {}<br />
<br />
local navbar = require('Module:Navbar')._navbar<br />
local getArgs -- lazily initialized<br />
<br />
local args<br />
local border<br />
local listnums<br />
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'<br />
local RESTART_MARKER = '\127_ODDEVEN0_\127'<br />
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'<br />
<br />
local function striped(wikitext)<br />
-- Return wikitext with markers replaced for odd/even striping.<br />
-- Child (subgroup) navboxes are flagged with a category that is removed<br />
-- by parent navboxes. The result is that the category shows all pages<br />
-- where a child navbox is not contained in a parent navbox.<br />
local orphanCat = '[[Category:Navbox orphans]]'<br />
if border == 'subgroup' and args.orphan ~= 'yes' then<br />
-- No change; striping occurs in outermost navbox.<br />
return wikitext .. orphanCat<br />
end<br />
local first, second = 'odd', 'even'<br />
if args.evenodd then<br />
if args.evenodd == 'swap' then<br />
first, second = second, first<br />
else<br />
first = args.evenodd<br />
second = first<br />
end<br />
end<br />
local changer<br />
if first == second then<br />
changer = first<br />
else<br />
local index = 0<br />
changer = function (code)<br />
if code == '0' then<br />
-- Current occurrence is for a group before a nested table.<br />
-- Set it to first as a valid although pointless class.<br />
-- The next occurrence will be the first row after a title<br />
-- in a subgroup and will also be first.<br />
index = 0<br />
return first<br />
end<br />
index = index + 1<br />
return index % 2 == 1 and first or second<br />
end<br />
end<br />
local regex = orphanCat:gsub('([%[%]])', '%%%1')<br />
return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer)) -- () omits gsub count<br />
end<br />
<br />
local function processItem(item, nowrapitems)<br />
if item:sub(1, 2) == '{|' then<br />
-- Applying nowrap to lines in a table does not make sense.<br />
-- Add newlines to compensate for trim of x in |parm=x in a template.<br />
return '\n' .. item ..'\n'<br />
end<br />
if nowrapitems == 'yes' then<br />
local lines = {}<br />
for line in (item .. '\n'):gmatch('([^\n]*)\n') do<br />
local prefix, content = line:match('^([*:;#]+)%s*(.*)')<br />
if prefix and not content:match('^<span class="nowrap">') then<br />
line = prefix .. '<span class="nowrap">' .. content .. '</span>'<br />
end<br />
table.insert(lines, line)<br />
end<br />
item = table.concat(lines, '\n')<br />
end<br />
if item:match('^[*:;#]') then<br />
return '\n' .. item ..'\n'<br />
end<br />
return item<br />
end<br />
<br />
-- Separate function so that we can evaluate properly whether hlist should<br />
-- be added by the module<br />
local function has_navbar()<br />
return args.navbar ~= 'off' and args.navbar ~= 'plain' and<br />
(args.name or mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Navbox')<br />
end<br />
<br />
local function renderNavBar(titleCell)<br />
<br />
if has_navbar() then<br />
titleCell:wikitext(navbar{<br />
args.name,<br />
-- we depend on this being mini = 1 when the navbox module decides<br />
-- to add hlist templatestyles. we also depend on navbar outputting<br />
-- a copy of the hlist templatestyles.<br />
mini = 1,<br />
fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';background:none transparent;border:none;box-shadow:none; padding:0;'<br />
})<br />
end<br />
<br />
end<br />
<br />
--<br />
-- Title row<br />
--<br />
local function renderTitleRow(tbl)<br />
if not args.title then return end<br />
<br />
local titleRow = tbl:tag('tr')<br />
<br />
if args.titlegroup then<br />
titleRow<br />
:tag('th')<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.titlegroupclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.groupstyle)<br />
:cssText(args.titlegroupstyle)<br />
:wikitext(args.titlegroup)<br />
end<br />
<br />
local titleCell = titleRow:tag('th'):attr('scope', 'col')<br />
<br />
if args.titlegroup then<br />
titleCell<br />
:addClass('navbox-title1')<br />
end<br />
<br />
local titleColspan = 2<br />
if args.imageleft then titleColspan = titleColspan + 1 end<br />
if args.image then titleColspan = titleColspan + 1 end<br />
if args.titlegroup then titleColspan = titleColspan - 1 end<br />
<br />
titleCell<br />
:cssText(args.basestyle)<br />
:cssText(args.titlestyle)<br />
:addClass('navbox-title')<br />
:attr('colspan', titleColspan)<br />
<br />
renderNavBar(titleCell)<br />
<br />
titleCell<br />
:tag('div')<br />
-- id for aria-labelledby attribute<br />
:attr('id', mw.uri.anchorEncode(args.title))<br />
:addClass(args.titleclass)<br />
:css('font-size', '114%')<br />
:css('margin', '0 4em')<br />
:wikitext(processItem(args.title))<br />
end<br />
<br />
--<br />
-- Above/Below rows<br />
--<br />
<br />
local function getAboveBelowColspan()<br />
local ret = 2<br />
if args.imageleft then ret = ret + 1 end<br />
if args.image then ret = ret + 1 end<br />
return ret<br />
end<br />
<br />
local function renderAboveRow(tbl)<br />
if not args.above then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.aboveclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.abovestyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
-- id for aria-labelledby attribute, if no title<br />
:attr('id', args.title and nil or mw.uri.anchorEncode(args.above))<br />
:wikitext(processItem(args.above, args.nowrapitems))<br />
end<br />
<br />
local function renderBelowRow(tbl)<br />
if not args.below then return end<br />
<br />
tbl:tag('tr')<br />
:tag('td')<br />
:addClass('navbox-abovebelow')<br />
:addClass(args.belowclass)<br />
:cssText(args.basestyle)<br />
:cssText(args.belowstyle)<br />
:attr('colspan', getAboveBelowColspan())<br />
:tag('div')<br />
:wikitext(processItem(args.below, args.nowrapitems))<br />
end<br />
<br />
--<br />
-- List rows<br />
--<br />
local function renderListRow(tbl, index, listnum)<br />
local row = tbl:tag('tr')<br />
<br />
if index == 1 and args.imageleft then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 2px 0px 0px')<br />
:cssText(args.imageleftstyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.imageleft))<br />
end<br />
<br />
if args['group' .. listnum] then<br />
local groupCell = row:tag('th')<br />
<br />
-- id for aria-labelledby attribute, if lone group with no title or above<br />
if listnum == 1 and not (args.title or args.above or args.group2) then<br />
groupCell<br />
:attr('id', mw.uri.anchorEncode(args.group1))<br />
end<br />
<br />
groupCell<br />
:attr('scope', 'row')<br />
:addClass('navbox-group')<br />
:addClass(args.groupclass)<br />
:cssText(args.basestyle)<br />
:css('width', args.groupwidth or '1%') -- If groupwidth not specified, minimize width<br />
<br />
groupCell<br />
:cssText(args.groupstyle)<br />
:cssText(args['group' .. listnum .. 'style'])<br />
:wikitext(args['group' .. listnum])<br />
end<br />
<br />
local listCell = row:tag('td')<br />
<br />
if args['group' .. listnum] then<br />
listCell<br />
:addClass('navbox-list1')<br />
else<br />
listCell:attr('colspan', 2)<br />
end<br />
<br />
if not args.groupwidth then<br />
listCell:css('width', '100%')<br />
end<br />
<br />
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing<br />
if index % 2 == 1 then<br />
rowstyle = args.oddstyle<br />
else<br />
rowstyle = args.evenstyle<br />
end<br />
<br />
local listText = args['list' .. listnum]<br />
local oddEven = ODD_EVEN_MARKER<br />
if listText:sub(1, 12) == '</div><table' then<br />
-- Assume list text is for a subgroup navbox so no automatic striping for this row.<br />
oddEven = listText:find('<th[^>]*"navbox%-title"') and RESTART_MARKER or 'odd'<br />
end<br />
listCell<br />
:css('padding', '0px')<br />
:cssText(args.liststyle)<br />
:cssText(rowstyle)<br />
:cssText(args['list' .. listnum .. 'style'])<br />
:addClass('navbox-list')<br />
:addClass('navbox-' .. oddEven)<br />
:addClass(args.listclass)<br />
:addClass(args['list' .. listnum .. 'class'])<br />
:tag('div')<br />
:css('padding', (index == 1 and args.list1padding) or args.listpadding or '0em 0.25em')<br />
:wikitext(processItem(listText, args.nowrapitems))<br />
<br />
if index == 1 and args.image then<br />
row<br />
:tag('td')<br />
:addClass('navbox-image')<br />
:addClass(args.imageclass)<br />
:css('width', '1px') -- Minimize width<br />
:css('padding', '0px 0px 0px 2px')<br />
:cssText(args.imagestyle)<br />
:attr('rowspan', #listnums)<br />
:tag('div')<br />
:wikitext(processItem(args.image))<br />
end<br />
end<br />
<br />
<br />
--<br />
-- Tracking categories<br />
--<br />
<br />
local function needsHorizontalLists()<br />
if border == 'subgroup' or args.tracking == 'no' then<br />
return false<br />
end<br />
local listClasses = {<br />
['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,<br />
['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,<br />
['hlist vevent'] = true,<br />
}<br />
return not (listClasses[args.listclass] or listClasses[args.bodyclass])<br />
end<br />
<br />
-- there are a lot of list classes in the wild, so we have a function to find<br />
-- them and add their TemplateStyles<br />
local function addListStyles()<br />
local frame = mw.getCurrentFrame()<br />
-- TODO?: Should maybe take a table of classes for e.g. hnum, hwrap as above<br />
-- I'm going to do the stupid thing first though<br />
-- Also not sure hnum and hwrap are going to live in the same TemplateStyles<br />
-- as hlist<br />
local function _addListStyles(htmlclass, templatestyles)<br />
local class_args = { -- rough order of probability of use<br />
'bodyclass', 'listclass', 'aboveclass', 'belowclass', 'titleclass',<br />
'navboxclass', 'groupclass', 'titlegroupclass', 'imageclass'<br />
}<br />
local patterns = {<br />
'^' .. htmlclass .. '$',<br />
'%s' .. htmlclass .. '$',<br />
'^' .. htmlclass .. '%s',<br />
'%s' .. htmlclass .. '%s'<br />
}<br />
<br />
local found = false<br />
for _, arg in ipairs(class_args) do<br />
for _, pattern in ipairs(patterns) do<br />
if mw.ustring.find(args[arg] or '', pattern) then<br />
found = true<br />
break<br />
end<br />
end<br />
if found then break end<br />
end<br />
if found then<br />
return frame:extensionTag{<br />
name = 'templatestyles', args = { src = templatestyles }<br />
}<br />
else<br />
return ''<br />
end<br />
end<br />
<br />
local hlist_styles = ''<br />
-- navbar always has mini = 1, so here (on this wiki) we can assume that<br />
-- we don't need to output hlist styles in navbox again.<br />
if not has_navbar() then<br />
hlist_styles = _addListStyles('hlist', 'Flatlist/styles.css')<br />
end<br />
local plainlist_styles = _addListStyles('plainlist', 'Plainlist/styles.css')<br />
<br />
return hlist_styles .. plainlist_styles<br />
end<br />
<br />
local function hasBackgroundColors()<br />
for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('background', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function hasBorders()<br />
for _, key in ipairs({'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do<br />
if tostring(args[key]):find('border', 1, true) then<br />
return true<br />
end<br />
end<br />
end<br />
<br />
local function isIllegible()<br />
-- require('Module:Color contrast') absent on mediawiki.org<br />
return false<br />
end<br />
<br />
local function getTrackingCategories()<br />
local cats = {}<br />
if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end<br />
if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end<br />
if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end<br />
if hasBorders() then table.insert(cats, 'Navboxes using borders') end<br />
return cats<br />
end<br />
<br />
local function renderTrackingCategories(builder)<br />
local title = mw.title.getCurrentTitle()<br />
if title.namespace ~= 10 then return end -- not in template space<br />
local subpage = title.subpageText<br />
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end<br />
<br />
for _, cat in ipairs(getTrackingCategories()) do<br />
builder:wikitext('[[Category:' .. cat .. ']]')<br />
end<br />
end<br />
<br />
--<br />
-- Main navbox tables<br />
--<br />
local function renderMainTable()<br />
local tbl = mw.html.create('table')<br />
:addClass('nowraplinks')<br />
:addClass(args.bodyclass)<br />
<br />
if args.title and (args.state ~= 'plain' and args.state ~= 'off') then<br />
if args.state == 'collapsed' then args.state = 'mw-collapsed' end<br />
tbl<br />
:addClass('mw-collapsible')<br />
:addClass(args.state or 'autocollapse')<br />
end<br />
<br />
tbl:css('border-spacing', 0)<br />
if border == 'subgroup' or border == 'none' then<br />
tbl<br />
:addClass('navbox-subgroup')<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
else -- regular navbox - bodystyle and style will be applied to the wrapper table<br />
tbl<br />
:addClass('navbox-inner')<br />
:css('background', 'transparent')<br />
:css('color', 'inherit')<br />
end<br />
tbl:cssText(args.innerstyle)<br />
<br />
renderTitleRow(tbl)<br />
renderAboveRow(tbl)<br />
for i, listnum in ipairs(listnums) do<br />
renderListRow(tbl, i, listnum)<br />
end<br />
renderBelowRow(tbl)<br />
<br />
return tbl<br />
end<br />
<br />
function p._navbox(navboxArgs)<br />
args = navboxArgs<br />
listnums = {}<br />
<br />
for k, _ in pairs(args) do<br />
if type(k) == 'string' then<br />
local listnum = k:match('^list(%d+)$')<br />
if listnum then table.insert(listnums, tonumber(listnum)) end<br />
end<br />
end<br />
table.sort(listnums)<br />
<br />
border = mw.text.trim(args.border or args[1] or '')<br />
if border == 'child' then<br />
border = 'subgroup'<br />
end<br />
<br />
-- render the main body of the navbox<br />
local tbl = renderMainTable()<br />
<br />
-- get templatestyles<br />
local frame = mw.getCurrentFrame()<br />
local base_templatestyles = frame:extensionTag{<br />
name = 'templatestyles', args = { src = 'Module:Navbox/styles.css' }<br />
}<br />
local templatestyles = ''<br />
if args.templatestyles and args.templatestyles ~= '' then<br />
templatestyles = frame:extensionTag{<br />
name = 'templatestyles', args = { src = args.templatestyles }<br />
}<br />
end<br />
<br />
local res = mw.html.create()<br />
-- 'navbox-styles' exists for two reasons:<br />
-- 1. To wrap the styles to work around phab: T200206 more elegantly. Instead<br />
-- of combinatorial rules, this ends up being linear number of CSS rules.<br />
-- 2. To allow MobileFrontend to rip the styles out with 'nomobile' such that<br />
-- they are not dumped into the mobile view.<br />
res:tag('div')<br />
:addClass('navbox-styles')<br />
:addClass('nomobile')<br />
:wikitext(base_templatestyles .. templatestyles)<br />
:done()<br />
<br />
-- render the appropriate wrapper around the navbox, depending on the border param<br />
if border == 'none' then<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
elseif border == 'subgroup' then<br />
-- We assume that this navbox is being rendered in a list cell of a<br />
-- parent navbox, and is therefore inside a div with padding:0em 0.25em.<br />
-- We start with a </div> to avoid the padding being applied, and at the<br />
-- end add a <div> to balance out the parent's </div><br />
res<br />
:wikitext('</div>')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
:wikitext('<div>')<br />
else<br />
local nav = res:tag('div')<br />
:attr('role', 'navigation')<br />
:addClass('navbox')<br />
:addClass(args.navboxclass)<br />
:cssText(args.bodystyle)<br />
:cssText(args.style)<br />
:css('padding', '3px')<br />
:wikitext(addListStyles())<br />
:node(tbl)<br />
-- aria-labelledby title, otherwise above, otherwise lone group<br />
if args.title or args.above or (args.group1 and not args.group2) then<br />
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above or args.group1))<br />
else<br />
nav:attr('aria-label', 'Navbox')<br />
end<br />
end<br />
<br />
if (args.nocat or 'false'):lower() == 'false' then<br />
renderTrackingCategories(res)<br />
end<br />
<br />
return striped(tostring(res))<br />
end<br />
<br />
function p.navbox(frame)<br />
if not getArgs then<br />
getArgs = require('Module:Arguments').getArgs<br />
end<br />
args = getArgs(frame, {wrappers = {'Template:Navbox', 'Template:Navbox subgroup'}})<br />
if frame.args.border then<br />
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.<br />
args.border = frame.args.border<br />
end<br />
<br />
-- Read the arguments in the order they'll be output in, to make references number in the right order.<br />
local _<br />
_ = args.title<br />
_ = args.above<br />
for i = 1, 20 do<br />
_ = args["group" .. tostring(i)]<br />
_ = args["list" .. tostring(i)]<br />
end<br />
_ = args.below<br />
<br />
return p._navbox(args)<br />
end<br />
<br />
return p</div>
Barry