Downtime System

Downtime System

Return to topic list

Sun Dec 19 16:49:36 2021   by   Catslug
Hello! I'm a storyteller for a Vampire the Masquerade server and in dire need of a way to create a formula for rolling our downtime!

I've searched everywhere for a custom dice rolling bot or syntax and Troll is the best I've found on my year long crusade. I'm not asking for people to do it for me, but any pointers would be deeply appreciated! I'm a little lost in knowing where to begin, so even tips on where to start would help!

(Discord is catslug#4739 for anyone preferring to aid in PMs)

TL;dr
I need help creating a formula that allows me to roll batches of d10s and add each batch's total success. However, the tricky part is that I also need it to count off 10 downtime hours for each "batch" of D10s rolled, and stop rolling when the player is out of downtime hours.

I'm not sure if this dice system is fully capable of this, but I'd even settle for a formula that auto-adds the number of successes from each "batch" of rolls.



===============
Specifics:
===============

> Rolling a poll of (Y)d10 diff (X) with 10s being worth 2 suxx instead of 1 (if the player has a specialty)

> Players have a total of 160 downtime hours to spend by rolling various pools of die to raise influence levels, acquire items, spread rumors, etc. by meeting various set success thresholds for their chosen downtime actions. (E.g. raising street influence to 1 would require 10 cumulative success from rolling the appropriate downtime pool until the success requirement is achieved, or the player runs out of downtime to spend)

> Each time the player rolls their pool, they spend 10 downtime hours.
> If the player FAILS their pool's roll, they simply waist the 10 downtime hours without benefit.
> If a player BOTCHES their pool's roll, they spend 20 downtime hours instead of 10.

>>I need to be able to roll the downtime die pools, have them add the successes of each pool together, and track how many downtime hours are spent.

so something like;

Input Downtime hours to spend (10-160)
Downtime hours = (H)

Roll (Y diff X) until H=0
Spend 10 H per roll until H=0
Spend 20 H per roll if BOTCH
Add Success of each roll
If Specialty = true, 10 = 2 suxx instead of 1
when rolls are complete and H=0, show total (cumulative) success

===============
Thank you all so much for your time! Any help is appreciated!

-catslug
 
Mon Jan 3 10:20:29 2022   by   Torben
I don't quite understand the system you describe.  For example, what do you mean by "Roll (Y diff X) until H=0"?  Do you have a link to a website that describe the system precisely and fully?
 
Tue Jan 4 03:00:18 2022   by   Catslug
Sure thing! Here's a link -> https://sanguineworldofdarkness.fandom.com/wiki/Downtime#Downtime_Hours

Sorry, I know the post was probably a bit scattered. I wrote it in an airport while on layover.

To answer the question though (in case the link doesn't);

I'm not a programmer, and have had difficulty learning the Troll dice language, so I formulated what I needed in a more simplified way to explain what I was going for, even though it wouldn't work with the Troll program.

In any case, I was wondering if it was possible to set Troll to roll a pool of dice at a difficulty (as per the OWoD dice system) a set number of times and add the suxx from the results of each pool rolled. The resulting successes of a roll, however, would sometimes change the number of times the pool would be rolled. If I set it to roll 5d10 diff 6 ten times, but I botch one of the rolls, It would only roll 9 times.

If this isn't possible with the Troll program, I totally understand! I've just been hunting for a long time and gotten to the point where I'll try anything to automate this system.
==================
Thank you so much for your time!

-catslug
 
Tue Jan 4 10:00:01 2022   by   Torben
The page does not describe the die roll other than there is a chance of success, botch and failure.  What I gather from your first post is that a roll is a d10, where a 1 is a botch (causing 20 hours to be wasted), a number meeting a target number is a success (using 10 hours), a number >1 but below the target wastes 10 hours, and if Speciality is true (whatever this means), a 10 counts as two successes.  So no exploding dice or a fixed target of 7 as in the usual WoD mechanism.

It is unclear what happens if you botch when you only have 10 hours left, but I will assume that you only waste the 10 hours you have left.

Under these assumptions, the following should work:


T := 7;  \ Target number
S := 0;  \ Set to 1 if speciality is true
H := 160; \ Initial hours

call downtime(H, T, S)

function downtime(h, T, S) =
  if h <= 0 then 0
  else (
    die := d10;
    if die = 1 then call downtime(h-20, T, S)
    else if die < T then call downtime(h-10, T, S)
    else if die = 10 & S = 1 then 2 + call downtime(h-10, T, S)
    else 1 + call downtime(h-10, T, S))


Important: The iteration bound should be set to at least hours/10+1.  So 17 or more for 160 hours. Setting it to 99 won't hurt, but hours should not exceed 980.
 

Return to topic list



New message:
Topic:
Posted by:

Type the values of the dice shown below:

Return to topic list