Main > Suggestions

Automatic Prizes configuration / Display

(1/5) > >>

Lafrog:
Hi,

I would like to suggest that the "adjustby" tag be allowed also in "nommonetary prizes".

I am attempting to build an Automatic Prizes XML files for a satellites we are running. In so doing, I find myself in the situation of awarding non-monetary prizes (seats) to my players.
But, there is no way for me to tell TD to remove the corresponding amount from the prize pool. That way I could simply write:

--- Code: ---    <prizeLevel minPlayers="31" maxPlayers="34">
        <prize rank="1-6" name="{1} Place" nonmonetary="Seat" adjustby="-550"/>
        <prize rank="7" name="{1} Place" percent="100" />
    </prizeLevel>
--- End code ---
instead of

--- Code: ---    <prizeLevel minPlayers="31" maxPlayers="34">
        <prize rank="1-6" name="{1} Place" nonmonetary="Seat" />
        <prize rank="7" name="{1} Place" percent="100" adjustby="-3300" />
    </prizeLevel>
--- End code ---
Which forces me to calculate the adjustment for every level.

Also, I would like a way to display consecutive prizes more user friendly like:
1st - 6th Place: Seat, 7th Place: $220.00
instead of
1st Place: Seat, 2nd Place: Seat, 3rd Place: Seat, 4th Place: Seat, 5th Place: Seat, 6th Place: Seat, 7th Place: $220.00

Lastly, I would like for TD to skip 0 prizes. At this time, I have to add additional level to circumvent that:

--- Code: ---    <prizeLevel minPlayers="35" maxPlayers="35">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
    </prizeLevel>
    <prizeLevel minPlayers="36" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>
--- End code ---

A simpler way would be:


--- Code: ---    <prizeLevel minPlayers="35" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>
--- End code ---
but this last option produces a 6th prize with a zero amount.

TIA
Michel

Corey Cooper:
I've been thinking about this one for a while now.  It sounds like to me that you just need a way to override what is displayed for the amount.  Instead of a workaround of setting a prize to non-monetary and adjusting the prize amount, you would want to keep the prize's amount (because you want that amount removed from the pot), but don't show the prize amount itself, instead show some other text.

So, this:


--- Code: ---    <prizeLevel minPlayers="31" maxPlayers="34">
        <prize rank="1" name="{1} Place" nonmonetary="Seat" adjustby="-550"/>
        <prize rank="2" name="{1} Place" percent="100" />
    </prizeLevel

--- End code ---

Would become this instead:


--- Code: ---    <prizeLevel minPlayers="31" maxPlayers="34">
        <prize rank="1" name="{1} Place" fixed="550" amounttext="Seat" />
        <prize rank="2" name="{1} Place" percent="100" />
    </prizeLevel

--- End code ---

Prizes commonly display like this:

1st Place: $550.00     2nd Place: $300

(by using <prizes orient="horizontal">)

This would change it to:

1st Place: Seat     2nd Place: $300

While not really changing the underlying value of 1st place ($550).


--- Quote ---Also, I would like a way to display consecutive prizes more user friendly like:
1st - 6th Place: Seat, 7th Place: $220.00
instead of
1st Place: Seat, 2nd Place: Seat, 3rd Place: Seat, 4th Place: Seat, 5th Place: Seat, 6th Place: Seat, 7th Place: $220.00

--- End quote ---

This might take some work, but I'll look into it.


--- Quote ---Lastly, I would like for TD to skip 0 prizes. At this time, I have to add additional level to circumvent that:
Code:
    <prizeLevel minPlayers="35" maxPlayers="35">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
    </prizeLevel>
    <prizeLevel minPlayers="36" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>

A simpler way would be:

Code:
    <prizeLevel minPlayers="35" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>
but this last option produces a 6th prize with a zero amount.
--- End quote ---

If I'm understanding you, and I'm not sure I am, then you might want to use different criteria to specify your prize levels.  Like the pot amount.  For example:


--- Code: ---<prizeConfig>
  <prizeLevels>
    <prizeLevel minPlayers="1" maxPlayers="549">
      <prize rank="1" name="1st Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="550" maxPlayers="1099">
      <prize rank="1" name="{1} Place" fixed="550" />
      <prize rank="2" name="{1} Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="1100" maxPlayers="1649">
      <prize rank="1-2" name="{1} Place" fixed="550" />
      <prize rank="3" name="{1} Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="1650" maxPlayers="2199">
      <prize rank="1-3" name="{1} Place" fixed="550" />
      <prize rank="4" name="{1} Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="2200" maxPlayers="2749">
      <prize rank="1-4" name="{1} Place" fixed="550" />
      <prize rank="5" name="{1} Place" percent="100" />
    </prizeLevel>
  </prizeLevels>
  <levelSelection method="formula">
    <predefined countBuyins="true" countRebuys="false" countAddOns="false" />
    <formula text="pot" />
  </levelSelection>
