This should help (I think) : 
https://mklauber.github.io/tw5-plugins/#%24%3A%2Fplugins%2FD%26DTools%2FCreatureManager%2FLog

Le dimanche 31 octobre 2021 à 12:07:32 UTC+1, Mat a écrit :

> This reminded me of some experimenting I did some time back. I found the 
> below notes on it (paste it in a tiddler). It it probably NOT a good 
> solution.
> <:-)
>
> ------------------------------------------------------------------------------------------------------------------------------
>
> https://css-tricks.com/are-there-random-numbers-in-css/
> <div class="labels">
> <label for="d1">Click here to roll the dice</label>
> <label for="d2">Click here to roll the dice</label>
> <label for="d3">Click here to roll the dice</label>
> <label for="d4">Click here to roll the dice</label>
> <label for="d5">Click here to roll the dice</label>
> <label for="d6">Click here to roll the dice</label>
> </div>
> <br><br><br>
> <div class="randomradio">
>   <input type="radio" id="d1" name="dice">
>   <input type="radio" id="d2" name="dice">
>   <input type="radio" id="d3" name="dice">
>   <input type="radio" id="d4" name="dice">
>   <input type="radio" id="d5" name="dice">
>   <input type="radio" id="d6" name="dice">
>   <p>You got a: <span id="random-value"></span></p>
> </div>
> <br><br>
> <style>
> @keyframes changeOrder {
>   from { z-index: 6;}
>   to { z-index: 1; }
> }
>
> label {
>   animation: changeOrder 3s infinite linear;
>   background: #ddd;
>   cursor: pointer;
>   display: block;
>   padding: 1rem;
>   position: absolute;
> x  top: 1rem;
>   user-select: none;
> }
>
> label:nth-of-type(1) { animation-delay: 0s; }
> label:nth-of-type(2) { animation-delay: -0.5s; }
> label:nth-of-type(3) { animation-delay: -1.0s; }
> label:nth-of-type(4) { animation-delay: -1.5s; }
> label:nth-of-type(5) { animation-delay: -2.0s; }
> label:nth-of-type(6) { animation-delay: -2.5s; }
>
> .randomradio {
>   position: absolute;
>  xwidth: 100%;
> outline:1px solid red;
> }
>
> #d1:checked ~ p span::before { content: "1"; }
> #d2:checked ~ p span::before { content: "2"; }
> #d3:checked ~ p span::before { content: "3"; }
> #d4:checked ~ p span::before { content: "4"; }
> #d5:checked ~ p span::before { content: "5"; }
> #d6:checked ~ p span::before { content: "6"; }
> </style>
>
>
>
>
>
>
> On Friday, October 29, 2021 at 5:46:45 AM UTC+2 baj...@gmail.com wrote:
>
>> Hi all,
>> I'm looking for a little help and feedback on a project. I feel like I'm 
>> pretty close to getting my current approach to work, but I'm also wondering 
>> if there is a better way.
>>
>> *Background:*
>> I have a TW I made as a reference for running Pathfinder/D&D games. 
>> Across a wide variety of fields and tiddlers I have text matching the 
>> `(^|\s)\d+(d(2|4|6|8|10|12|20))?(\+\d+)?($|\s)` regex ie.  1d4+2, 5d6, 6. 
>> Respectively,  the sum of a 4 sided die result and 2, the sum of the 
>> results of five, 6 sided dice, and the value 6. 
>>
>> Ultimately, I would like to make it so that for any such string matching 
>> the regex in my wiki, clicking on the text returns a new die/dice roll 
>> matching that string. As an example, given the text "1d4+2". Clicking on 
>> that text transforms it into something like "1d4+2 (5)". Clicking again 
>> might give you "1d4+2 (3)". 
>>
>> *Current Status:*
>> I have a javascript macro that accepts a string `<<dice_roll 
>> roll_str:"1d4+2">>` and returns the appropriate random result, such as "2".
>>
>> I am using the button widget in a macro like this:
>> `\define roller(input) <$button class="tc-btn-invisible" set=!!DieResult 
>> setTo=<<dice_roll roll_str:$input$>> >''$input$'' 
>> ({{!!DieResult}})</$button> \end`
>>
>> The resulting invocation looks like this: <<roller 1d8>>
>>
>> The pros:
>>
>>    - The invocation is short
>>    - Once the invocation is substituted for the initial text, it works, 
>>    kinda.
>>
>> The con:
>>
>>    - As I've currently implemented, "DieResult" is a field, and 
>>    therefore global with respect to the tiddler. All of the rollers return 
>> the 
>>    exact same result at the same time (see image).
>>
>> *What I'm looking for:*
>>
>>    - How can I make the rollers independent from each other? 
>>    - It seems like having the button *set *a variable instead of a field 
>>       would solve the issue but I can't figure out how to do that.
>>       - I did try to use a set widget inside the button hoping that each 
>>       set would only be evaluated on the click of that actual button, but 
>>       apparently things don't work that way.
>>       - If all else fails I can add a single "Die Result" box at the top 
>>       of most of the pages, but that isn't my preferred result.
>>       - Is there an established way to do something like the built in 
>>    camelCase linking globally with strings matching this regex? 
>>    - The vast majority of my tiddlers are bulk imported in JSON format 
>>       from external sources. I could do a find replace on those files before 
>>       importing, but that will have it's own issues (potential corruption 
>> and not 
>>       all the fields are evaluated again before rendering). I use a small 
>> number 
>>       of 'templates' and transclusion to render the information.
>>       - Just in general, was there a smarter way to go about this? 
>>    Professionally I do CLI scientific coding (C/C++/FORTRAN/Python/R), so 
>>    while I can do some robust software engineering, but the 
>>    Wikitext/HTML5/CSS/javascript interplay is pretty foreign. 
>>    
>> All the best,
>> Baj
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywiki+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/a55a3f44-8c94-4382-9cab-01fbd797f5b0n%40googlegroups.com.

Reply via email to