Difference between revisions of "User:©TriMoon™/Sandbox"

From Salem Wiki
Jump to: navigation, search
 
(37 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{tocright}}
 
{{tocright}}
==Infobox==
 
{| class="wikitable?"
 
|+{{t|infobox}}:
 
|-
 
| {{Infobox/debugTheme|type=1}}
 
| {{Infobox/debugTheme
 
|themeName=Blue
 
|type=1
 
|page={{PAGENAME}}
 
|name={{{name|}}}
 
|icon={{{icon|}}}
 
|caption={{{caption|}}}
 
|image={{{image|}}}
 
|skillreq={{{skillreq|}}}
 
|objectsreq={{{objectsreq|}}}
 
|reqby={{{reqby|}}}
 
|repwith={{{repwith|}}}
 
|lift={{{lift|}}}
 
|hp={{{hp|}}}
 
|soak={{{soak|}}}
 
|inlineTheme={{{inlineTheme|yes}}}
 
|inlineThemeBorderColor=#3366CC
 
|inlineThemeColor1=black
 
|inlineThemeColor2=white
 
|inlineThemeColor3={{{inlineThemeColor3|}}}
 
|inlineThemeBkgColor1=gray
 
|inlineThemeBkgColor2={{{inlineThemeBkgColor2|}}}
 
|inlineThemeBkgColor3=#527acc
 
|inlineThemeBkgColor4=#708fcc
 
|inlineThemeBkgColor5=#aaaaaa
 
|inlineThemeBkgColor6=#8fa3cc
 
}}
 
|-
 
| {{Infobox/debugTheme
 
|themeName=Brown
 
|type=1
 
|page={{PAGENAME}}
 
|name={{{name|}}}
 
|icon={{{icon|}}}
 
|caption={{{caption|}}}
 
|image={{{image|}}}
 
|skillreq={{{skillreq|}}}
 
|objectsreq={{{objectsreq|}}}
 
|reqby={{{reqby|}}}
 
|repwith={{{repwith|}}}
 
|lift={{{lift|}}}
 
|hp={{{hp|}}}
 
|soak={{{soak|}}}
 
|inlineTheme={{{inlineTheme|yes}}}
 
|inlineThemeBorderColor=#68341a
 
|inlineThemeColor1=black
 
|inlineThemeColor2=white
 
|inlineThemeColor3={{{inlineThemeColor3|}}}
 
|inlineThemeBkgColor1=gray
 
|inlineThemeBkgColor2={{{inlineThemeBkgColor2|}}}
 
|inlineThemeBkgColor3=#683f2a
 
|inlineThemeBkgColor4=#684939
 
|inlineThemeBkgColor5=#aaaaaa
 
|inlineThemeBkgColor6=#685349
 
}}
 
| {{Infobox/debugTheme
 
|themeName=Brown-Inverted
 
|type=1
 
|page={{PAGENAME}}
 
|name={{{name|}}}
 
|icon={{{icon|}}}
 
|caption={{{caption|}}}
 
|image={{{image|}}}
 
|skillreq={{{skillreq|}}}
 
|objectsreq={{{objectsreq|}}}
 
|reqby={{{reqby|}}}
 
|repwith={{{repwith|}}}
 
|lift={{{lift|}}}
 
|hp={{{hp|}}}
 
|soak={{{soak|}}}
 
|inlineTheme={{{inlineTheme|yes}}}
 
|inlineThemeBorderColor=#685349
 
|inlineThemeColor1=black
 
|inlineThemeColor2=white
 
|inlineThemeColor3={{{inlineThemeColor3|}}}
 
|inlineThemeBkgColor1=gray
 
|inlineThemeBkgColor2={{{inlineThemeBkgColor2|}}}
 
|inlineThemeBkgColor3=#684939
 
|inlineThemeBkgColor4=#683f2a
 
|inlineThemeBkgColor5=#aaaaaa
 
|inlineThemeBkgColor6=#68341a
 
}}
 
 
|}
 
 
 
==Semantic Wiki related==
 
==Semantic Wiki related==
 
Lets try to describe properties of [[:Category:Objects|Objects]] using their placement in the game-menus to aid in later auto-categorization....
 
Lets try to describe properties of [[:Category:Objects|Objects]] using their placement in the game-menus to aid in later auto-categorization....
Line 95: Line 5:
  
 
fe. [[Blazing Brazier]], would need:
 
fe. [[Blazing Brazier]], would need:
*isGameMenu=n
+
*isGameMenu
*isinGameMenu=Claims & Defenses
 
