Difference between revisions of "Template:RNG"

From RimWorld Wiki
Jump to navigation Jump to search
(Still a WIP, needs documentation.)
 
(Added standard transclusion tags.)
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
<!--DISCLAIMER:I restrict my RNG calculation time to 0.5 secs, no expensive parserfunctions please!-->
+
<includeonly><!--DISCLAIMER:I restrict my RNG calculation time to 0.5 secs.-->
 
{{impressive}}
 
{{impressive}}
Generic random number:<onlyinclude>
+
Generic pseudo-random number:<onlyinclude>
{{#switch:{{{type|}}}
+
{{#expr:(trunc (({{REVISIONTIMESTAMP}}+{{{seed|0}}})^2/10)-{{{seed|0}}}+{{REVISIONTIMESTAMP}})*327 mod {{{limit|100}}}}}
|#default = {{#expr:(({{{seed|}}}+0)*37+{{CURRENTTIMESTAMP}}-{{REVISIONTIMESTAMP}})*97 mod {{#if:{{{limit|}}}|{{{limit}}}|100}}}}
 
|case 2 = {{#expr:{{REVISIONTIMESTAMP}}*97+({{{seed|}}}+0) mod {{#if:{{{limit|}}}|{{#expr:1+{{{limit}}}}}|100}}}}
 
|case 3 = {{#expr:{{CURRENTTIMESTAMP}}*97+({{{seed|}}}+0) mod {{#if:{{{limit|}}}|{{#expr:1+{{{limit}}}}}|100}}}}
 
}}
 
 
</onlyinclude>
 
</onlyinclude>
 
<!--More cases coming soon!-->
 
<!--More cases coming soon!-->
Line 12: Line 8:
 
<b>Generated numbers:</b>
 
<b>Generated numbers:</b>
  
Type 1 seed 1:{{RNG |type=1|seed=1}}<br />
+
Seed 1 limit 30:{{RNG |seed=1|limit=30}}<br />
Type 2 seed 1:{{RNG |type=2|seed=1}}<br />
+
Seed 2 limit 30:{{RNG |seed=2|limit=30}}<br />
Type 3 seed 1:{{RNG |type=3|seed=1}}
+
Seed 1:{{RNG |seed=1}}
</div>
+
</div></includeonly><noinclude>  
 
+
{{documentation}}</noinclude>
{{{{BASEPAGENAME}}/doc}}
 

Latest revision as of 20:30, 10 February 2021

Documentation icon Template documentation[view] [edit] [history] [purge]

Description[edit]

This template is used to generate random numbers in a relatively short time.

Usage[edit]

Type {{RNG}} on the page to assume a seed of 0 and a limit of 100.

NOTE: Setting a limit value to something greater than 1 000 000 WILL have an effect on the randomness of the result. Use two {{RNG}} templates instead.
{{RNG
|seed=(number)            -->Makes RNGs with different seeds unique to each other.
|limit=(number)           -->Restricts the RNG to produce only numbers from 1 to limit.
}}

Example:

{{RNG
|seed=1234
|limit=5000}}

results in: -4456