Inspired by fomar's old topic about getting the most out of the custom damage formula box in VX Ace I decided to make a couple of full-fledged gambling skills. These would be perfect for a Setzer-like character. If there are any other gambling-based skills anyone wants, let me know and I'll try to make 'em.
class Game_Battler < Game_BattlerBase
def custom_formula_dice(a,b)
c=1+rand(6)
d=1+rand(6)
if c==1 and d==1
$game_message.add(sprintf("%s rolls snake eyes!", a.name))
elsif c==d
$game_message.add(sprintf("%s rolls double %d!", a.name, c))
else
$game_message.add(sprintf("%s rolls %d and %d!", a.name, c, d))
end
BattleManager.wait_for_message
if c==1 and d==1
10000
elsif c==d
c*400
else
(c+d)*100
end
end
def custom_formula_gamble(a,b)
c=1+rand(6)
d=1+rand(6)
if c==1 and d==1
$game_message.add(sprintf("%s rolls snake eyes!", a.name))
elsif c==d
$game_message.add(sprintf("%s rolls double %d!", a.name, c))
else
$game_message.add(sprintf("%s rolls %d and %d!", a.name, c, d))
end
$game_message.add(sprintf("%s hands the dice to the enemy.", a.name))
BattleManager.wait_for_message
e=1+rand(6)
f=1+rand(6)
if e==1 and f==1
$game_message.add(sprintf("%s rolls snake eyes!", b.name))
elsif e==f
$game_message.add(sprintf("%s rolls double %d!", b.name, e))
else
$game_message.add(sprintf("%s rolls %d and %d!", b.name, e, f))
end
BattleManager.wait_for_message
$game_message.add(sprintf("%s's roll: %d", a.name, c+d))
$game_message.add(sprintf("%s's roll: %d", b.name, e+f))
BattleManager.wait_for_message
if (c+d) > (e+f)
if c==1 and d==1
100000
elsif c==d
c*4000
else
(c+d)*1000
end
else
$game_message.add(sprintf("%s's gamble backfired; %d damage is redirected!", a.name, (c+d)*1000))
a.perform_damage_effect
a.result.hp_damage = (c+d)*1000
a.execute_damage(a)
BattleManager.wait_for_message
0
end
end
end
In the formula box for the respective skills, just put a.custom_formula_dice(a,b) or a.custom_formula_gamble(a,b)
They work thusly: Roll the Dice (the first skill) has the character roll 2 dice. Normally they deal 100 damage * the roll, but if they get double 1 (snake eyes) it deals 10,000 damage instead, and if they get doubles it does 400 * roll.
Risky Gamble also rolls 2 dice, but also lets the enemy roll. If your roll is higher it does 1000 damage * roll, 100,000 on snake eyes and 4000 * roll on doubles, but if your roll is lower it backfires and the user takes 1000 damage * roll instead.