</prizeConfig>

--- End code ---

Edit: Sorry, I should have explained this one a bit.  The <levelSelection> element changes how the automatic prizes determines the prize level.  By specifying "formula" and providing a formula that is simply "pot", it changes from using "number of players" to "pot" as the selection criteria.  The <prizeLevel> elements still say "minPlayers" and "maxPlayers" because this feature was originally designed to only use "number of players" as the criteria, so when it was extended to use a formula (or the predefined other criteria), it remained "minPlayers" and "maxPlayers" in order to prevent existing automatic prizes configuration files from breaking.  So, when the pot is < $550, the first level, with no "Seat" prize, is selected.  If the pot is at least $550 but less than $1100, the 2nd level is selected, with 1st place receiving a seat (value of $550) and 2nd place receiving whatever is left over.  Etc for the other levels.  Combined with the "amounttext" attribute I proposed, would this work?

Lafrog:

--- Quote from: Corey Cooper on August 05, 2015, 11:11:32 AM ---I've been thinking about this one for a while now.  It sounds like to me that you just need a way to override what is displayed for the amount.  Instead of a workaround of setting a prize to non-monetary and adjusting the prize amount, you would want to keep the prize's amount (because you want that amount removed from the pot), but don't show the prize amount itself, instead show some other text.

So, this:


--- Code: ---    <prizeLevel minPlayers="31" maxPlayers="34">
        <prize rank="1" name="{1} Place" nonmonetary="Seat" adjustby="-550"/>
        <prize rank="2" name="{1} Place" percent="100" />
    </prizeLevel

--- End code ---

Would become this instead:


--- Code: ---    <prizeLevel minPlayers="31" maxPlayers="34">
        <prize rank="1" name="{1} Place" fixed="550" amounttext="Seat" />
        <prize rank="2" name="{1} Place" percent="100" />
    </prizeLevel

--- End code ---

Prizes commonly display like this:

1st Place: $550.00     2nd Place: $300

(by using <prizes orient="horizontal">)

This would change it to:

1st Place: Seat     2nd Place: $300

While not really changing the underlying value of 1st place ($550).

--- End quote ---
That would be awesome !!!


--- Quote from: Corey Cooper on August 05, 2015, 11:11:32 AM ---
--- Quote ---Also, I would like a way to display consecutive prizes more user friendly like:
1st - 6th Place: Seat, 7th Place: $220.00
instead of
1st Place: Seat, 2nd Place: Seat, 3rd Place: Seat, 4th Place: Seat, 5th Place: Seat, 6th Place: Seat, 7th Place: $220.00

--- End quote ---

This might take some work, but I'll look into it.


--- Quote ---Lastly, I would like for TD to skip 0 prizes. At this time, I have to add additional level to circumvent that:
Code:
    <prizeLevel minPlayers="35" maxPlayers="35">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
    </prizeLevel>
    <prizeLevel minPlayers="36" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>

A simpler way would be:

Code:
    <prizeLevel minPlayers="35" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Siege" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>
but this last option produces a 6th prize with a zero amount.
--- End quote ---

If I'm understanding you, and I'm not sure I am, then you might want to use different criteria to specify your prize levels.  Like the pot amount.  For example:


--- Code: ---<prizeConfig>
  <prizeLevels>
    <prizeLevel minPlayers="1" maxPlayers="549">
      <prize rank="1" name="1st Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="550" maxPlayers="1099">
      <prize rank="1" name="{1} Place" fixed="550" />
      <prize rank="2" name="{1} Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="1100" maxPlayers="1649">
      <prize rank="1-2" name="{1} Place" fixed="550" />
      <prize rank="3" name="{1} Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="1650" maxPlayers="2199">
      <prize rank="1-3" name="{1} Place" fixed="550" />
      <prize rank="4" name="{1} Place" percent="100" />
    </prizeLevel>
    <prizeLevel minPlayers="2200" maxPlayers="2749">
      <prize rank="1-4" name="{1} Place" fixed="550" />
      <prize rank="5" name="{1} Place" percent="100" />
    </prizeLevel>
  </prizeLevels>
  <levelSelection method="formula">
    <predefined countBuyins="true" countRebuys="false" countAddOns="false" />
    <formula text="pot" />
  </levelSelection>
</prizeConfig>

--- End code ---

