Gambler skills for VX Ace (custom damage formulae)

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 55
RMRK Junior
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.

Code: [Select]
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.
« Last Edit: April 15, 2015, 10:12:11 PM by Trihan »
It's more like a big ball of wibbly wobbly...timey wimey...stuff.