Advertisement
DrDhoom

Recard

Aug 20th, 2012
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 61.28 KB | None | 0 0
  1. #-------------------------------------------------------------------------------
  2. # ReCard Minigame
  3. # Script by: DrDhoom
  4. # Version: 1.1
  5. #-------------------------------------------------------------------------------
  6. # Achivements:
  7. # 1. First win
  8. # 2. Get Void!
  9. # 3. Get 5 card with same element!
  10. # 4. 5 win streak
  11. # 5. 10 win streak
  12. # 6. 15 win streak
  13. # 7. 1000 score!
  14. # 8. 5000 score!
  15. # 9. 10000 score!
  16. # 10. Win with maximum bet!
  17. #-------------------------------------------------------------------------------
  18. # Example call scene:
  19. # $scene = Scene_ReCard.new(player id, enemy id, background filename, BGM filename,
  20. #                           mode, debug)
  21. # $scene = Scene_ReCard.new(4,7,"re_background",'Battle7',0,false)
  22. #-------------------------------------------------------------------------------
  23. module Dhoom
  24.   module ReCard
  25.     Card = ['cf1', 'cf2', 'cf3', 'cf4', 'cf5', 'cw1', 'cw2', 'cw3', 'cw4', 'cw5',
  26.             'ca1', 'ca2', 'ca3', 'ca4', 'ca5', 'ce1', 'ce2', 'ce3', 'ce4', 'ce5',
  27.             'cvoid']
  28.     Card_SE = 'Book'
  29.     Day_SE = ['Fire3','Water2','Wind3','Earth4']
  30.     Bet_Text = 'The Enemy bet for '
  31.     Bet_Option = ['Bet Higher!','Okay. . .','Give Up']
  32.     Finish_Option = ['Play Again','Exit']
  33.     Mode_Option = ['Normal Mode', 'Sprint Mode']
  34.     Sprint_Mode_Goal = [50,100,200,400,800,1000]
  35.     Goal_Help_Text = "How much goal score?"
  36.     Goal_Score_Text = "Goal Score"
  37.     Goal_Score_Text_Font = "Impact"
  38.     Sprint_Combo_Font = "Impact"
  39.     Sprint_Combo_Color = Color.new(255,200,15)
  40.     Sprint_Combo_Size = 56
  41.     Crash_SE = 'Shot3'
  42.     Win_ME = 'Victory1'
  43.     Lose_ME = 'Gameover'
  44.     Achivement_Text_Font = 'Freestyle Script'
  45.     Achivement_Text_Size = 56
  46.     Achivement_Text_Color = Color.new(231,155,53)
  47.     Achivement_Get_Font = 'Arial'
  48.     Achivement_Get_Size = 36
  49.     Achivement_Get_Color = Color.new(255,234,0)
  50.     Achivement_Get = []
  51.     Achivement_Get[1] = 'First Win!'
  52.     Achivement_Get[2] = 'Get Void!'
  53.     Achivement_Get[3] = 'Get 5 card with same element!'
  54.     Achivement_Get[4] = '5 win streak!'
  55.     Achivement_Get[5] = '10 win streak!'
  56.     Achivement_Get[6] = '15 win streak!'
  57.     Achivement_Get[7] = '1000 score!'
  58.     Achivement_Get[8] = '5000 score!'
  59.     Achivement_Get[9] = '10000 score!'
  60.     Achivement_Get[10] = 'Win with maximum bet!'
  61.     Achivement_Text_Change_Delay = 60
  62.     Var_Player_Score = 1
  63.     Var_Enemy_Score = 2
  64.   end
  65. end
  66.  
  67. module Cache
  68.   def self.recard(filename)
  69.     load_bitmap("Graphics/ReCard/", filename)
  70.   end
  71. end
  72.  
  73. class Bitmap
  74.   alias wora_outlinetxt_bmp_draw_text draw_text unless $@
  75.   def draw_text(*args)
  76.     case args.size
  77.     when (2..3) # rect, str, [align]
  78.       x, y, w, h, str, align =
  79.       args[0].x, args[0].y, args[0].width, args[0].height, args[1],
  80.       args[2].nil? ? 0 : args[2]
  81.     else # x, y, w, h, str, [align]
  82.       x, y, w, h, str, align =
  83.       args[0], args[1], args[2], args[3], args[4],
  84.       args[5].nil? ? 0 : args[5]
  85.     end
  86.     if $font_outline
  87.       ori_color = self.font.color.clone
  88.       self.font.color = $font_outline_color # Outline Color #
  89.       wora_outlinetxt_bmp_draw_text(x-2, y, w, h, str, align)
  90.       wora_outlinetxt_bmp_draw_text(x+2, y, w, h, str, align)
  91.       wora_outlinetxt_bmp_draw_text(x, y-2, w, h, str, align)
  92.       wora_outlinetxt_bmp_draw_text(x, y+2, w, h, str, align)
  93.       self.font.color = ori_color
  94.     end
  95.     wora_outlinetxt_bmp_draw_text(x, y, w, h, str, align)
  96.   end
  97. end
  98.  
  99. #-------------------------------------------------------------------------------
  100. # * Window Base
  101. #-------------------------------------------------------------------------------
  102.  
  103. class Window_Base < Window
  104.  
  105.   alias recard_win_base_dispose dispose
  106.  
  107.   def dispose
  108.     return if self.disposed?
  109.     recard_win_base_dispose
  110.   end
  111. end
  112.  
  113. #-------------------------------------------------------------------------------
  114. # * Window Report
  115. #-------------------------------------------------------------------------------
  116.  
  117. class Window_Report < Window_Base
  118.   def initialize(match, total_p_win, total_e_win, better, total_bet, winner, player_deck_ele, enemy_deck_ele, total_match, wpoint, xpoint)
  119.     super(112,40,416,400)
  120.     @match = match
  121.     @total_p_win = total_p_win
  122.     @total_e_win = total_e_win
  123.     @better = better
  124.     @total_bet = total_bet
  125.     @winner = winner
  126.     @player_deck_ele = player_deck_ele
  127.     @enemy_deck_ele = enemy_deck_ele
  128.     @total_match = total_match
  129.     @wpoint = wpoint
  130.     @xpoint = xpoint
  131.     refresh
  132.   end
  133.  
  134.   def recreate(match, total_p_win, total_e_win, better, total_bet, winner, player_deck_ele, enemy_deck_ele, total_match, wpoint, xpoint)
  135.     @match = match
  136.     @total_p_win = total_p_win
  137.     @total_e_win = total_e_win
  138.     @better = better
  139.     @total_bet = total_bet
  140.     @winner = winner
  141.     @player_deck_ele = player_deck_ele
  142.     @enemy_deck_ele = enemy_deck_ele
  143.     @total_match = total_match
  144.     @wpoint = wpoint
  145.     @xpoint = xpoint
  146.     refresh
  147.   end
  148.  
  149.   def refresh
  150.     self.contents.clear
  151.     self.contents.draw_text(0,0,self.width-32,32,"Match Report",1)
  152.     self.contents.draw_text(0,24,self.width-32,32,"Match #"+@match.to_s,1)
  153.     self.contents.draw_text(0,48,self.width-32,32,"Winner : "+@winner,1)
  154.     self.contents.draw_text(0,72,self.width-32,32,"Better : "+@better)
  155.     self.contents.draw_text(0,72,self.width-32,32,"Total Bet : "+@total_bet.to_s,2)
  156.     self.contents.draw_text(0,96,self.width-32,32,"Player Deck :")
  157.     self.contents.draw_text(0,96,self.width-32,32,"Enemy Deck :",2)
  158.     for i in 0..4
  159.       i += 1
  160.       bitmap = Cache.recard("thedayof")
  161.       self.contents.blt(0,96+i*32,bitmap,Rect.new(0,32*i,96,32))
  162.       self.contents.blt(220,96+i*32,bitmap,Rect.new(0,32*i,96,32))
  163.       bitmap.dispose
  164.       if @player_deck_ele[i] != nil
  165.         self.contents.draw_text(96,96+i*32,self.width-32,32," : "+@player_deck_ele[i].to_s)
  166.       else
  167.         self.contents.draw_text(96,96+i*32,self.width-32,32," : 0")
  168.       end
  169.       if @enemy_deck_ele[i] != nil
  170.         self.contents.draw_text(316,96+i*32,self.width-32,32," : "+@enemy_deck_ele[i].to_s)
  171.       else
  172.         self.contents.draw_text(316,96+i*32,self.width-32,32," : 0")
  173.       end
  174.     end
  175.     self.contents.draw_text(0,284,self.width-32,32,"Total Win : "+@total_p_win.to_s)
  176.     self.contents.draw_text(0,284,self.width-32,32,"Total Win : "+@total_e_win.to_s,2)
  177.     if @wpoint != nil
  178.       self.contents.draw_text(0,308,self.width-32,32,"You Gained "+@wpoint.to_s+" Point!",1)
  179.     elsif @xpoint != nil
  180.       self.contents.draw_text(0,308,self.width-32,32,"You Gained "+@xpoint.to_s+" Point!",1)
  181.     end
  182.     if @match > 1
  183.       self.contents.draw_text(0,344,self.width-32,32,"<-- Back")
  184.     end
  185.     if @match < @total_match
  186.       self.contents.draw_text(0,344,self.width-32,32,"Next -->",2)
  187.     end
  188.   end
  189. end
  190.  
  191. #-------------------------------------------------------------------------------
  192. # * Scene ReCard
  193. #-------------------------------------------------------------------------------
  194.  
  195. class Scene_ReCard < Scene_Base
  196.  
  197.   include Dhoom::ReCard
  198.  
  199.   def initialize(player_id = 1, cpu_id = 1, bg_filename = "re_background",
  200.                  bgm_filename = 'Battle7', mode = 0, debug = false)
  201.     @enemy_id = cpu_id
  202.     @actor_id = player_id
  203.     @bg_filename = bg_filename
  204.     @bgm_filename = bgm_filename
  205.     @mode = mode if @mode.nil?
  206.     @debug = debug
  207.   end
  208.  
  209.   def start
  210.     super
  211.     init_value
  212.     play_bgm
  213.     create_graphic
  214.     randomized_deck
  215.     create_deck
  216.     create_window
  217.   end
  218.  
  219.   def init_value
  220.     $recard_achivement = [] if $recard_achivement.nil?
  221.     @get_achivement = []
  222.     @win_streak = 0 if @win_streak.nil?
  223.     @ach_delay = Achivement_Text_Change_Delay
  224.     @match = 1 if @match.nil?
  225.     @mp_win = [] if @mp_win.nil?
  226.     @men_win = [] if @me_win.nil?
  227.     @mh_bet = [] if @mh_bet.nil?
  228.     @mbet = [] if @mbet.nil?
  229.     @mwinner = [] if @mwinner.nil?
  230.     @mpdeck_ele = [] if @mpdeck_ele.nil?
  231.     @medeck_ele = [] if @medeck_ele.nil?
  232.     @wpoint = [] if @wpoint.nil?
  233.     @xpoint = [] if @xpoint.nil?    
  234.     @total_score = 0 if @total_score.nil? or @mode == 2
  235.     @etotal_score = 0 if @etotal_score.nil? or @mode == 2
  236.     @temp_ts_p = @total_score
  237.     @temp_ts_e = @etotal_score
  238.     @match_index = 1
  239.     @animate_deck = false
  240.     @an_deck = []
  241.     @d_com = []
  242.     @se_card = RPG::SE.new(Card_SE,80)  
  243.     @se_crash = RPG::SE.new(Crash_SE,80)
  244.     @me_win = RPG::ME.new(Win_ME)
  245.     @me_lose = RPG::ME.new(Lose_ME)
  246.     @leader = ''
  247.     @randomize_day = false
  248.     @rand_day_count = 8
  249.     @day_id = 0
  250.     @tick = 20
  251.     @tick2 = 60
  252.     @fade_epsprite = true
  253.     @round = 1
  254.     @card_index = 0
  255.     @ecard_index = 0
  256.     @card_select = false
  257.     @turn_now = ''
  258.     @mv_done = []
  259.     @mv_done[0] = false
  260.     @mv_done[1] = false
  261.     @p_win = 0
  262.     @e_win = 0
  263.     @sp_transition_duration = -1
  264.     @sp_transition_dir = 0
  265.     @sp_transition_buffer = nil
  266.     @sp_transition_sprites = []
  267.     @sp_transition_duration_max = -1
  268.     @attemp = false
  269.     @win_dur = -1
  270.     @check = false
  271.     @finished = false
  272.     @current_pause = ''
  273.     @combo = 0
  274.     @last_combo = ''
  275.   end
  276.  
  277.   def play_bgm    
  278.     @temp_bgm = RPG::BGM.last if @temp_bgm.nil?
  279.     @bgm = RPG::BGM.new(@bgm_filename)
  280.     @bgm.play
  281.   end
  282.  
  283.   def create_graphic
  284.     @bg = Sprite.new
  285.     @bg.bitmap = Cache.picture(@bg_filename)
  286.     @e_sprite = Sprite.new
  287.     @e_sprite.bitmap = Cache.recard('00player')
  288.     @e_sprite.src_rect.set(0,@enemy_id*140,400,140)
  289.     @e_sprite.opacity = 0
  290.     @e_sprite.x = 0
  291.     @p_sprite = Sprite.new
  292.     @p_sprite.bitmap = Cache.recard('00player')
  293.     @p_sprite.src_rect.set(0,@actor_id*140,400,140)
  294.     @p_sprite.x = 240
  295.     @p_sprite.y = 340
  296.     @p_sprite.mirror = true
  297.     @p_sprite.opacity = 0    
  298.     @bgintf = Sprite.new
  299.     @bgintf.bitmap = Cache.recard("pad")
  300.     @bgintf.z = @p_sprite.z + 1
  301.     @thedayof = Sprite.new
  302.     @thedayof.bitmap = Cache.recard('thedayof')
  303.     @thedayof.src_rect.set(0,0,96,32)
  304.     @thedayof.x = 273
  305.     @thedayof.y = 190
  306.     @day = Sprite.new
  307.     @day.bitmap = Cache.recard('thedayof')
  308.     @day.src_rect.set(0,32,96,32)
  309.     @day.x = 273
  310.     @day.y = 222
  311.     @day.visible = false
  312.     @se_win = Sprite.new
  313.     @se_win.bitmap = Cache.recard("enemywin")
  314.     @se_win.ox = @se_win.width/2
  315.     @se_win.oy = @se_win.height/2
  316.     @se_win.x = 320
  317.     @se_win.y = 208
  318.     @se_win.z = @bg.z + 3
  319.     @se_win.zoom_x = 0
  320.     @se_win.visible = false
  321.     @sp_win = Sprite.new
  322.     @sp_win.bitmap = Cache.recard("playerwin")
  323.     @sp_win.ox = @sp_win.width/2
  324.     @sp_win.oy = @sp_win.height/2
  325.     @sp_win.x = 320
  326.     @sp_win.y = 208
  327.     @sp_win.z = @bg.z + 3
  328.     @sp_win.zoom_x = 0
  329.     @sp_win.visible = false    
  330.     @score_p = Sprite.new
  331.     @score_p.bitmap = Bitmap.new(128,32)
  332.     @score_p.bitmap.font.size = 32
  333.     @score_p.bitmap.draw_text(0,0,128,32,@total_score.to_s,2)
  334.     @score_p.x = 486
  335.     @score_p.y = 292
  336.     @score_e = Sprite.new
  337.     @score_e.bitmap = Bitmap.new(128,32)
  338.     @score_e.bitmap.font.size = 32
  339.     @score_e.bitmap.draw_text(0,0,128,32,@etotal_score.to_s)
  340.     @score_e.x = 24
  341.     @score_e.y = 157
  342.   end
  343.  
  344.   def randomized_deck
  345.     @p_deck = []
  346.     @p_deck_ele = []
  347.     @e_deck = []
  348.     @e_deck_ele = []
  349.     @picked_card = []
  350.     loop do
  351.       a = rand(21)
  352.       if !@p_deck.include?(a) and !@picked_card.include?(a)
  353.         @p_deck.push(a)
  354.         if a < 5
  355.           @p_deck_ele.push(1)
  356.         elsif a < 10
  357.           @p_deck_ele.push(2)
  358.         elsif a < 15
  359.           @p_deck_ele.push(3)
  360.         elsif a < 20
  361.           @p_deck_ele.push(4)
  362.         else
  363.           @p_deck_ele.push(5)
  364.           if $recard_achivement[2].nil?
  365.             $recard_achivement[2] = true
  366.             @get_achivement.push(2)
  367.           end
  368.         end
  369.         @picked_card.push(a)
  370.       end
  371.       if @p_deck.size == 5
  372.         a = 0
  373.         b = 0
  374.         c = 0
  375.         d = 0
  376.         for i in 0..4
  377.           case @p_deck_ele[i]
  378.           when 1
  379.             a += 1
  380.           when 2
  381.             b += 1
  382.           when 3
  383.             c += 1
  384.           when 4
  385.             d += 1
  386.           end
  387.         end
  388.         if (a == 5 or b == 5 or c == 5 or d == 5) and $recard_achivement[3].nil?
  389.           $recard_achivement[3] = true
  390.           @get_achivement.push(3)
  391.         end
  392.         break
  393.       end      
  394.     end
  395.     loop do
  396.       a = rand(21)
  397.       if !@e_deck.include?(a) and !@picked_card.include?(a)
  398.         @e_deck.push(a)
  399.         if a < 5
  400.           @e_deck_ele.push(1)
  401.         elsif a < 10
  402.           @e_deck_ele.push(2)
  403.         elsif a < 15
  404.           @e_deck_ele.push(3)
  405.         elsif a < 20
  406.           @e_deck_ele.push(4)
  407.         else
  408.           @e_deck_ele.push(5)
  409.         end
  410.         @picked_card.push(a)
  411.       end
  412.       if @e_deck.size == 5
  413.         break
  414.       end      
  415.     end
  416.     @bet = 0
  417.     @tmp_ele = []
  418.     @tmp_ele[1] = 0
  419.     @tmp_ele[2] = 0
  420.     @tmp_ele[3] = 0
  421.     @tmp_ele[4] = 0
  422.     @tmp_ele[5] = 0
  423.     for i in 0..4
  424.       @tmp_ele[@e_deck_ele[i]] += 1
  425.       @medeck_ele[@match] = [] if @medeck_ele[@match].nil?
  426.       @medeck_ele[@match][@e_deck_ele[i]] = 0 if @medeck_ele[@match][@e_deck_ele[i]].nil?
  427.       @medeck_ele[@match][@e_deck_ele[i]] += 1
  428.     end
  429.     for i in 0..4
  430.       @mpdeck_ele[@match] = [] if @mpdeck_ele[@match].nil?
  431.       @mpdeck_ele[@match][@p_deck_ele[i]] = 0 if @mpdeck_ele[@match][@p_deck_ele[i]].nil?
  432.       @mpdeck_ele[@match][@p_deck_ele[i]] += 1
  433.     end
  434.     if @tmp_ele[1] == 2
  435.       @bet += 1
  436.     elsif @tmp_ele[1] >= 3
  437.       @bet += 3
  438.     end
  439.     if @tmp_ele[2] >= 2
  440.       @bet += 1
  441.     elsif @tmp_ele[2] >= 3
  442.       @bet += 3
  443.     end
  444.     if @tmp_ele[3] >= 2
  445.       @bet += 1
  446.     elsif @tmp_ele[3] >= 3
  447.       @bet += 3
  448.     end
  449.     if @tmp_ele[4] >= 2
  450.       @bet += 1
  451.     elsif @tmp_ele[4] >= 3
  452.       @bet += 3
  453.     end
  454.     if @tmp_ele[5] > 0
  455.       @bet += 1
  456.     end
  457.     x = rand(2)+1
  458.     @bet += x
  459.     if @bet > 5
  460.       @bet = 5
  461.     end
  462.   end
  463.  
  464.   def random_day
  465.     @randomize_day = true
  466.     if @rand_day_count > 0 and @tick <= 0
  467.       @tick = 2*@rand_day_count
  468.       @rand_day_count -= 1
  469.       @se_card.play
  470.       loop do
  471.         a = rand(4)
  472.         if a != @day_id
  473.           @day_id = a
  474.           for i in 0..4
  475.             if i == a
  476.               @re_deck[i].y = -40
  477.             else
  478.               @re_deck[i].y = -140
  479.             end
  480.           end
  481.           break
  482.         end
  483.       end
  484.     elsif @rand_day_count <= 0      
  485.       loop do
  486.         if @tmp_ele[1] >= @tmp_ele[2] and @tmp_ele[1] >= @tmp_ele[3] and @tmp_ele[1] >= @tmp_ele[4]
  487.           a = @e_deck_ele.index(1)
  488.         elsif @tmp_ele[2] >= @tmp_ele[1] and @tmp_ele[2] >= @tmp_ele[3] and @tmp_ele[2] >= @tmp_ele[4]
  489.           a = @e_deck_ele.index(2)
  490.         elsif @tmp_ele[3] >= @tmp_ele[1] and @tmp_ele[3] >= @tmp_ele[2] and @tmp_ele[3] >= @tmp_ele[4]
  491.           a = @e_deck_ele.index(3)
  492.         elsif @tmp_ele[4] >= @tmp_ele[1] and @tmp_ele[4] >= @tmp_ele[2] and @tmp_ele[4] >= @tmp_ele[3]
  493.           a = @e_deck_ele.index(4)
  494.         else          
  495.           a = rand(5)
  496.         end
  497.         if a != @day_id or @e_deck_ele[a] != 5
  498.           @day_id = @e_deck_ele[a]
  499.           @ecard_index = a
  500.           break
  501.         end
  502.       end
  503.       @se_day = RPG::SE.new(Day_SE[@day_id-1],80)
  504.       @se_day.play
  505.       update_day_sprite
  506.       @day.flash(Color.new(255,255,255),120)
  507.       @randomize_day = false
  508.       @xspeed = (@re_deck[@ecard_index].x - 360)/24
  509.       if @xspeed < 0
  510.         @xspeed = -@xspeed        
  511.       end      
  512.       @yspeed = (-40 - 150)/24
  513.       if @yspeed < 0
  514.         @yspeed = -@yspeed
  515.       end
  516.       @move_card = true
  517.     end    
  518.   end  
  519.  
  520.   def create_score_graphic
  521.     @bet_sprite = Sprite.new
  522.     @bet_sprite.bitmap = Cache.recard('number_bet')
  523.     if @has_bet == 'player'
  524.       @slash = Sprite.new
  525.       @slash.bitmap = Cache.recard("numbslash")
  526.       @slash.x = 544
  527.       @slash.y = 343      
  528.       @bet_sprite.src_rect.set(64*@bet,0,64,64)
  529.       @bet_sprite.x = 576
  530.       @bet_sprite.y = 343
  531.     else
  532.       @slash = Sprite.new
  533.       @slash.bitmap = Cache.recard("numbslash")
  534.       @slash.x = 60
  535.       @slash.y = 76
  536.       @bet_sprite.src_rect.set(64*@bet,0,64,64)
  537.       @bet_sprite.x = 92
  538.       @bet_sprite.y = 76
  539.     end      
  540.     update_score_text
  541.   end
  542.  
  543.   def create_deck
  544.     @rp_deck = []
  545.     for i in 0..4
  546.       @rp_deck[i] = Sprite.new
  547.       @rp_deck[i].bitmap = Cache.recard(Card[@p_deck[i]])
  548.       @rp_deck[i].x = 640
  549.       @rp_deck[i].y = 340
  550.       @rp_deck[i].z = @bg.z + 2
  551.     end
  552.     @re_deck = []
  553.     for i in 0..4
  554.       @re_deck[i] = Sprite.new
  555.       if @debug
  556.         @re_deck[i].bitmap = Cache.recard(Card[@e_deck[i]])
  557.       else
  558.         @re_deck[i].bitmap = Cache.recard('recard')
  559.       end
  560.       @re_deck[i].x = -120
  561.       @re_deck[i].y = -40
  562.       @re_deck[i].z = @bg.z + 2
  563.     end
  564.     @animate_deck = true
  565.   end
  566.  
  567.   def create_window
  568.     @help_window = Window_Base.new(160,158,320,64)
  569.     @help_window.visible = false    
  570.     @bet_window = Window_Command.new(320, Bet_Option)
  571.     @bet_window.x = 160
  572.     @bet_window.y = 220
  573.     @bet_window.visible = false
  574.     @bet_window.active = false
  575.     @finish_window = Window_Command.new(320, Finish_Option)
  576.     @finish_window.x = 160
  577.     @finish_window.y = 220
  578.     @finish_window.visible = false
  579.     @finish_window.active = false
  580.     @choice_window = Window_Command.new(320,["Yes", "No"])
  581.     @choice_window.x = 160
  582.     @choice_window.y = 220
  583.     @choice_window.visible = false
  584.     @choice_window.active = false
  585.     @goal_window = Window_Command.new(320,Sprint_Mode_Goal)
  586.     @goal_window.x = 160
  587.     @goal_window.y = (480-32*Sprint_Mode_Goal.size)/2
  588.     @goal_window.active = false
  589.     @goal_window.visible = false
  590.     if @mode == 1
  591.       @help_window.contents.draw_text(0,0,320-32,32,Bet_Text+@bet.to_s,1)
  592.     elsif @mode == 2
  593.       @help_window.contents.draw_text(0,0,320-32,32,Goal_Help_Text,1)
  594.       @help_window.y = @goal_window.y - 64  
  595.     end
  596.     if @mode == 0
  597.       @mode_window = Window_Command.new(320, Mode_Option)
  598.       @mode_window.x = 160
  599.       @mode_window.y = 220
  600.       @mode_window.visible = false
  601.       @mode_window.active = false      
  602.     end
  603.   end
  604.  
  605.   def update
  606.     super
  607.     @tick -= 1
  608.     @bg.update
  609.     @bgintf.update
  610.     @thedayof.update
  611.     @day.update
  612.     for card in @rp_deck+@re_deck
  613.       if card != nil and !card.disposed?
  614.         card.update
  615.       end
  616.     end
  617.     if @ach_text != nil
  618.       @ach_flip = false if @ach_flip.nil?
  619.       if !@ach_flip
  620.         @ach_text.zoom_x += 0.005
  621.         @ach_text.zoom_y += 0.005
  622.         @ac_ach_text.zoom_x += 0.005
  623.         @ac_ach_text.zoom_y += 0.005
  624.       elsif @ach_flip
  625.         @ach_text.zoom_x -= 0.005
  626.         @ach_text.zoom_y -= 0.005
  627.         @ac_ach_text.zoom_x -= 0.005
  628.         @ac_ach_text.zoom_y -= 0.005
  629.       end
  630.       if @ach_text.zoom_x >= 1.2
  631.         @ach_flip = true
  632.       elsif @ach_text.zoom_x <= 1
  633.         @ach_flip = false
  634.       end
  635.     end
  636.     if @ac_ach_text != nil
  637.       @ach_delay -= 1
  638.       if @ach_delay <= 0
  639.         update_achivement_text
  640.         @ach_delay = Achivement_Text_Change_Delay
  641.       end
  642.     end      
  643.     if @temp_ts_p != @total_score
  644.       @score_p.bitmap.clear
  645.       @score_p.bitmap.draw_text(0,0,128,32,@total_score.to_s,2)
  646.       @temp_ts_p = @total_score
  647.     end
  648.     if @temp_ts_e != @etotal_score
  649.       @score_e.bitmap.clear
  650.       @score_e.bitmap.draw_text(0,0,128,32,@etotal_score.to_s)
  651.       @temp_ts_e = @etotal_score
  652.     end
  653.     @help_window.update    
  654.     @finish_window.update    
  655.     @delay -= 1 if @delay != nil
  656.     update_ep_sprite if @fade_epsprite
  657.     if @sp_transition_duration != -1
  658.       update_splash
  659.     end
  660.     if !@shake.nil? and @shake != 4
  661.       update_combo_shake
  662.     end
  663.     if @score_effect
  664.       update_score_effect
  665.     end
  666.     if @win_dur != -1
  667.       update_animate_text_win
  668.       return
  669.     elsif @finished
  670.       @help_window.visible = true
  671.       @finish_window.visible = true
  672.     end
  673.     if @report_window != nil
  674.       @report_window.update
  675.       update_report
  676.       return
  677.     end
  678.     if @finish_window.active
  679.       update_finish_selection
  680.       return
  681.     end    
  682.     if @sp_transition_duration <= 0 and !@finish_window.active and @check
  683.       if @mode == 1
  684.         if @has_bet == 'player'
  685.           if @p_win >= @bet
  686.             @me_win.play
  687.             start_animate_text_win('player')
  688.             wait(60)
  689.             @t_winner = 'Player Win!'
  690.             @mwinner[@match] = 'Player!'
  691.             @wpoint[@match] = @p_win * 100
  692.             @total_score += @p_win * 100
  693.             @win_streak += 1
  694.             check_for_achivement
  695.             finish_match
  696.           elsif @p_win + @e_win == 5 or @e_win > (5-@bet)
  697.             @me_lose.play
  698.             start_animate_text_win('enemy')
  699.             wait(60)
  700.             @t_winner = 'Enemy Win!'
  701.             @mwinner[@match] = 'Enemy!'
  702.             @etotal_score += @bet * 100
  703.             @win_streak = 0
  704.             finish_match
  705.           end
  706.         else
  707.           if @e_win >= @bet
  708.             @me_lose.play
  709.             start_animate_text_win('enemy')
  710.             wait(60)
  711.             @t_winner = 'Enemy Win!'
  712.             @mwinner[@match] = 'Enemy!'
  713.             @etotal_score += @e_win * 100
  714.             @win_streak = 0
  715.             finish_match
  716.           elsif @p_win + @e_win == 5 or @p_win > (5-@bet)
  717.             @me_win.play
  718.             start_animate_text_win('player')
  719.             wait(60)
  720.             @t_winner = 'Player Win!'
  721.             @mwinner[@match] = 'Player!'
  722.             @xpoint[@match] = @bet * 100
  723.             @total_score += @bet * 100
  724.             @win_streak += 1
  725.             check_for_achivement
  726.             finish_match
  727.           end
  728.         end
  729.       elsif @mode == 2    
  730.         if @total_score >= @goal
  731.           @me_win.play
  732.           @t_winner = 'Player Win!'
  733.           start_animate_text_win('player')
  734.           wait(60)
  735.           finish_match
  736.         elsif @etotal_score >= @goal
  737.           @me_lose.play
  738.           @t_winner = 'Enemy Win!'
  739.           start_animate_text_win('enemy')
  740.           wait(60)
  741.           finish_match
  742.         end
  743.       end
  744.       @check = false
  745.     elsif @animate_deck
  746.       update_anim_deck
  747.       return
  748.     else      
  749.       if @choice_window.active
  750.         @choice_window.update
  751.         update_choice      
  752.       elsif !@mode_window.nil? and !@mode_window.disposed? and @mode_window.active
  753.         @mode_window.update
  754.         update_mode_selection
  755.       elsif @goal_window.active
  756.         @goal_window.update
  757.         update_goal_selection
  758.       elsif @bet_window.active
  759.         @bet_window.update
  760.         update_bet_window
  761.         return      
  762.       elsif @randomize_day
  763.         random_day
  764.         return
  765.       elsif @card_select
  766.         @tick2 -= 1
  767.         refresh_card_coordinate
  768.         update_card_selection
  769.       elsif @move_card
  770.         move_selected_card
  771.       end
  772.     end  
  773.   end
  774.  
  775.   def draw_more_card    
  776.     for i in 0..4
  777.       if @rp_deck[i].nil? or @rp_deck[i].disposed?
  778.         @rp_deck.delete_at(i)
  779.         @p_deck.delete_at(i)
  780.         @p_deck_ele.delete_at(i)
  781.       end
  782.       if @re_deck[i].nil? or @re_deck[i].disposed?
  783.         @re_deck.delete_at(i)
  784.         @e_deck.delete_at(i)
  785.         @e_deck_ele.delete_at(i)
  786.       end
  787.     end  
  788.     if @picked_card.size >= 20
  789.       @picked_card = []
  790.       for i in 0..4
  791.         @picked_card.push(@p_deck[i])
  792.         @picked_card.push(@e_deck[i])
  793.       end
  794.       @day_id = rand(4)
  795.       @day_id += 1
  796.       @se_day = RPG::SE.new(Day_SE[@day_id-1],80)
  797.       @se_day.play
  798.       update_day_sprite
  799.       @day.flash(Color.new(255,255,255),120)
  800.     end
  801.     loop do
  802.       a = rand(21)
  803.       if !@p_deck.include?(a) and !@picked_card.include?(a)
  804.         @p_deck.push(a)
  805.         if a < 5
  806.           @p_deck_ele.push(1)
  807.         elsif a < 10
  808.           @p_deck_ele.push(2)
  809.         elsif a < 15
  810.           @p_deck_ele.push(3)
  811.         elsif a < 20
  812.           @p_deck_ele.push(4)
  813.         else
  814.           @p_deck_ele.push(5)
  815.           if $recard_achivement[2].nil?
  816.             $recard_achivement[2] = true
  817.             @get_achivement.push(2)
  818.           end
  819.         end
  820.         @picked_card.push(a)
  821.       end
  822.       if @p_deck.size == 5
  823.         a = 0
  824.         b = 0
  825.         c = 0
  826.         d = 0
  827.         for i in 0..4
  828.           case @p_deck_ele[i]
  829.           when 1
  830.             a += 1
  831.           when 2
  832.             b += 1
  833.           when 3
  834.             c += 1
  835.           when 4
  836.             d += 1
  837.           end
  838.         end
  839.         if (a == 5 or b == 5 or c == 5 or d == 5) and $recard_achivement[3].nil?
  840.           $recard_achivement[3] = true
  841.           @get_achivement.push(3)
  842.         end
  843.         break
  844.       end      
  845.     end
  846.     loop do
  847.       a = rand(21)
  848.       if !@e_deck.include?(a) and !@picked_card.include?(a)
  849.         @e_deck.push(a)
  850.         if a < 5
  851.           @e_deck_ele.push(1)
  852.         elsif a < 10
  853.           @e_deck_ele.push(2)
  854.         elsif a < 15
  855.           @e_deck_ele.push(3)
  856.         elsif a < 20
  857.           @e_deck_ele.push(4)
  858.         else
  859.           @e_deck_ele.push(5)
  860.         end
  861.         @picked_card.push(a)
  862.       end
  863.       if @e_deck.size == 5
  864.         break
  865.       end      
  866.     end
  867.     for i in 0..4
  868.       if @rp_deck[i].nil?
  869.         @rp_deck[i] = Sprite.new
  870.         @rp_deck[i].bitmap = Cache.recard(Card[@p_deck[i]])
  871.         @rp_deck[i].x = 640
  872.         @rp_deck[i].y = 340
  873.         @rp_deck[i].z = @bg.z + 2
  874.       end
  875.       if @re_deck[i].nil?
  876.         @re_deck[i] = Sprite.new
  877.         if @debug
  878.           @re_deck[i].bitmap = Cache.recard(Card[@e_deck[i]])
  879.         else
  880.           @re_deck[i].bitmap = Cache.recard('recard')
  881.         end
  882.         @re_deck[i].x = -120
  883.         @re_deck[i].y = -40
  884.         @re_deck[i].z = @bg.z + 2
  885.       end
  886.       @re_deck[i].y = -140
  887.     end
  888.     for i in 0..4
  889.       @rp_deck[i].x = i*120
  890.       @re_deck[i].x = 640-(i*120)
  891.     end    
  892.   end
  893.  
  894.   def finish_match
  895.     @finished = true
  896.     if @mode == 1
  897.       save_current_match_report
  898.     end
  899.     @help_window.contents.clear
  900.     @help_window.contents.draw_text(0,0,320-32,32,@t_winner,1)
  901.     @help_window.y = @finish_window.y - 64
  902.     @finish_window.active = true
  903.     @bet_window.active = false    
  904.     $game_variables[Var_Player_Score] = @total_score
  905.     $game_variables[Var_Enemy_Score] = @etotal_score
  906.     return
  907.   end
  908.  
  909.   def check_for_achivement
  910.     if $recard_achivement[1].nil?
  911.       $recard_achivement[1] = true
  912.       @get_achivement.push(1)
  913.     end
  914.     if @bet == 5 and @has_bet == 'player' and $recard_achivement[10].nil?
  915.       $recard_achivement[10] = true
  916.       @get_achivement.push(10)
  917.     end
  918.     if @win_streak >= 5 and $recard_achivement[4].nil?
  919.       $recard_achivement[4] = true
  920.       @get_achivement.push(4)
  921.     end
  922.     if @win_streak >= 10 and $recard_achivement[5].nil?
  923.       $recard_achivement[5] = true
  924.       @get_achivement.push(5)
  925.     end
  926.     if @win_streak >= 15 and $recard_achivement[6].nil?
  927.       $recard_achivement[6] = true
  928.       @get_achivement.push(6)
  929.     end
  930.     if @total_score >= 1000 and $recard_achivement[7].nil?
  931.       $recard_achivement[7] = true
  932.       @get_achivement.push(7)
  933.     end
  934.     if @total_score >= 5000 and $recard_achivement[8].nil?
  935.       $recard_achivement[8] = true
  936.       @get_achivement.push(8)
  937.     end
  938.     if @total_score >= 10000 and $recard_achivement[9].nil?
  939.       $recard_achivement[9] = true
  940.       @get_achivement.push(9)
  941.     end    
  942.     draw_achivement_text if @get_achivement.size != 0
  943.   end
  944.  
  945.   def draw_achivement_text
  946.     @ach_index = 0
  947.     @ach_text = Sprite.new
  948.     @ach_text.bitmap = Bitmap.new(320,Achivement_Text_Size)
  949.     @ach_text.bitmap.font = Font.new(Achivement_Text_Font,Achivement_Text_Size)
  950.     @ach_text.bitmap.font.color = Achivement_Text_Color
  951.     @ach_text.bitmap.draw_text(0,0,320,Achivement_Text_Size,"Achivement!",1)
  952.     @ach_text.ox = 320/2
  953.     @ach_text.oy = Achivement_Text_Size/2
  954.     @ach_text.x = 150
  955.     @ach_text.y = 138
  956.     @ach_text.angle = 23
  957.     @ach_text.z = @finish_window.z + 1
  958.     @ac_ach_text = Sprite.new
  959.     @ac_ach_text.bitmap = Bitmap.new(320,Achivement_Get_Size)
  960.     @ac_ach_text.bitmap.font = Font.new(Achivement_Get_Font,Achivement_Get_Size)
  961.     @ac_ach_text.bitmap.font.color = Achivement_Get_Color
  962.     @ac_ach_text.bitmap.draw_text(0,0,320,Achivement_Get_Size,Achivement_Get[@get_achivement[@ach_index]],1)  
  963.     @ac_ach_text.ox = 320/2
  964.     @ac_ach_text.oy = Achivement_Get_Size/2
  965.     @ac_ach_text.x = 165
  966.     @ac_ach_text.y = 146+(Achivement_Get_Size/2)
  967.     @ac_ach_text.angle = 23
  968.     @ac_ach_text.z = @finish_window.z + 1
  969.   end
  970.  
  971.   def start_sprint_match
  972.     @day_id = rand(4)
  973.     @day_id += 1
  974.     @se_day = RPG::SE.new(Day_SE[@day_id-1],80)
  975.     @se_day.play
  976.     update_day_sprite
  977.     @day.flash(Color.new(255,255,255),120)
  978.     random = rand(2)
  979.     case random
  980.     when 0
  981.       @leader = 'player'
  982.       @turn_now = 'player'
  983.     when 1
  984.       @leader = 'enemy'
  985.       @turn_now = 'enemy'
  986.     end
  987.     @ef_p_score = Sprite.new
  988.     @ef_p_score.bitmap = Bitmap.new(85,32)
  989.     @ef_p_score.x = 555
  990.     @ef_p_score.y = 278
  991.     @ef_p_score.z = @score_p.z+1
  992.     @ef_e_score = Sprite.new
  993.     @ef_e_score.bitmap = Bitmap.new(85,32)
  994.     @ef_e_score.x = 0
  995.     @ef_e_score.y = 171
  996.     @ef_e_score.z = @score_e.z+1
  997.     start_card_selection
  998.     return
  999.   end
  1000.  
  1001.   def update_goal_selection
  1002.     if Input.trigger?(Input::C)
  1003.       Sound.play_decision
  1004.       @goal = Sprint_Mode_Goal[@goal_window.index]
  1005.       @goal_score = Sprite.new
  1006.       @goal_score.bitmap = Bitmap.new(77,48)
  1007.       @goal_score.bitmap.font = Font.new(Goal_Score_Text_Font)
  1008.       @goal_score.bitmap.font.size = 24
  1009.       @goal_score.bitmap.font.color = Color.new(0,0,0)
  1010.       @goal_score.bitmap.font.shadow = false
  1011.       @goal_score.x = 282
  1012.       @goal_score.y = 260
  1013.       $font_outline_color = Color.new(255,255,255)
  1014.       $font_outline = true
  1015.       @goal_score.bitmap.draw_text(0,0,77,32,Goal_Score_Text,1)
  1016.       @goal_score.bitmap.draw_text(0,18,77,32,@goal.to_s,1)
  1017.       $font_outline = false
  1018.       @goal_window.visible = false
  1019.       @goal_window.active = false
  1020.       @mode = 2
  1021.       @help_window.visible = false
  1022.       start_sprint_match
  1023.     elsif Input.trigger?(Input::B)
  1024.       Sound.play_cancel
  1025.       @goal_window.visible = false
  1026.       @goal_window.active = false
  1027.       @help_window.visible = false
  1028.       @mode_window.visible = true
  1029.       @mode_window.active = true
  1030.       return
  1031.     end
  1032.   end
  1033.  
  1034.   def update_achivement_text
  1035.     return if @get_achivement.size == 1
  1036.     if @ach_index < @get_achivement.size-1
  1037.       @ach_index += 1
  1038.     else
  1039.       @ach_index = 0
  1040.     end
  1041.     @ac_ach_text.bitmap.clear
  1042.     @ac_ach_text.bitmap.draw_text(0,0,320,Achivement_Get_Size,Achivement_Get[@get_achivement[@ach_index]],1)
  1043.   end
  1044.  
  1045.   def update_finish_selection
  1046.     if Input.trigger?(Input::C)
  1047.       case @finish_window.index
  1048.       when 0
  1049.         Sound.play_decision
  1050.         RPG::ME.stop
  1051.         @match += 1
  1052.         terminate
  1053.         start
  1054.         return
  1055.       when 1
  1056.         Sound.play_decision
  1057.         @finish_window.visible = false
  1058.         @finish_window.active = false
  1059.         @help_window.visible = false
  1060.         if @mode != 2
  1061.           @report_window = Window_Report.new(@match_index, @mp_win[@match_index], @men_win[@match_index], @mh_bet[@match_index], @mbet[@match_index], @mwinner[@match_index], @mpdeck_ele[@match_index], @medeck_ele[@match_index],@match,@wpoint[@match_index],@xpoint[@match_index])
  1062.         else
  1063.           Sound.play_decision
  1064.           @temp_bgm.play
  1065.           $scene = Scene_Map.new
  1066.         end
  1067.         return
  1068.       end
  1069.     end
  1070.   end
  1071.  
  1072.   def update_report
  1073.     if Input.trigger?(Input::LEFT)
  1074.       if @match_index > 1
  1075.         Sound.play_cursor
  1076.         @match_index -= 1
  1077.         recreate_report_window
  1078.       end
  1079.     elsif Input.trigger?(Input::RIGHT)
  1080.       if @match_index < @match
  1081.         Sound.play_cursor
  1082.         @match_index += 1
  1083.         recreate_report_window
  1084.       end
  1085.     elsif Input.trigger?(Input::B) or Input.trigger?(Input::C)
  1086.       Sound.play_decision
  1087.       @temp_bgm.play
  1088.       $scene = Scene_Map.new
  1089.     end
  1090.   end
  1091.  
  1092.   def recreate_report_window
  1093.     @report_window.recreate(@match_index, @mp_win[@match_index], @men_win[@match_index], @mh_bet[@match_index], @mbet[@match_index], @mwinner[@match_index], @mpdeck_ele[@match_index], @medeck_ele[@match_index],@match,@wpoint[@match_index],@xpoint[@match_index])
  1094.   end
  1095.  
  1096.   def save_current_match_report
  1097.     @mp_win[@match] = @p_win
  1098.     @men_win[@match] = @e_win
  1099.     @mh_bet[@match] = @has_bet
  1100.     @mbet[@match] = @bet
  1101.   end
  1102.    
  1103.   def update_anim_deck
  1104.     for i in 0..4
  1105.       if !@an_deck.include?(i)
  1106.         if @rp_deck[i].x > i*120
  1107.           @rp_deck[i].x -= 12
  1108.         elsif @rp_deck[i].x < i*120
  1109.           @rp_deck[i].x = i*120
  1110.         end
  1111.         if @rp_deck[i].x == i*120
  1112.           @se_card.play
  1113.           @an_deck.push(i)
  1114.           @an_deck.uniq!
  1115.         end
  1116.       end        
  1117.     end
  1118.     for i in 5..9
  1119.       if !@an_deck.include?(i)
  1120.         a = i-5
  1121.         if @re_deck[a].x < 640-((i-4)*120)
  1122.           @re_deck[a].x += 12
  1123.         elsif @re_deck[a].x > 640-((i-4)*120)
  1124.           @re_deck[a].x = 640-((i-4)*120)
  1125.         end
  1126.         if @re_deck[a].x == 640-((i-4)*120)
  1127.           @se_card.play
  1128.           @an_deck.push(i)
  1129.           @an_deck.uniq!
  1130.         end
  1131.       end        
  1132.     end
  1133.     if @an_deck.size == 10 and @delay.nil?
  1134.       @delay = 60
  1135.     end
  1136.     @d_com = []
  1137.     if @an_deck.size == 10 and @delay <= 0
  1138.       for a in 0..4
  1139.         if @rp_deck[a].y < 440
  1140.           @rp_deck[a].y += 6
  1141.         elsif @rp_deck[a].y > 440
  1142.           @rp_deck[a].y = 440
  1143.           @se_card.play
  1144.           @d_com.push(a) if !@d_com.include?(a)
  1145.         end
  1146.         if @re_deck[a].y > -140
  1147.           @re_deck[a].y -= 6
  1148.         elsif @re_deck[a].y < -140
  1149.           @re_deck[a].y = -140          
  1150.           @se_card.play
  1151.           @d_com.push(a+5) if !@d_com.include?(a+5)
  1152.         end
  1153.       end
  1154.     end
  1155.     if @d_com.size == 10
  1156.       @animate_deck = false
  1157.       if @mode == 0
  1158.         if !@mode_window.nil? and !@mode_window.disposed?
  1159.           @mode_window.visible = true
  1160.           @mode_window.active = true
  1161.         end
  1162.       elsif @mode == 1
  1163.         @help_window.visible = true
  1164.         @bet_window.visible = true
  1165.         @bet_window.active = true
  1166.       elsif @mode == 2
  1167.         @help_window.visible = true
  1168.         @goal_window.visible = true
  1169.         @goal_window.active = true
  1170.       end
  1171.     end
  1172.   end
  1173.  
  1174.   def update_mode_selection
  1175.     if Input.trigger?(Input::C)
  1176.       Sound.play_decision
  1177.       @mode_window.active = false
  1178.       @mode_window.visible = false
  1179.       case @mode_window.index
  1180.       when 0
  1181.         @mode = 1
  1182.         @help_window.contents.clear
  1183.         @help_window.contents.draw_text(0,0,320-32,32,Bet_Text+@bet.to_s,1)
  1184.         @help_window.y = 158
  1185.         @help_window.visible = true
  1186.         @bet_window.active = true
  1187.         @bet_window.visible = true
  1188.       when 1
  1189.         @mode = 2
  1190.         @help_window.contents.clear
  1191.         @help_window.contents.draw_text(0,0,320-32,32,Goal_Help_Text,1)
  1192.         @help_window.y = @goal_window.y - 64        
  1193.         @help_window.visible = true
  1194.         @goal_window.visible = true
  1195.         @goal_window.active = true
  1196.       end
  1197.     elsif Input.trigger?(Input::B)
  1198.       @current_pause = 'mode'
  1199.       @mode_window.visible = false
  1200.       Sound.play_decision
  1201.       @bgm = RPG::BGM.new(@bgm_filename,0)
  1202.       @bgm.play
  1203.       @help_window.contents.clear
  1204.       @help_window.contents.draw_text(0,0,320-32,32,"Exit?",1)
  1205.       @help_window.visible = true
  1206.       @choice_window.visible = true
  1207.       @choice_window.active = true
  1208.       return
  1209.     end
  1210.   end
  1211.  
  1212.   def update_bet_window
  1213.     if Input.trigger?(Input::C)
  1214.       case @bet_window.index
  1215.       when 0
  1216.         if @bet == 5
  1217.           Sound.play_buzzer
  1218.           return
  1219.         else
  1220.           @e_sprite.opacity = 128
  1221.           @has_bet = 'player'
  1222.           @leader = 'player'
  1223.           @turn_now = 'player'
  1224.           Sound.play_decision    
  1225.           @bet += 1
  1226.           @bet_window.active = false
  1227.           @bet_window.visible = false
  1228.           @help_window.visible = false    
  1229.           create_score_graphic
  1230.           start_card_selection          
  1231.           return
  1232.         end
  1233.       when 1
  1234.         random_day
  1235.         @has_bet = 'enemy'
  1236.         @leader = 'enemy'
  1237.         @turn_now = 'enemy'
  1238.         @p_sprite.opacity = 128
  1239.         Sound.play_decision
  1240.         @bet_window.active = false
  1241.         @bet_window.visible = false
  1242.         @help_window.visible = false
  1243.         create_score_graphic
  1244.         return
  1245.       when 2      
  1246.         Sound.play_decision
  1247.         @temp_bgm.play
  1248.         $scene = Scene_Map.new
  1249.       end      
  1250.     end
  1251.   end
  1252.  
  1253.   def update_day_sprite
  1254.     @day.dispose
  1255.     @day = Sprite.new
  1256.     @day.bitmap = Cache.recard('thedayof')
  1257.     @day.src_rect.set(0,@day_id*32,96,32)
  1258.     @day.x = 273
  1259.     @day.y = 222
  1260.   end
  1261.  
  1262.   def update_score_text
  1263.     if @mode == 1
  1264.       @te.dispose if @te != nil
  1265.       @te = Sprite.new
  1266.       @te.bitmap = Cache.recard("number_win")
  1267.       @te.src_rect.set(@e_win*64,0,64,64)
  1268.       @te.x = 0
  1269.       @te.y = 76
  1270.       @te.z = @bg.z + 1
  1271.       @tp.dispose if @tp != nil
  1272.       @tp = Sprite.new
  1273.       @tp.bitmap = Cache.recard("number_win")
  1274.       @tp.src_rect.set(@p_win*64,0,64,64)
  1275.       @tp.z = @bg.z + 1
  1276.       if @has_bet == 'player'    
  1277.         @tp.x = 484
  1278.         @tp.y = 343
  1279.       else
  1280.         @tp.x = 576
  1281.         @tp.y = 343
  1282.       end
  1283.     elsif @mode == 2      
  1284.       if @combo_sprite.nil? or @combo_sprite.disposed?
  1285.         @combo_sprite = Sprite.new
  1286.         @combo_sprite.bitmap = Bitmap.new(640,480)
  1287.         @combo_sprite.bitmap.font = Font.new(Sprint_Combo_Font)
  1288.         @combo_sprite.bitmap.font.size = Sprint_Combo_Size
  1289.         @combo_sprite.bitmap.font.color = Sprint_Combo_Color
  1290.         @combo_sprite.bitmap.font.shadow = false
  1291.         @combo_sprite.x = 0
  1292.         @combo_sprite.y = 0
  1293.         @combo_sprite.z = @bg.z + 1
  1294.         @combo_sprite.visible = false
  1295.       end
  1296.       if @combo > 0
  1297.         @combo_sprite.visible = true
  1298.       else
  1299.         @combo_sprite.visible = false
  1300.       end
  1301.       if @last_combo == 'player'
  1302.         @combo_sprite.bitmap.clear
  1303.         $font_outline = true
  1304.         $font_outline_color = Color.new(0,0,0)
  1305.         @combo_sprite.bitmap.draw_text(576,343,640,Sprint_Combo_Size,'+ '+@combo.to_s)  
  1306.         $font_outline = false
  1307.       elsif @last_combo == 'enemy'
  1308.         @combo_sprite.bitmap.clear
  1309.         $font_outline = true
  1310.         $font_outline_color = Color.new(0,0,0)
  1311.         @combo_sprite.bitmap.draw_text(32,76,640,Sprint_Combo_Size,'+ '+@combo.to_s)
  1312.         $font_outline = false
  1313.       end
  1314.       @shake = 0
  1315.     end
  1316.   end
  1317.  
  1318.   def update_combo_shake
  1319.     if @shake == 0
  1320.       @combo_sprite.x += 2
  1321.       if @combo_sprite.x == 6
  1322.         @shake = 1
  1323.       end
  1324.     elsif @shake == 1
  1325.       @combo_sprite.x -= 2
  1326.       if @combo_sprite.x == 0
  1327.         @shake = 2
  1328.       end
  1329.     elsif @shake == 2
  1330.       @combo_sprite.x -= 2
  1331.       if @combo_sprite.x == -6
  1332.         @shake = 3
  1333.       end
  1334.     elsif @shake == 3
  1335.       @combo_sprite.x += 2
  1336.       if @combo_sprite.x == 0
  1337.         @shake = 4
  1338.       end
  1339.     end
  1340.   end
  1341.  
  1342.   def init_score_effect(target,score)
  1343.     case target
  1344.     when 'player'
  1345.       @ef_p_score.x = 555
  1346.       @ef_p_score.y = 278
  1347.       @ef_p_score.bitmap.clear
  1348.       @ef_p_score.bitmap.draw_text(0,0,85,32,'+'+score.to_s,1)
  1349.       @ef_p_score.opacity = 255
  1350.     when 'enemy'
  1351.       @ef_e_score.x = 0
  1352.       @ef_e_score.y = 171
  1353.       @ef_e_score.bitmap.clear
  1354.       @ef_e_score.bitmap.draw_text(0,0,85,32,'+'+score.to_s,1)
  1355.       @ef_e_score.opacity = 255
  1356.     end
  1357.     @score_effect = true
  1358.   end
  1359.  
  1360.   def update_score_effect
  1361.     if @mode == 2
  1362.       if @ef_p_score.y > 257
  1363.         @ef_p_score.y -= 2
  1364.       end
  1365.       if @ef_p_score.opacity > 0
  1366.         @ef_p_score.opacity -= 3
  1367.       end
  1368.       if @ef_e_score.y < 193
  1369.         @ef_e_score.y += 2
  1370.       end
  1371.       if @ef_e_score.opacity > 0
  1372.         @ef_e_score.opacity -= 3
  1373.       end
  1374.       if @ef_p_score.y <= 257 and @ef_p_score.opacity == 0 and @ef_e_score.y >= 193 and @ef_e_score.opacity == 0
  1375.         @score_effect = false
  1376.       end
  1377.     end
  1378.   end
  1379.  
  1380.   def update_choice
  1381.     if Input.trigger?(Input::B)
  1382.       Sound.play_cancel
  1383.       @bgm = RPG::BGM.new(@bgm_filename)
  1384.       @bgm.play
  1385.       @help_window.visible = false
  1386.       @choice_window.active = false
  1387.       @choice_window.visible = false
  1388.       if @current_pause == 'mode'
  1389.         @mode_window.visible = true
  1390.       end
  1391.       return
  1392.     elsif Input.trigger?(Input::C)
  1393.       case @choice_window.index
  1394.       when 0
  1395.         Sound.play_decision
  1396.         @temp_bgm.play
  1397.         $scene = Scene_Map.new
  1398.       when 1
  1399.         Sound.play_cancel
  1400.         @bgm = RPG::BGM.new(@bgm_filename)
  1401.         @bgm.play
  1402.         @help_window.visible = false
  1403.         @choice_window.active = false
  1404.         @choice_window.visible = false
  1405.         if @current_pause == 'mode'
  1406.           @mode_window.visible = true
  1407.         end
  1408.         return
  1409.       end
  1410.     end
  1411.   end
  1412.  
  1413.   def start_card_selection
  1414.     @card_select = true
  1415.     if @turn_now == 'player'
  1416.       @rp_deck[@card_index].y = 340
  1417.     else
  1418.       @re_deck[@ecard_index].y = -40
  1419.     end
  1420.   end
  1421.  
  1422.   def update_card_selection
  1423.     if @turn_now == 'player'      
  1424.       if Input.trigger?(Input::RIGHT)
  1425.         if @card_index < 4
  1426.           @card_index += 1
  1427.           loop do
  1428.             if @rp_deck[@card_index] == nil or @rp_deck[@card_index].disposed?
  1429.               if @card_index < 4
  1430.                 @card_index += 1
  1431.               else
  1432.                 @card_index = 0
  1433.               end
  1434.             else
  1435.               break
  1436.             end
  1437.           end
  1438.           @se_card.play  
  1439.         else
  1440.           @card_index = 0
  1441.           loop do
  1442.             if !@rp_deck[@card_index].disposed?
  1443.               break
  1444.             else
  1445.               @card_index += 1
  1446.             end
  1447.           end
  1448.           @se_card.play
  1449.         end
  1450.       elsif Input.trigger?(Input::LEFT)
  1451.         if @card_index > 0
  1452.           @card_index -= 1
  1453.           loop do
  1454.             if @rp_deck[@card_index] == nil or @rp_deck[@card_index].disposed?
  1455.               if @card_index > 0
  1456.                 @card_index -= 1
  1457.               else
  1458.                 @card_index = 4
  1459.               end
  1460.             else
  1461.               break
  1462.             end
  1463.           end
  1464.           @se_card.play
  1465.         else
  1466.           @card_index = 4
  1467.           loop do
  1468.             if !@rp_deck[@card_index].disposed?
  1469.               break
  1470.             else
  1471.               @card_index -= 1
  1472.             end
  1473.           end
  1474.           @se_card.play
  1475.         end
  1476.       elsif Input.trigger?(Input::C)
  1477.         if @day_id == 0
  1478.           @day_id = @p_deck_ele[@card_index]
  1479.           @se_day = RPG::SE.new(Day_SE[@day_id-1],80)
  1480.           @se_day.play
  1481.           @day.visible = true
  1482.           update_day_sprite
  1483.           @rp_deck[@card_index].flash(Color.new(255,255,255),32)
  1484.           prepare_move_card
  1485.         else          
  1486.           ele = @p_deck_ele[@card_index]
  1487.           if @leader == 'player'
  1488.             if @p_deck_ele[@card_index] != 5
  1489.               @se_day = RPG::SE.new(Day_SE[@p_deck_ele[@card_index]-1],80)
  1490.               @se_day.play
  1491.             end
  1492.             @day.visible = true
  1493.             update_day_sprite
  1494.             @rp_deck[@card_index].flash(Color.new(255,255,255),32)
  1495.             prepare_move_card
  1496.           elsif @p_deck_ele.include?(@e_deck_ele[@ecard_index]) or @p_deck_ele.include?(@day_id)
  1497.             in_deck = 0
  1498.             for i in 0..4
  1499.               if @p_deck_ele[i] == @e_deck_ele[@ecard_index] or @p_deck_ele[i] == @day_id
  1500.                 if !@rp_deck[i].disposed?
  1501.                   in_deck += 1
  1502.                 end
  1503.               end
  1504.             end
  1505.             if in_deck != 0
  1506.               if ele == @e_deck_ele[@ecard_index] or ele == @day_id or ele == 5
  1507.                 if @p_deck_ele[@card_index] != 5
  1508.                   @se_day = RPG::SE.new(Day_SE[@p_deck_ele[@card_index]-1],80)
  1509.                   @se_day.play
  1510.                 end
  1511.                 @rp_deck[@card_index].flash(Color.new(255,255,255),32)
  1512.                 prepare_move_card
  1513.               else
  1514.                 Sound.play_buzzer
  1515.               end
  1516.             else
  1517.               @se_day = RPG::SE.new(Day_SE[@p_deck_ele[@card_index]-1],80)
  1518.               @se_day.play
  1519.               @rp_deck[@card_index].flash(Color.new(255,255,255),32)
  1520.               prepare_move_card
  1521.             end
  1522.           else
  1523.             if @p_deck_ele[@card_index] != 5
  1524.               @se_day = RPG::SE.new(Day_SE[@p_deck_ele[@card_index]-1],80)
  1525.               @se_day.play
  1526.             end
  1527.             @rp_deck[@card_index].flash(Color.new(255,255,255),32)
  1528.             prepare_move_card
  1529.           end
  1530.         end
  1531.       elsif Input.trigger?(Input::B)
  1532.         @current_pause = 'card_selection'
  1533.         Sound.play_decision
  1534.         @bgm = RPG::BGM.new(@bgm_filename,0)
  1535.         @bgm.play
  1536.         @help_window.contents.clear
  1537.         @help_window.contents.draw_text(0,0,320-32,32,"Exit?",1)
  1538.         @help_window.visible = true
  1539.         @choice_window.visible = true
  1540.         @choice_window.active = true
  1541.         return
  1542.       end  
  1543.     else
  1544.       if @leader != 'enemy'
  1545.         @attemp = false
  1546.         loop do
  1547.           if !@attemp
  1548.             @attemp = true
  1549.             @e_temp_card = []
  1550.             if @e_deck_ele.include?(@p_deck_ele[@card_index])
  1551.               for i in 0..4
  1552.                 if @e_deck_ele[i] == @p_deck_ele[@card_index] and !@re_deck[i].disposed?
  1553.                   @e_temp_card.push(@e_deck[i])
  1554.                 end
  1555.               end
  1556.               @e_temp_card.sort!                            
  1557.               if !@e_temp_card.nil?
  1558.                 a = @p_deck[@card_index]
  1559.                 c = nil
  1560.                 for i in 0...@e_temp_card.size
  1561.                   b = @e_temp_card[i]
  1562.                   if b > a and c.nil?
  1563.                     c = @e_deck.index(b)
  1564.                   end
  1565.                 end
  1566.                 if !c.nil?
  1567.                   @ecard_index = @e_deck.index(c)
  1568.                 else
  1569.                   if @e_deck_ele.include?(@day_id) and !@re_deck[@e_deck_ele.index(@day_id)].disposed?
  1570.                     @ecard_index = @e_deck_ele.index(@day_id)
  1571.                   else
  1572.                     @ecard_index = @e_deck.index(@e_temp_card[0])
  1573.                   end
  1574.                 end
  1575.               else                
  1576.                 if @e_deck_ele.include?(@day_id) and !@re_deck[@e_deck_ele.index(@day_id)].disposed?
  1577.                   @ecard_index = @e_deck_ele.index(@day_id)
  1578.                 elsif @e_deck.include?(20) and !@re_deck[@e_deck.index(20)].disposed?
  1579.                   @ecard_index = @e_deck.index(20)
  1580.                 else
  1581.                   @attemp = true
  1582.                 end
  1583.               end            
  1584.             elsif @e_deck_ele.include?(@day_id) and !@re_deck[@e_deck_ele.index(@day_id)].disposed?
  1585.               @ecard_index = @e_deck_ele.index(@day_id)
  1586.             elsif @e_deck.include?(20) and !@re_deck[@e_deck.index(20)].disposed?
  1587.               @ecard_index = @e_deck.index(20)
  1588.             else
  1589.               @attemp = true
  1590.             end
  1591.             if @ecard_index != nil and !@re_deck[@ecard_index].nil? and !@re_deck[@ecard_index].disposed?
  1592.               break
  1593.             end
  1594.           else
  1595.             loop do
  1596.               @ecard_index = rand(5)
  1597.               if !@re_deck[@ecard_index].disposed? and !@re_deck[@ecard_index].nil?
  1598.                 break
  1599.               end              
  1600.             end
  1601.             break
  1602.           end
  1603.         end
  1604.         prepare_move_card
  1605.       else
  1606.         if @mode == 1
  1607.           loop do          
  1608.             size = 0
  1609.             for i in 0..4
  1610.               if !@re_deck[i].disposed?
  1611.                 size += 1
  1612.               end
  1613.             end
  1614.             a = rand(5)
  1615.             if !@re_deck[a].disposed?
  1616.               if @e_deck[a] == 20 and size == 1
  1617.                 @ecard_index = a
  1618.                 break
  1619.               elsif @e_deck[a] != 20
  1620.                 @ecard_index = a
  1621.                 break
  1622.               end
  1623.             end
  1624.           end
  1625.         elsif @mode == 2
  1626.           temp_deck = []
  1627.           void = -1
  1628.           for i in 0..4
  1629.             if @e_deck_ele[i] == @day_id
  1630.               temp_deck.push(@e_deck[i])
  1631.             end
  1632.             if @e_deck_ele[i] == 5
  1633.               void = i
  1634.             end
  1635.           end
  1636.           temp_deck.sort!
  1637.           if temp_deck.size != 0
  1638.             @ecard_index = @e_deck.index(temp_deck[temp_deck.size-1])
  1639.           elsif void != -1
  1640.             @ecard_index = void
  1641.           else
  1642.             loop do
  1643.               a = rand(5)
  1644.               if !@re_deck[a].disposed?
  1645.                 @ecard_index = a
  1646.                 break
  1647.               end
  1648.             end
  1649.           end
  1650.         end
  1651.         prepare_move_card
  1652.       end
  1653.     end    
  1654.   end
  1655.  
  1656.   def move_selected_card
  1657.     for i in 0..4
  1658.       if i != @ecard_index
  1659.         @re_deck[i].y = -140 if !@re_deck[i].disposed?
  1660.       end
  1661.       if i != @card_index
  1662.         @rp_deck[i].y = 440 if !@rp_deck[i].disposed?
  1663.       end
  1664.     end
  1665.     if @mv_done[0] and @mv_done[1]
  1666.       @mv_done[0] = false
  1667.       @mv_done[1] = false
  1668.       @move_card = false
  1669.       if @turn_now == 'enemy'
  1670.         @re_deck[@ecard_index].bitmap = Cache.recard(Card[@e_deck[@ecard_index]])
  1671.       end
  1672.       if @leader == @turn_now        
  1673.         next_turn
  1674.       else
  1675.         calculate
  1676.         @check = true
  1677.       end
  1678.       return
  1679.     end
  1680.     if @turn_now == 'player'      
  1681.       if (@rp_deck[@card_index].x > 160-(@xspeed-1) and @rp_deck[@card_index].x < 160) or (@rp_deck[@card_index].x < 160+(@xspeed-1) and @rp_deck[@card_index].x > 160)
  1682.         @rp_deck[@card_index].x = 160
  1683.       elsif @rp_deck[@card_index].x < 160
  1684.         @rp_deck[@card_index].x += @xspeed
  1685.       elsif @rp_deck[@card_index].x > 160
  1686.         @rp_deck[@card_index].x -= @xspeed    
  1687.       elsif @rp_deck[@card_index].x == 160
  1688.         @mv_done[0] = true
  1689.       end
  1690.       if (@rp_deck[@card_index].y > 150-(@yspeed-1) and @rp_deck[@card_index].y < 150) or (@rp_deck[@card_index].y < 150+(@yspeed-1) and @rp_deck[@card_index].y > 150)
  1691.         @rp_deck[@card_index].y = 150
  1692.       elsif @rp_deck[@card_index].y < 150
  1693.         @rp_deck[@card_index].y += @yspeed
  1694.       elsif @rp_deck[@card_index].y > 150
  1695.         @rp_deck[@card_index].y -= @yspeed
  1696.       elsif @rp_deck[@card_index].y == 150
  1697.         @mv_done[1] = true
  1698.       end
  1699.     elsif @turn_now == 'enemy'
  1700.       if (@re_deck[@ecard_index].x > 360-(@xspeed-1) and @re_deck[@ecard_index].x < 360) or (@re_deck[@ecard_index].x < 360+(@xspeed-1) and @re_deck[@ecard_index].x > 360)
  1701.         @re_deck[@ecard_index].x = 360
  1702.       elsif @re_deck[@ecard_index].x < 360
  1703.         @re_deck[@ecard_index].x += @xspeed
  1704.       elsif @re_deck[@ecard_index].x > 360
  1705.         @re_deck[@ecard_index].x -= @xspeed
  1706.       elsif @re_deck[@ecard_index].x == 360
  1707.         @mv_done[0] = true
  1708.       end
  1709.       if (@re_deck[@ecard_index].y > 150-(@yspeed-1) and @re_deck[@ecard_index].y < 150) or (@re_deck[@ecard_index].y < 150+(@yspeed-1) and @re_deck[@ecard_index].y > 150)
  1710.         @re_deck[@ecard_index].y = 150
  1711.       elsif @re_deck[@ecard_index].y < 150
  1712.         @re_deck[@ecard_index].y += @yspeed
  1713.       elsif @re_deck[@ecard_index].y > 150
  1714.         @re_deck[@ecard_index].y -= @yspeed
  1715.       elsif @re_deck[@ecard_index].y == 150
  1716.         @mv_done[1] = true
  1717.       end
  1718.     end    
  1719.   end
  1720.  
  1721.   def refresh_card_x
  1722.     init = 0
  1723.     for i in 0..4
  1724.       if !@rp_deck[i].nil? and !@rp_deck[i].disposed?
  1725.         @rp_deck[i].x = init * 120
  1726.         init += 1
  1727.       end
  1728.     end
  1729.     init = 0
  1730.     for i in 0..4
  1731.       if !@re_deck[i].nil? and !@re_deck[i].disposed?
  1732.         @re_deck[i].x = 640-((init+1)*120)
  1733.         init += 1
  1734.       end
  1735.     end
  1736.   end
  1737.    
  1738.   def next_turn
  1739.     if @turn_now == 'player'
  1740.       @turn_now = 'enemy'
  1741.     elsif @turn_now == 'enemy'
  1742.       @turn_now = 'player'
  1743.     end    
  1744.     start_card_selection
  1745.   end
  1746.  
  1747.   def calculate
  1748.     loop do
  1749.       a = @e_deck[@ecard_index]
  1750.       b = @p_deck[@card_index]
  1751.       case @leader
  1752.       when 'enemy'
  1753.         e = @e_deck_ele[@ecard_index]
  1754.       when 'player'
  1755.         e = @p_deck_ele[@card_index]
  1756.       end
  1757.       if @e_deck_ele[@ecard_index] == @p_deck_ele[@card_index] or (@e_deck_ele[@ecard_index] == @day_id and @p_deck_ele[@card_index] == @day_id)
  1758.         if a > b
  1759.           @winner = 'enemy'
  1760.         elsif b > a
  1761.           @winner = 'player'
  1762.         end
  1763.       elsif @e_deck[@ecard_index] == 20
  1764.         @winner = 'enemy'
  1765.       elsif @p_deck[@card_index] == 20
  1766.         @winner = 'player'
  1767.       elsif @e_deck_ele[@ecard_index] == @day_id and @p_deck_ele[@card_index] != @day_id
  1768.         @winner = 'enemy'
  1769.       elsif @e_deck_ele[@ecard_index] != @day_id and @p_deck_ele[@card_index] == @day_id
  1770.         @winner = 'player'      
  1771.       elsif @e_deck_ele[@ecard_index] == e and @p_deck_ele[@card_index] != e
  1772.         @winner = 'enemy'
  1773.       elsif @e_deck_ele[@ecard_index] != e and @p_deck_ele[@card_index] == e
  1774.         @winner = 'player'      
  1775.       end
  1776.       if @winner != nil
  1777.         @leader = @winner
  1778.         @turn_now = @winner
  1779.         if @winner == 'player'
  1780.           @p_win += 1
  1781.           if @mode == 2            
  1782.             @total_score += 10
  1783.             plus = 10
  1784.             if @last_combo == 'player'
  1785.               @combo += 1
  1786.               @total_score += @combo
  1787.               plus += @combo
  1788.             else
  1789.               @last_combo = 'player'
  1790.               @combo = 0
  1791.             end
  1792.             init_score_effect('player',plus)
  1793.           end
  1794.           update_score_text
  1795.           @tick = 60
  1796.           @rp_deck[@card_index].flash(Color.new(255,255,255),60)
  1797.           wait(60)
  1798.           @se_crash.play
  1799.           init_splash(@re_deck[@ecard_index])
  1800.         else
  1801.           @e_win += 1
  1802.           if @mode == 2
  1803.             @etotal_score += 10
  1804.             plus = 10
  1805.             if @last_combo == 'enemy'
  1806.               @combo += 1
  1807.               @etotal_score += @combo
  1808.               plus += @combo
  1809.             else
  1810.               @last_combo = 'enemy'
  1811.               @combo = 0
  1812.             end
  1813.             init_score_effect('enemy',plus)
  1814.           end
  1815.           update_score_text
  1816.           @tick = 60
  1817.           @re_deck[@ecard_index].flash(Color.new(255,255,255),60)
  1818.           wait(60)
  1819.           @se_crash.play
  1820.           init_splash(@rp_deck[@card_index])
  1821.         end        
  1822.         @winner = nil        
  1823.         break
  1824.       end
  1825.     end
  1826.   end
  1827.  
  1828.   def wait(duration)
  1829.     for i in 0...duration
  1830.       Graphics.update
  1831.       update_combo_shake
  1832.       update_score_effect
  1833.       for card in @rp_deck+@re_deck
  1834.         if card != nil and !card.disposed?
  1835.           card.update
  1836.         end
  1837.       end
  1838.       break if i >= duration / 2
  1839.     end
  1840.   end
  1841.  
  1842.   def start_animate_text_win(winner)
  1843.     @win_dur = 60
  1844.     @w_win = winner
  1845.     case @w_win
  1846.     when 'player'
  1847.       @sp_win.visible = true
  1848.     when 'enemy'
  1849.       @se_win.visible = true
  1850.     end
  1851.   end
  1852.  
  1853.   def update_animate_text_win
  1854.     @win_dur -= 1
  1855.     case @w_win
  1856.     when 'player'
  1857.       if @win_dur > 40
  1858.         if @sp_win.zoom_x < 1
  1859.           @sp_win.zoom_x += 0.05
  1860.         end
  1861.       elsif @win_dur < 20
  1862.         if @sp_win.zoom_x > 0
  1863.           @sp_win.zoom_x -= 0.05
  1864.         end
  1865.       end
  1866.       if @win_dur == 0        
  1867.         @win_dur = -1
  1868.         @sp_win.visible = false
  1869.       end
  1870.     when 'enemy'
  1871.       if @win_dur > 40
  1872.         if @se_win.zoom_x < 1
  1873.           @se_win.zoom_x += 0.05
  1874.         end
  1875.       elsif @win_dur < 20
  1876.         if @se_win.zoom_x > 0
  1877.           @se_win.zoom_x -= 0.05
  1878.         end
  1879.       end
  1880.       if @win_dur <= 0
  1881.         @win_dur = -1
  1882.         @se_win.visible = false
  1883.       end
  1884.     end
  1885.   end        
  1886.  
  1887.   def prepare_move_card
  1888.     if @turn_now == 'player'      
  1889.       @xspeed = (@rp_deck[@card_index].x - 160)/24
  1890.       if @xspeed < 0
  1891.         @xspeed = -@xspeed
  1892.       end
  1893.       @yspeed = (340 - 150)/24
  1894.       if @yspeed < 0
  1895.         @yspeed = -@yspeed
  1896.       end
  1897.     else
  1898.       @xspeed = (@re_deck[@ecard_index].x - 360)/24
  1899.       if @xspeed < 0
  1900.         @xspeed = -@xspeed        
  1901.       end
  1902.       @yspeed = (-40 - 150)/24
  1903.       if @yspeed < 0
  1904.         @yspeed = -@yspeed
  1905.       end
  1906.     end
  1907.     @card_select = false
  1908.     @move_card = true
  1909.   end
  1910.  
  1911.   def refresh_card_coordinate
  1912.     for i in 0..4
  1913.       if i == @card_index and !@rp_deck[i].disposed?        
  1914.         if @rp_deck[i].y > 340
  1915.           @rp_deck[i].y -= 8
  1916.           if @rp_deck[i].y < 340
  1917.             @rp_deck[i].y = 340
  1918.           end
  1919.         end
  1920.       elsif !@rp_deck[i].disposed?
  1921.         if @rp_deck[i].y < 440
  1922.           @rp_deck[i].y += 8
  1923.           if @rp_deck[i].y > 440
  1924.             @rp_deck[i].y = 440
  1925.           end
  1926.         end
  1927.       end
  1928.     end
  1929.   end
  1930.  
  1931.   def update_ep_sprite
  1932.     @e_sprite.opacity += 4
  1933.     @p_sprite.opacity += 4
  1934.     if @e_sprite.opacity == 255 and @p_sprite.opacity == 255
  1935.       @fade_epsprite = false
  1936.     end
  1937.   end
  1938.  
  1939.   def init_splash(source)
  1940.     @source = source
  1941.     @sp_transition_duration = 60
  1942.     @splash_dir = []
  1943.     @splash_angle = []
  1944.     size = 6
  1945.     hsize = size / 2
  1946.     cells = 21600 / (size ** 2)
  1947.     cols = 120 / size
  1948.     rect = Rect.new(0, 0, size, size)
  1949.     cells.times { |i|
  1950.       rect.x = i % cols * size
  1951.       rect.y = i / cols * size
  1952.       sprite = create_special_transition_sprite(rect)
  1953.       sprite.bitmap.blt(0, 0, @source.bitmap, rect)
  1954.       sprite.x += (hsize + @source.x)
  1955.       sprite.y += (hsize + @source.y)
  1956.       sprite.ox = sprite.oy = hsize
  1957.       @sp_transition_sprites << sprite
  1958.       x = rect.x / size
  1959.       y = rect.y / size
  1960.       @splash_dir[i] = calc_splash_move_direction(x, y, cells, cols)
  1961.       @splash_angle[i] = rand(24) - 12
  1962.     }
  1963.     @source.dispose
  1964.   end
  1965.  
  1966.   def pmrand
  1967.     return (rand(2) == 0 ? 1 : -1)
  1968.   end
  1969.  
  1970.   def create_special_transition_sprite(rect)
  1971.     sprite = Sprite.new
  1972.     sprite.bitmap = Bitmap.new(rect.width, rect.height)
  1973.     sprite.x = rect.x
  1974.     sprite.y = rect.y
  1975.     sprite.z = 20000
  1976.     return sprite
  1977.   end
  1978.  
  1979.   def calc_splash_move_direction(x, y, cells, cols)
  1980.     vague = 7.2
  1981.     vx = vy = 0
  1982.     case @sp_transition_dir
  1983.     when 0
  1984.       x -= cols >> 1
  1985.       y -= (cells / cols) >> 1
  1986.       r = Math.sqrt(x ** 2 + y ** 2) / vague
  1987.       if r != 0
  1988.         vx = x / r
  1989.         vy = y / r
  1990.       else
  1991.         vx = ( x != 0 ? (x * 1.5) : (pmrand * vague) )
  1992.         vy = ( y != 0 ? (y * 1.5) : (pmrand * vague) )
  1993.       end
  1994.       vx += (rand - 0.5) * vague
  1995.       vy += (rand - 0.5) * vague
  1996.     when 2
  1997.       rows = cells / cols
  1998.       vx = (rand(50) - 25) / 10.0
  1999.       vy = 1 + vague * (rows - y) / rows * (1.0 + rand / 5.0)
  2000.     when 4
  2001.       vx = -1 - vague * (x + 1) / cols * (1.0 + rand / 5.0)
  2002.       vy = (rand(50) - 25) / 10.0
  2003.     when 6
  2004.       vx = 1 + vague * (cols - x) / cols * (1.0 + rand / 5.0)
  2005.       vy = (rand(50) - 25) / 10.0
  2006.     when 8
  2007.       rows = cells / cols
  2008.       vx = (rand(50) - 25) / 10.0
  2009.       vy = -1 - vague * (y + 1) / rows * (1.0 + rand / 5.0)
  2010.     end
  2011.     mag = 60.0 / @sp_transition_duration
  2012.     return [vx * mag, vy * mag]
  2013.   end
  2014.  
  2015.   def update_splash
  2016.     if @sp_transition_duration == 0
  2017.       finish_special_transition
  2018.       return
  2019.     end
  2020.     opacity = 384 * @sp_transition_duration / 60
  2021.     @sp_transition_sprites.each_with_index { |sprite, i|
  2022.       sprite.x += @splash_dir[i][0]
  2023.       sprite.y += @splash_dir[i][1]
  2024.       sprite.angle += @splash_angle[i]
  2025.       sprite.opacity = opacity
  2026.     }
  2027.     @sp_transition_duration -= 1
  2028.   end
  2029.  
  2030.   def finish_special_transition
  2031.     if @sp_transition_buffer != nil
  2032.       @sp_transition_buffer.dispose
  2033.       @sp_transition_buffer = nil
  2034.     end
  2035.     @splash_dir = nil
  2036.     @splash_angle = nil
  2037.     @sp_transition_sprites.each { |sprite|
  2038.       sprite.bitmap.dispose
  2039.       sprite.dispose
  2040.     }
  2041.     @sp_transition_sprites = []
  2042.     @sp_transition_duration_max = -1
  2043.     @sp_transition_duration = -1
  2044.     @re_deck[@ecard_index].dispose if !@re_deck[@ecard_index].disposed?
  2045.     @rp_deck[@card_index].dispose if !@rp_deck[@card_index].disposed?
  2046.     if @p_win+@e_win != 5 and @mode == 1      
  2047.       loop do
  2048.         if @ecard_index < 4
  2049.           @ecard_index += 1
  2050.         elsif @ecard_index == 4
  2051.           @ecard_index = 0
  2052.         end
  2053.         if !@re_deck[@ecard_index].disposed?
  2054.           break
  2055.         end
  2056.       end
  2057.       loop do
  2058.         if @card_index < 4
  2059.           @card_index += 1
  2060.         elsif @card_index == 4
  2061.           @card_index = 0
  2062.         end
  2063.         if !@rp_deck[@card_index].disposed?
  2064.           break
  2065.         end
  2066.       end
  2067.       refresh_card_x
  2068.       start_card_selection
  2069.     elsif @mode == 2
  2070.       draw_more_card
  2071.       refresh_card_x
  2072.       start_card_selection
  2073.     end
  2074.   end
  2075.  
  2076.   def terminate    
  2077.     super    
  2078.     @slash.dispose if !@slash.nil?
  2079.     @score_p.dispose
  2080.     @score_e.dispose
  2081.     @bg.dispose
  2082.     @bgintf.dispose
  2083.     for card in @rp_deck+@re_deck
  2084.       card.dispose
  2085.     end
  2086.     @day.dispose
  2087.     @bet_window.dispose
  2088.     @e_sprite.dispose
  2089.     @p_sprite.dispose
  2090.     @thedayof.dispose
  2091.     @se_win.dispose
  2092.     @sp_win.dispose
  2093.     @te.dispose if !@te.nil?
  2094.     @tp.dispose if !@tp.nil?
  2095.     @help_window.dispose
  2096.     @bet_sprite.dispose if !@bet_sprite.nil?
  2097.     @finish_window.dispose
  2098.     @report_window.dispose if @report_window != nil
  2099.     @choice_window.dispose
  2100.     @mode_window.dispose if !@mode_window.nil?
  2101.     @ach_text.dispose if @ach_text != nil
  2102.     @ac_ach_text.dispose if @ac_ach_text != nil
  2103.     @ach_text = nil
  2104.     @ac_ach_text = nil
  2105.     @combo_sprite.dispose if !@combo_sprite.nil?
  2106.     @goal_score.dispose if !@goal_score.nil?
  2107.   end
  2108. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement