Add 2 new vouchers
BIN
assets/1x/voucher.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/1x/voucher.png.kra
Normal file
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 242 KiB After Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
BIN
assets/2x/voucher.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
|
@ -495,6 +495,22 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Voucher = {
|
||||||
|
v_Roland_ceres = {
|
||||||
|
name = "Ceres",
|
||||||
|
text = {
|
||||||
|
"Level up {C:attention}Flush House",
|
||||||
|
"when it is played",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
v_Roland_neptune = {
|
||||||
|
name = "Neptune",
|
||||||
|
text = {
|
||||||
|
"Level up {C:attention}Straight Flush",
|
||||||
|
"when it is played",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
misc = {
|
misc = {
|
||||||
challenge_names = {
|
challenge_names = {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"id": "Roland",
|
"id": "Roland",
|
||||||
"name": "Roland",
|
"name": "Roland",
|
||||||
"prefix": "Roland",
|
"prefix": "Roland",
|
||||||
"version": "2.9.14",
|
"version": "2.9.15",
|
||||||
"badge_colour": "8BE9FD",
|
"badge_colour": "8BE9FD",
|
||||||
"display_name": "Roland",
|
"display_name": "Roland",
|
||||||
"main_file": "src/main.lua",
|
"main_file": "src/main.lua",
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,7 @@ SMODS.Atlas {
|
||||||
atlas_table = "ANIMATION_ATLAS",
|
atlas_table = "ANIMATION_ATLAS",
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Sound {
|
SMODS.Sound {key = "kick", path = "kick.ogg"}
|
||||||
key = "kick",
|
|
||||||
path = "kick.ogg",
|
|
||||||
}
|
|
||||||
|
|
||||||
local function common_rank()
|
local function common_rank()
|
||||||
local tally, to_name = {}, {}
|
local tally, to_name = {}, {}
|
||||||
|
|
@ -353,6 +350,18 @@ function SMODS.current_mod:calculate(context)
|
||||||
local _ = not str and type(G.calc[1]) == "function" and G.calc[1](f(context):keys():string())
|
local _ = not str and type(G.calc[1]) == "function" and G.calc[1](f(context):keys():string())
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local _ = context.before and
|
||||||
|
f {"v_Roland_ceres", "v_Roland_neptune"}
|
||||||
|
:where(f.index_into(G.GAME.used_vouchers))
|
||||||
|
:map(f.index_into(G.P_CENTERS))
|
||||||
|
:where("config.hand_type", context.scoring_name)
|
||||||
|
:any() and
|
||||||
|
SMODS.calculate_effect {
|
||||||
|
level_up = true,
|
||||||
|
message = localize "k_level_up_ex",
|
||||||
|
card = G.play.cards[math.ceil(#G.play.cards / 2)] or G.deck.cards[#G.deck.cards] or {},
|
||||||
|
}
|
||||||
|
|
||||||
local improbable, orig = G.GAME.modifiers.Roland_improbable, G.GAME.probabilities
|
local improbable, orig = G.GAME.modifiers.Roland_improbable, G.GAME.probabilities
|
||||||
|
|
||||||
local _ = context.end_of_round and
|
local _ = context.end_of_round and
|
||||||
|
|
|
||||||
|
|
@ -9,81 +9,91 @@ local f = {}
|
||||||
|
|
||||||
if not f then
|
if not f then
|
||||||
---@generic I, O
|
---@generic I, O
|
||||||
---@param first fun(v: I): O
|
---@param first string|fun(v: I): O
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(first)
|
function f.chain(first)
|
||||||
error {first}
|
error {first}
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T, O
|
---@generic I, T, O
|
||||||
---@param first fun(v: I): T
|
---@param first string|fun(v: I): T
|
||||||
---@param second fun(v: T): O
|
---@param second string|fun(v: T): O
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(first, second)
|
function f.chain(first, second)
|
||||||
error {first, second}
|
error {first, second}
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T1, T2, O
|
---@generic I, T1, T2, O
|
||||||
---@param first fun(v: I): T1
|
---@param first string|fun(v: I): T1
|
||||||
---@param second fun(v: T1): T2
|
---@param second string|fun(v: T1): T2
|
||||||
---@param third fun(v: T2): O
|
---@param third string|fun(v: T2): O
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(first, second, third)
|
function f.chain(first, second, third)
|
||||||
error {first, second, third}
|
error {first, second, third}
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T1, T2, T3, O
|
---@generic I, T1, T2, T3, O
|
||||||
---@param first fun(v: I): T1
|
---@param first string|fun(v: I): T1
|
||||||
---@param second fun(v: T1): T2
|
---@param second string|fun(v: T1): T2
|
||||||
---@param third fun(v: T2): T3
|
---@param third string|fun(v: T2): T3
|
||||||
---@param fourth fun(v: T3): O
|
---@param fourth string|fun(v: T3): O
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(first, second, third, fourth)
|
function f.chain(first, second, third, fourth)
|
||||||
error {first, second, third, fourth}
|
error {first, second, third, fourth}
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T1, T2, T3, T4, O
|
---@generic I, T1, T2, T3, T4, O
|
||||||
---@param first fun(v: I): T1
|
---@param first string|fun(v: I): T1
|
||||||
---@param second fun(v: T1): T2
|
---@param second string|fun(v: T1): T2
|
||||||
---@param third fun(v: T2): T3
|
---@param third string|fun(v: T2): T3
|
||||||
---@param fourth fun(v: T3): T4
|
---@param fourth string|fun(v: T3): T4
|
||||||
---@param fifth fun(v: T4): O
|
---@param fifth string|fun(v: T4): O
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(first, second, third, fourth, fifth)
|
function f.chain(first, second, third, fourth, fifth)
|
||||||
error {first, second, third, fourth, fifth}
|
error {first, second, third, fourth, fifth}
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, O
|
---@generic I, O
|
||||||
---@param all {[1]: (fun(v: I): O)}
|
---@param all { [1]: (string|fun(v: I): O) }
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(all)
|
function f.chain(all)
|
||||||
error(all)
|
error(all)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T, O
|
---@generic I, T, O
|
||||||
---@param all {[1]: (fun(v: I): T), [2]: (fun(v: T): O)}
|
---@param all { [1]: (string|fun(v: I): T), [2]: (string|fun(v: T): O) }
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(all)
|
function f.chain(all)
|
||||||
error(all)
|
error(all)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T1, T2, O
|
---@generic I, T1, T2, O
|
||||||
---@param all {[1]: (fun(v: I): T1), [2]: (fun(v: T1): T2), [3]: (fun(v: T2): O)}
|
---@param all { [1]: (string|fun(v: I): T1), [2]: (string|fun(v: T1): T2), [3]: (string|fun(v: T2): O) }
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(all)
|
function f.chain(all)
|
||||||
error(all)
|
error(all)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T1, T2, T3, O
|
---@generic I, T1, T2, T3, O
|
||||||
---@param all {[1]: (fun(v: I): T1), [2]: (fun(v: T1): T2), [3]: (fun(v: T2): T3), [4]: (fun(v: T3): O)}
|
---@param all { [1]: (string|fun(v: I): T1), [2]: (string|fun(v: T1): T2), [3]: (string|fun(v: T2): T3), [4]: (string|fun(v: T3): O) }
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(all)
|
function f.chain(all)
|
||||||
error(all)
|
error(all)
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic I, T1, T2, T3, T4, O
|
---@generic I, T1, T2, T3, T4, O
|
||||||
---@param all {[1]: (fun(v: I): T1), [2]: (fun(v: T1): T2), [3]: (fun(v: T2): T3), [4]: (fun(v: T3): T4), [4]: (fun(v: T4): O)}
|
---@param all { [1]: (string|fun(v: I): T1), [2]: (string|fun(v: T1): T2), [3]: (string|fun(v: T2): T3), [4]: (string|fun(v: T3): T4), [4]: (string|fun(v: T4): O) }
|
||||||
---@return fun(v: I): O
|
---@return fun(v: I): O
|
||||||
|
---@nodiscard
|
||||||
function f.chain(all)
|
function f.chain(all)
|
||||||
error(all)
|
error(all)
|
||||||
end
|
end
|
||||||
|
|
@ -104,7 +114,7 @@ local none
|
||||||
---@return T
|
---@return T
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
local function autofunc(func)
|
local function autofunc(func)
|
||||||
return type(func) == "string" and f.index(func) or func or f.id
|
return type(func) == "string" and f.indices(func) or func or f.id
|
||||||
end
|
end
|
||||||
|
|
||||||
---@generic K, V
|
---@generic K, V
|
||||||
|
|
@ -157,6 +167,7 @@ end
|
||||||
---@generic T
|
---@generic T
|
||||||
---@param value T
|
---@param value T
|
||||||
---@return fun(T): boolean
|
---@return fun(T): boolean
|
||||||
|
---@nodiscard
|
||||||
function f.eq(value)
|
function f.eq(value)
|
||||||
return function(v)
|
return function(v)
|
||||||
return value == v
|
return value == v
|
||||||
|
|
@ -166,6 +177,7 @@ end
|
||||||
---@generic T
|
---@generic T
|
||||||
---@param value T
|
---@param value T
|
||||||
---@return fun(T): boolean
|
---@return fun(T): boolean
|
||||||
|
---@nodiscard
|
||||||
function f.nq(value)
|
function f.nq(value)
|
||||||
return function(v)
|
return function(v)
|
||||||
return value ~= v
|
return value ~= v
|
||||||
|
|
@ -232,11 +244,15 @@ f[true and "chain"] = function(...)
|
||||||
for _, v in ipairs(...) do
|
for _, v in ipairs(...) do
|
||||||
if type(v) == "table" then
|
if type(v) == "table" then
|
||||||
for _, vv in ipairs(v) do
|
for _, vv in ipairs(v) do
|
||||||
|
vv = autofunc(vv)
|
||||||
|
|
||||||
ret = ret and function(...)
|
ret = ret and function(...)
|
||||||
return vv(ret(...))
|
return vv(ret(...))
|
||||||
end or vv
|
end or vv
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
v = autofunc(v)
|
||||||
|
|
||||||
ret = ret and function(...)
|
ret = ret and function(...)
|
||||||
return v(ret(...))
|
return v(ret(...))
|
||||||
end or v
|
end or v
|
||||||
|
|
@ -275,6 +291,7 @@ function f.new(fnext)
|
||||||
next = fnext or f.noop,
|
next = fnext or f.noop,
|
||||||
noop = f.noop,
|
noop = f.noop,
|
||||||
nq = f.nq,
|
nq = f.nq,
|
||||||
|
peek = f.peek,
|
||||||
pun = f.pun,
|
pun = f.pun,
|
||||||
skip = f.skip,
|
skip = f.skip,
|
||||||
slice = f.slice,
|
slice = f.slice,
|
||||||
|
|
@ -382,12 +399,30 @@ function f:concat(...)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@generic K, V
|
||||||
|
---@param self F|{ [K]: V }
|
||||||
|
---@param func fun(v: V, k: K): any
|
||||||
|
---@return F|{ [K]: V }
|
||||||
|
---@nodiscard
|
||||||
|
function f:peek(func)
|
||||||
|
func = autofunc(func)
|
||||||
|
|
||||||
|
return f.new(function()
|
||||||
|
local k, v = self:next()
|
||||||
|
|
||||||
|
if k ~= nil then
|
||||||
|
func(v, k)
|
||||||
|
return k, v
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
---@generic K, V, U
|
---@generic K, V, U
|
||||||
---@param self F|{ [K]: V }
|
---@param self F|{ [K]: V }
|
||||||
---@param func F|fun(v: V, k: K): U
|
---@param func fun(v: V, k: K): U
|
||||||
---@return F|{ [K]: U }
|
---@return F|{ [K]: U }
|
||||||
---@nodiscard
|
|
||||||
---@overload fun(self: F|{ [K]: V }, func: string): F|{ [K]: U }
|
---@overload fun(self: F|{ [K]: V }, func: string): F|{ [K]: U }
|
||||||
|
---@nodiscard
|
||||||
function f:map(func)
|
function f:map(func)
|
||||||
func = autofunc(func)
|
func = autofunc(func)
|
||||||
|
|
||||||
|
|
@ -402,61 +437,11 @@ end
|
||||||
|
|
||||||
---@generic K, V, U
|
---@generic K, V, U
|
||||||
---@param self F|{ [K]: V }
|
---@param self F|{ [K]: V }
|
||||||
---@param func F|fun(v: V, k: K): { [any]: U }
|
---@param func fun(v: V, k: K): { [any]: U }
|
||||||
---@param fpairs? fun(t: table<K, V>): (fun(table: table<K, V>, index?: K): K, V)
|
---@param fpairs? fun(t: table<K, V>): (fun(table: table<K, V>, index?: K): K, V)
|
||||||
---@return F|{ [K]: U }
|
---@return F|{ [K]: U }
|
||||||
---@nodiscard
|
|
||||||
---@overload fun(self: F|{ [K]: V }, func: string, fpairs?: fun(t: table<K, V>): (fun(table: table<K, V>, index?: K): K, V)): F|{ [K]: U }
|
---@overload fun(self: F|{ [K]: V }, func: string, fpairs?: fun(t: table<K, V>): (fun(table: table<K, V>, index?: K): K, V)): F|{ [K]: U }
|
||||||
function f:flatmap(func, fpairs)
|
|
||||||
-- local i = 0
|
|
||||||
local vt, vk, vv, vp
|
|
||||||
func = autofunc(func)
|
|
||||||
|
|
||||||
return f.new(function()
|
|
||||||
if vk then
|
|
||||||
vk, vv = vp(vt, vk)
|
|
||||||
|
|
||||||
if vk ~= nil then
|
|
||||||
-- i = i + 1
|
|
||||||
-- return i, vv
|
|
||||||
return vk, vv
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
while true do
|
|
||||||
local k, v = self:next()
|
|
||||||
|
|
||||||
if k == nil then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
v = func(v, k)
|
|
||||||
|
|
||||||
if type(v) ~= "table" then
|
|
||||||
-- i = i + 1
|
|
||||||
-- return i, v
|
|
||||||
return k, v
|
|
||||||
end
|
|
||||||
|
|
||||||
vp, vt, vk = autopairs(v, fpairs)
|
|
||||||
vk, vv = vp(vt, vk)
|
|
||||||
|
|
||||||
if vk ~= nil then
|
|
||||||
-- i = i + 1
|
|
||||||
-- return i, vv
|
|
||||||
return vk, vv
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
---@generic K, V, U
|
|
||||||
---@param self F|{ [K]: V }
|
|
||||||
---@param func F|fun(v: V, k: K): { [any]: U }
|
|
||||||
---@param fpairs? fun(t: table<K, V>): (fun(table: table<K, V>, index?: K): K, V)
|
|
||||||
---@return F|{ [K]: U }
|
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
---@overload fun(self: F|{ [K]: V }, func: string, fpairs?: fun(t: table<K, V>): (fun(table: table<K, V>, index?: K): K, V)): F|{ [K]: U }
|
|
||||||
function f:flatmap(func, fpairs)
|
function f:flatmap(func, fpairs)
|
||||||
-- local i = 0
|
-- local i = 0
|
||||||
local vt, vk, vv, vp
|
local vt, vk, vv, vp
|
||||||
|
|
@ -502,7 +487,7 @@ end
|
||||||
|
|
||||||
---@generic K, V
|
---@generic K, V
|
||||||
---@param self F|{ [K]: V }
|
---@param self F|{ [K]: V }
|
||||||
---@param func F|fun(v: V, k: K): boolean
|
---@param func fun(v: V, k: K): boolean
|
||||||
---@param is? any
|
---@param is? any
|
||||||
---@return F|{ [K]: V }
|
---@return F|{ [K]: V }
|
||||||
---@nodiscard
|
---@nodiscard
|
||||||
|
|
@ -665,10 +650,10 @@ end
|
||||||
|
|
||||||
---@generic K, V
|
---@generic K, V
|
||||||
---@param self F|{ [K]: V }
|
---@param self F|{ [K]: V }
|
||||||
---@param func F|fun(v: V, k: K): any
|
---@param func fun(v: V, k: K): any
|
||||||
---@return boolean|V
|
---@return boolean|V
|
||||||
---@nodiscard
|
|
||||||
---@overload fun(self: F|{ [K]: V }, func: string?): boolean|V
|
---@overload fun(self: F|{ [K]: V }, func: string?): boolean|V
|
||||||
|
---@nodiscard
|
||||||
function f:any(func)
|
function f:any(func)
|
||||||
func = autofunc(func)
|
func = autofunc(func)
|
||||||
|
|
||||||
|
|
@ -683,10 +668,10 @@ end
|
||||||
|
|
||||||
---@generic K, V
|
---@generic K, V
|
||||||
---@param self F|{ [K]: V }
|
---@param self F|{ [K]: V }
|
||||||
---@param func F|fun(v: V, k: K): any
|
---@param func fun(v: V, k: K): any
|
||||||
---@return boolean|V
|
---@return boolean|V
|
||||||
---@nodiscard
|
|
||||||
---@overload fun(self: F|{ [K]: V }, func: string?): boolean|V
|
---@overload fun(self: F|{ [K]: V }, func: string?): boolean|V
|
||||||
|
---@nodiscard
|
||||||
function f:all(func)
|
function f:all(func)
|
||||||
func = autofunc(func)
|
func = autofunc(func)
|
||||||
|
|
||||||
|
|
@ -701,10 +686,10 @@ end
|
||||||
|
|
||||||
---@generic K, V
|
---@generic K, V
|
||||||
---@param self F|{ [K]: V }
|
---@param self F|{ [K]: V }
|
||||||
---@param func F|fun(v: V, k: K): any
|
---@param func fun(v: V, k: K): any
|
||||||
---@return integer
|
---@return integer
|
||||||
---@nodiscard
|
|
||||||
---@overload fun(self: F|{ [K]: V }, func: string): integer
|
---@overload fun(self: F|{ [K]: V }, func: string): integer
|
||||||
|
---@nodiscard
|
||||||
function f:count(func)
|
function f:count(func)
|
||||||
local ret = 0
|
local ret = 0
|
||||||
func = autofunc(func)
|
func = autofunc(func)
|
||||||
|
|
|
||||||
20
src/main.lua
|
|
@ -58,10 +58,22 @@ q {
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
f {"challenge", "spectral", "edition", "tweaks", "blind", "charm", "joker", "tarot", "back", "seal", "tag"}
|
f {
|
||||||
:each(function(v)
|
"challenge",
|
||||||
assert(SMODS.load_file("src/" .. v .. ".lua"))(qol)
|
"spectral",
|
||||||
end)
|
"edition",
|
||||||
|
"tweaks",
|
||||||
|
"blind",
|
||||||
|
"charm",
|
||||||
|
"joker",
|
||||||
|
"tarot",
|
||||||
|
"back",
|
||||||
|
"seal",
|
||||||
|
"tag",
|
||||||
|
"voucher",
|
||||||
|
}:each(function(v)
|
||||||
|
assert(SMODS.load_file("src/" .. v .. ".lua"))(qol)
|
||||||
|
end)
|
||||||
|
|
||||||
if Balatest then
|
if Balatest then
|
||||||
f {"joker", "blind", "spectral"}:each(function(v)
|
f {"joker", "blind", "spectral"}:each(function(v)
|
||||||
|
|
|
||||||
38
src/voucher.lua
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
local voucher = (function()
|
||||||
|
local x = 0
|
||||||
|
|
||||||
|
---@param tbl SMODS.Voucher|{attributes: Attributes[]}
|
||||||
|
---@return SMODS.Voucher
|
||||||
|
return function(tbl)
|
||||||
|
tbl.pos = {x = x, y = 0}
|
||||||
|
tbl.atlas = "voucher"
|
||||||
|
tbl.cost = 10
|
||||||
|
x = x + 1
|
||||||
|
return SMODS.Voucher(tbl)
|
||||||
|
end
|
||||||
|
end)()
|
||||||
|
|
||||||
|
SMODS.Atlas {
|
||||||
|
px = 71,
|
||||||
|
py = 95,
|
||||||
|
key = "voucher",
|
||||||
|
path = "voucher.png",
|
||||||
|
}
|
||||||
|
|
||||||
|
voucher {
|
||||||
|
key = "ceres",
|
||||||
|
pronouns = "it_its",
|
||||||
|
config = {hand_type = "Flush House"},
|
||||||
|
attributes = {"planet", "passive", "hand_type", "space"},
|
||||||
|
in_pool = function(self)
|
||||||
|
return G.GAME.hands[self.config.hand_type].visible
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
voucher {
|
||||||
|
key = "neptune",
|
||||||
|
pronouns = "it_its",
|
||||||
|
requires = {"v_Roland_ceres"},
|
||||||
|
config = {hand_type = "Straight Flush"},
|
||||||
|
attributes = {"planet", "passive", "hand_type", "space"},
|
||||||
|
}
|
||||||