Edit: Sorry, I should have explained this one a bit.  The <levelSelection> element changes how the automatic prizes determines the prize level.  By specifying "formula" and providing a formula that is simply "pot", it changes from using "number of players" to "pot" as the selection criteria.  The <prizeLevel> elements still say "minPlayers" and "maxPlayers" because this feature was originally designed to only use "number of players" as the criteria, so when it was extended to use a formula (or the predefined other criteria), it remained "minPlayers" and "maxPlayers" in order to prevent existing automatic prizes configuration files from breaking.  So, when the pot is < $550, the first level, with no "Seat" prize, is selected.  If the pot is at least $550 but less than $1100, the 2nd level is selected, with 1st place receiving a seat (value of $550) and 2nd place receiving whatever is left over.  Etc for the other levels.  Combined with the "amounttext" attribute I proposed, would this work?

--- End quote ---

Yes I believe you got me (to a point). First, I just wanted to point out that, as it stands right now, using:

--- Code: ---<prizeLevel minPlayers="35" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Seat" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>
--- End code ---
can produce a 0$ prize and that it should be handled better by TD by simply "silencing" 0$ prizes (not showing them on the board)

That said, having "another way" of selecting prize levels would be fantastic in my scenario. The only thing that is unclear from your example is: How does TD know that each "level" is worth 550$? I do not see anything in the "<levelSelection method="formula">" section that states that the POT should be divided by 550 (+1) to get to the proper level...

Other than that, you are on the right track  ;)

TIA
Michel

Corey Cooper:

--- Quote ---Yes I believe you got me (to a point). First, I just wanted to point out that, as it stands right now, using:
Code:
<prizeLevel minPlayers="35" maxPlayers="39">
        <prize rank="1-5" name="{1} Place" nonmonetary="Seat" />
        <prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
    </prizeLevel>
can produce a 0$ prize and that it should be handled better by TD by simply "silencing" 0$ prizes (not showing them on the board)
--- End quote ---

Understood.   But the TD will allow you to create prizes of any value, including negative, so it's not as if a prize with a value of $0 is invalid somehow.  But I suppose an option to NOT display prizes of $0 or less value could be added.


--- Quote ---That said, having "another way" of selecting prize levels would be fantastic in my scenario. The only thing that is unclear from your example is: How does TD know that each "level" is worth 550$? I do not see anything in the "<levelSelection method="formula">" section that states that the POT should be divided by 550 (+1) to get to the proper level...

Other than that, you are on the right track 

--- End quote ---

This is available today.  By default, the Automatic Prizes feature works off of the number of players in the tournament.  By adding an additional section to the config file, it will change the meaning of "number of players".  In other words, the criteria by which levels are chosen is usually "number of players", but it can be changed to either (a) some combination of number of buy-ins, rebuys, and add-ons; or (b) the output of a formula.

In my example I configured the Automatic Prizes to use the output of my formula as the criteria.  I set the formula to simply "pot", which means the output of the formula will be the current value of the pot, and thus the current value of the pot is my criteria.


--- Code: ---  <levelSelection method="formula">
    <predefined countBuyins="true" countRebuys="false" countAddOns="false" />
    <formula text="pot" />
  </levelSelection>

--- End code ---

(In the above configuration, the <predefined> node is unused, because the <levelSelection> node chose to use the <formula> method.  But it doesn't hurt anything, so I left it in.  Likewise, I could have set <levelSelection method="predefined">, which would make it use the <predefined> node and ignore the <formula> node.)

Each level is therefore chosen based on the current value of the pot.


--- Code: ---    <prizeLevel minPlayers="1" maxPlayers="549">
      <prize rank="1" name="1st Place" percent="100" />
    </prizeLevel>

--- End code ---

This then says "when the pot is between $1 and $549, use this prize level".  I know the "minPlayers" and "maxPlayers" attributes are confusing, but they were left that way for backwards compatibility.  Think of "minPlayers" as simply "minimum value" and "maxPlayers" as "maximum value".  So, when the formula (the value of the pot) is at minimum $1 and at maximum $549, only configure a single 1st place prize which gets 100% of the pot.


--- Code: ---    <prizeLevel minPlayers="550" maxPlayers="1099">
      <prize rank="1" name="{1} Place" fixed="550" />
      <prize rank="2" name="{1} Place" percent="100" />
    </prizeLevel>

--- End code ---

When the pot is at least $550 and at most $1099, create a 1st place prize of $550 and a 2nd place prize which gets 100% of the pot (after removing the fixed 1st place prize).


--- Code: ---    <prizeLevel minPlayers="1100" maxPlayers="1649">
      <prize rank="1-2" name="{1} Place" fixed="550" />
      <prize rank="3" name="{1} Place" percent="100" />
    </prizeLevel>

--- End code ---

When the pot is at least $1100 and at most $1649, create 1st and 2nd place prizes of $550 each and a 3rd place prize which gets 100% of the pot (after removing the fixed 1st and 2nd place prizes).

You get the picture.

Lafrog:
thanks, it is very clear now... As you mentioned the "minPlayers/maxPlayers" labels threw me off.

thanks again!

Navigation

[0] Message Index

[#] Next page

Go to full version