Vorlage:Qualityprice: Unterschied zwischen den Versionen

Aus Stardew Valley Wiki
Zur Navigation springen Zur Suche springen
K (unique arrays for each template)
(Move auto-derived prices/qualities here instead of infosection_price)
Zeile 3: Zeile 3:
 
// Define letter/symbol used for gold in current language
 
// Define letter/symbol used for gold in current language
 
-->{{#arraydefine:$lang_qp_gold|g}}<!--
 
-->{{#arraydefine:$lang_qp_gold|g}}<!--
 
+
// Items that get autofilled by Infobox and therefore need to be autotranslated to fill in link
 +
// (other items are tested below, but the tested values should be image names which are same on all sites)
 +
-->{{ParseInputValues|code=qitem||
 +
, Wine,    Wein,
 +
, Juice,    Saft,
 +
, Jelly,    Gelee,
 +
, Pickles,  Eingelegtes,
 +
, Roe,      Fischlaich,
 +
, Aged Roe, Gealterter Fischlaich,
 +
, Caviar,  Kaviar,
 +
}}<!--
 
// END of translation
 
// END of translation
  
-->{{#arraydefine:$qpqualities|{{ParseInputQuality|quality={{#if:{{{quality|}}}|{{{quality}}}|true}}|iridium={{{3|{{{iridium|}}}}}}|hide={{{hide|}}}}}}}<!--
+
// Get list of qualities. Set from quality/iridium/hide OR override for specific items if {{{auto}}}
// Create span containing sort key
+
-->{{#arraydefine:$qpqual|{{ParseInputQuality|quality={{#if:{{{quality|}}}|{{{quality}}}|true}}|iridium={{{3|{{{iridium|}}}}}}|hide={{{hide|}}}}}}}<!--
--><span class="sortkey" style="display:none;">{{#expr:trunc(trunc({{#if:{{{2|}}}|{{{2}}}|0}})*{{{prof_mult|1}}})}}</span><!--
+
-->{{#if:{{{auto|}}}
// If base_price is a text value (non-numeric) display it and quit
+
      | {{#switch:{{lc:{{{1|}}}}}
-->{{#iferror:{{#expr:{{#if:{{{2|}}}|{{{2}}}|0}}>0}}
+
          |wine|pale ale|beer|mead= {{#arraydefine:$qpqual|Normal,Silver,Gold,Iridium}}
      |{{{2|}}}
+
          |juice|jelly|pickles|honey|roe|caviar|aged roe= {{#arraydefine:$qpqual|Normal}}
      |{{{!}} class="no-wrap" style="border-spacing: 0;"<!--
+
  }}}}<!--
 +
// Don't allow artisan bonus to ever be applied to coffee, oil.  Done regardless of {{{auto}}}
 +
-->{{#arraydefine:$qpmult|
 +
      {{#switch:{{lc:{{{1|}}}}}
 +
        |oil|coffee = 1
 +
|#default = {{#iferror:{{#expr:{{{prof_mult}}}*1}}|1|{{{prof_mult}}}}}}}}}<!--
 +
// Set price to {{{2}}} or derive from srcprice if {{{auto}}}, srcprice is valid, and item name is recognized
 +
// (extra complication for roe: allow [color]_roe to be recognized ... but don't confuse with aged roe)
 +
-->{{#arraydefine:$qpprice
 +
      |{{#ifexpr:{{#if:{{{auto|}}}|1|0}} and {{#if:{{{srcprice|}}}|1|0}} and {{#iferror:{{#expr:{{{srcprice}}}*1}}|0|1}}
 +
        |{{#ifexpr:{{#ifeq:{{lc:{{{1|}}}}}|aged roe|0|1}} and {{#ifeq:{{lc:{{#sub:{{{1|}}}|-3|3}}}}|roe|1|0}}
 +
    |{{#expr:30+trunc({{{srcprice}}})/2}}{{#arraydefine:$qpqual|Normal}}
 +
            |{{#switch:{{lc:{{{1|}}}}}|
 +
              |wine    = {{#expr:trunc({{{srcprice}}})*3}}
 +
              |juice    = {{#expr:trunc({{{srcprice}}})*2.25}}
 +
              |jelly
 +
              |pickles  = {{#expr:trunc({{{srcprice}}})*2 + 50}}
 +
              |honey    = {{#expr:trunc({{{srcprice}}})*2 + 100}}
 +
              |roe      = {{#expr:30+trunc({{{srcprice}}})/2}}
 +
      |caviar  = 500
 +
              |aged roe = {{#expr:2*trunc(30+trunc({{{srcprice}}})/2)}}
 +
      |pale ale = 300
 +
      |beer    = 200
 +
      |mead    = 200
 +
              |#default = {{{2|0}}}
 +
          }}}}
 +
        |{{{2|0}}}
 +
  }}}}{{#arraydefine:$qplink|{{{link|{{ParseInputValues|code=qitem|{{{1|}}}}}}}}}}<!--
 +
// If $qpprice is a text value (non-numeric) display it and quit; set sortkey=0 so it doesn't mess up table
 +
-->{{#iferror:{{#expr:{{#arrayprint:$qpprice}}>0}}
 +
      |<span class="sortkey" style="display:none;">0</span>''{{{2|}}}''<!--
 +
// Display sort key and start table
 +
-->    |<span class="sortkey" style="display:none;">{{#expr:trunc(({{#arrayprint:$qpmult}})*trunc({{#arrayprint:$qpprice}}))}}</span>
 +
{{{!}} class="no-wrap" style="border-spacing: 0;"<!--
  
 
// Loop through each requested quality.  Display icon using Quality template and calculate/display price
 
// Loop through each requested quality.  Display icon using Quality template and calculate/display price
-->{{#arrayprint:$qpqualities||@qual@|<nowiki/>
+
-->{{#arrayprint:$qpqual||@qual@|<nowiki/>
 
{{!}}-
 
{{!}}-
{{!}} {{Quality|{{{1|}}}|@qual@| size={{{size|24}}} |link={{{link|}}} |alt={{{alt|{{{link|{{{1|}}}}}}}}}}}
+
{{!}} {{Quality|{{{1|}}}|@qual@| size={{{size|24}}} |link={{#arrayprint:$qplink}} |alt={{{alt|{{#if:{{#arrayprint:$qplink}}|{{#arrayprint:$qplink}}|{{{1|}}}}}}}}}}
 
{{!}} {{#expr:
 
{{!}} {{#expr:
           trunc( {{{prof_mult|1}}} *
+
           trunc( ({{#arrayprint:$qpmult}}) *
 
             trunc ( {{#switch:@qual@|Silver=1.25|Gold=1.5|Iridium=2|Normal|#default=1}} *
 
             trunc ( {{#switch:@qual@|Silver=1.25|Gold=1.5|Iridium=2|Normal|#default=1}} *
                 trunc({{#if:{{{2|}}}|{{{2}}}|0}}) ) )
+
                 trunc({{#arrayprint:$qpprice}}) ) )
 
       }}{{#arrayprint:$lang_qp_gold}}
 
       }}{{#arrayprint:$lang_qp_gold}}
 
}}
 
}}

Version vom 9. September 2020, 17:50 Uhr

Details zur Vorlage finden Sie auf der englischsprachigen Dokumentationsseite.

Verwendung

Diese Vorlage kann verwendet werden, indem Sie auf eine relevante Seite folgendes eingeben.

{{Qualityprice}}

Ergibt... Vorlage:ParseInputValues

0g