add 5-reel version of Golden 7's machine
fixed some position miscalcs and hard-coded vals that only affected > 3 reelsmaster
|
@ -59,7 +59,7 @@ function minislots.spin_reels(def)
|
|||
-- if reel == 2 then n = 4 end
|
||||
-- if reel == 3 then n = 10 end
|
||||
|
||||
-- local n = 12 -- force a scatter win
|
||||
local n = 12 -- force a scatter win
|
||||
|
||||
-- local n = 16 -- force a bonus win + 3 line wins
|
||||
|
||||
|
@ -166,7 +166,10 @@ function minislots.register_machine(mdef)
|
|||
def.constants.spincoutbtnszy = def.constants.spincoutsizey * 1.05
|
||||
|
||||
def.constants.reelspc = def.geometry.reel_sizex*1.3333
|
||||
def.constants.highlightboxsz = def.geometry.reel_sizex*1.3333
|
||||
def.constants.highlightboxszx = def.geometry.reel_sizex*1.3333
|
||||
def.constants.highlightboxszy = def.geometry.reel_sizey/3*1.3333
|
||||
def.constants.highlightboxoffsx = 1-(def.geometry.reel_sizex/6)
|
||||
def.constants.highlightboxoffsy = 1-(def.geometry.reel_sizey/18)
|
||||
|
||||
def.constants.screenlnht2 = def.geometry.screen_line_height * 0.6667
|
||||
def.constants.screenlnht3 = def.geometry.screen_line_height * 0.3333
|
||||
|
@ -195,9 +198,9 @@ function minislots.register_machine(mdef)
|
|||
|
||||
def.constants.reelimg = def.constants.basename.."reel_background.png"
|
||||
def.constants.reelshadowimg = ":0,0="..def.constants.basename.."reel_shadow.png]"
|
||||
def.constants.scatterhlimg = def.constants.highlightboxsz..","..def.constants.highlightboxsz..";"..
|
||||
def.constants.scatterhlimg = def.constants.highlightboxszx..","..def.constants.highlightboxszy..";"..
|
||||
def.constants.basename.."highlight_scatter.png]"
|
||||
def.constants.bonushlimg = def.constants.highlightboxsz..","..def.constants.highlightboxsz..";"..
|
||||
def.constants.bonushlimg = def.constants.highlightboxszx..","..def.constants.highlightboxszy..";"..
|
||||
def.constants.basename.."highlight_bonus.png]"
|
||||
def.constants.cashslotscrnbg = def.constants.basename.."cash_slot_screen_background.png"
|
||||
|
||||
|
@ -258,13 +261,14 @@ function minislots.register_machine(mdef)
|
|||
def.constants.emptyimg..";cslot;]"
|
||||
def.constants.button_cslot_close = def.constants.basename.."cash_slot_screen_close_button.png"
|
||||
|
||||
def.constants.reelsymsize = def.geometry.reel_sizex*64 -- assumes square symbols
|
||||
def.constants.reelsymsizex = def.geometry.reel_sizex*64
|
||||
def.constants.reelsymsizey = def.geometry.reel_sizey/3*64
|
||||
|
||||
def.constants.reelcombinepref = ","..(vertscale-vanchor)..";"..
|
||||
(def.geometry.reel_sizex)..","..(def.geometry.reel_sizey)..";"..
|
||||
def.constants.reelimg..
|
||||
"^[combine:"..def.constants.reelsymsize.."x"..
|
||||
def.geometry.reel_sizey*64
|
||||
"^[combine:"..def.constants.reelsymsizex.."x"..
|
||||
def.constants.reelsymsizey
|
||||
|
||||
def.constants.reelunderlightpref = def.constants.basename.."reel_underlight_"
|
||||
def.constants.overlaylinepref = def.constants.basename.."overlay_line_"
|
||||
|
@ -708,7 +712,7 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
local t = {}
|
||||
for row = 0, 2 do
|
||||
if spin[row+1][reel][2] == "scatter" then
|
||||
t[#t+1] = ":0,"..(row*def.constants.reelsymsize).."="
|
||||
t[#t+1] = ":0,"..(row*def.constants.reelsymsizey).."="
|
||||
..def.constants.reelunderlightpref..(row+1)..".png"
|
||||
end
|
||||
end
|
||||
|
@ -721,7 +725,7 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
local t = {}
|
||||
for row = 0, 2 do
|
||||
if spin[row+1][reel][2] == "bonus" then
|
||||
t[#t+1] = ":0,"..(row*def.constants.reelsymsize).."="
|
||||
t[#t+1] = ":0,"..(row*def.constants.reelsymsizey).."="
|
||||
..def.constants.reelunderlightpref..(row+1)..".png"
|
||||
end
|
||||
end
|
||||
|
@ -735,7 +739,7 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
if string.find(state, "spinning_fast_") then
|
||||
local t = {}
|
||||
for i = 0, def.constants.numreels-1 do
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsize
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsizey
|
||||
t[i+1] = "image["..((i*def.constants.reelspc+1)*horizscale-hanchor)..
|
||||
def.constants.reelcombinepref..
|
||||
":0,"..rs.."="..def.constants.symbolsfast..
|
||||
|
@ -745,7 +749,7 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
elseif string.find(state, "spinning_medm_") then
|
||||
local t = {}
|
||||
for i = 0, def.constants.numreels-1 do
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsize
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsizey
|
||||
t[i+1] = "image["..((i*def.constants.reelspc+1)*horizscale-hanchor)..
|
||||
def.constants.reelcombinepref..
|
||||
":0,"..rs.."="..def.constants.symbolsmedium..
|
||||
|
@ -755,7 +759,7 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
elseif string.find(state, "spinning_slow_") then
|
||||
local t = {}
|
||||
for i = 0, def.constants.numreels-1 do
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsize
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsizey
|
||||
t[i+1] = "image["..((i*def.constants.reelspc+1)*horizscale-hanchor)..
|
||||
def.constants.reelcombinepref..
|
||||
":0,"..rs.."="..def.constants.symbolsslow..
|
||||
|
@ -766,13 +770,13 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
local t = {}
|
||||
for i = 0, def.constants.numreels-1 do
|
||||
if i > ((statenum-61)/def.inter_reel_steps) then -- state machine enters the "reels_stopping_*" state at 60.
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsize
|
||||
local rs = calcrp(def, spin, i, statenum) * -def.constants.reelsymsizey
|
||||
t[i+1] = "image["..((i*def.constants.reelspc+1)*horizscale-hanchor)..
|
||||
def.constants.reelcombinepref..
|
||||
":0,"..rs.."="..def.constants.symbolsslow..
|
||||
def.constants.reelshadowimg
|
||||
else
|
||||
local rs = (spin[2][i+1][1]-1) * -def.constants.reelsymsize
|
||||
local rs = (spin[2][i+1][1]-1) * -def.constants.reelsymsizey
|
||||
t[i+1] = "image["..((i*def.constants.reelspc+1)*horizscale-hanchor)..
|
||||
def.constants.reelcombinepref..
|
||||
underlights[i+1]..":0,"..rs.."="..def.constants.symbolsstopped..
|
||||
|
@ -783,7 +787,7 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
elseif state == "stopped" or state == "start" or string.find(state, "win") then
|
||||
local t = {}
|
||||
for i = 0, def.constants.numreels-1 do
|
||||
local rs = (spin[2][i+1][1]-1) * -def.constants.reelsymsize
|
||||
local rs = (spin[2][i+1][1]-1) * -def.constants.reelsymsizey
|
||||
t[i+1] = "image["..((i*def.constants.reelspc+1)*horizscale-hanchor)..
|
||||
def.constants.reelcombinepref..
|
||||
underlights[i+1]..":0,"..rs.."="..def.constants.symbolsstopped..
|
||||
|
@ -809,8 +813,8 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
local t = {}
|
||||
if state == "scatter_win" and allwins.scatter.count > 0 then
|
||||
for i,pos in ipairs(allwins.scatter.pos) do
|
||||
t[i] = "image["..(((pos[1]-1)*def.constants.reelspc+0.5)*horizscale-hanchor)..","..
|
||||
(((pos[2]-1)*(def.geometry.reel_sizey/3)+0.5)*vertscale-vanchor)..";"..
|
||||
t[i] = "image["..(((pos[1]-1)*def.constants.reelspc+def.constants.highlightboxoffsx)*horizscale-hanchor)..","..
|
||||
(((pos[2]-1)*(def.geometry.reel_sizey/3)+def.constants.highlightboxoffsy)*vertscale-vanchor)..";"..
|
||||
def.constants.scatterhlimg
|
||||
end
|
||||
scatters = table.concat(t)
|
||||
|
@ -819,8 +823,8 @@ function minislots.generate_display(def, state, spin, allwins, balance, linebet,
|
|||
local t = {}
|
||||
if state == "bonus_win" and allwins.bonus.count > 0 then
|
||||
for i,pos in ipairs(allwins.bonus.pos) do
|
||||
t[i] = "image["..(((pos[1]-1)*def.constants.reelspc+0.5)*horizscale-hanchor)..","..
|
||||
(((pos[2]-1)*(def.geometry.reel_sizey/3)+0.5)*vertscale-vanchor)..";"..
|
||||
t[i] = "image["..(((pos[1]-1)*def.constants.reelspc+def.constants.highlightboxoffsx)*horizscale-hanchor)..","..
|
||||
(((pos[2]-1)*(def.geometry.reel_sizey/3)+def.constants.highlightboxoffsy)*vertscale-vanchor)..";"..
|
||||
def.constants.bonushlimg
|
||||
end
|
||||
bonuses = table.concat(t)
|
||||
|
|
|
@ -119,7 +119,7 @@ minislots.register_machine({
|
|||
|
||||
reel_sizex = 3, -- Nominal X/Y size of one reel. Note that reels are drawn with a
|
||||
reel_sizey = 9, -- spacing of 1.3333 times their width (creates a 1 IU gap in this
|
||||
-- machine).
|
||||
-- machine), centered and leaving a 1 IU space at the far left/right.
|
||||
|
||||
button_rows_posx = 6.25, -- X starting pos for "n Lines"/"Bet n" buttons, Y pos for Spin button
|
||||
spin_cashout_posx = 11.25, -- X pos for Spin and Cash-out/Quit buttons
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
minislots_engine
|
|
@ -0,0 +1,262 @@
|
|||
|
||||
-- Golden 7's Deluxe example machine
|
||||
--
|
||||
-- By Vanessa Dannenberg
|
||||
--
|
||||
-- Most symbol images taken from clker.com
|
||||
-- others drawn or rendered by me.
|
||||
|
||||
minislots.register_machine({
|
||||
name = "golden7s_deluxe",
|
||||
description = "Golden 7's Deluxe slot machine",
|
||||
machine_shape = "standard",
|
||||
lines = { -- reel symbol pay line positions: 0 = center, -1 = top, +1 = bottom
|
||||
{ 0, 0, 0, 0, 0 }, -- pay line 1: center symbol on each reel
|
||||
{ -1, -1, -1, -1, -1 }, -- 2: top symbol on each reel
|
||||
{ 1, 1, 1, 1, 1 }, -- 3: bottom symbol on each reel
|
||||
{ -1, -1, 0, 1, 1 }, -- 4: top of reels 1 and 2, center of 3, bottom of 4 and 5
|
||||
{ 1, 1, 0, -1, -1 }, -- 5: bottom of reels 1, 2, center 3, top 4, 5
|
||||
{ -1, -1, -1, 0, 1 }, -- 6: top of 1, 2, 3, center 4, bottom 5
|
||||
{ 1, 1, 1, 0, -1 }, -- 7: bottom of 1, 2, 3, center 4, top 5
|
||||
{ -1, 0, 1, 1, 1 }, -- 8: top of 1, center 2, bottom 3, 4, 5
|
||||
{ 1, 0, -1, -1, -1 }, -- 9: bottom of 1, center 2, top 3, 4, 5
|
||||
},
|
||||
symbols = {
|
||||
"bar",
|
||||
"lemon",
|
||||
"77",
|
||||
"cherry",
|
||||
"jackpot",
|
||||
"melon",
|
||||
"2bar",
|
||||
"lemon",
|
||||
"wild",
|
||||
"7",
|
||||
"bell",
|
||||
"scatter",
|
||||
"3bar",
|
||||
"777",
|
||||
"melon",
|
||||
"bonus"
|
||||
},
|
||||
linebuttons = { -- number of lines on each button, from left to right
|
||||
1,
|
||||
3,
|
||||
5,
|
||||
9 -- there's room for one more, if desired
|
||||
},
|
||||
betbuttons = { -- line bet amount on each button, from left to right
|
||||
1,
|
||||
2,
|
||||
5,
|
||||
10,
|
||||
25
|
||||
},
|
||||
matches = { -- nil == don't care about that reel in a given match
|
||||
{ 2, "lemon" , "lemon" , "lemon" , "lemon" , "lemon" },
|
||||
|
||||
{ 4, "melon" , "melon" , "melon" , "melon" , "melon" },
|
||||
|
||||
{ 5, "cherry" , "cherry" , "cherry" , nil , nil },
|
||||
{ 6, "cherry" , "cherry" , "cherry" , "cherry" , nil },
|
||||
{ 7, "cherry" , "cherry" , "cherry" , "cherry" , "cherry" },
|
||||
|
||||
{ 10, "bell" , "bell" , "bell" , nil , nil },
|
||||
{ 15, "bell" , "bell" , "bell" , "bell" , nil },
|
||||
{ 20, "bell" , "bell" , "bell" , "bell" , "bell" },
|
||||
|
||||
{ 30, "bar" , "bar" , "bar" , nil , nil },
|
||||
{ 35, "bar" , "bar" , "bar" , "bar" , nil },
|
||||
{ 40, "bar" , "bar" , "bar" , "bar" , "bar" },
|
||||
|
||||
{ 50, "2bar" , "2bar" , "2bar" , nil , nil },
|
||||
{ 55, "2bar" , "2bar" , "2bar" , "2bar" , nil },
|
||||
{ 60, "2bar" , "2bar" , "2bar" , "2bar" , "2bar" },
|
||||
|
||||
{ 70, "3bar" , "3bar" , "3bar" , nil , nil },
|
||||
{ 75, "3bar" , "3bar" , "3bar" , "3bar" , nil },
|
||||
{ 80, "3bar" , "3bar" , "3bar" , "3bar" , "3bar" },
|
||||
|
||||
{ 90, "7" , "7" , "7" , "7" , "7" },
|
||||
|
||||
{ 100, "77" , "77" , "77" , "77" , "77" },
|
||||
|
||||
{ 150, "777" , "777" , "777" , "777" , "777" },
|
||||
|
||||
{ 300, "jackpot" , "jackpot" , "jackpot" , "jackpot" , "jackpot" },
|
||||
|
||||
},
|
||||
maxbalance = 3260000, -- 65535 50 Mg notes, minus maximum possible payout, minus a fudge amount
|
||||
bet_initiates_spin = true, -- Most machines initiate a spin when the user presses a "Bet n" button, using
|
||||
-- the selected bet value.
|
||||
|
||||
-- timings should be an even multiple of the step interval (usually 0.1s)
|
||||
reel_fast_timeout = 0.2, -- time between "frames" while spinning fast, medium speed, or slow
|
||||
reel_medium_timeout = 0.1,
|
||||
reel_slow_timeout = 0.1,
|
||||
win_delay = 0.5, -- time to wait after reels stop before showing winning lines
|
||||
line_timeout = 1, -- time to wait between cycling among winning lines
|
||||
inter_reel_steps = 3, -- number of "frames" between stopping reels (using slow timeout)
|
||||
half_stops_weight = 5, -- likelihood that a reel will stop between symbols, max 100 (if you want to
|
||||
-- disable that behavior and always land on a symbol, set this to 1).
|
||||
min_scatter = 3, -- minimum number of scatter symbols needed before computing a scatter win
|
||||
scatter_value = 3, -- value of the scatter symbol, will be multiplied by number visible * line bet
|
||||
min_bonus = 4, -- minimum number of symbols needed to trigger the bonus round
|
||||
initiate_bonus = function(spin, def)
|
||||
print("[minislots] Bonus round triggered.")
|
||||
return 400
|
||||
end,
|
||||
geometry = { -- all measures are in Minetest formspec "inventory slots" units
|
||||
|
||||
base_user_interface_width = 14.667, -- width of the user interface
|
||||
upper_section_height = 11, -- height of the upper section (the reels et. al)
|
||||
lower_section_height = 2, -- height of lower section (screen, buttons)
|
||||
|
||||
reel_sizex = 2, -- Nominal X/Y size of one reel. Note that reels are drawn with a
|
||||
reel_sizey = 9, -- spacing of 1.3333 times their width (creates a 1 IU gap in this
|
||||
-- machine), centered and leaving a 1 IU space at the far left/right.
|
||||
|
||||
button_rows_posx = 6.25, -- X starting pos for "n Lines"/"Bet n" buttons, Y pos for Spin button
|
||||
spin_cashout_posx = 12.75, -- X pos for Spin and Cash-out/Quit buttons
|
||||
button_rows_posy = 11.14, -- Y pos for "n Lines" row, and Cash Out/Quit button
|
||||
|
||||
main_button_size = 0.8, -- X/Y size of Lines/Bet buttons; X*2 x Y for Spin and Cash Out
|
||||
main_button_spacing = 0.9, -- X/Y Spacing between Lines/Bet buttons, and between Spin and
|
||||
-- Cash Out buttons
|
||||
|
||||
screen_posx = 0.125, -- X/Y position of top-left corner of lower screen (i.e. (0,0))
|
||||
screen_posy = 11.094,
|
||||
|
||||
screen_line_height = 0.875, -- Height of line 1, and 2 in 2-line mode. In 3-line mode, line 2
|
||||
-- hight will be 2/3 of this, and line 3 height will be 1/3 of it.
|
||||
|
||||
label_medium_sizex = 1.125, -- X size of "Bal:", "Bet:", "Win:".
|
||||
line_win_label_sizex = 2.0, -- X size of "Line Win" label
|
||||
scatter_win_label_sizex = 3.0, -- X size of "Scatter Win:" label
|
||||
bonus_win_label_sizex = 2.75, -- X size of "Bonus Win:" label
|
||||
|
||||
digit_glyph_sizex = 0.75, -- Nominal X size of digits, before scaling down as noted below
|
||||
|
||||
cash_slot_sizex = 5.0, -- X/Y size and position of the cash slot
|
||||
cash_slot_sizey = 0.8125,
|
||||
cash_slot_posx = 9.5781,
|
||||
cash_slot_posy = 10.0938,
|
||||
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)
|
||||
}
|
||||
})
|
||||
|
||||
--[[
|
||||
|
||||
NOTES:
|
||||
|
||||
Geometry:
|
||||
---------
|
||||
|
||||
"IU" = the size of an item in inventory units. For most things, scaling is
|
||||
done such that 64 pixels in the image fits exactly 1 IU, though 1 IU in the
|
||||
formspec doesn't necessarily correspond with any specific number of screen
|
||||
pixels (but that's not important here).
|
||||
|
||||
Minetest normally uses exact values for sizes, but due to legacy screwiness in
|
||||
how formspecs are rendered, positioning is done at a scale of about 1.2422:1
|
||||
in the horizontal direction, and 1.1538:1 in the vertical direction, at least
|
||||
for most stuff, and some stuff isn't exact-size either.
|
||||
|
||||
Furthermore, Minetest doesn't treat the upper-left corner of a formspec as
|
||||
the (0,0) origin, but rather, somewhat below and to the right of that spot
|
||||
(officially it's off by (0.5, 0.5) IU, but in reality, the offset is closer to
|
||||
half of that).
|
||||
|
||||
A 1x1 IU label/graphic that should be displayed at position (2,2) will end up
|
||||
being 1x1 in size as intended, but positioned at about (2.484,2.308) plus the
|
||||
origin point.
|
||||
|
||||
The Minislots display engine will position the imagery to such that there's a
|
||||
thin shaded border around the machine's graphics, and it will correct for the
|
||||
above-mentioned legacy scaling and positioning where it can.
|
||||
|
||||
The upper overlay, reel underlay, and line win overlays are 939x704 px --> 14.6667 x 11 IU
|
||||
The lower overlay image is 939x128 px --> 13 x 2 IU
|
||||
A single reel image is 128x576 px --> 2 x 9 IU
|
||||
|
||||
A digit glyph is 48x80 px, or 0.75 IU, but will be displayed at 75%, 45% or 40%
|
||||
of that IU size, depending on line height (to fit in large values) --> 0.563, 0.338, or 0.30 IU
|
||||
The "Bal", "Bet" and "Win" labels are 128x80 px, but should be narrower --> 1.125 x line-height IU
|
||||
The "Line Win" label is 256x80 px, should be displayed at 50% width --> 3.0 x screen_line_height_3 IU
|
||||
A colon or parenthesis is 24x80 pixels, displayed at 50% digit width --> 0.188 x screen_line_height_3 IU
|
||||
The "Scatter Win" is 384x80 px, should be displayed at 50% width --> 3.0 x screen_line_height_3 IU
|
||||
The "Bonus Win" label is 352x80 px, should be displayed at 50% width --> 2.75 x screen_line_height 3 IU
|
||||
The cash slot is 320x128 px and is normally shown at full-size --> 5.0 x 2.0 IU
|
||||
|
||||
Note that the cash slot can be almost any size/shape and can be placed
|
||||
anywhere, so that you could, for example, draw it to look like a coin slot,
|
||||
with all the chrome and corrugated edging and such, and position it at the top
|
||||
of the form, to mimic turn-of-the-century-styled machines. That said, bear in
|
||||
mind that when you click on it, you're taken to the "cash intake" screen,
|
||||
where the cash slot image is also shown, at the same size, and in there, it
|
||||
has to fit in between the single intake slot and the inventory slots.
|
||||
|
||||
The "screen" in the lower overlay is 384x112 px, or 6.0 x 0.875 IU.
|
||||
|
||||
The currency label is 96x80 px, and if printed, is positioned 25% of a digit's
|
||||
width after the end of the amount. It is scaled to the 1.333 times a digit's
|
||||
width to keep it's relative scale correct.
|
||||
|
||||
The "Win" label, if printed, will appear half a digit glyph's width after the
|
||||
Bet amount's currency label.
|
||||
|
||||
Balance, Bet, Win, Scatter Win, and Bonus Win amounts are printed immediately
|
||||
next to their labels. Be sure you leave a little space on the right in the
|
||||
images, as needed.
|
||||
|
||||
The scatter and bonus highlight boxes are displayed at 1.333 times the width
|
||||
of the reel, and positioned 1/6 reel width above and left, thus centering it
|
||||
over the symbol. This is to allow some kind of "glow" or other effect to
|
||||
appear just outside of the highlight box itself. The nominal size of the
|
||||
image is 171 px square, but because Minetest does not support full alpha on
|
||||
overlaid images in a formspec, you'll have to fake it by dithering the alpha.
|
||||
Draw this image large enough and the downscaling will blur the dithering,
|
||||
making it look like real alpha, mostly. That is why the images in this
|
||||
machine are drawn at 512 px square.
|
||||
|
||||
The various labels, parenthesis, and colon were drawn with The GIMP using the
|
||||
"Liberation Sans Narrow Bold Condensed" font, 85 point height, with the inter-
|
||||
character spacing set as small as the wording would allow (usually -4.0).
|
||||
Anti-aliasing enabled, "Full" hinting. Text positioned two pixels from the
|
||||
left, baseline at 60 (so the lower left corner of the "B" in "Bal:" is at
|
||||
(2,60) according to GIMP).
|
||||
|
||||
The numerals use "Century Schoolbook L Bold" font, same size, settings, etc.
|
||||
Same vertical positioning, and horizontally-centered`.
|
||||
|
||||
Reels always show three symbols' of height, not counting the overlap at the
|
||||
top and bottom to allow for symbols to be positioned "off-screen".
|
||||
|
||||
|
||||
How wild cards work:
|
||||
--------------------
|
||||
|
||||
[WILD!] is basically "don't care", as far as the engine's concerned, and will
|
||||
match the highest entry in the table that can theoretically form a match,
|
||||
regardless of how many symbols actually match.
|
||||
|
||||
For example, suppose you get a normal-looking spin showing
|
||||
[WILD!][77][77][lemon][cherry] on a line. That won't match anything, because
|
||||
there's no match line that only needs one symbol, nor any match lines that
|
||||
allow for a match consisting of only three "7" symbols of any kind.
|
||||
|
||||
On the other hand, suppose you get [WILD!][WILD!][WILD!][2bar][cherry]. Sounds
|
||||
like it should match the {"2bar", "2bar", "2bar", "2bar", nil} entry, but
|
||||
it'll pick the {"3bar", "3bar", "3bar", nil, nil} entry, because that one also
|
||||
matches, but it's worth more.
|
||||
|
||||
This extends to as many reels as the machine has, and as many [WILD!]'s as
|
||||
there are in a pay line, regardless of where in the line they appear (so long
|
||||
as the symbols that precede and follow the [WILD!]'s can form valid matches,
|
||||
of course).
|
||||
|
||||
A pay line consisting of all [WILD!]'s is equivalent to whatever the highest
|
||||
winning combination is in your machine (five [JACKPOT]'s here).
|
||||
|
||||
]]--
|
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 877 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 891 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 750 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 773 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 616 B |
After Width: | Height: | Size: 122 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 579 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 996 B |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1019 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 8.4 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 352 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 299 KiB |
After Width: | Height: | Size: 272 KiB |
After Width: | Height: | Size: 281 KiB |
After Width: | Height: | Size: 207 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 6.1 KiB |