Difference between revisions of "Template:Skill infobox"

6,832 bytes removed ,  15:26, 18 January 2019
no edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly>{{#vardefine:skillnumber|{{#expr:{{#var:skillnumber|-1}}+1}}}}{{#css:
<includeonly><onlyinclude>{{#vardefine:skill id|{{{id|{{#if:{{{jp name|}}}|{{#masterdata:Skill|{{{jp name|}}}|id:name}}|0}}}}}}}{{#ifexpr:{{#var:skill id|}}<2|{{#vardefine:skill id|}}}}{{#if:{{#var:skill id|}}|{{
table.infobox {
#if:{{{en name|}}}|{{#vardefine:skill en name|{{{en name|}}}}}}}{{
    background-color: #f9f9f9;
#if:{{{jp name|}}}|{{#vardefine:skill jp name|{{{jp name|}}}}}}}{{
    border: 1px solid #aaa;
#if:{{{jp-en name|}}}|{{#vardefine:skill jp en name|{{{jp-en name|}}}}}}}{{
    font-size: 11px;
#masterdata:Skill|{{#var:skill id}}|{{#var:skill template options|format=wiki;list=false;args=format-table:float-true:list-false:columns=1}}
    margin: 1em 0em 1em 2em;
}}{{#vardefine:skill template options|}}|<!--Invalid invocation.-->}}</includeonly></onlyinclude>
    padding: 2px;
    text-align: center;
    width: 250px;
    {{#ifeq:{{{floats|true}}}|true|float: right;}}
    overflow: visible;
    position: relative;
    width: 250px;
}
 
table.infobox th {
    padding: 0em 1em 0em 1em;
}
 
table.infobox tr:first-child th {
    background-color: #ccf;
    padding: 0.5em 1em 0.5em 1em;
    font-size: 1.2em;
}
 
table.infobox tr:not(:first-child) th {
    background-color: #ddf;
}
 
table.infobox tr:not(:first-child) th + th {
    background-color: #e4e4ff;
}
 
table.infobox td {
    text-align: left;
    padding: 0px 7px 0px 7px;
}
}}{{#if: <!-- define vars -->
{{#vardefine:skill desc|[{{Skill trigger timing|{{{jp trigger timing|}}}}}] {{#if:{{{en description|}}}|{{{en description}}}|{{{jp description|?}}}}} {{#if:{{{proc chance|}}}|/ {{{proc chance|0}}}%}}|}}
<!-- split string at html tags (i.g. strip them) -->
<!-- {{#arraydefine:raw skill desc|{{#var:skill desc}}|/<[^>]*>/}} -->
<!--{{#vardefine:raw skill desc|<strip>{{#var:skill desc}}</strip>}}-->
<!-- use whitespace as delimiter -->
<!--{{#vardefine:raw skill desc|{{#arrayprint:raw skill desc|&#32;|@@@|@@@}}}}-->
<!--{{#vardefine:raw skill desc|{{#tag:strip|{{#var:skill desc}}}}}}-->
<!-- just dont define it, it breaks a lot of things -->
{{#vardefine:skill en name|{{#explode:{{{en name|}}}|/|0}}}}
{{#vardefine:skill jp name|{{#explode:{{{jp name|}}}|/|0}}}}
{{#vardefine:skill effect num|{{#explode:{{{jp name|}}}|/|1}}}}
{{#vardefine:skill id|{{{id|{{#masterdata:Skill|{{#var:skill jp name|}}|id:name}}}}}}}
{{#ifexpr:{{#var:skill id|}}<2|{{#vardefine:skill id|}}}}
}}<!-- end define vars --><!-- create subobject
--><!--{{#vardefine:additional skills jp name
|{{#if:{{#explode:{{{jp name|}}}|/|1}}
  |{{#explode:{{{jp name|}}}|/|0}}/{{#expr:{{#explode:{{{jp name|}}}|/|1}}+1}}
  |{{{jp name|}}}/2}}
}}{{#vardefine:additional skills subobj|
{{#ask:
  [[Has game context::Skill]]
  [[Has Japanese name::{{#var:additional skills jp name}}]]
  |link=none
  |limit=1
  |headers=hide
  |searchlabel=
}}
}}-->{{#subobject:skill{{#var:skillnumber}}
| Has game context =Skill
| Has Japanese name ={{#var:skill jp name|{{{jp name|}}}}}
| Has English name ={{#var: skill en name|{{{en name|}}}}}
| Has effect ID = {{#var:skill effect num}}
| Has Japanese-English name = {{{jp-en name|}}}
| Has lowercase English name ={{lc:{{#var: skill en name|{{{en name|}}}}}}}
| Has Japanese description ={{{jp description|}}}
| Has English description ={{{en description|}}}
| Has skill trigger timing ={{{jp trigger timing|}}}
| Has skill proc chance ={{{proc chance|0}}}
| Has preformatted English description ={{#var:skill desc}}
| Has raw English description ={{#var:raw skill desc}}
| Has evolved skill={{{evolution|}}}
| Has precursor skill={{{precursor|}}}
| <!--Has additional skills={{#var:additional skills subobj|}}-->
| Has ID = {{#var:skill id|}}
}}<!-- end of subobject creation
--><!-- test -->{{#if:{{#var:skill id|}}||[[Category:Skill that lacks an ID]]}}{{#ifexpr:{{#var:skillnumber}} > 0|[[Category:Skill with additional effects]]{{#subobject:skill0
| Has preformatted English description = <br>{{#var:skill desc}}
| Has raw English description = <br>{{#var:raw skill desc}}
}}}}<!-- Grab evolution and precursor name -->
{{#vardefine:evolution skill subobj|
{{#if: {{{evolution|}}}
|{{#ask:
  [[Has game context::Skill]]
  [[Has Japanese name::{{{evolution}}}]]
  |link=none
  |limit=1
  |headers=hide
  |searchlabel=
  }}
}}
}}{{#vardefine:evolution skill en name|
{{#if: {{#var:evolution skill subobj|}}
|{{#show: {{#var:evolution skill subobj}} |?Has English name }}
}}
}}{{#vardefine:precursor skill subobj|
{{#if: {{{precursor |}}}
|{{#ask:
  [[Has game context::Skill]]
  [[Has Japanese name::{{{precursor }}}]]
  |link=none
  |limit=1
  |headers=hide
  |searchlabel=
  }}
}}
}}{{#vardefine:precursor skill en name|
{{#if: {{#var:precursor skill subobj|}}
|{{#show: {{#var:precursor skill subobj}} |?Has English name }}
}}
}}<table id="skill{{#var:skillnumber}}" class="infobox">
<tr>
  <th colspan="2">{{#if:{{{jp-en name|}}}|<abbr title="{{{jp-en name}}}"><u>{{#var:skill en name|{{{en name|???}}}}}</u></abbr>|{{#var:skill en name|{{{en name|???}}}}}}}</th>
</tr>
<tr>
  <th>JP Name</th>
  <td>{{#var:skill jp name|{{{jp name|???}}}}}</td>
</tr>
<tr>
  <th>Trigger timing</th>
  <td>{{Skill trigger timing|{{{jp trigger timing|?}}}}}</td>
</tr>
<tr>
  <th>Effect</th>
  <td>{{#if: {{{en description|}}}
|{{{en description}}}
|{{{jp description|?}}}
}}</td>
</tr>
{{#if:{{{proc chance|}}}|<tr>
  <th>Proc Chance</th>
  <td>{{{proc chance|0}}}%</td>
</tr>}}
{{#if:{{{evolution|}}}|
<tr>
  <th>Evolution</th>
  <td>{{#if: {{#var:evolution skill subobj|}} | [[{{#var:evolution skill subobj|}}|{{#var:evolution skill en name|{{{evolution}}} }}]] | {{#if:{{{evolution|}}}|{{{evolution}}}|?}} }}</td>
</tr>
}}
{{#if:{{{precursor|}}}|
<tr>
  <th>Evolves From</th>
  <td>{{#if: {{#var:precursor skill subobj|}} | [[{{#var:precursor skill subobj|}}|{{#var:precursor skill en name|{{{precursor}}} }}]] | {{#if:{{{precursor|}}}|{{{precursor}}}|?}} }}</td>
</tr>
}}
<!--{{#if:{{#var:additional skills subobj|}}|[[Category:Skills with additional effects]]
<tr>
  <th colspan="2">This skill has [[{{#var:additional skills subobj|}}|additional effects]]</th>
</tr>
}}-->
{{#ifexpr:{{#var:skillnumber}} > 0|
<tr>
  <th colspan="2">This is an additional effect</th>
</tr>
}}
</table><!--
 
    auto categorization
 
-->{{#if: {{#ifeq: {{{categorize|y}}} | n | n }} <!-- categorize is set to don't categorize -->
      {{NAMESPACE}} <!-- don't categorize if outside namespace -->
| <!-- don't categorize -->
|
  [[Category:Skills]]
}}</includeonly><includeonly>{{#ifeq:{{PAGENAME}}|Skill infobox||{{#ifeq:{{#var:skillnumber|0}}|0|{{#seo:
|title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki
|titlemode=replace
|keywords=tokyo,afterschool,summoners,housamo,wiki,「東京放課後サモナーズ」,東京放課後サモナーズ,{{{jp name|}}},{{{en name|}}}
|description={{#var:raw skill desc}} {{#if:{{#var:additional skills subobj|}}|(This skill has additional effects)}}
|og:title={{{en name|{{{jp name|}}}}}} - Tokyo Afterschool Summoners Wiki
}}}}}}</includeonly><noinclude>
== Description ==
== Description ==


This templates creates a formatted string using the skill information as well as a skill subobject using the following properties:
This templates serves as a proxy between the housamo.xyz API's master data parser and the old wiki template invocations. It is not recommended to manually invoke this template, but if you absolutely must, invoke this template via: <pre>
 
{{Skill infobox
* Has game context
| jp name = In-Game Japanese name
* Has Japanese name
| jp-en name = Translated name (provided alongside en name)
* Has English name
| en name = Translated name (if not localized in-game)
* Has Japanese-English name
* Has lowercase English name
* Has Japanese description
* Has English description
* Has skill trigger timing
* Has skill proc chance
* Has preformatted English description
* Has raw English description
* Has evolved skill
* Has precursor skill
* Has additional skills
 
== Usage ==
<pre>{{Skill infobox
| jp name =  
| en name =
| jp-en name =  
| jp trigger timing =
| jp description =
| en description =
| proc chance =
}}</pre>
 
=== Parameters ===
 
; jp name : Japanese name.
; en name : English name.
; jp-en name: Translated English name.
; jp trigger timing : Activation method in Japanese without parentheses.
; jp description : Skill description in Japanese.
; en description : Translated English skill description.
; proc chance : The skill's chance to activate at skill level 1 in percent.
; evolution : The skill's evolution
; precursor : The skill's pre-evolution (base)
 
== Examples ==
 
<pre>{{Skill infobox
| jp name = 獣の末裔
| en name = Beast Descendant
| jp trigger timing = 移動後
| jp description = 自身に頑強付与
| en description = Apply {{Status effect|頑強}} to Self
| proc chance = 50
}}
}}
</pre>
</pre>
{{Skill infobox
And effects should translate over as long as a Status subobject exists on the wiki.
| jp name = 獣の末裔
| en name = Beast Descendant
| jp trigger timing = 移動後
| jp description = 自身に頑強付与
| en description = Apply {{Status effect|頑強}} to Self
| proc chance = 50
}}


[[Category:Infobox templates]] [[Category:Subobject templates]]
[[Category:Infobox templates]] [[Category:Subobject templates]][[Category:Deprecated templates]]
</noinclude>