add two-column feature with "@wrap" key to pay table
screen, to match pay lines screen. Make 5-reel machine use it
This commit is contained in:
parent
bd04e3b212
commit
82bf98b475
18
README.txt
18
README.txt
@ -194,8 +194,8 @@ of five assorted [7], [77], and/or [777] symbols (it also has one for assorted
|
|||||||
[bar], [2bar], and/or [3bar] symbols).
|
[bar], [2bar], and/or [3bar] symbols).
|
||||||
|
|
||||||
|
|
||||||
The human-readable pay table:
|
The human-readable pay table and pay lines screen:
|
||||||
=============================
|
==================================================
|
||||||
|
|
||||||
The format of the paytable_desc is pretty simple - it's a table of tables. :-)
|
The format of the paytable_desc is pretty simple - it's a table of tables. :-)
|
||||||
|
|
||||||
@ -219,9 +219,9 @@ The special symbol "@X" tells the parser to insert a blank space equal to the
|
|||||||
size of a symbol - this is useful for making grids of symbols with some spaces
|
size of a symbol - this is useful for making grids of symbols with some spaces
|
||||||
left empty (as in a 3-out-of-5 reel match).
|
left empty (as in a 3-out-of-5 reel match).
|
||||||
|
|
||||||
The parser doesn't have any text positioning commands yet, but some
|
The parser doesn't have any text positioning commands yet, other than "@wrap"
|
||||||
rudimentary layout formatting can be accomplished by inserting blank lines or
|
(below), but some rudimentary layout formatting can be accomplished by
|
||||||
chunks of whitespace between other items.
|
inserting blank lines or chunks of whitespace between items.
|
||||||
|
|
||||||
For a layout with fairly large text/symbols as in the 3-reel demo machine,
|
For a layout with fairly large text/symbols as in the 3-reel demo machine,
|
||||||
there's room for up to 19 lines, as long as the top line is not so long that
|
there's room for up to 19 lines, as long as the top line is not so long that
|
||||||
@ -240,9 +240,11 @@ on the line. The key for those is "@" followed by a number, a space, and
|
|||||||
another number (e.g. "@1 5"). These numbers indicate the first and last pay
|
another number (e.g. "@1 5"). These numbers indicate the first and last pay
|
||||||
line images to display.
|
line images to display.
|
||||||
|
|
||||||
Lines are "printed" from top to bottom in a column toward the left side of the
|
On both screens, lines are "printed" from top to bottom in a column toward the
|
||||||
form background, overflowing into a second column if necessary. You can force
|
left side of the form background, overflowing into a second column if
|
||||||
an overflow into column 2 with "@wrap" (on its own).
|
necessary. You can force an overflow into column 2 by inserting a table entry
|
||||||
|
consisting of the string "@wrap" (in the case of the pay table, it must be on
|
||||||
|
a line by itself, and not inside an inner table the way the other items arespac).
|
||||||
|
|
||||||
If paytable_desc or paylines_desc is not specified, then only the background,
|
If paytable_desc or paylines_desc is not specified, then only the background,
|
||||||
[X] button, and "Show Pay Lines" or "Show Pay Table" button will be displayed
|
[X] button, and "Show Pay Lines" or "Show Pay Table" button will be displayed
|
||||||
|
@ -1376,30 +1376,36 @@ function minislots.generate_paytable_form(def)
|
|||||||
|
|
||||||
local y = def.geometry.paytable_posy
|
local y = def.geometry.paytable_posy
|
||||||
local sympadding = 0.05
|
local sympadding = 0.05
|
||||||
|
local column = def.geometry.paytable_column1
|
||||||
|
|
||||||
if def.paytable_desc then
|
if def.paytable_desc then
|
||||||
for _, line in ipairs(def.paytable_desc) do
|
for _, line in ipairs(def.paytable_desc) do
|
||||||
local x = def.geometry.paytable_posx
|
if line == "@wrap" then
|
||||||
for _, item in ipairs(line) do
|
column = def.geometry.paytable_column2
|
||||||
if string.sub(item, 1, 1) == "@" then
|
y = def.geometry.paytable_posy
|
||||||
if item == "@X" then
|
else
|
||||||
t[#t+1] = "image["..(x*horizscale)..","..(y*vertscale)..";"..
|
local x = column
|
||||||
def.geometry.paytable_lineheight..","..def.geometry.paytable_lineheight..
|
for _, item in ipairs(line) do
|
||||||
";"..def.constants.emptyimg.."]"
|
if string.sub(item, 1, 1) == "@" then
|
||||||
|
if item == "@X" then
|
||||||
|
t[#t+1] = "image["..(x*horizscale)..","..(y*vertscale)..";"..
|
||||||
|
def.geometry.paytable_lineheight..","..def.geometry.paytable_lineheight..
|
||||||
|
";"..def.constants.emptyimg.."]"
|
||||||
|
else
|
||||||
|
local sym = string.sub(item, 2)
|
||||||
|
local sympos = def.constants.symlookup["sym_"..sym] * -def.constants.reelsymsizey - (def.constants.reelsymsizey - def.constants.reelsymsizex)/2
|
||||||
|
t[#t+1] = "image["..(x*horizscale)..","..(y*vertscale)..";"..
|
||||||
|
(def.geometry.paytable_lineheight-sympadding)..","..
|
||||||
|
(def.geometry.paytable_lineheight-sympadding)..";"..
|
||||||
|
"[combine:"..def.constants.reelsymsizex.."x"..def.constants.reelsymsizex..
|
||||||
|
":0\\,"..sympos.."="..def.constants.symbolsstopped.."]"
|
||||||
|
end
|
||||||
|
x = x + def.geometry.paytable_lineheight
|
||||||
else
|
else
|
||||||
local sym = string.sub(item, 2)
|
local szx = minislots.str_width_pix(item, "regular")*pix2iu*def.geometry.paytable_textheight
|
||||||
local sympos = def.constants.symlookup["sym_"..sym] * -def.constants.reelsymsizey - (def.constants.reelsymsizey - def.constants.reelsymsizex)/2
|
t[#t+1] = minislots.print_string(def, item, x*horizscale, (y+def.geometry.paytable_textshift)*vertscale, szx, def.geometry.paytable_textheight, "regular", "white")
|
||||||
t[#t+1] = "image["..(x*horizscale)..","..(y*vertscale)..";"..
|
x = x + szx
|
||||||
(def.geometry.paytable_lineheight-sympadding)..","..
|
|
||||||
(def.geometry.paytable_lineheight-sympadding)..";"..
|
|
||||||
"[combine:"..def.constants.reelsymsizex.."x"..def.constants.reelsymsizex..
|
|
||||||
":0\\,"..sympos.."="..def.constants.symbolsstopped.."]"
|
|
||||||
end
|
end
|
||||||
x = x + def.geometry.paytable_lineheight
|
|
||||||
else
|
|
||||||
local szx = minislots.str_width_pix(item, "regular")*pix2iu*def.geometry.paytable_textheight
|
|
||||||
t[#t+1] = minislots.print_string(def, item, x*horizscale, (y+def.geometry.paytable_textshift)*vertscale, szx, def.geometry.paytable_textheight, "regular", "white")
|
|
||||||
x = x + szx
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
y = y + def.geometry.paytable_lineheight
|
y = y + def.geometry.paytable_lineheight
|
||||||
|
@ -189,7 +189,8 @@ minislots.register_machine({
|
|||||||
cash_slot_cin_posx = 1.9, -- X/Y position within the "cash intake" form (uses the same size as
|
cash_slot_cin_posx = 1.9, -- X/Y position within the "cash intake" form (uses the same size as
|
||||||
cash_slot_cin_posy = 2.27, -- above)
|
cash_slot_cin_posy = 2.27, -- above)
|
||||||
|
|
||||||
paytable_posx = 0.6, -- where to put the first symbol/character in the paytable screen.
|
paytable_column1 = 0.6, -- position of left/right columns in the paytable screen.
|
||||||
|
paytable_column2 = 6.85,
|
||||||
paytable_posy = 0.5,
|
paytable_posy = 0.5,
|
||||||
paytable_lineheight = 0.65, -- height of a pay table line. sets the Y spacing of the lines, and the
|
paytable_lineheight = 0.65, -- height of a pay table line. sets the Y spacing of the lines, and the
|
||||||
-- X/Y size of reel symbols shown therein, minus a bit of padding.
|
-- X/Y size of reel symbols shown therein, minus a bit of padding.
|
||||||
|
@ -123,39 +123,54 @@ minislots.register_machine({
|
|||||||
|
|
||||||
},
|
},
|
||||||
paytable_desc = {
|
paytable_desc = {
|
||||||
{ "@lemon", "@lemon", "@X", "@X", "@X", " pays 1", " ", "@lemon", "@lemon", "@lemon", "@X", "@X", " pays 2" },
|
{ "@lemon", "@lemon", "@X", "@X", "@X", " pays 1"} ,
|
||||||
{ "@lemon", "@lemon", "@lemon", "@lemon", "@X", " pays 3", " ", "@lemon", "@lemon", "@lemon", "@lemon", "@lemon", " pays 5" },
|
{ "@lemon", "@lemon", "@lemon", "@X", "@X", " pays 2" },
|
||||||
|
{ "@lemon", "@lemon", "@lemon", "@lemon", "@X", " pays 3"},
|
||||||
|
{ "@lemon", "@lemon", "@lemon", "@lemon", "@lemon", " pays 5" },
|
||||||
|
|
||||||
{ "@melon", "@melon", "@melon", "@X", "@X", " pays 5", " ", "@melon", "@melon", "@melon", "@melon", "@X", " pays 6" },
|
{ "@melon", "@melon", "@melon", "@X", "@X", " pays 5"},
|
||||||
|
{ "@melon", "@melon", "@melon", "@melon", "@X", " pays 6" },
|
||||||
{ "@melon", "@melon", "@melon", "@melon", "@melon", " pays 7" },
|
{ "@melon", "@melon", "@melon", "@melon", "@melon", " pays 7" },
|
||||||
|
|
||||||
{ "@cherry", "@cherry", "@X", "@X", "@X", " pays 7", " ", "@cherry", "@cherry", "@cherry", "@X", "@X", " pays 8" },
|
{ "@cherry", "@cherry", "@X", "@X", "@X", " pays 7" },
|
||||||
{ "@cherry", "@cherry", "@cherry", "@cherry", "@X", " pays 9", " ", "@cherry", "@cherry", "@cherry", "@cherry", "@cherry", " pays 10" },
|
{ "@cherry", "@cherry", "@cherry", "@X", "@X", " pays 8" },
|
||||||
|
{ "@cherry", "@cherry", "@cherry", "@cherry", "@X", " pays 9" },
|
||||||
|
{ "@cherry", "@cherry", "@cherry", "@cherry", "@cherry", " pays 10" },
|
||||||
|
|
||||||
{ "@bell", "@bell", "@bell", "@X", "@X", " pays 10", " ", "@bell", "@bell", "@bell", "@bell", "@X", " pays 15" },
|
{ "@bell", "@bell", "@bell", "@X", "@X", " pays 10" },
|
||||||
|
{ "@bell", "@bell", "@bell", "@bell", "@X", " pays 15" },
|
||||||
{ "@bell", "@bell", "@bell", "@bell", "@bell", " pays 20" },
|
{ "@bell", "@bell", "@bell", "@bell", "@bell", " pays 20" },
|
||||||
|
|
||||||
{ "Any five mixed", "@bar", "/", "@2bar", "/", "@3bar", " pays 25" },
|
{ "Any five ", "@bar", "/", "@2bar", "/", "@3bar", " pays 25" },
|
||||||
{ "@bar", "@bar", "@bar", "@X", "@X", " pays 30", " ", "@bar", "@bar", "@bar", "@bar", "@X", " pays 35" },
|
{ "@bar", "@bar", "@bar", "@X", "@X", " pays 30" },
|
||||||
|
{ "@bar", "@bar", "@bar", "@bar", "@X", " pays 35" },
|
||||||
{ "@bar", "@bar", "@bar", "@bar", "@bar", " pays 40" },
|
{ "@bar", "@bar", "@bar", "@bar", "@bar", " pays 40" },
|
||||||
|
|
||||||
{ "@2bar", "@2bar", "@2bar", "@X", "@X", " pays 50", " ", "@2bar", "@2bar", "@2bar", "@2bar", "@X", " pays 55" },
|
{ "@2bar", "@2bar", "@2bar", "@X", "@X", " pays 50" },
|
||||||
|
{ "@2bar", "@2bar", "@2bar", "@2bar", "@X", " pays 55" },
|
||||||
{ "@2bar", "@2bar", "@2bar", "@2bar", "@2bar", " pays 60" },
|
{ "@2bar", "@2bar", "@2bar", "@2bar", "@2bar", " pays 60" },
|
||||||
|
|
||||||
{ "@3bar", "@3bar", "@3bar", "@X", "@X", " pays 70", " ", "@3bar", "@3bar", "@3bar", "@3bar", "@X", " pays 73" },
|
{ "@wild", " matches any symbol except ", "@scatter", " ", "@bonus", " or ", "@jackpot" },
|
||||||
|
{ "All wins are multiplied by your line bet." },
|
||||||
|
|
||||||
|
"@wrap",
|
||||||
|
|
||||||
|
{ "@3bar", "@3bar", "@3bar", "@X", "@X", " pays 70" },
|
||||||
|
{ "@3bar", "@3bar", "@3bar", "@3bar", "@X", " pays 73" },
|
||||||
{ "@3bar", "@3bar", "@3bar", "@3bar", "@3bar", " pays 75" },
|
{ "@3bar", "@3bar", "@3bar", "@3bar", "@3bar", " pays 75" },
|
||||||
|
|
||||||
{ "Any five mixed ", "@7", "/", "@77", "/", "@777", " pays 80" },
|
{ "Any five ", "@7", "/", "@77", "/", "@777", " pays 80" },
|
||||||
{ "@7", "@7", "@7", "@X", "@X", " pays 85", " ", "@7", "@7", "@7", "@7", "@X", " pays 88" },
|
{ "@7", "@7", "@7", "@X", "@X", " pays 85" },
|
||||||
|
{ "@7", "@7", "@7", "@7", "@X", " pays 88" },
|
||||||
{ "@7", "@7", "@7", "@7", "@7", " pays 90" },
|
{ "@7", "@7", "@7", "@7", "@7", " pays 90" },
|
||||||
|
|
||||||
{ "@77", "@77", "@77", "@X", "@X", " pays 90", " ", "@77", "@77", "@77", "@77", "@X", " pays 95" },
|
{ "@77", "@77", "@77", "@X", "@X", " pays 90" },
|
||||||
|
{ "@77", "@77", "@77", "@77", "@X", " pays 95" },
|
||||||
{ "@77", "@77", "@77", "@77", "@77", " pays 100" },
|
{ "@77", "@77", "@77", "@77", "@77", " pays 100" },
|
||||||
|
|
||||||
{ "@777", "@777", "@777", "@777", "@777", " pays 150" },
|
{ "@777", "@777", "@777", "@777", "@777", " pays 150" },
|
||||||
{ "@jackpot", "@jackpot", "@jackpot", "@jackpot", "@jackpot", " pays 300" },
|
{ "@jackpot", "@jackpot", "@jackpot", "@jackpot", "@jackpot", " pays 300" },
|
||||||
{ "@wild", " matches any symbol except ", "@scatter", " ", "@bonus", " or ", "@jackpot" },
|
|
||||||
{ "All wins are multiplied by your line bet." }
|
|
||||||
},
|
},
|
||||||
paylines_desc = {
|
paylines_desc = {
|
||||||
"Paylines 1 - 3:",
|
"Paylines 1 - 3:",
|
||||||
@ -244,8 +259,9 @@ minislots.register_machine({
|
|||||||
cash_slot_cin_posx = 1.9, -- X/Y position within the "cash intake" form (uses the same size as
|
cash_slot_cin_posx = 1.9, -- X/Y position within the "cash intake" form (uses the same size as
|
||||||
cash_slot_cin_posy = 2.27, -- above)
|
cash_slot_cin_posy = 2.27, -- above)
|
||||||
|
|
||||||
paytable_posx = 0.4, -- where to put the first symbol/character in the paytable screen.
|
paytable_column1 = 0.65, -- position of left/right columns in the paytable screen.
|
||||||
paytable_posy = 0,
|
paytable_column2 = 6.9,
|
||||||
|
paytable_posy = 0.25,
|
||||||
paytable_lineheight = 0.5, -- height of a pay table line. sets the Y spacing of the lines, and the
|
paytable_lineheight = 0.5, -- height of a pay table line. sets the Y spacing of the lines, and the
|
||||||
-- X/Y size of reel symbols shown therein, minus a bit of padding.
|
-- X/Y size of reel symbols shown therein, minus a bit of padding.
|
||||||
paytable_textheight = 0.35, -- height of printed text within said line, which will be vert. centered
|
paytable_textheight = 0.35, -- height of printed text within said line, which will be vert. centered
|
||||||
|
Loading…
x
Reference in New Issue
Block a user