;See these pages for documentation:
 
*[http://semantic-mediawiki.org/wiki/Help:Selecting_pages Help:Selecting pages]
 
*[http://semantic-mediawiki.org/wiki/Help:Displaying_information Help:Displaying information]
 
*[http://semantic-mediawiki.org/wiki/Help:Inline_queries#Parser_function_.23show Help:Inline queries (Parser function #show)]
 
*[http://www.mediawiki.org/wiki/Extension:StringFunctions#.23explode: Extension:StringFunctions (#explode:)]
 
*[http://smw.referata.com/wiki/List_the_set_of_unique_values_for_a_property List the set of unique values for a property]
 
*[http://www.mediawiki.org/wiki/Extension:Semantic_Forms/Semantic_Forms_and_templates#Multiple_values_for_the_same_field Multiple values for the same field]
 
----
 
===SetProp===
 
__SHOWFACTBOX__
 
<ol>
 
<li>Automatic property setting in mind: {{t|SetProp|propname<nowiki>=</nowiki>propvalues|propname<nowiki>=</nowiki>propvalues|...}}<br/>
 
Where ''propvalues'' consist of <u>single values</u> separated by commas, that are used to set ''propname'' multiple times using each value.<br/>
 
The single-values are depended on the format of the property to set, which can't have commas in their format ofcourse...<ol type="a">
 
<li><code><nowiki>{{#arraymap: propvalues |, |xXx |{{#set:propname=xXx}} |}}</nowiki></code></li>
 
<li>{{t|SetProp|RequiresTech<nowiki>=</nowiki>Simple Fences,Quarrying|RequiresObj<nowiki>=</nowiki>Anvil,Flint;1,Stone;3,Lime;15;Startpost,Flint;15;Startpost,Stone;30;Startpost,Lime;8;Cornerpost,Flint;8;Cornerpost,Stone;15;Cornerpost,Board;10,Nails;4}}<br/>Would execute:{{SetProp|RequiresTech=Simple Fences,Quarrying|RequiresObj=Anvil,Flint;1,Stone;3,Lime;15;Startpost,Flint;15;Startpost,Stone;30;Startpost,Lime;8;Cornerpost,Flint;8;Cornerpost,Stone;15;Cornerpost,Board;10,Nails;4}}<ol type="i">
 
<li><code><nowiki>{{#arraymap: Simple Fences,Quarrying |, |xXx |{{#set:RequiresTech=xXx}} |}}</nowiki></code></li>
 
<li><code><nowiki>{{#arraymap: Anvil,Flint;1,Stone;3,Lime;15;Startpost,Flint;15;Startpost,Stone;30;Startpost,Lime;8;Cornerpost,Flint;8;Cornerpost,Stone;15;Cornerpost,Board;10,Nails;4 |, |xXx |{{#set:RequiresObj=xXx}} |}}</nowiki></code></li>
 
</ol></li>
 
<li>{{t|PropVals|prop<nowiki>=</nowiki>RequiresTech|page<nowiki>=</nowiki>User:©TriMoon™/Sandbox}} gives:<br/>{{PropVals|prop=RequiresTech|page=User:©TriMoon™/Sandbox}}</li>
 
<li>{{t|PropVals|prop<nowiki>=</nowiki>RequiresObj|page<nowiki>=</nowiki>User:©TriMoon™/Sandbox}} gives:<br/>{{PropVals|prop=RequiresObj|page=User:©TriMoon™/Sandbox}}</li>
 
</ol></li>
 
</ol>
 
 
 
 
===HasProp===
 
===HasProp===
 
<pre>
 
<pre>
{{#if: {{HasProp|Has icon}}
+
{{#if: {{HasProp |page=Help:Infobox/testdata |Has icon}}
| [[{{#show:User:©TriMoon™/PropVals testdata|?Has icon|link=none}}]]
+
| [[{{#show:Help:Infobox/testdata|?Has icon|link=none}}]]
 +
}
 +
 
 +
===Skills===
 +
<ul>
 +
<li>Skill values for [[Help:Infobox/testdata|Infobox/testdata]]</li>
 +
<li><pre>
 +
{{#ask: [[{{{page|Weaving}}}]]
 +
|?arts
 +
|?cloak
 +
|?faith
 +
|?frontier
 +
|?hammer
 +
|?hunting
 +
|?law
 +
|?mines
 +
|?pots
 +
|?sparks
 +
|?stocks
 +
|?sugar
 +
|?thread
 +
|?natural
 +
|?perennial
 +
|format=template
 +
|named args=yes
 +
|userparam=test
 +
|template=<query template>
 +
|link=none
 
}}
 
}}
 
</pre>
 
</pre>
{{#if: {{HasProp|Has icon}}
+
{{#ask: [[{{{page|Weaving}}}]]
| [[{{#show:User:©TriMoon™/PropVals testdata|?Has icon|link=none}}]]
+
|?arts
}}
+
|?cloak
 +
|?faith
 +
|?frontier
 +
|?hammer
 +
|?hunting
 +
|?law
 +
|?mines
 +
|?pots
 +
|?sparks
 +
|?stocks
 +
|?sugar
 +
|?thread
 +
|?natural
 +
|?perennial
 +
|format=template
 +
|named args=yes
 +
|userparam=test
 +
|template=<query template>
 +
|link=none
 +
}}</li>
 +
 
 +
<li>{{t|Infobox/List Skillvals|page<nowiki>=</nowiki>Weaving}}<br/>
 +
{{Infobox/List Skillvals|page=Weaving}}</li>
 +
</ul>
  
===Property:RequiresObj===
+
===Property:Locations===
<ol>
 
<li>Listing values for [[Property:RequiresObj]] on current [[User:©TriMoon™/PropVals testdata|test data page]]<ol type="a">
 
<li><code><nowiki>{{#show: User:©TriMoon™/PropVals testdata |?RequiresObj |link=none |sep=<br/> }}</nowiki></code><br/>{{#show:User:©TriMoon™/PropVals testdata |?RequiresObj |link=none |sep=<br/> }}</li>
 
<li><code><nowiki>{{#ask: [[User:©TriMoon™/PropVals testdata]] [[RequiresObj::+]] | ?RequiresObj= |link=none |sep=<br/> }}</nowiki></code><br/>{{#ask: [[User:©TriMoon™/PropVals testdata]] [[RequiresObj::+]] | ?RequiresObj= |link=none |sep=<br/> }}</li>
 
<li>Automatic listing in mind: {{t|PropVals |prop<nowiki>={{{prop|RequiresObj}}}</nowiki> |page<nowiki>={{FULLPAGENAME}}</nowiki>}}<ol type="i">
 
<li>{{t|PropVals/getRecords|prop<nowiki>=RequiresObj</nowiki>|page<nowiki>=User:©TriMoon™/PropVals testdata</nowiki> }}<ul>
 
<li>{{PropVals/getRecords|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata }}</li>
 
</ul></li>
 
<li>{{t|PropVals/Group | <output from step above> }} internally using {{t|PropVals/Split}}<ul>
 
<li>As you can see the usage below doesn't work because the parser does not recognize the records as extra arguments...<ul>
 
<li><code><nowiki>{{PropVals/Group |</nowiki>{{t|PropVals/getRecords|prop<nowiki>=RequiresObj</nowiki>|page<nowiki>=User:©TriMoon™/PropVals testdata</nowiki> }}<nowiki> }}</nowiki></code></li>
 
<li>{{PropVals/Group |{{PropVals/getRecords|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata }} }}</li>
 
</ul></li>
 
<li>Therefore we need to use <code><nowiki>{{#arraymap:}}</nowiki></code> as a wrapper to inject the records as extra arguments...<ul>
 
<li><code><nowiki>{{#arraymap: </nowiki>{{t|PropVals/getRecords|prop<nowiki>=RequiresObj</nowiki>|page<nowiki>=User:©TriMoon™/PropVals testdata</nowiki> }}<nowiki>{{{grpsep|/\}}} |{{{grpsep|/\}}} |xXx |{{PropVals/Group |sep={{{sep|;}}} |grpsep={{{grpsep|/\}}} |xXx }} |}}</nowiki></code></li>
 
<li>{{t|PropVals/getGroupedRecords|prop<nowiki>=RequiresObj</nowiki>|page<nowiki>=User:©TriMoon™/PropVals testdata</nowiki> |sep<nowiki>={{{sep|;}}}</nowiki>|grpsep<nowiki>={{{grpsep|/\}}}</nowiki> }}</li>
 
<li>{{PropVals/getGroupedRecords |prop=RequiresObj |page=User:©TriMoon™/PropVals testdata |sep={{{sep|;}}} |grpsep={{{grpsep|/\}}} }}</li>
 
</ul></li>
 
</ul></li>
 
<li><code><nowiki><ul>{{#arraymap: <output from step above> |{{{grpsep|/\}}} |xXx |{{PropVals/List|sep={{{sep|;}}}|xXx}} |}}</ul></nowiki></code><br/><ul>
 
<li>each {{t|PropVals/List}} using {{t|PropVals/Print Entry}} which will internally use {{t|PropVals/Split}}</li>
 
<li>{{PropVals|page=User:©TriMoon™/PropVals testdata|debug=y}}</li>
 
</ul></li>
 
<li>{{t|PropVals|prop<nowiki>=</nowiki>RequiresObj|page<nowiki>=</nowiki>User:©TriMoon™/PropVals testdata}} gives:<br/>{{PropVals|prop=RequiresObj|page=User:©TriMoon™/PropVals testdata}}</li>
 
</ol></li>
 
</ol></li>
 
</ol>
 
===Property:RequiresTech===
 
 
<ol>
 
<ol>
<li>Listing pages using [[Property:RequiresTech]]<ol type="a">
+
<li>Listing all values for [[Property:Locations]] on certain page<ol type="a">
<li><code><nowiki>{{#ask: [[RequiresTech::+]] }}</nowiki></code><br/>{{#ask:[[RequiresTech::+]] |format=ul}}</li>
+
<li><code><nowiki>{{#ask: [[{{{page|Help:Infobox/testdata}}}]] |?Locations |link=none}}</nowiki></code><br/>{{#ask: [[{{{page|Help:Infobox/testdata}}}]] |?Locations |link=none}}</li>
<li><code><nowiki>{{#ask: [[:+]] [[RequiresTech::+]] }}</nowiki></code><br/>{{#ask: [[:+]] [[RequiresTech::+]] |format=ul}}</li>
+
<li><code><nowiki>{{#ask: [[-Locations::{{{page|Help:Infobox/testdata}}}]] |link=none}}</nowiki></code><br/>{{#ask: [[-Locations::{{{page|Help:Infobox/testdata}}}]] |link=none}}</li>
<li>Listing values for [[Property:RequiresTech]] on current [[User:©TriMoon™/PropVals testdata|test data page]]<ol type="i">
+
<li><code><nowiki>{{#ask: [[-Locations::{{{page|Help:Infobox/testdata}}}]] |link=none |format=ul |template=List Locations/query template}}</nowiki></code><br/>{{#ask: [[-Locations::{{{page|Help:Infobox/testdata}}}]] |link=none |format=ul |template=List Locations/query template}}</li>
<li>{{t|PropVals|prop<nowiki>=</nowiki>RequiresTech|page<nowiki>=</nowiki>User:©TriMoon™/PropVals testdata}} gives:<br/>{{PropVals|prop=RequiresTech|page=User:©TriMoon™/PropVals testdata}}</li>
+
<li>{{t|List Locations|page<nowiki>=</nowiki>Help:Infobox/testdata}}<br/>{{List Locations}}</li>
</ol></li>
 
</ol></li>
 
</ol>
 
===Property:RequiredBy===
 
<ol>
 
<li>Listing pages having a certain value for [[Property:RequiresObj]]<ol type="a">
 
<li><code><nowiki>{{#ask: [[:+]] [[RequiresObj::~Nails*]] }}</nowiki></code><br/>{{#ask: [[:+]] [[RequiresObj::~Nails*]] |format=ul}}</li>
 
</ol></li>
 
<li>Listing pages having a certain value for [[Property:RequiresTech]]<ol type="a">
 
<li><code><nowiki>{{#ask: [[:+]] [[RequiresTech::Simple Fences]] }}</nowiki></code><br/>{{#ask: [[:+]] [[RequiresTech::Simple Fences]] |format=ul}}</li>
 
</ol></li>
 
<li>Listing pages having a certain value for [[Property:RequiresObj]] OR [[Property:RepairedWith]] OR [[Property:RequiresTech]]<ol type="a">
 
<li><code><nowiki>{{#ask: [[:+]] [[RequiresObj::~{{PAGENAME}}*]] OR [[:+]] [[RepairedWith::~{{PAGENAME}}*]] OR [[:+]] [[RequiresTech::{{PAGENAME}}]] }}</nowiki></code><ol type="i">
 
<li><code><nowiki>{{#ask: [[:+]] [[RequiresObj::~Nails*]] OR [[:+]] [[RepairedWith::~Nails*]] OR [[:+]] [[RequiresTech::Nails]] |format=ul}}</nowiki></code><br/>{{#ask: [[:+]] [[RequiresObj::~Nails*]] OR [[:+]] [[RepairedWith::~Nails*]] OR [[:+]] [[RequiresTech::Nails]] |format=ul}}</li>
 
<li><code><nowiki>{{PropVals/List RequiredBy |page=Nails |template=n |sep={{{sep|,}}} |limit=5}}</nowiki></code><br/>{{PropVals/List RequiredBy |page=Nails |template=n |sep={{{sep|,}}} |limit=5}}</li>
 
<li><code><nowiki>{{PropVals/List RequiredBy |page=Nails |template=y |sep={{{sep|,}}} |limit=5}}</nowiki></code><br/>{{PropVals/List RequiredBy |page=Nails |template=y |sep={{{sep|,}}} |limit=5}}</li>
 
</ol></li>
 
</ol></li>
 
<li>Listing all values for [[Property:RequiredBy]] on certain page<ol type="a">
 
<li><code><nowiki>{{#ask: [[Axe]] |?RequiredBy |link=none |format=template |template=PropVals/List RequiredBy/query template |named args=yes}}</nowiki></code><br/>{{#ask: [[Axe]] |?RequiredBy |link=none |format=template |template=<nowiki>PropVals/List RequiredBy/query template</nowiki> |named args=yes}}</li>
 
<li><pre>
 
<ul>{{#arraymap:
 
{{PropVals/getRecords|prop=RequiredBy|page=Nails }}
 
|{{!}}
 
|xXx
 
|<li>{{PropVals/Print Entry|xXx}}</li>
 
|}}</ul>
 
</pre>
 
<ul>{{#arraymap:
 
{{PropVals/getRecords|prop=RequiredBy|page=Nails }}
 
|{{!}}
 
|xXx
 
|<li>{{PropVals/Print Entry|xXx}}</li>
 
|}}</ul>
 
</li>
 
 
</ol></li>
 
</ol></li>
 
</ol>
 
</ol>
 +
===Alchemical values===
 +
*See {{t|Infobox Food}} for old (current) implementation.
 +
*xXx{{#show:{{{page|Help:Infobox/testdata}}}|?hebl|?sabl|?mebl|?subl|?lebl|link=none|format=list}}xXx
 +
*xXx{{#show:{{{page|Crispy Cricket}}}|?hebl|?sabl|?mebl|?subl|?lebl|link=none|format=list}}xXx
 +
*{{t|Infobox/List AlchemyVals}}{{Infobox/List AlchemyVals}}
 +
*{{t|Infobox/List AlchemyVals|page<nowiki>=</nowiki>Crispy Cricket}}{{Infobox/List AlchemyVals|page=Crispy Cricket}}

Latest revision as of 08:44, 26 October 2012

Semantic Wiki related

Lets try to describe properties of Objects using their placement in the game-menus to aid in later auto-categorization....

See Property:IsinGameMenu for current menu-names.

fe. Blazing Brazier, would need:

  • isGameMenu

HasProp

{{#if: {{HasProp |page=Help:Infobox/testdata |Has icon}}
| [[{{#show:Help:Infobox/testdata|?Has icon|link=none}}]]
}

===Skills===
<ul>
<li>Skill values for [[Help:Infobox/testdata|Infobox/testdata]]</li>
<li><pre>
{{#ask: [[{{{page|Weaving}}}]]
|?arts
|?cloak
|?faith
|?frontier
|?hammer
|?hunting
|?law
|?mines
|?pots
|?sparks
|?stocks
|?sugar
|?thread
|?natural
|?perennial
|format=template
|named args=yes
|userparam=test
|template=<query template>
|link=none
}}

{{<query template> |#userparam=test |#querycondition=Weaving |#querylimit=50 |#resultoffset=0 |#rowcount=1 |1=Weaving |Arts= |Cloak= |Faith= |Frontier= |Hammer= |Hunting= |Law= |Mines= |Pots= |Sparks= |Stocks= |Sugar= |Thread= |Natural= |Perennial= |#=0

|#rownumber=1}}

  • {{Infobox/List Skillvals|page=Weaving}}
    Provided skill proficiency:
    Nameval
  • Property:Locations

    1. Listing all values for Property:Locations on certain page
      1. {{#ask: [[{{{page|Help:Infobox/testdata}}}]] |?Locations |link=none}}
         Locations
        Help:Infobox/testdata
      2. {{#ask: [[-Locations::{{{page|Help:Infobox/testdata}}}]] |link=none}}
      3. {{#ask: [[-Locations::{{{page|Help:Infobox/testdata}}}]] |link=none |format=ul |template=List Locations/query template}}
      4. {{List Locations|page=Help:Infobox/testdata}}

    Alchemical values