Issues with a custom weather script

Discussion in 'RGSSx Script Support' started by Cherrylux, Jul 14, 2019.

  1. Cherrylux

    Cherrylux Villager Member

    Messages:
    5
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMVXA
    Hello! I am rather new with scripting, and I'm having some problems with a script I pulled online, I'll link the script bellow.
    Link: https://rpgscripts.blogspot.com/2012/08/weather-effect.html
    I keep getting the following error whenever I try to call for a weather effect:
    [​IMG](https://www.dropbox.com/s/gcp2evgu5g3o2rm/2019-07-13 (1).png?dl=0)
    "Script 'Game_Interpreter' Line 1411: NoMethodError occurred. undefined method 'weather' for nil:NilClass"
    This is how I am trying to script call:
    $game_screen.weather(11, 20, 60)
    Is the problem simply how I am trying to call in the effect? The game runs smoothly up until it reaches this call, so I am assuming (and hoping) I am just not calling it correctly. Sorry if this is a really simple issue, but I've tried calling the script multiple different ways and I'm not getting anything but the same crash.

    I didn't notice till after I had placed the script in, but it does seem to be for VX, and I'm not sure if the default scripts are very different between them. Is that the only issue? If so, is it a simple matter of tweaking or would it be too complex to reformat on my own?
    Thank you in advance for any help I can get!
     
    #1
  2. Kes

    Kes Global Moderators Global Mod

    Messages:
    20,178
    Likes Received:
    10,328
    First Language:
    English
    Primarily Uses:
    RMVXA
    VX scripts will not work in VX Ace. It's a different version of RGSS which is used. Porting it to Ace will be quite a bit of work. How much is something only a decent scripter could tell you - and that's not my skill.
     
    #2
  3. Cherrylux

    Cherrylux Villager Member

    Messages:
    5
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMVXA
    I see! Thanks for the help, it makes sense but it is a shame the compatibility isn't there. I'll just have to keep an eye out for a script for VX Ace. Thanks again! ^-^
     
    #3
  4. gstv87

    gstv87 Veteran Veteran

    Messages:
    1,674
    Likes Received:
    694
    First Language:
    Spanish
    Primarily Uses:
    RMVXA
    Code:
    #  ccoa's weather script
    #
    #  Weather Types:
    #    1 - rain
    #    2 - storm
    #    3 - snow
    #    4 - hail
    #    5 - rain with thunder and lightning
    #    6 - falling leaves (autumn)
    #    7 - blowing leaves (autumn)
    #    8 - swirling leaves (autumn)
    #    9 - falling leaves (green)
    #   10 - cherry blossom (sakura) petals
    #   11 - rose petals
    #   12 - feathers
    #   13 - blood rain
    #   14 - sparkles
    #   15 - user defined
    #   16 - blowing snow
    #   17 - meteor shower
    #   18 - falling ash
    #   19 - bubbles
    #
    #  Weather Power:
    #    An integer from 0-50.  0 = no weather, 50 = 500 sprites
    #
    #  Transition:
    #    The number of frames to "transition" the weather in
    #
    # Tone:  (optional)
    #   The RGB tone of the weather sprites.  Use as Tone.new(R, G, B, [Gr]), where R, G, and B are values from -255-255 and Gr is optional and a value from 0-255.
    #
    #  Usage:
    #    Create a call script with the following:
    #       $game_screen.weather(type, power, transition, [tone])
    #
    #  Usage of user-defined weather:
    #    Look at the following globals:
    
    $WEATHER_UPDATE = false   # the $WEATHER_IMAGES array has changed, please update
    $WEATHER_IMAGES = []      # the array of picture names to use
    $WEATHER_X = 0            # the number of pixels the image should move horizontally (positive = right, negative = left)
    $WEATHER_Y = 0            # the number of pizels the image should move vertically (positive = down, negative = up)
    $WEATHER_FADE = 0         # how much the image should fade each update (0 = no fade, 255 = fade instantly)
    $WEATHER_ANIMATED = true # whether or not the image should cycle through all the images
    
    # name of the thunder sound effect.  Change it to use a different SE
    THUNDER_SE = "Thunder1"
    
    class Game_Screen
      attr_reader :weather_tone
    
      alias ccoa_weather_clear clear
      def clear
        ccoa_weather_clear
        @weather_tone = Tone.new(0, 0, 0)
      end
    
      alias ccoa_weather_weather change_weather
      def change_weather(type, power, fadein, tone = nil)
        case type
        when 1
          type = :rain
        when 2
          type = :storm
        when 3
          type = :snow
        when 4
          type = :hail
        when 5
          type = :thunder
        when 6
          type = :fall
        when 7
          type = :fall_wind
        when 8
          type = :fall_swirl
        when 9
          type = :leaves
        when 10
          type = :cherry_blossom
        when 11
          type = :rose
        when 12
          type = :feathers
        when 13
          type = :blood
        when 14
          type = :sparkles
        when 15
          type = :user
        when 16
          type = :snow_wind
        when 17
          type = :meteor
        when 18
          type = :ash
        when 19
          type = :bubbles
        end
        ccoa_weather_weather(type, power, fadein)
        if !tone == nil
          @weather_tone = tone
        end
      end
    end
    
    class Spriteset_Weather
      attr_reader :type
      attr_reader :sprite_max
      attr_reader :ox
      attr_reader :oy
     
      def initialize(viewport = nil)
        @viewport = viewport
        @type = 0
        @power = 0
        @ox = 0
        @oy = 0
        @count = 0
        @current_pose = []
        @info = []
        @countarray = []
        @tone = Tone.new(0, 0, 0)
    
        make_bitmaps
    
        # **** ccoa ****
        for i in 1..500
          sprite = Sprite.new(viewport)
          sprite.z = 1000
          sprite.visible = false
          sprite.opacity = 0
          @sprites.push(sprite)
          @current_pose.push(0)
          @info.push(rand(50))
          @countarray.push(rand(15))
        end
      end
    
      def sprite_max
        return (@power * 5).to_i
      end
     
      def dimness
        return @power
      end
     
      def dispose
        for sprite in @sprites
          sprite.dispose
        end
        @rain_bitmap.dispose
        @storm_bitmap.dispose
        @snow_bitmap.dispose
        @hail_bitmap.dispose
        @petal_bitmap.dispose
        @blood_rain_bitmap.dispose
        for image in @autumn_leaf_bitmaps
          image.dispose
        end
        for image in @green_leaf_bitmaps
          image.dispose
        end
        for image in @rose_bitmaps
          image.dispose
        end
        for image in @feather_bitmaps
          image.dispose
        end
        for image in @sparkle_bitmaps
          image.dispose
        end
        for image in @user_bitmaps
          image.dispose
        end
        $WEATHER_UPDATE = true
      end
    
      def type=(type)
        if @type == type
          if @tone == $game_map.screen.weather_tone
            return
          end
        end
        @type = type
        @tone = $game_map.screen.weather_tone
        @thunder = false
        p @type
        case @type
        when :rain, :thunder # rain
          bitmap = @rain_bitmap
          if @type == :thunder
            @thunder = true
          end
        when :storm # storm
          bitmap = @storm_bitmap
        when :snow# snow
          bitmap = @snow_bitmap
        when :hail
          bitmap = @hail_bitmap
        when :fall# falling autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :fall_wind # blowing autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :fall_swirl # swirling autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :leaves # falling green leaves
          bitmap = @green_leaf_bitmaps[0]
        when :cherry_blossom # sakura petals
          bitmap = @petal_bitmap
        when :rose # rose petals
          bitmap = @rose_bitmaps[0]
        when :feathers # feathers
          bitmap = @feather_bitmaps[0]
        when :blood # blood rain
          bitmap = @blood_rain_bitmap
        when :sparkles # sparkles
          bitmap = @sparkle_bitmaps[0]
        when :user # user-defined
            bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
        when :snow_wind # blowing snow
          bitmap = @snow_bitmap
        when :meteor # meteors
          bitmap = @meteor_bitmap
        when :ash # falling ash
          bitmap = @ash_bitmaps[rand(@ash_bitmaps.size)]
        when :bubbles # bubbles
          bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
        else
          bitmap = nil
          @thunder = false
        end
        # **** ccoa ****
        for i in 1..sprite_max
          sprite = @sprites[i]
          if sprite != nil
            sprite.visible = (i <= sprite_max)
            if @type == :bubbles
              sprite.bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
            else
              sprite.bitmap = bitmap
            end
            sprite.tone = @tone
          end
        end
      end
    
      def ox=(ox)
        return if @ox == ox;
        @ox = ox
        for sprite in @sprites
          sprite.ox = @ox
        end
      end
    
      def oy=(oy)
        return if @oy == oy;
        @oy = oy
        for sprite in @sprites
          sprite.oy = @oy
        end
      end
    
      def power=(maxsp)
        return if maxsp == @power
        # **** ccoa ****
        @power = [[maxsp.to_i, 0].max, 500].min
        for i in 1..@power
          sprite = @sprites[i]
          if sprite != nil
            sprite.visible = (i <= @power)
          end
        end
      end
    
      def update
        return if (@type == 0 || @type == :none)
        update_screen
        for i in 1..500
          sprite = @sprites[i]
          if sprite == nil
            next
          end
          if [:rain,:thunder,:blood].include?(@type)
            sprite.x -= 2
            sprite.y += 16
            sprite.opacity -= 8
            if @thunder and ((rand(90000) - sprite_max) == 0)
              $game_map.screen.start_flash(Color.new(255, 255, 255, 255), 5)
              Audio.se_play("Audio/SE/" + THUNDER_SE)
            end
          end
          if @type == :storm
            sprite.x -= 8
            sprite.y += 16
            sprite.opacity -= 12
          end
          if @type == :snow
            sprite.x -= 2
            sprite.y += 3
            sprite.opacity -= 8
          end
          if @type == :hail
            sprite.x -= 1
            sprite.y += 18
            sprite.opacity -= 15
          end
          if @type == :fall
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
            end
            sprite.x -= 1
            sprite.y += 1
          end
          if @type == :fall_wind
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
            end
            sprite.x -= 10
            sprite.y += (rand(4) - 2)
          end
          if @type == :fall_swirl
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
            end
            if @info[i] != 0
              if @info[i] >= 1 and @info[i] <= 10
                sprite.x -= 3
                sprite.y -= 1
              elsif @info[i] >= 11 and @info[i] <= 16
                sprite.x -= 1
                sprite.y -= 2
              elsif @info[i] >= 17 and @info[i] <= 20
                sprite.y -= 3
              elsif @info[i] >= 21 and @info[i] <= 30
                sprite.y -= 2
                sprite.x += 1
              elsif @info[i] >= 31 and @info[i] <= 36
                sprite.y -= 1
                sprite.x += 3
              elsif @info[i] >= 37 and @info[i] <= 40
                sprite.x += 5
              elsif @info[i] >= 41 and @info[i] <= 46
                sprite.y += 1
                sprite.x += 3
              elsif @info[i] >= 47 and @info[i] <= 58
                sprite.y += 2
                sprite.x += 1
              elsif @info[i] >= 59 and @info[i] <= 64
                sprite.y += 3
              elsif @info[i] >= 65 and @info[i] <= 70
                sprite.x -= 1
                sprite.y += 2
              elsif @info[i] >= 71 and @info[i] <= 81
                sprite.x -= 3
                sprite.y += 1
              elsif @info[i] >= 82 and @info[i] <= 87
                sprite.x -= 5
              end
              @info[i] = (@info[i] + 1) % 88
            else
              if rand(200) == 0
                @info[i] = 1
              end
              sprite.x -= 5
              sprite.y += 1
            end
          end
          if @type == :leaves
            if @countarray[i] == 0
              @current_pose[i] = (@current_pose[i] + 1) % @green_leaf_bitmaps.size
              sprite.bitmap = @green_leaf_bitmaps[@current_pose[i]]
              @countarray[i] = rand(15)
            end
            @countarray[i] = (@countarray[i] + 1) % 15
            sprite.y += 1
          end
          if @type == :cherry_blossom
            if @info[i] < 25
              sprite.x -= 1
            else
              sprite.x += 1
            end
            @info[i] = (@info[i] + 1) % 50
            sprite.y += 1
          end
          if @type == :rose
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @rose_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @rose_bitmaps.size
            end
            if @info[i] % 2 == 0
              if @info[i] < 10
                sprite.x -= 1
              elsif
                sprite.x += 1
              end
            end
            sprite.y += 1
          end
          if @type == :feathers
            if @countarray[i] == 0
              @current_pose[i] = (@current_pose[i] + 1) % @feather_bitmaps.size
              sprite.bitmap = @feather_bitmaps[@current_pose[i]]
            end
            @countarray[i] = (@countarray[i] + 1) % 15
            if rand(100) == 0
              sprite.x -= 1
            end
            if rand(100) == 0
              sprite.y -= 1
            end
            if @info[i] < 50
              if rand(2) == 0
                sprite.x -= 1
              else
                sprite.y -= 1
              end
            else
              if rand(2) == 0
                sprite.x += 1
              else
                sprite.y += 1
              end
            end
            @info[i] = (@info[i] + 1) % 100
          end
          if @type == :sparkles
            if @countarray[i] == 0
              @current_pose[i] = (@current_pose[i] + 1) % @sparkle_bitmaps.size
              sprite.bitmap = @sparkle_bitmaps[@current_pose[i]]
            end
            @countarray[i] = (@countarray[i] + 1) % 15
            sprite.y += 1
            sprite.opacity -= 1
          end
          if @type == :user
            if $WEATHER_UPDATE
              update_user_defined
              $WEATHER_UPDATE = false
            end
            if $WEATHER_ANIMATED and @countarray[i] == 0
              return if @user_bitmaps.size == 0
              @current_pose[i] = (@current_pose[i] + 1) % @user_bitmaps.size
              sprite.bitmap = @user_bitmaps[@current_pose[i]]
            end
            sprite.x += $WEATHER_X
            sprite.y += $WEATHER_Y
            sprite.opacity -= $WEATHER_FADE
          end
          if @type == :snow_wind
            sprite.x -= 10
            sprite.y += 6
            sprite.opacity -= 4
          end
          if @type == :meteor
            if @countarray[i] > 0
              if rand(20) == 0
                sprite.bitmap = @impact_bitmap
                @countarray[i] = -5
              else
                sprite.x -= 6
                sprite.y += 10
              end
            else
              @countarray[i] += 1
              if @countarray[i] == 0
                sprite.bitmap = @meteor_bitmap
                sprite.opacity = 0
                @count_array = 1
              end
            end
          end
          if @type == :ash
            sprite.y += 2
            case @countarray[i] % 3
            when 0
              sprite.x -= 1
            when 1
              sprite.x += 1
            end
          end
          if @type == :bubbles
            switch = rand(75) + rand(75) + 1
            if @info[i] < switch / 2
              sprite.x -= 1
            else
              sprite.x += 1
            end
            @info[i] = (@info[i] + 1) % switch
            sprite.y -= 1
            if switch % 2 == 0
              sprite.opacity -= 1
            end
          end
            
          x = sprite.x - @ox
          y = sprite.y - @oy
          if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
            sprite.x = rand(800) - 50 + @ox
            sprite.y = rand(800) - 200 + @oy
            sprite.opacity = 255
          end
        end
      end
    
      def make_bitmaps
        color1 = Color.new(255, 255, 255, 255)
        color2 = Color.new(255, 255, 255, 128)
        @rain_bitmap = Bitmap.new(7, 56)
        for i in 0..6
          @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
        end
        @storm_bitmap = Bitmap.new(34, 64)
        for i in 0..31
          @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
          @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
          @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
        end
        @snow_bitmap = Bitmap.new(6, 6)
        @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
        @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
        @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
        @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
        @sprites = []
      
        blueGrey  = Color.new(215, 227, 227, 150)
        grey      = Color.new(214, 217, 217, 150)
        lightGrey = Color.new(233, 233, 233, 250)
        lightBlue = Color.new(222, 239, 243, 250)
        @hail_bitmap = Bitmap.new(4, 4)
        @hail_bitmap.fill_rect(1, 0, 2, 1, blueGrey)
        @hail_bitmap.fill_rect(0, 1, 1, 2, blueGrey)
        @hail_bitmap.fill_rect(3, 1, 1, 2, grey)
        @hail_bitmap.fill_rect(1, 3, 2, 1, grey)
        @hail_bitmap.fill_rect(1, 1, 2, 2, lightGrey)
        @hail_bitmap.set_pixel(1, 1, lightBlue)
      
      
        color3 = Color.new(255, 167, 192, 255) # light pink
        color4 = Color.new(213, 106, 136, 255) # dark pink
        @petal_bitmap = Bitmap.new(4, 4) #This creates a new bitmap that is 4 x 4 pixels
        @petal_bitmap.fill_rect(0, 3, 1, 1, color3) # this makes a 1x1 pixel "rectangle" at the 0, 3 pixel of the image (upper left corner is 0, 0)
        @petal_bitmap.fill_rect(1, 2, 1, 1, color3)
        @petal_bitmap.fill_rect(2, 1, 1, 1, color3)
        @petal_bitmap.fill_rect(3, 0, 1, 1, color3)
        @petal_bitmap.fill_rect(1, 3, 1, 1, color4)
        @petal_bitmap.fill_rect(2, 2, 1, 1, color4)
        @petal_bitmap.fill_rect(3, 1, 1, 1, color4)
      
      
        brightOrange = Color.new(248, 88, 0, 255) 
        orangeBrown  = Color.new(144, 80, 56, 255)
        burntRed     = Color.new(152, 0, 0, 255)
        paleOrange   = Color.new(232, 160, 128, 255)
        darkBrown    = Color.new(72, 40, 0, 255)
        @autumn_leaf_bitmaps = []
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        # draw the first of the leaf1 bitmaps
        @autumn_leaf_bitmaps[0].set_pixel(5, 1, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(6, 1, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(7, 1, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(3, 2, orangeBrown)
        @autumn_leaf_bitmaps[0].fill_rect(4, 2, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(6, 2, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(2, 3, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(3, 3, brightOrange)
        @autumn_leaf_bitmaps[0].fill_rect(4, 3, 2, 1, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(1, 4, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(2, 4, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(3, 4, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(1, 5, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(2, 5, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(0, 6, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(1, 6, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(0, 7, paleOrange)
      
        # draw the 2nd of the leaf1 bitmaps
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        @autumn_leaf_bitmaps[1].set_pixel(3, 0, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(7, 0, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(3, 1, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(4, 1, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(6, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(0, 2, paleOrange)
        @autumn_leaf_bitmaps[1].set_pixel(1, 2, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(2, 2, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(3, 2, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(4, 2, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(5, 2, brightOrange)
        @autumn_leaf_bitmaps[1].fill_rect(1, 3, 3, 1, orangeBrown)
        @autumn_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(6, 3, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(2, 4, burntRed)
        @autumn_leaf_bitmaps[1].fill_rect(3, 4, 3, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(6, 4, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(7, 4, darkBrown)
        @autumn_leaf_bitmaps[1].set_pixel(1, 5, orangeBrown)
        @autumn_leaf_bitmaps[1].fill_rect(2, 5, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(4, 5, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(5, 5, burntRed)
        @autumn_leaf_bitmaps[1].fill_rect(1, 6, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[1].fill_rect(4, 6, 2, 1, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(0, 7, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(5, 7, darkBrown)
      
        # draw the 3rd of the leaf1 bitmaps
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        @autumn_leaf_bitmaps[2].set_pixel(7, 1, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(6, 2, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(7, 2, orangeBrown)
        @autumn_leaf_bitmaps[2].set_pixel(5, 3, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(6, 3, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(4, 4, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(5, 4, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(6, 4, orangeBrown)
        @autumn_leaf_bitmaps[2].fill_rect(2, 5, 2, 1, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(4, 5, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(5, 5, orangeBrown)
        @autumn_leaf_bitmaps[2].set_pixel(1, 6, paleOrange)
        @autumn_leaf_bitmaps[2].fill_rect(2, 6, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(4, 6, orangeBrown)
        @autumn_leaf_bitmaps[2].set_pixel(0, 7, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(1, 7, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(2, 7, orangeBrown)
      
        # draw the 4th of the leaf1 bitmaps
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        @autumn_leaf_bitmaps[3].set_pixel(3, 0, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(7, 0, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(3, 1, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(4, 1, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(6, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(0, 2, paleOrange)
        @autumn_leaf_bitmaps[3].set_pixel(1, 2, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(2, 2, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(3, 2, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(4, 2, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(5, 2, brightOrange)
        @autumn_leaf_bitmaps[3].fill_rect(1, 3, 3, 1, orangeBrown)
        @autumn_leaf_bitmaps[3].fill_rect(4, 3, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(6, 3, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(2, 4, burntRed)
        @autumn_leaf_bitmaps[3].fill_rect(3, 4, 3, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(6, 4, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(7, 4, darkBrown)
        @autumn_leaf_bitmaps[3].set_pixel(1, 5, orangeBrown)
        @autumn_leaf_bitmaps[3].fill_rect(2, 5, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(4, 5, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(5, 5, burntRed)
        @autumn_leaf_bitmaps[3].fill_rect(1, 6, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[3].fill_rect(4, 6, 2, 1, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(0, 7, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(5, 7, darkBrown)
      
        @green_leaf_bitmaps = []
        darkGreen  = Color.new(62, 76, 31, 255)
        midGreen   = Color.new(76, 91, 43, 255)
        khaki      = Color.new(105, 114, 66, 255)
        lightGreen = Color.new(128, 136, 88, 255)
        mint       = Color.new(146, 154, 106, 255)
      
        # 1st leaf bitmap
        @green_leaf_bitmaps[0] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[0].set_pixel(1, 0, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(1, 1, midGreen)
        @green_leaf_bitmaps[0].set_pixel(2, 1, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(2, 2, khaki)
        @green_leaf_bitmaps[0].set_pixel(3, 2, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 2, khaki)
        @green_leaf_bitmaps[0].fill_rect(2, 3, 3, 1, midGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 3, khaki)
        @green_leaf_bitmaps[0].fill_rect(2, 4, 2, 1, midGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[0].set_pixel(6, 4, khaki)
        @green_leaf_bitmaps[0].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 5, khaki)
        @green_leaf_bitmaps[0].set_pixel(6, 5, lightGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 6, midGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 6, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(6, 6, lightGreen)
        @green_leaf_bitmaps[0].set_pixel(6, 7, khaki)
      
        # 2nd leaf bitmap
        @green_leaf_bitmaps[1] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[1].fill_rect(1, 1, 1, 2, midGreen)
        @green_leaf_bitmaps[1].fill_rect(2, 2, 2, 1, khaki)
        @green_leaf_bitmaps[1].set_pixel(4, 2, lightGreen)
        @green_leaf_bitmaps[1].fill_rect(2, 3, 2, 1, darkGreen)
        @green_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, lightGreen)
        @green_leaf_bitmaps[1].set_pixel(2, 4, midGreen)
        @green_leaf_bitmaps[1].set_pixel(3, 4, darkGreen)
        @green_leaf_bitmaps[1].set_pixel(4, 4, khaki)
        @green_leaf_bitmaps[1].fill_rect(5, 4, 2, 1, lightGreen)
        @green_leaf_bitmaps[1].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[1].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[1].set_pixel(5, 5, khaki)
        @green_leaf_bitmaps[1].set_pixel(6, 5, lightGreen)
        @green_leaf_bitmaps[1].set_pixel(5, 6, darkGreen)
        @green_leaf_bitmaps[1].fill_rect(6, 6, 2, 1, khaki)
      
        # 3rd leaf bitmap
        @green_leaf_bitmaps[2] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[2].set_pixel(1, 1, darkGreen)
        @green_leaf_bitmaps[2].fill_rect(1, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[2].set_pixel(2, 3, midGreen)
        @green_leaf_bitmaps[2].set_pixel(3, 3, darkGreen)
        @green_leaf_bitmaps[2].set_pixel(4, 3, midGreen)
        @green_leaf_bitmaps[2].fill_rect(2, 4, 2, 1, midGreen)
        @green_leaf_bitmaps[2].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[2].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[2].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[2].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[2].fill_rect(5, 5, 2, 1, khaki)
        @green_leaf_bitmaps[2].fill_rect(4, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[2].set_pixel(6, 6, lightGreen)
        @green_leaf_bitmaps[2].set_pixel(6, 7, khaki)
      
        # 4th leaf bitmap
        @green_leaf_bitmaps[3] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[3].fill_rect(0, 3, 1, 2, darkGreen)
        @green_leaf_bitmaps[3].set_pixel(1, 4, midGreen)
        @green_leaf_bitmaps[3].set_pixel(2, 4, khaki)
        @green_leaf_bitmaps[3].set_pixel(3, 4, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[3].set_pixel(7, 4, midGreen)
        @green_leaf_bitmaps[3].set_pixel(1, 5, darkGreen)
        @green_leaf_bitmaps[3].set_pixel(2, 5, midGreen)
        @green_leaf_bitmaps[3].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[3].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(6, 5, khaki)
        @green_leaf_bitmaps[3].set_pixel(7, 5, midGreen)
        @green_leaf_bitmaps[3].fill_rect(2, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[3].set_pixel(4, 6, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(5, 6, khaki)
        @green_leaf_bitmaps[3].set_pixel(6, 6, midGreen)
      
        # 5th leaf bitmap
        @green_leaf_bitmaps[4] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[4].set_pixel(6, 2, midGreen)
        @green_leaf_bitmaps[4].set_pixel(7, 2, darkGreen)
        @green_leaf_bitmaps[4].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[4].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[4].set_pixel(2, 4, darkGreen)
        @green_leaf_bitmaps[4].fill_rect(3, 4, 2, 1, khaki)
        @green_leaf_bitmaps[4].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[4].set_pixel(6, 4, khaki)
        @green_leaf_bitmaps[4].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[4].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[4].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[4].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[4].set_pixel(5, 5, midGreen)
        @green_leaf_bitmaps[4].set_pixel(2, 6, darkGreen)
        @green_leaf_bitmaps[4].fill_rect(3, 6, 2, 1, midGreen)
      
        # 6th leaf bitmap
        @green_leaf_bitmaps[5] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[5].fill_rect(6, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[5].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[5].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[5].set_pixel(3, 4, midGreen)
        @green_leaf_bitmaps[5].set_pixel(4, 4, khaki)
        @green_leaf_bitmaps[5].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[5].set_pixel(6, 4, mint)
        @green_leaf_bitmaps[5].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[5].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[5].fill_rect(3, 5, 2, 1, mint)
        @green_leaf_bitmaps[5].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[5].set_pixel(2, 6, midGreen)
        @green_leaf_bitmaps[5].set_pixel(3, 6, khaki)
        @green_leaf_bitmaps[5].set_pixel(4, 6, lightGreen)
      
        # 7th leaf bitmap
        @green_leaf_bitmaps[6] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[6].fill_rect(6, 1, 1, 2, midGreen)
        @green_leaf_bitmaps[6].fill_rect(4, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[6].fill_rect(6, 2, 1, 2, darkGreen)
        @green_leaf_bitmaps[6].fill_rect(3, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[6].set_pixel(5, 3, khaki)
        @green_leaf_bitmaps[6].set_pixel(2, 4, midGreen)
        @green_leaf_bitmaps[6].set_pixel(3, 4, khaki)
        @green_leaf_bitmaps[6].set_pixel(4, 4, lightGreen)
        @green_leaf_bitmaps[6].set_pixel(5, 4, midGreen)
        @green_leaf_bitmaps[6].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[6].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[6].fill_rect(3, 5, 2, 1, midGreen)
        @green_leaf_bitmaps[6].set_pixel(1, 6, darkGreen)
        @green_leaf_bitmaps[6].set_pixel(2, 6, midGreen)
      
        # 8th leaf bitmap
        @green_leaf_bitmaps[7] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[7].set_pixel(6, 1, midGreen)
        @green_leaf_bitmaps[7].fill_rect(4, 2, 3, 2, midGreen)
        @green_leaf_bitmaps[7].set_pixel(3, 3, darkGreen)
        @green_leaf_bitmaps[7].set_pixel(2, 4, darkGreen)
        @green_leaf_bitmaps[7].set_pixel(3, 4, midGreen)
        @green_leaf_bitmaps[7].fill_rect(4, 4, 2, 1, khaki)
        @green_leaf_bitmaps[7].set_pixel(1, 5, darkGreen)
        @green_leaf_bitmaps[7].set_pixel(2, 5, midGreen)
        @green_leaf_bitmaps[7].fill_rect(3, 5, 2, 1, lightGreen)
        @green_leaf_bitmaps[7].set_pixel(2, 6, midGreen)
        @green_leaf_bitmaps[7].set_pixel(3, 6, lightGreen)
      
        # 9th leaf bitmap
        @green_leaf_bitmaps[8] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[8].fill_rect(6, 1, 1, 2, midGreen)
        @green_leaf_bitmaps[8].fill_rect(4, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[8].fill_rect(6, 2, 1, 2, darkGreen)
        @green_leaf_bitmaps[8].fill_rect(3, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[8].set_pixel(5, 3, khaki)
        @green_leaf_bitmaps[8].set_pixel(2, 4, midGreen)
        @green_leaf_bitmaps[8].set_pixel(3, 4, khaki)
        @green_leaf_bitmaps[8].set_pixel(4, 4, lightGreen)
        @green_leaf_bitmaps[8].set_pixel(5, 4, midGreen)
        @green_leaf_bitmaps[8].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[8].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[8].fill_rect(3, 5, 2, 1, midGreen)
        @green_leaf_bitmaps[8].set_pixel(1, 6, darkGreen)
        @green_leaf_bitmaps[8].set_pixel(2, 6, midGreen)
      
        # 10th leaf bitmap
        @green_leaf_bitmaps[9] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[9].fill_rect(6, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[9].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[9].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[9].set_pixel(3, 4, midGreen)
        @green_leaf_bitmaps[9].set_pixel(4, 4, khaki)
        @green_leaf_bitmaps[9].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[9].set_pixel(6, 4, mint)
        @green_leaf_bitmaps[9].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[9].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[9].fill_rect(3, 5, 2, 1, mint)
        @green_leaf_bitmaps[9].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[9].set_pixel(2, 6, midGreen)
        @green_leaf_bitmaps[9].set_pixel(3, 6, khaki)
        @green_leaf_bitmaps[9].set_pixel(4, 6, lightGreen)
      
        # 11th leaf bitmap
        @green_leaf_bitmaps[10] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[10].set_pixel(6, 2, midGreen)
        @green_leaf_bitmaps[10].set_pixel(7, 2, darkGreen)
        @green_leaf_bitmaps[10].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[10].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[10].set_pixel(2, 4, darkGreen)
        @green_leaf_bitmaps[10].fill_rect(3, 4, 2, 1, khaki)
        @green_leaf_bitmaps[10].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[10].set_pixel(6, 4, khaki)
        @green_leaf_bitmaps[10].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[10].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[10].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[10].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[10].set_pixel(5, 5, midGreen)
        @green_leaf_bitmaps[10].set_pixel(2, 6, darkGreen)
        @green_leaf_bitmaps[10].fill_rect(3, 6, 2, 1, midGreen)
      
        # 12th leaf bitmap
        @green_leaf_bitmaps[11] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[11].fill_rect(0, 3, 1, 2, darkGreen)
        @green_leaf_bitmaps[11].set_pixel(1, 4, midGreen)
        @green_leaf_bitmaps[11].set_pixel(2, 4, khaki)
        @green_leaf_bitmaps[11].set_pixel(3, 4, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[11].set_pixel(7, 4, midGreen)
        @green_leaf_bitmaps[11].set_pixel(1, 5, darkGreen)
        @green_leaf_bitmaps[11].set_pixel(2, 5, midGreen)
        @green_leaf_bitmaps[11].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[11].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(6, 5, khaki)
        @green_leaf_bitmaps[11].set_pixel(7, 5, midGreen)
        @green_leaf_bitmaps[11].fill_rect(2, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[11].set_pixel(4, 6, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(5, 6, khaki)
        @green_leaf_bitmaps[11].set_pixel(6, 6, midGreen)
      
        # 13th leaf bitmap
        @green_leaf_bitmaps[12] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[12].set_pixel(1, 1, darkGreen)
        @green_leaf_bitmaps[12].fill_rect(1, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[12].set_pixel(2, 3, midGreen)
        @green_leaf_bitmaps[12].set_pixel(3, 3, darkGreen)
        @green_leaf_bitmaps[12].set_pixel(4, 3, midGreen)
        @green_leaf_bitmaps[12].fill_rect(2, 4, 2, 1, midGreen)
        @green_leaf_bitmaps[12].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[12].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[12].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[12].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[12].fill_rect(5, 5, 2, 1, khaki)
        @green_leaf_bitmaps[12].fill_rect(4, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[12].set_pixel(6, 6, lightGreen)
        @green_leaf_bitmaps[12].set_pixel(6, 7, khaki)
      
        @rose_bitmaps = []
        brightRed = Color.new(255, 0, 0, 255)
        midRed    = Color.new(179, 17, 17, 255)
        darkRed   = Color.new(141, 9, 9, 255)
      
        # 1st rose petal bitmap
        @rose_bitmaps[0] = Bitmap.new(3, 3)
        @rose_bitmaps[0].fill_rect(1, 0, 2, 1, brightRed)
        @rose_bitmaps[0].fill_rect(0, 1, 1, 2, brightRed)
        @rose_bitmaps[0].fill_rect(1, 1, 2, 2, midRed)
        @rose_bitmaps[0].set_pixel(2, 2, darkRed)
      
        # 2nd rose petal bitmap
        @rose_bitmaps[1] = Bitmap.new(3, 3)
        @rose_bitmaps[1].set_pixel(0, 1, midRed)
        @rose_bitmaps[1].set_pixel(1, 1, brightRed)
        @rose_bitmaps[1].fill_rect(1, 2, 1, 2, midRed)
      
        @feather_bitmaps = []
        white = Color.new(255, 255, 255, 255)
      
        # 1st feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(0, 2, white)
        @feather_bitmaps[0].set_pixel(1, 2, grey)
        @feather_bitmaps[0].set_pixel(2, 1, grey)
      
        # 2nd feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(0, 0, white)
        @feather_bitmaps[0].set_pixel(0, 1, grey)
        @feather_bitmaps[0].set_pixel(1, 2, grey)
      
        # 3rd feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(2, 0, white)
        @feather_bitmaps[0].set_pixel(1, 0, grey)
        @feather_bitmaps[0].set_pixel(0, 1, grey)
      
        # 4th feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(2, 2, white)
        @feather_bitmaps[0].set_pixel(2, 1, grey)
        @feather_bitmaps[0].set_pixel(1, 0, grey)
      
        @blood_rain_bitmap = Bitmap.new(7, 56)
        for i in 0..6
          @blood_rain_bitmap.fill_rect(6-i, i*8, 1, 8, darkRed)
        end
      
        @sparkle_bitmaps = []
      
        lightBlue = Color.new(181, 244, 255, 255)
        midBlue   = Color.new(126, 197, 235, 255)
        darkBlue  = Color.new(77, 136, 225, 255)
      
        # 1st sparkle bitmap
        @sparkle_bitmaps[0] = Bitmap.new(7, 7)
        @sparkle_bitmaps[0].set_pixel(3, 3, darkBlue)
      
        # 2nd sparkle bitmap
        @sparkle_bitmaps[1] = Bitmap.new(7, 7)
        @sparkle_bitmaps[1].fill_rect(3, 2, 1, 3, darkBlue)
        @sparkle_bitmaps[1].fill_rect(2, 3, 3, 1, darkBlue)
        @sparkle_bitmaps[1].set_pixel(3, 3, midBlue)
      
        # 3rd sparkle bitmap
        @sparkle_bitmaps[2] = Bitmap.new(7, 7)
        @sparkle_bitmaps[2].set_pixel(1, 1, darkBlue)
        @sparkle_bitmaps[2].set_pixel(5, 1, darkBlue)
        @sparkle_bitmaps[2].set_pixel(2, 2, midBlue)
        @sparkle_bitmaps[2].set_pixel(4, 2, midBlue)
        @sparkle_bitmaps[2].set_pixel(3, 3, lightBlue)
        @sparkle_bitmaps[2].set_pixel(2, 4, midBlue)
        @sparkle_bitmaps[2].set_pixel(4, 4, midBlue)
        @sparkle_bitmaps[2].set_pixel(1, 5, darkBlue)
        @sparkle_bitmaps[2].set_pixel(5, 5, darkBlue)
      
        # 4th sparkle bitmap
        @sparkle_bitmaps[3] = Bitmap.new(7, 7)
        @sparkle_bitmaps[3].fill_rect(3, 1, 1, 5, darkBlue)
        @sparkle_bitmaps[3].fill_rect(1, 3, 5, 1, darkBlue)
        @sparkle_bitmaps[3].fill_rect(3, 2, 1, 3, midBlue)
        @sparkle_bitmaps[3].fill_rect(2, 3, 3, 1, midBlue)
        @sparkle_bitmaps[3].set_pixel(3, 3, lightBlue)
      
        # 5th sparkle bitmap
        @sparkle_bitmaps[4] = Bitmap.new(7, 7)
        @sparkle_bitmaps[4].fill_rect(2, 2, 3, 3, midBlue)
        @sparkle_bitmaps[4].fill_rect(3, 2, 1, 3, darkBlue)
        @sparkle_bitmaps[4].fill_rect(2, 3, 3, 1, darkBlue)
        @sparkle_bitmaps[4].set_pixel(3, 3, lightBlue)
        @sparkle_bitmaps[4].set_pixel(1, 1, darkBlue)
        @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
        @sparkle_bitmaps[4].set_pixel(1, 5, darkBlue)
        @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
      
        # 6th sparkle bitmap
        @sparkle_bitmaps[5] = Bitmap.new(7, 7)
        @sparkle_bitmaps[5].fill_rect(2, 1, 3, 5, darkBlue)
        @sparkle_bitmaps[5].fill_rect(1, 2, 5, 3, darkBlue)
        @sparkle_bitmaps[5].fill_rect(2, 2, 3, 3, midBlue)
        @sparkle_bitmaps[5].fill_rect(3, 1, 1, 5, midBlue)
        @sparkle_bitmaps[5].fill_rect(1, 3, 5, 1, midBlue)
        @sparkle_bitmaps[5].fill_rect(3, 2, 1, 3, lightBlue)
        @sparkle_bitmaps[5].fill_rect(2, 3, 3, 1, lightBlue)
        @sparkle_bitmaps[5].set_pixel(3, 3, white)
      
        # 7th sparkle bitmap
        @sparkle_bitmaps[6] = Bitmap.new(7, 7)
        @sparkle_bitmaps[6].fill_rect(2, 1, 3, 5, midBlue)
        @sparkle_bitmaps[6].fill_rect(1, 2, 5, 3, midBlue)
        @sparkle_bitmaps[6].fill_rect(3, 0, 1, 7, darkBlue)
        @sparkle_bitmaps[6].fill_rect(0, 3, 7, 1, darkBlue)
        @sparkle_bitmaps[6].fill_rect(2, 2, 3, 3, lightBlue)
        @sparkle_bitmaps[6].fill_rect(3, 2, 1, 3, midBlue)
        @sparkle_bitmaps[6].fill_rect(2, 3, 3, 1, midBlue)
        @sparkle_bitmaps[6].set_pixel(3, 3, white)
      
        # Meteor bitmap
        @meteor_bitmap = Bitmap.new(14, 12)
        @meteor_bitmap.fill_rect(0, 8, 5, 4, paleOrange)
        @meteor_bitmap.fill_rect(1, 7, 6, 4, paleOrange)
        @meteor_bitmap.set_pixel(7, 8, paleOrange)
        @meteor_bitmap.fill_rect(1, 8, 2, 2, brightOrange)
        @meteor_bitmap.set_pixel(2, 7, brightOrange)
        @meteor_bitmap.fill_rect(3, 6, 2, 1, brightOrange)
        @meteor_bitmap.set_pixel(3, 8, brightOrange)
        @meteor_bitmap.set_pixel(3, 10, brightOrange)
        @meteor_bitmap.set_pixel(4, 9, brightOrange)
        @meteor_bitmap.fill_rect(5, 5, 1, 5, brightOrange)
        @meteor_bitmap.fill_rect(6, 4, 1, 5, brightOrange)
        @meteor_bitmap.fill_rect(7, 3, 1, 5, brightOrange)
        @meteor_bitmap.fill_rect(8, 6, 1, 2, brightOrange)
        @meteor_bitmap.set_pixel(9, 5, brightOrange)
        @meteor_bitmap.set_pixel(3, 8, midRed)
        @meteor_bitmap.fill_rect(4, 7, 1, 2, midRed)
        @meteor_bitmap.set_pixel(4, 5, midRed)
        @meteor_bitmap.set_pixel(5, 4, midRed)
        @meteor_bitmap.set_pixel(5, 6, midRed)
        @meteor_bitmap.set_pixel(6, 5, midRed)
        @meteor_bitmap.set_pixel(6, 7, midRed)
        @meteor_bitmap.fill_rect(7, 4, 1, 3, midRed)
        @meteor_bitmap.fill_rect(8, 3, 1, 3, midRed)
        @meteor_bitmap.fill_rect(9, 2, 1, 3, midRed)
        @meteor_bitmap.fill_rect(10, 1, 1, 3, midRed)
        @meteor_bitmap.fill_rect(11, 0, 1, 3, midRed)
        @meteor_bitmap.fill_rect(12, 0, 1, 2, midRed)
        @meteor_bitmap.set_pixel(13, 0, midRed)
      
        # impact bitmap
        @impact_bitmap = Bitmap.new(22, 11)
        @impact_bitmap.fill_rect(0, 5, 1, 2, brightOrange)
        @impact_bitmap.set_pixel(1, 4, brightOrange)
        @impact_bitmap.set_pixel(1, 6, brightOrange)
        @impact_bitmap.set_pixel(2, 3, brightOrange)
        @impact_bitmap.set_pixel(2, 7, brightOrange)
        @impact_bitmap.set_pixel(3, 2, midRed)
        @impact_bitmap.set_pixel(3, 7, midRed)
        @impact_bitmap.set_pixel(4, 2, brightOrange)
        @impact_bitmap.set_pixel(4, 8, brightOrange)
        @impact_bitmap.set_pixel(5, 2, midRed)
        @impact_bitmap.fill_rect(5, 8, 3, 1, brightOrange)
        @impact_bitmap.set_pixel(6, 1, midRed)
        @impact_bitmap.fill_rect(7, 1, 8, 1, brightOrange)
        @impact_bitmap.fill_rect(7, 9, 8, 1, midRed)
      
      
        # Ash bitmaps
        @ash_bitmaps = []
        @ash_bitmaps[0] = Bitmap.new(3, 3)
        @ash_bitmaps[0].fill_rect(0, 1, 1, 3, lightGrey)
        @ash_bitmaps[0].fill_rect(1, 0, 3, 1, lightGrey)
        @ash_bitmaps[0].set_pixel(1, 1, white)
        @ash_bitmaps[1] = Bitmap.new(3, 3)
        @ash_bitmaps[1].fill_rect(0, 1, 1, 3, grey)
        @ash_bitmaps[1].fill_rect(1, 0, 3, 1, grey)
        @ash_bitmaps[1].set_pixel(1, 1, lightGrey)
      
        # Bubble bitmaps
        @bubble_bitmaps = []
        darkBlue  = Color.new(77, 136, 225, 160)
        aqua = Color.new(197, 253, 254, 160)
        lavender = Color.new(225, 190, 244, 160)
      
        # first bubble bitmap
        @bubble_bitmaps[0] = Bitmap.new(24, 24)
        @bubble_bitmaps[0].fill_rect(0, 9, 24, 5, darkBlue)
        @bubble_bitmaps[0].fill_rect(1, 6, 22, 11, darkBlue)
        @bubble_bitmaps[0].fill_rect(2, 5, 20, 13, darkBlue)
        @bubble_bitmaps[0].fill_rect(3, 4, 18, 15, darkBlue)
        @bubble_bitmaps[0].fill_rect(4, 3, 16, 17, darkBlue)
        @bubble_bitmaps[0].fill_rect(5, 2, 14, 19, darkBlue)
        @bubble_bitmaps[0].fill_rect(6, 1, 12, 21, darkBlue)
        @bubble_bitmaps[0].fill_rect(9, 0, 5, 24, darkBlue)
        @bubble_bitmaps[0].fill_rect(2, 11, 20, 4, aqua)
        @bubble_bitmaps[0].fill_rect(3, 7, 18, 10, aqua)
        @bubble_bitmaps[0].fill_rect(4, 6, 16, 12, aqua)
        @bubble_bitmaps[0].fill_rect(5, 5, 14, 14, aqua)
        @bubble_bitmaps[0].fill_rect(6, 4, 12, 16, aqua)
        @bubble_bitmaps[0].fill_rect(9, 2, 4, 20, aqua)
        @bubble_bitmaps[0].fill_rect(5, 10, 1, 7, lavender)
        @bubble_bitmaps[0].fill_rect(6, 14, 1, 5, lavender)
        @bubble_bitmaps[0].fill_rect(7, 15, 1, 4, lavender)
        @bubble_bitmaps[0].fill_rect(8, 16, 1, 4, lavender)
        @bubble_bitmaps[0].fill_rect(9, 17, 1, 3, lavender)
        @bubble_bitmaps[0].fill_rect(10, 18, 4, 3, lavender)
        @bubble_bitmaps[0].fill_rect(14, 18, 1, 2, lavender)
        @bubble_bitmaps[0].fill_rect(13, 5, 4, 4, white)
        @bubble_bitmaps[0].fill_rect(14, 4, 2, 1, white)
        @bubble_bitmaps[0].set_pixel(17, 6, white)
      
        # second bubble bitmap
        @bubble_bitmaps[1] = Bitmap.new(14, 15)
        @bubble_bitmaps[1].fill_rect(0, 4, 14, 7, darkBlue)
        @bubble_bitmaps[1].fill_rect(1, 3, 12, 9, darkBlue)
        @bubble_bitmaps[1].fill_rect(2, 2, 10, 11, darkBlue)
        @bubble_bitmaps[1].fill_rect(3, 1, 8, 13, darkBlue)
        @bubble_bitmaps[1].fill_rect(5, 0, 4, 15, darkBlue)
        @bubble_bitmaps[1].fill_rect(1, 5, 12, 4, aqua)
        @bubble_bitmaps[1].fill_rect(2, 4, 10, 6, aqua)
        @bubble_bitmaps[1].fill_rect(3, 3, 8, 8, aqua)
        @bubble_bitmaps[1].fill_rect(4, 2, 6, 10, aqua)
        @bubble_bitmaps[1].fill_rect(1, 5, 12, 4, aqua)
        @bubble_bitmaps[1].fill_rect(3, 9, 1, 2, lavender)
        @bubble_bitmaps[1].fill_rect(4, 10, 1, 2, lavender)
        @bubble_bitmaps[1].fill_rect(5, 11, 4, 1, lavender)
        @bubble_bitmaps[1].fill_rect(6, 12, 2, 1, white)
        @bubble_bitmaps[1].fill_rect(8, 3, 2, 2, white)
        @bubble_bitmaps[1].set_pixel(7, 4, white)
        @bubble_bitmaps[1].set_pixel(8, 5, white)
      
        @user_bitmaps = []
        update_user_defined
      end
    
      def update_user_defined
        for image in @user_bitmaps
          image.dispose
        end
      
        #user-defined bitmaps
        for name in $WEATHER_IMAGES
          @user_bitmaps.push(Cache.picture(name))
        end
        for sprite in @sprites
          sprite.bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
        end
      end
    end
    

    this works (kinda)
    I fixed the crash, but now there's a bug I can't pinpoint, where if you cycle the weathers through a script call the first one (rain) fails to render the first time around, but it works the second time.
    I'm tired to debug it 100%, but it works, as long as you don't use rain without refreshing it.

    the major changes involved making each weather type a symbol to fit the Ace structure, and fixing the overrides to the default weather system (the plugin wasn't updating the screen tone correctly)
     
    #4
  5. tv.ghost

    tv.ghost Veteran Veteran

    Messages:
    284
    Likes Received:
    85
    First Language:
    English
    Primarily Uses:
    RMVXA
    Tried a bunch of variants on the script call ( $game_screen.weather(type, power, transition, [tone]) ), including $game_map.screen.weather, screen.weather, screen_weather, using :name for the weather type, setting the transition value to 0, etc... and none seem to work.
    What is this script's script call format set to now?
     
    #5
  6. gstv87

    gstv87 Veteran Veteran

    Messages:
    1,674
    Likes Received:
    694
    First Language:
    Spanish
    Primarily Uses:
    RMVXA
    $game_map.screen.change_weather.

    so it's compatible with Ace's own call.
     
    #6
    tv.ghost likes this.
  7. tv.ghost

    tv.ghost Veteran Veteran

    Messages:
    284
    Likes Received:
    85
    First Language:
    English
    Primarily Uses:
    RMVXA
    Modified the def type=(type) section to remove that first conditional branch; that should get rid of the weather startup issue.
    Only tested it for a few minutes with a handful of effects.

    Code:
    #  ccoa's weather script
    #  VX Ace conversion by gstv87, edited by TV.Ghost
    #  Link (VX): https://save-point.org/thread-1777.html
    #  - - -
    #  Weather Types:
    #    1 - rain
    #    2 - storm
    #    3 - snow
    #    4 - hail
    #    5 - rain with thunder and lightning
    #    6 - falling leaves (autumn)
    #    7 - blowing leaves (autumn)
    #    8 - swirling leaves (autumn)
    #    9 - falling leaves (green)
    #   10 - cherry blossom (sakura) petals
    #   11 - rose petals
    #   12 - feathers
    #   13 - blood rain
    #   14 - sparkles
    #   15 - user defined
    #   16 - blowing snow
    #   17 - meteor shower
    #   18 - falling ash
    #   19 - bubbles
    #
    #  Weather Power:
    #    An integer from 0-50.  0 = no weather, 50 = 500 sprites
    #
    #  Transition:
    #    The number of frames to "transition" the weather in
    #
    #  Tone: (optional)
    #    The RGB tone of the weather sprites. 
    #    Use as Tone.new(R, G, B, [Gr]), where R, G, and B are values from -255-255
    #    and Gr is optional and a value from 0-255.
    #
    #  Usage:
    #    Create a call script with the following:
    #       $game_map.screen.change_weather(type, power, transition, [tone])
    #
    #  Usage of user-defined weather:
    #    Look at the following globals:
    
    $WEATHER_UPDATE = false   # the $WEATHER_IMAGES array has changed, please update
    $WEATHER_IMAGES = []      # the array of picture names to use
    $WEATHER_X = 0            # the number of pixels the image should move horizontally (positive = right, negative = left)
    $WEATHER_Y = 0            # the number of pizels the image should move vertically (positive = down, negative = up)
    $WEATHER_FADE = 0         # how much the image should fade each update (0 = no fade, 255 = fade instantly)
    $WEATHER_ANIMATED = true # whether or not the image should cycle through all the images
    
    # name of the thunder sound effect.  Change it to use a different SE
    THUNDER_SE = "Thunder1"
    
    class Game_Screen
      attr_reader :weather_tone
    
      alias ccoa_weather_clear clear
      def clear
        ccoa_weather_clear
        @weather_tone = Tone.new(0, 0, 0)
      end
    
      alias ccoa_weather_weather change_weather
      def change_weather(type, power, fadein, tone = nil)
        case type
        when 0
          type = :none
        when 1
          type = :rain
        when 2
          type = :storm
        when 3
          type = :snow
        when 4
          type = :hail
        when 5
          type = :thunder
        when 6
          type = :fall
        when 7
          type = :fall_wind
        when 8
          type = :fall_swirl
        when 9
          type = :leaves
        when 10
          type = :cherry_blossom
        when 11
          type = :rose
        when 12
          type = :feathers
        when 13
          type = :blood
        when 14
          type = :sparkles
        when 15
          type = :user
        when 16
          type = :snow_wind
        when 17
          type = :meteor
        when 18
          type = :ash
        when 19
          type = :bubbles
        end
        ccoa_weather_weather(type, power, fadein)
        if !tone == nil
          @weather_tone = tone
        end
      end
    end
    
    class Spriteset_Weather
      attr_reader :type
      attr_reader :sprite_max
      attr_reader :ox
      attr_reader :oy
     
      def initialize(viewport = nil)
        @viewport = viewport
        @type = 0
        @power = 0
        @ox = 0
        @oy = 0
        @count = 0
        @current_pose = []
        @info = []
        @countarray = []
        @tone = Tone.new(0, 0, 0)
    
        make_bitmaps
    
        # **** ccoa ****
        for i in 1..500
          sprite = Sprite.new(viewport)
          sprite.z = 1000
          sprite.visible = false
          sprite.opacity = 0
          @sprites.push(sprite)
          @current_pose.push(0)
          @info.push(rand(50))
          @countarray.push(rand(15))
        end
      end
    
      def sprite_max
        return (@power * 5).to_i
      end
     
      def dimness
        return @power
      end
     
      def dispose
        for sprite in @sprites
          sprite.dispose
        end
        @rain_bitmap.dispose
        @storm_bitmap.dispose
        @snow_bitmap.dispose
        @hail_bitmap.dispose
        @petal_bitmap.dispose
        @blood_rain_bitmap.dispose
        for image in @autumn_leaf_bitmaps
          image.dispose
        end
        for image in @green_leaf_bitmaps
          image.dispose
        end
        for image in @rose_bitmaps
          image.dispose
        end
        for image in @feather_bitmaps
          image.dispose
        end
        for image in @sparkle_bitmaps
          image.dispose
        end
        for image in @user_bitmaps
          image.dispose
        end
    #~     $WEATHER_UPDATE = true
      end
    
      def type=(type)
        @type = type
        @tone = $game_map.screen.weather_tone
        @thunder = false
        #p @type ## -console debug
        case @type
        when :rain, :thunder # rain
          bitmap = @rain_bitmap
          if @type == :thunder
            @thunder = true
          end
        when :storm # storm
          bitmap = @storm_bitmap
        when :snow# snow
          bitmap = @snow_bitmap
        when :hail
          bitmap = @hail_bitmap
        when :fall# falling autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :fall_wind # blowing autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :fall_swirl # swirling autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :leaves # falling green leaves
          bitmap = @green_leaf_bitmaps[0]
        when :cherry_blossom # sakura petals
          bitmap = @petal_bitmap
        when :rose # rose petals
          bitmap = @rose_bitmaps[0]
        when :feathers # feathers
          bitmap = @feather_bitmaps[0]
        when :blood # blood rain
          bitmap = @blood_rain_bitmap
        when :sparkles # sparkles
          bitmap = @sparkle_bitmaps[0]
        when :user # user-defined
            bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
        when :snow_wind # blowing snow
          bitmap = @snow_bitmap
        when :meteor # meteors
          bitmap = @meteor_bitmap
        when :ash # falling ash
          bitmap = @ash_bitmaps[rand(@ash_bitmaps.size)]
        when :bubbles # bubbles
          bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
        else
          bitmap = nil
          @thunder = false
        end
        # **** ccoa ****
        for i in 1..sprite_max
          sprite = @sprites[i]
          if sprite != nil
            sprite.visible = (i <= sprite_max)
            if @type == :bubbles
              sprite.bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
            else
              sprite.bitmap = bitmap
            end
            sprite.tone = @tone
          end
        end
      end
    
      def ox=(ox)
        return if @ox == ox;
        @ox = ox
        for sprite in @sprites
          sprite.ox = @ox
        end
      end
    
      def oy=(oy)
        return if @oy == oy;
        @oy = oy
        for sprite in @sprites
          sprite.oy = @oy
        end
      end
    
      def power=(maxsp)
        return if maxsp == @power
        # **** ccoa ****
        @power = [[maxsp.to_i, 0].max, 500].min
        for i in 1..@power
          sprite = @sprites[i]
          if sprite != nil
            sprite.visible = (i <= @power)
          end
        end
      end
    
      def update
        return if (@type == 0 || @type == :none)
        update_screen
        for i in 1..500
          sprite = @sprites[i]
          if sprite == nil
            next
          end
          if [:rain,:thunder,:blood].include?(@type)
            sprite.x -= 2
            sprite.y += 16
            sprite.opacity -= 8
            if @thunder and ((rand(90000) - sprite_max) == 0)
              $game_map.screen.start_flash(Color.new(255, 255, 255, 255), 5)
              Audio.se_play("Audio/SE/" + THUNDER_SE)
            end
          end
          if @type == :storm
            sprite.x -= 8
            sprite.y += 16
            sprite.opacity -= 12
          end
          if @type == :snow
            sprite.x -= 2
            sprite.y += 3
            sprite.opacity -= 8
          end
          if @type == :hail
            sprite.x -= 1
            sprite.y += 18
            sprite.opacity -= 15
          end
          if @type == :fall
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
            end
            sprite.x -= 1
            sprite.y += 1
          end
          if @type == :fall_wind
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
            end
            sprite.x -= 10
            sprite.y += (rand(4) - 2)
          end
          if @type == :fall_swirl
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @autumn_leaf_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @autumn_leaf_bitmaps.size
            end
            if @info[i] != 0
              if @info[i] >= 1 and @info[i] <= 10
                sprite.x -= 3
                sprite.y -= 1
              elsif @info[i] >= 11 and @info[i] <= 16
                sprite.x -= 1
                sprite.y -= 2
              elsif @info[i] >= 17 and @info[i] <= 20
                sprite.y -= 3
              elsif @info[i] >= 21 and @info[i] <= 30
                sprite.y -= 2
                sprite.x += 1
              elsif @info[i] >= 31 and @info[i] <= 36
                sprite.y -= 1
                sprite.x += 3
              elsif @info[i] >= 37 and @info[i] <= 40
                sprite.x += 5
              elsif @info[i] >= 41 and @info[i] <= 46
                sprite.y += 1
                sprite.x += 3
              elsif @info[i] >= 47 and @info[i] <= 58
                sprite.y += 2
                sprite.x += 1
              elsif @info[i] >= 59 and @info[i] <= 64
                sprite.y += 3
              elsif @info[i] >= 65 and @info[i] <= 70
                sprite.x -= 1
                sprite.y += 2
              elsif @info[i] >= 71 and @info[i] <= 81
                sprite.x -= 3
                sprite.y += 1
              elsif @info[i] >= 82 and @info[i] <= 87
                sprite.x -= 5
              end
              @info[i] = (@info[i] + 1) % 88
            else
              if rand(200) == 0
                @info[i] = 1
              end
              sprite.x -= 5
              sprite.y += 1
            end
          end
          if @type == :leaves
            if @countarray[i] == 0
              @current_pose[i] = (@current_pose[i] + 1) % @green_leaf_bitmaps.size
              sprite.bitmap = @green_leaf_bitmaps[@current_pose[i]]
              @countarray[i] = rand(15)
            end
            @countarray[i] = (@countarray[i] + 1) % 15
            sprite.y += 1
          end
          if @type == :cherry_blossom
            if @info[i] < 25
              sprite.x -= 1
            else
              sprite.x += 1
            end
            @info[i] = (@info[i] + 1) % 50
            sprite.y += 1
          end
          if @type == :rose
            @count = rand(20)
            if @count == 0
              sprite.bitmap = @rose_bitmaps[@current_pose[i]]
              @current_pose[i] = (@current_pose[i] + 1) % @rose_bitmaps.size
            end
            if @info[i] % 2 == 0
              if @info[i] < 10
                sprite.x -= 1
              elsif
                sprite.x += 1
              end
            end
            sprite.y += 1
          end
          if @type == :feathers
            if @countarray[i] == 0
              @current_pose[i] = (@current_pose[i] + 1) % @feather_bitmaps.size
              sprite.bitmap = @feather_bitmaps[@current_pose[i]]
            end
            @countarray[i] = (@countarray[i] + 1) % 15
            if rand(100) == 0
              sprite.x -= 1
            end
            if rand(100) == 0
              sprite.y -= 1
            end
            if @info[i] < 50
              if rand(2) == 0
                sprite.x -= 1
              else
                sprite.y -= 1
              end
            else
              if rand(2) == 0
                sprite.x += 1
              else
                sprite.y += 1
              end
            end
            @info[i] = (@info[i] + 1) % 100
          end
          if @type == :sparkles
            if @countarray[i] == 0
              @current_pose[i] = (@current_pose[i] + 1) % @sparkle_bitmaps.size
              sprite.bitmap = @sparkle_bitmaps[@current_pose[i]]
            end
            @countarray[i] = (@countarray[i] + 1) % 15
            sprite.y += 1
            sprite.opacity -= 1
          end
          if @type == :user
            if $WEATHER_UPDATE
              update_user_defined
              $WEATHER_UPDATE = false
            end
            if $WEATHER_ANIMATED and @countarray[i] == 0
              return if @user_bitmaps.size == 0
              @current_pose[i] = (@current_pose[i] + 1) % @user_bitmaps.size
              sprite.bitmap = @user_bitmaps[@current_pose[i]]
            end
            sprite.x += $WEATHER_X
            sprite.y += $WEATHER_Y
            sprite.opacity -= $WEATHER_FADE
          end
          if @type == :snow_wind
            sprite.x -= 10
            sprite.y += 6
            sprite.opacity -= 4
          end
          if @type == :meteor
            if @countarray[i] > 0
              if rand(20) == 0
                sprite.bitmap = @impact_bitmap
                @countarray[i] = -5
              else
                sprite.x -= 6
                sprite.y += 10
              end
            else
              @countarray[i] += 1
              if @countarray[i] == 0
                sprite.bitmap = @meteor_bitmap
                sprite.opacity = 0
                @count_array = 1
              end
            end
          end
          if @type == :ash
            sprite.y += 2
            case @countarray[i] % 3
            when 0
              sprite.x -= 1
            when 1
              sprite.x += 1
            end
          end
          if @type == :bubbles
            switch = rand(75) + rand(75) + 1
            if @info[i] < switch / 2
              sprite.x -= 1
            else
              sprite.x += 1
            end
            @info[i] = (@info[i] + 1) % switch
            sprite.y -= 1
            if switch % 2 == 0
              sprite.opacity -= 1
            end
          end
            
          x = sprite.x - @ox
          y = sprite.y - @oy
          if sprite.opacity < 64 or x < -50 or x > 750 or y < -300 or y > 500
            sprite.x = rand(800) - 50 + @ox
            sprite.y = rand(800) - 200 + @oy
            sprite.opacity = 255
          end
        end
      end
    
      def make_bitmaps
        color1 = Color.new(255, 255, 255, 255)
        color2 = Color.new(255, 255, 255, 128)
        @rain_bitmap = Bitmap.new(7, 56)
        for i in 0..6
          @rain_bitmap.fill_rect(6-i, i*8, 1, 8, color1)
        end
        @storm_bitmap = Bitmap.new(34, 64)
        for i in 0..31
          @storm_bitmap.fill_rect(33-i, i*2, 1, 2, color2)
          @storm_bitmap.fill_rect(32-i, i*2, 1, 2, color1)
          @storm_bitmap.fill_rect(31-i, i*2, 1, 2, color2)
        end
        @snow_bitmap = Bitmap.new(6, 6)
        @snow_bitmap.fill_rect(0, 1, 6, 4, color2)
        @snow_bitmap.fill_rect(1, 0, 4, 6, color2)
        @snow_bitmap.fill_rect(1, 2, 4, 2, color1)
        @snow_bitmap.fill_rect(2, 1, 2, 4, color1)
        @sprites = []
     
        blueGrey  = Color.new(215, 227, 227, 150)
        grey      = Color.new(214, 217, 217, 150)
        lightGrey = Color.new(233, 233, 233, 250)
        lightBlue = Color.new(222, 239, 243, 250)
        @hail_bitmap = Bitmap.new(4, 4)
        @hail_bitmap.fill_rect(1, 0, 2, 1, blueGrey)
        @hail_bitmap.fill_rect(0, 1, 1, 2, blueGrey)
        @hail_bitmap.fill_rect(3, 1, 1, 2, grey)
        @hail_bitmap.fill_rect(1, 3, 2, 1, grey)
        @hail_bitmap.fill_rect(1, 1, 2, 2, lightGrey)
        @hail_bitmap.set_pixel(1, 1, lightBlue)
     
     
        color3 = Color.new(255, 167, 192, 255) # light pink
        color4 = Color.new(213, 106, 136, 255) # dark pink
        @petal_bitmap = Bitmap.new(4, 4) #This creates a new bitmap that is 4 x 4 pixels
        @petal_bitmap.fill_rect(0, 3, 1, 1, color3) # this makes a 1x1 pixel "rectangle" at the 0, 3 pixel of the image (upper left corner is 0, 0)
        @petal_bitmap.fill_rect(1, 2, 1, 1, color3)
        @petal_bitmap.fill_rect(2, 1, 1, 1, color3)
        @petal_bitmap.fill_rect(3, 0, 1, 1, color3)
        @petal_bitmap.fill_rect(1, 3, 1, 1, color4)
        @petal_bitmap.fill_rect(2, 2, 1, 1, color4)
        @petal_bitmap.fill_rect(3, 1, 1, 1, color4)
     
     
        brightOrange = Color.new(248, 88, 0, 255)
        orangeBrown  = Color.new(144, 80, 56, 255)
        burntRed     = Color.new(152, 0, 0, 255)
        paleOrange   = Color.new(232, 160, 128, 255)
        darkBrown    = Color.new(72, 40, 0, 255)
        @autumn_leaf_bitmaps = []
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        # draw the first of the leaf1 bitmaps
        @autumn_leaf_bitmaps[0].set_pixel(5, 1, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(6, 1, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(7, 1, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(3, 2, orangeBrown)
        @autumn_leaf_bitmaps[0].fill_rect(4, 2, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(6, 2, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(2, 3, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(3, 3, brightOrange)
        @autumn_leaf_bitmaps[0].fill_rect(4, 3, 2, 1, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(1, 4, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(2, 4, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(3, 4, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(1, 5, brightOrange)
        @autumn_leaf_bitmaps[0].set_pixel(2, 5, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(0, 6, orangeBrown)
        @autumn_leaf_bitmaps[0].set_pixel(1, 6, paleOrange)
        @autumn_leaf_bitmaps[0].set_pixel(0, 7, paleOrange)
     
        # draw the 2nd of the leaf1 bitmaps
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        @autumn_leaf_bitmaps[1].set_pixel(3, 0, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(7, 0, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(3, 1, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(4, 1, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(6, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(0, 2, paleOrange)
        @autumn_leaf_bitmaps[1].set_pixel(1, 2, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(2, 2, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(3, 2, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(4, 2, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(5, 2, brightOrange)
        @autumn_leaf_bitmaps[1].fill_rect(1, 3, 3, 1, orangeBrown)
        @autumn_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(6, 3, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(2, 4, burntRed)
        @autumn_leaf_bitmaps[1].fill_rect(3, 4, 3, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(6, 4, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(7, 4, darkBrown)
        @autumn_leaf_bitmaps[1].set_pixel(1, 5, orangeBrown)
        @autumn_leaf_bitmaps[1].fill_rect(2, 5, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(4, 5, orangeBrown)
        @autumn_leaf_bitmaps[1].set_pixel(5, 5, burntRed)
        @autumn_leaf_bitmaps[1].fill_rect(1, 6, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[1].fill_rect(4, 6, 2, 1, burntRed)
        @autumn_leaf_bitmaps[1].set_pixel(0, 7, brightOrange)
        @autumn_leaf_bitmaps[1].set_pixel(5, 7, darkBrown)
     
        # draw the 3rd of the leaf1 bitmaps
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        @autumn_leaf_bitmaps[2].set_pixel(7, 1, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(6, 2, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(7, 2, orangeBrown)
        @autumn_leaf_bitmaps[2].set_pixel(5, 3, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(6, 3, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(4, 4, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(5, 4, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(6, 4, orangeBrown)
        @autumn_leaf_bitmaps[2].fill_rect(2, 5, 2, 1, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(4, 5, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(5, 5, orangeBrown)
        @autumn_leaf_bitmaps[2].set_pixel(1, 6, paleOrange)
        @autumn_leaf_bitmaps[2].fill_rect(2, 6, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(4, 6, orangeBrown)
        @autumn_leaf_bitmaps[2].set_pixel(0, 7, paleOrange)
        @autumn_leaf_bitmaps[2].set_pixel(1, 7, brightOrange)
        @autumn_leaf_bitmaps[2].set_pixel(2, 7, orangeBrown)
     
        # draw the 4th of the leaf1 bitmaps
        @autumn_leaf_bitmaps.push(Bitmap.new(8, 8))
        @autumn_leaf_bitmaps[3].set_pixel(3, 0, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(7, 0, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(3, 1, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(4, 1, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(6, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(0, 2, paleOrange)
        @autumn_leaf_bitmaps[3].set_pixel(1, 2, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(2, 2, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(3, 2, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(4, 2, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(5, 2, brightOrange)
        @autumn_leaf_bitmaps[3].fill_rect(1, 3, 3, 1, orangeBrown)
        @autumn_leaf_bitmaps[3].fill_rect(4, 3, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(6, 3, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(2, 4, burntRed)
        @autumn_leaf_bitmaps[3].fill_rect(3, 4, 3, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(6, 4, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(7, 4, darkBrown)
        @autumn_leaf_bitmaps[3].set_pixel(1, 5, orangeBrown)
        @autumn_leaf_bitmaps[3].fill_rect(2, 5, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(4, 5, orangeBrown)
        @autumn_leaf_bitmaps[3].set_pixel(5, 5, burntRed)
        @autumn_leaf_bitmaps[3].fill_rect(1, 6, 2, 1, brightOrange)
        @autumn_leaf_bitmaps[3].fill_rect(4, 6, 2, 1, burntRed)
        @autumn_leaf_bitmaps[3].set_pixel(0, 7, brightOrange)
        @autumn_leaf_bitmaps[3].set_pixel(5, 7, darkBrown)
     
        @green_leaf_bitmaps = []
        darkGreen  = Color.new(62, 76, 31, 255)
        midGreen   = Color.new(76, 91, 43, 255)
        khaki      = Color.new(105, 114, 66, 255)
        lightGreen = Color.new(128, 136, 88, 255)
        mint       = Color.new(146, 154, 106, 255)
     
        # 1st leaf bitmap
        @green_leaf_bitmaps[0] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[0].set_pixel(1, 0, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(1, 1, midGreen)
        @green_leaf_bitmaps[0].set_pixel(2, 1, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(2, 2, khaki)
        @green_leaf_bitmaps[0].set_pixel(3, 2, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 2, khaki)
        @green_leaf_bitmaps[0].fill_rect(2, 3, 3, 1, midGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 3, khaki)
        @green_leaf_bitmaps[0].fill_rect(2, 4, 2, 1, midGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[0].set_pixel(6, 4, khaki)
        @green_leaf_bitmaps[0].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 5, khaki)
        @green_leaf_bitmaps[0].set_pixel(6, 5, lightGreen)
        @green_leaf_bitmaps[0].set_pixel(4, 6, midGreen)
        @green_leaf_bitmaps[0].set_pixel(5, 6, darkGreen)
        @green_leaf_bitmaps[0].set_pixel(6, 6, lightGreen)
        @green_leaf_bitmaps[0].set_pixel(6, 7, khaki)
     
        # 2nd leaf bitmap
        @green_leaf_bitmaps[1] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[1].fill_rect(1, 1, 1, 2, midGreen)
        @green_leaf_bitmaps[1].fill_rect(2, 2, 2, 1, khaki)
        @green_leaf_bitmaps[1].set_pixel(4, 2, lightGreen)
        @green_leaf_bitmaps[1].fill_rect(2, 3, 2, 1, darkGreen)
        @green_leaf_bitmaps[1].fill_rect(4, 3, 2, 1, lightGreen)
        @green_leaf_bitmaps[1].set_pixel(2, 4, midGreen)
        @green_leaf_bitmaps[1].set_pixel(3, 4, darkGreen)
        @green_leaf_bitmaps[1].set_pixel(4, 4, khaki)
        @green_leaf_bitmaps[1].fill_rect(5, 4, 2, 1, lightGreen)
        @green_leaf_bitmaps[1].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[1].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[1].set_pixel(5, 5, khaki)
        @green_leaf_bitmaps[1].set_pixel(6, 5, lightGreen)
        @green_leaf_bitmaps[1].set_pixel(5, 6, darkGreen)
        @green_leaf_bitmaps[1].fill_rect(6, 6, 2, 1, khaki)
     
        # 3rd leaf bitmap
        @green_leaf_bitmaps[2] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[2].set_pixel(1, 1, darkGreen)
        @green_leaf_bitmaps[2].fill_rect(1, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[2].set_pixel(2, 3, midGreen)
        @green_leaf_bitmaps[2].set_pixel(3, 3, darkGreen)
        @green_leaf_bitmaps[2].set_pixel(4, 3, midGreen)
        @green_leaf_bitmaps[2].fill_rect(2, 4, 2, 1, midGreen)
        @green_leaf_bitmaps[2].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[2].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[2].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[2].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[2].fill_rect(5, 5, 2, 1, khaki)
        @green_leaf_bitmaps[2].fill_rect(4, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[2].set_pixel(6, 6, lightGreen)
        @green_leaf_bitmaps[2].set_pixel(6, 7, khaki)
     
        # 4th leaf bitmap
        @green_leaf_bitmaps[3] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[3].fill_rect(0, 3, 1, 2, darkGreen)
        @green_leaf_bitmaps[3].set_pixel(1, 4, midGreen)
        @green_leaf_bitmaps[3].set_pixel(2, 4, khaki)
        @green_leaf_bitmaps[3].set_pixel(3, 4, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[3].set_pixel(7, 4, midGreen)
        @green_leaf_bitmaps[3].set_pixel(1, 5, darkGreen)
        @green_leaf_bitmaps[3].set_pixel(2, 5, midGreen)
        @green_leaf_bitmaps[3].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[3].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(6, 5, khaki)
        @green_leaf_bitmaps[3].set_pixel(7, 5, midGreen)
        @green_leaf_bitmaps[3].fill_rect(2, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[3].set_pixel(4, 6, lightGreen)
        @green_leaf_bitmaps[3].set_pixel(5, 6, khaki)
        @green_leaf_bitmaps[3].set_pixel(6, 6, midGreen)
     
        # 5th leaf bitmap
        @green_leaf_bitmaps[4] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[4].set_pixel(6, 2, midGreen)
        @green_leaf_bitmaps[4].set_pixel(7, 2, darkGreen)
        @green_leaf_bitmaps[4].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[4].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[4].set_pixel(2, 4, darkGreen)
        @green_leaf_bitmaps[4].fill_rect(3, 4, 2, 1, khaki)
        @green_leaf_bitmaps[4].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[4].set_pixel(6, 4, khaki)
        @green_leaf_bitmaps[4].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[4].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[4].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[4].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[4].set_pixel(5, 5, midGreen)
        @green_leaf_bitmaps[4].set_pixel(2, 6, darkGreen)
        @green_leaf_bitmaps[4].fill_rect(3, 6, 2, 1, midGreen)
     
        # 6th leaf bitmap
        @green_leaf_bitmaps[5] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[5].fill_rect(6, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[5].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[5].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[5].set_pixel(3, 4, midGreen)
        @green_leaf_bitmaps[5].set_pixel(4, 4, khaki)
        @green_leaf_bitmaps[5].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[5].set_pixel(6, 4, mint)
        @green_leaf_bitmaps[5].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[5].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[5].fill_rect(3, 5, 2, 1, mint)
        @green_leaf_bitmaps[5].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[5].set_pixel(2, 6, midGreen)
        @green_leaf_bitmaps[5].set_pixel(3, 6, khaki)
        @green_leaf_bitmaps[5].set_pixel(4, 6, lightGreen)
     
        # 7th leaf bitmap
        @green_leaf_bitmaps[6] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[6].fill_rect(6, 1, 1, 2, midGreen)
        @green_leaf_bitmaps[6].fill_rect(4, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[6].fill_rect(6, 2, 1, 2, darkGreen)
        @green_leaf_bitmaps[6].fill_rect(3, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[6].set_pixel(5, 3, khaki)
        @green_leaf_bitmaps[6].set_pixel(2, 4, midGreen)
        @green_leaf_bitmaps[6].set_pixel(3, 4, khaki)
        @green_leaf_bitmaps[6].set_pixel(4, 4, lightGreen)
        @green_leaf_bitmaps[6].set_pixel(5, 4, midGreen)
        @green_leaf_bitmaps[6].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[6].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[6].fill_rect(3, 5, 2, 1, midGreen)
        @green_leaf_bitmaps[6].set_pixel(1, 6, darkGreen)
        @green_leaf_bitmaps[6].set_pixel(2, 6, midGreen)
     
        # 8th leaf bitmap
        @green_leaf_bitmaps[7] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[7].set_pixel(6, 1, midGreen)
        @green_leaf_bitmaps[7].fill_rect(4, 2, 3, 2, midGreen)
        @green_leaf_bitmaps[7].set_pixel(3, 3, darkGreen)
        @green_leaf_bitmaps[7].set_pixel(2, 4, darkGreen)
        @green_leaf_bitmaps[7].set_pixel(3, 4, midGreen)
        @green_leaf_bitmaps[7].fill_rect(4, 4, 2, 1, khaki)
        @green_leaf_bitmaps[7].set_pixel(1, 5, darkGreen)
        @green_leaf_bitmaps[7].set_pixel(2, 5, midGreen)
        @green_leaf_bitmaps[7].fill_rect(3, 5, 2, 1, lightGreen)
        @green_leaf_bitmaps[7].set_pixel(2, 6, midGreen)
        @green_leaf_bitmaps[7].set_pixel(3, 6, lightGreen)
     
        # 9th leaf bitmap
        @green_leaf_bitmaps[8] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[8].fill_rect(6, 1, 1, 2, midGreen)
        @green_leaf_bitmaps[8].fill_rect(4, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[8].fill_rect(6, 2, 1, 2, darkGreen)
        @green_leaf_bitmaps[8].fill_rect(3, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[8].set_pixel(5, 3, khaki)
        @green_leaf_bitmaps[8].set_pixel(2, 4, midGreen)
        @green_leaf_bitmaps[8].set_pixel(3, 4, khaki)
        @green_leaf_bitmaps[8].set_pixel(4, 4, lightGreen)
        @green_leaf_bitmaps[8].set_pixel(5, 4, midGreen)
        @green_leaf_bitmaps[8].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[8].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[8].fill_rect(3, 5, 2, 1, midGreen)
        @green_leaf_bitmaps[8].set_pixel(1, 6, darkGreen)
        @green_leaf_bitmaps[8].set_pixel(2, 6, midGreen)
     
        # 10th leaf bitmap
        @green_leaf_bitmaps[9] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[9].fill_rect(6, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[9].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[9].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[9].set_pixel(3, 4, midGreen)
        @green_leaf_bitmaps[9].set_pixel(4, 4, khaki)
        @green_leaf_bitmaps[9].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[9].set_pixel(6, 4, mint)
        @green_leaf_bitmaps[9].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[9].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[9].fill_rect(3, 5, 2, 1, mint)
        @green_leaf_bitmaps[9].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[9].set_pixel(2, 6, midGreen)
        @green_leaf_bitmaps[9].set_pixel(3, 6, khaki)
        @green_leaf_bitmaps[9].set_pixel(4, 6, lightGreen)
     
        # 11th leaf bitmap
        @green_leaf_bitmaps[10] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[10].set_pixel(6, 2, midGreen)
        @green_leaf_bitmaps[10].set_pixel(7, 2, darkGreen)
        @green_leaf_bitmaps[10].fill_rect(4, 3, 2, 1, midGreen)
        @green_leaf_bitmaps[10].set_pixel(6, 3, khaki)
        @green_leaf_bitmaps[10].set_pixel(2, 4, darkGreen)
        @green_leaf_bitmaps[10].fill_rect(3, 4, 2, 1, khaki)
        @green_leaf_bitmaps[10].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[10].set_pixel(6, 4, khaki)
        @green_leaf_bitmaps[10].set_pixel(1, 5, midGreen)
        @green_leaf_bitmaps[10].set_pixel(2, 5, khaki)
        @green_leaf_bitmaps[10].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[10].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[10].set_pixel(5, 5, midGreen)
        @green_leaf_bitmaps[10].set_pixel(2, 6, darkGreen)
        @green_leaf_bitmaps[10].fill_rect(3, 6, 2, 1, midGreen)
     
        # 12th leaf bitmap
        @green_leaf_bitmaps[11] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[11].fill_rect(0, 3, 1, 2, darkGreen)
        @green_leaf_bitmaps[11].set_pixel(1, 4, midGreen)
        @green_leaf_bitmaps[11].set_pixel(2, 4, khaki)
        @green_leaf_bitmaps[11].set_pixel(3, 4, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[11].set_pixel(7, 4, midGreen)
        @green_leaf_bitmaps[11].set_pixel(1, 5, darkGreen)
        @green_leaf_bitmaps[11].set_pixel(2, 5, midGreen)
        @green_leaf_bitmaps[11].set_pixel(3, 5, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(4, 5, mint)
        @green_leaf_bitmaps[11].set_pixel(5, 5, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(6, 5, khaki)
        @green_leaf_bitmaps[11].set_pixel(7, 5, midGreen)
        @green_leaf_bitmaps[11].fill_rect(2, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[11].set_pixel(4, 6, lightGreen)
        @green_leaf_bitmaps[11].set_pixel(5, 6, khaki)
        @green_leaf_bitmaps[11].set_pixel(6, 6, midGreen)
     
        # 13th leaf bitmap
        @green_leaf_bitmaps[12] = Bitmap.new(8, 8)
        @green_leaf_bitmaps[12].set_pixel(1, 1, darkGreen)
        @green_leaf_bitmaps[12].fill_rect(1, 2, 2, 1, midGreen)
        @green_leaf_bitmaps[12].set_pixel(2, 3, midGreen)
        @green_leaf_bitmaps[12].set_pixel(3, 3, darkGreen)
        @green_leaf_bitmaps[12].set_pixel(4, 3, midGreen)
        @green_leaf_bitmaps[12].fill_rect(2, 4, 2, 1, midGreen)
        @green_leaf_bitmaps[12].set_pixel(4, 4, darkGreen)
        @green_leaf_bitmaps[12].set_pixel(5, 4, lightGreen)
        @green_leaf_bitmaps[12].set_pixel(3, 5, midGreen)
        @green_leaf_bitmaps[12].set_pixel(4, 5, darkGreen)
        @green_leaf_bitmaps[12].fill_rect(5, 5, 2, 1, khaki)
        @green_leaf_bitmaps[12].fill_rect(4, 6, 2, 1, midGreen)
        @green_leaf_bitmaps[12].set_pixel(6, 6, lightGreen)
        @green_leaf_bitmaps[12].set_pixel(6, 7, khaki)
     
        @rose_bitmaps = []
        brightRed = Color.new(255, 0, 0, 255)
        midRed    = Color.new(179, 17, 17, 255)
        darkRed   = Color.new(141, 9, 9, 255)
     
        # 1st rose petal bitmap
        @rose_bitmaps[0] = Bitmap.new(3, 3)
        @rose_bitmaps[0].fill_rect(1, 0, 2, 1, brightRed)
        @rose_bitmaps[0].fill_rect(0, 1, 1, 2, brightRed)
        @rose_bitmaps[0].fill_rect(1, 1, 2, 2, midRed)
        @rose_bitmaps[0].set_pixel(2, 2, darkRed)
     
        # 2nd rose petal bitmap
        @rose_bitmaps[1] = Bitmap.new(3, 3)
        @rose_bitmaps[1].set_pixel(0, 1, midRed)
        @rose_bitmaps[1].set_pixel(1, 1, brightRed)
        @rose_bitmaps[1].fill_rect(1, 2, 1, 2, midRed)
     
        @feather_bitmaps = []
        white = Color.new(255, 255, 255, 255)
     
        # 1st feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(0, 2, white)
        @feather_bitmaps[0].set_pixel(1, 2, grey)
        @feather_bitmaps[0].set_pixel(2, 1, grey)
     
        # 2nd feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(0, 0, white)
        @feather_bitmaps[0].set_pixel(0, 1, grey)
        @feather_bitmaps[0].set_pixel(1, 2, grey)
     
        # 3rd feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(2, 0, white)
        @feather_bitmaps[0].set_pixel(1, 0, grey)
        @feather_bitmaps[0].set_pixel(0, 1, grey)
     
        # 4th feather bitmap
        @feather_bitmaps[0] = Bitmap.new(3, 3)
        @feather_bitmaps[0].set_pixel(2, 2, white)
        @feather_bitmaps[0].set_pixel(2, 1, grey)
        @feather_bitmaps[0].set_pixel(1, 0, grey)
     
        @blood_rain_bitmap = Bitmap.new(7, 56)
        for i in 0..6
          @blood_rain_bitmap.fill_rect(6-i, i*8, 1, 8, darkRed)
        end
     
        @sparkle_bitmaps = []
     
        lightBlue = Color.new(181, 244, 255, 255)
        midBlue   = Color.new(126, 197, 235, 255)
        darkBlue  = Color.new(77, 136, 225, 255)
     
        # 1st sparkle bitmap
        @sparkle_bitmaps[0] = Bitmap.new(7, 7)
        @sparkle_bitmaps[0].set_pixel(3, 3, darkBlue)
     
        # 2nd sparkle bitmap
        @sparkle_bitmaps[1] = Bitmap.new(7, 7)
        @sparkle_bitmaps[1].fill_rect(3, 2, 1, 3, darkBlue)
        @sparkle_bitmaps[1].fill_rect(2, 3, 3, 1, darkBlue)
        @sparkle_bitmaps[1].set_pixel(3, 3, midBlue)
     
        # 3rd sparkle bitmap
        @sparkle_bitmaps[2] = Bitmap.new(7, 7)
        @sparkle_bitmaps[2].set_pixel(1, 1, darkBlue)
        @sparkle_bitmaps[2].set_pixel(5, 1, darkBlue)
        @sparkle_bitmaps[2].set_pixel(2, 2, midBlue)
        @sparkle_bitmaps[2].set_pixel(4, 2, midBlue)
        @sparkle_bitmaps[2].set_pixel(3, 3, lightBlue)
        @sparkle_bitmaps[2].set_pixel(2, 4, midBlue)
        @sparkle_bitmaps[2].set_pixel(4, 4, midBlue)
        @sparkle_bitmaps[2].set_pixel(1, 5, darkBlue)
        @sparkle_bitmaps[2].set_pixel(5, 5, darkBlue)
     
        # 4th sparkle bitmap
        @sparkle_bitmaps[3] = Bitmap.new(7, 7)
        @sparkle_bitmaps[3].fill_rect(3, 1, 1, 5, darkBlue)
        @sparkle_bitmaps[3].fill_rect(1, 3, 5, 1, darkBlue)
        @sparkle_bitmaps[3].fill_rect(3, 2, 1, 3, midBlue)
        @sparkle_bitmaps[3].fill_rect(2, 3, 3, 1, midBlue)
        @sparkle_bitmaps[3].set_pixel(3, 3, lightBlue)
     
        # 5th sparkle bitmap
        @sparkle_bitmaps[4] = Bitmap.new(7, 7)
        @sparkle_bitmaps[4].fill_rect(2, 2, 3, 3, midBlue)
        @sparkle_bitmaps[4].fill_rect(3, 2, 1, 3, darkBlue)
        @sparkle_bitmaps[4].fill_rect(2, 3, 3, 1, darkBlue)
        @sparkle_bitmaps[4].set_pixel(3, 3, lightBlue)
        @sparkle_bitmaps[4].set_pixel(1, 1, darkBlue)
        @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
        @sparkle_bitmaps[4].set_pixel(1, 5, darkBlue)
        @sparkle_bitmaps[4].set_pixel(5, 1, darkBlue)
     
        # 6th sparkle bitmap
        @sparkle_bitmaps[5] = Bitmap.new(7, 7)
        @sparkle_bitmaps[5].fill_rect(2, 1, 3, 5, darkBlue)
        @sparkle_bitmaps[5].fill_rect(1, 2, 5, 3, darkBlue)
        @sparkle_bitmaps[5].fill_rect(2, 2, 3, 3, midBlue)
        @sparkle_bitmaps[5].fill_rect(3, 1, 1, 5, midBlue)
        @sparkle_bitmaps[5].fill_rect(1, 3, 5, 1, midBlue)
        @sparkle_bitmaps[5].fill_rect(3, 2, 1, 3, lightBlue)
        @sparkle_bitmaps[5].fill_rect(2, 3, 3, 1, lightBlue)
        @sparkle_bitmaps[5].set_pixel(3, 3, white)
     
        # 7th sparkle bitmap
        @sparkle_bitmaps[6] = Bitmap.new(7, 7)
        @sparkle_bitmaps[6].fill_rect(2, 1, 3, 5, midBlue)
        @sparkle_bitmaps[6].fill_rect(1, 2, 5, 3, midBlue)
        @sparkle_bitmaps[6].fill_rect(3, 0, 1, 7, darkBlue)
        @sparkle_bitmaps[6].fill_rect(0, 3, 7, 1, darkBlue)
        @sparkle_bitmaps[6].fill_rect(2, 2, 3, 3, lightBlue)
        @sparkle_bitmaps[6].fill_rect(3, 2, 1, 3, midBlue)
        @sparkle_bitmaps[6].fill_rect(2, 3, 3, 1, midBlue)
        @sparkle_bitmaps[6].set_pixel(3, 3, white)
     
        # Meteor bitmap
        @meteor_bitmap = Bitmap.new(14, 12)
        @meteor_bitmap.fill_rect(0, 8, 5, 4, paleOrange)
        @meteor_bitmap.fill_rect(1, 7, 6, 4, paleOrange)
        @meteor_bitmap.set_pixel(7, 8, paleOrange)
        @meteor_bitmap.fill_rect(1, 8, 2, 2, brightOrange)
        @meteor_bitmap.set_pixel(2, 7, brightOrange)
        @meteor_bitmap.fill_rect(3, 6, 2, 1, brightOrange)
        @meteor_bitmap.set_pixel(3, 8, brightOrange)
        @meteor_bitmap.set_pixel(3, 10, brightOrange)
        @meteor_bitmap.set_pixel(4, 9, brightOrange)
        @meteor_bitmap.fill_rect(5, 5, 1, 5, brightOrange)
        @meteor_bitmap.fill_rect(6, 4, 1, 5, brightOrange)
        @meteor_bitmap.fill_rect(7, 3, 1, 5, brightOrange)
        @meteor_bitmap.fill_rect(8, 6, 1, 2, brightOrange)
        @meteor_bitmap.set_pixel(9, 5, brightOrange)
        @meteor_bitmap.set_pixel(3, 8, midRed)
        @meteor_bitmap.fill_rect(4, 7, 1, 2, midRed)
        @meteor_bitmap.set_pixel(4, 5, midRed)
        @meteor_bitmap.set_pixel(5, 4, midRed)
        @meteor_bitmap.set_pixel(5, 6, midRed)
        @meteor_bitmap.set_pixel(6, 5, midRed)
        @meteor_bitmap.set_pixel(6, 7, midRed)
        @meteor_bitmap.fill_rect(7, 4, 1, 3, midRed)
        @meteor_bitmap.fill_rect(8, 3, 1, 3, midRed)
        @meteor_bitmap.fill_rect(9, 2, 1, 3, midRed)
        @meteor_bitmap.fill_rect(10, 1, 1, 3, midRed)
        @meteor_bitmap.fill_rect(11, 0, 1, 3, midRed)
        @meteor_bitmap.fill_rect(12, 0, 1, 2, midRed)
        @meteor_bitmap.set_pixel(13, 0, midRed)
     
        # impact bitmap
        @impact_bitmap = Bitmap.new(22, 11)
        @impact_bitmap.fill_rect(0, 5, 1, 2, brightOrange)
        @impact_bitmap.set_pixel(1, 4, brightOrange)
        @impact_bitmap.set_pixel(1, 6, brightOrange)
        @impact_bitmap.set_pixel(2, 3, brightOrange)
        @impact_bitmap.set_pixel(2, 7, brightOrange)
        @impact_bitmap.set_pixel(3, 2, midRed)
        @impact_bitmap.set_pixel(3, 7, midRed)
        @impact_bitmap.set_pixel(4, 2, brightOrange)
        @impact_bitmap.set_pixel(4, 8, brightOrange)
        @impact_bitmap.set_pixel(5, 2, midRed)
        @impact_bitmap.fill_rect(5, 8, 3, 1, brightOrange)
        @impact_bitmap.set_pixel(6, 1, midRed)
        @impact_bitmap.fill_rect(7, 1, 8, 1, brightOrange)
        @impact_bitmap.fill_rect(7, 9, 8, 1, midRed)
     
     
        # Ash bitmaps
        @ash_bitmaps = []
        @ash_bitmaps[0] = Bitmap.new(3, 3)
        @ash_bitmaps[0].fill_rect(0, 1, 1, 3, lightGrey)
        @ash_bitmaps[0].fill_rect(1, 0, 3, 1, lightGrey)
        @ash_bitmaps[0].set_pixel(1, 1, white)
        @ash_bitmaps[1] = Bitmap.new(3, 3)
        @ash_bitmaps[1].fill_rect(0, 1, 1, 3, grey)
        @ash_bitmaps[1].fill_rect(1, 0, 3, 1, grey)
        @ash_bitmaps[1].set_pixel(1, 1, lightGrey)
     
        # Bubble bitmaps
        @bubble_bitmaps = []
        darkBlue  = Color.new(77, 136, 225, 160)
        aqua = Color.new(197, 253, 254, 160)
        lavender = Color.new(225, 190, 244, 160)
     
        # first bubble bitmap
        @bubble_bitmaps[0] = Bitmap.new(24, 24)
        @bubble_bitmaps[0].fill_rect(0, 9, 24, 5, darkBlue)
        @bubble_bitmaps[0].fill_rect(1, 6, 22, 11, darkBlue)
        @bubble_bitmaps[0].fill_rect(2, 5, 20, 13, darkBlue)
        @bubble_bitmaps[0].fill_rect(3, 4, 18, 15, darkBlue)
        @bubble_bitmaps[0].fill_rect(4, 3, 16, 17, darkBlue)
        @bubble_bitmaps[0].fill_rect(5, 2, 14, 19, darkBlue)
        @bubble_bitmaps[0].fill_rect(6, 1, 12, 21, darkBlue)
        @bubble_bitmaps[0].fill_rect(9, 0, 5, 24, darkBlue)
        @bubble_bitmaps[0].fill_rect(2, 11, 20, 4, aqua)
        @bubble_bitmaps[0].fill_rect(3, 7, 18, 10, aqua)
        @bubble_bitmaps[0].fill_rect(4, 6, 16, 12, aqua)
        @bubble_bitmaps[0].fill_rect(5, 5, 14, 14, aqua)
        @bubble_bitmaps[0].fill_rect(6, 4, 12, 16, aqua)
        @bubble_bitmaps[0].fill_rect(9, 2, 4, 20, aqua)
        @bubble_bitmaps[0].fill_rect(5, 10, 1, 7, lavender)
        @bubble_bitmaps[0].fill_rect(6, 14, 1, 5, lavender)
        @bubble_bitmaps[0].fill_rect(7, 15, 1, 4, lavender)
        @bubble_bitmaps[0].fill_rect(8, 16, 1, 4, lavender)
        @bubble_bitmaps[0].fill_rect(9, 17, 1, 3, lavender)
        @bubble_bitmaps[0].fill_rect(10, 18, 4, 3, lavender)
        @bubble_bitmaps[0].fill_rect(14, 18, 1, 2, lavender)
        @bubble_bitmaps[0].fill_rect(13, 5, 4, 4, white)
        @bubble_bitmaps[0].fill_rect(14, 4, 2, 1, white)
        @bubble_bitmaps[0].set_pixel(17, 6, white)
     
        # second bubble bitmap
        @bubble_bitmaps[1] = Bitmap.new(14, 15)
        @bubble_bitmaps[1].fill_rect(0, 4, 14, 7, darkBlue)
        @bubble_bitmaps[1].fill_rect(1, 3, 12, 9, darkBlue)
        @bubble_bitmaps[1].fill_rect(2, 2, 10, 11, darkBlue)
        @bubble_bitmaps[1].fill_rect(3, 1, 8, 13, darkBlue)
        @bubble_bitmaps[1].fill_rect(5, 0, 4, 15, darkBlue)
        @bubble_bitmaps[1].fill_rect(1, 5, 12, 4, aqua)
        @bubble_bitmaps[1].fill_rect(2, 4, 10, 6, aqua)
        @bubble_bitmaps[1].fill_rect(3, 3, 8, 8, aqua)
        @bubble_bitmaps[1].fill_rect(4, 2, 6, 10, aqua)
        @bubble_bitmaps[1].fill_rect(1, 5, 12, 4, aqua)
        @bubble_bitmaps[1].fill_rect(3, 9, 1, 2, lavender)
        @bubble_bitmaps[1].fill_rect(4, 10, 1, 2, lavender)
        @bubble_bitmaps[1].fill_rect(5, 11, 4, 1, lavender)
        @bubble_bitmaps[1].fill_rect(6, 12, 2, 1, white)
        @bubble_bitmaps[1].fill_rect(8, 3, 2, 2, white)
        @bubble_bitmaps[1].set_pixel(7, 4, white)
        @bubble_bitmaps[1].set_pixel(8, 5, white)
     
        @user_bitmaps = []
        update_user_defined
      end
    
      def update_user_defined
        for image in @user_bitmaps
          image.dispose
        end
     
        #user-defined bitmaps
        for name in $WEATHER_IMAGES
          @user_bitmaps.push(Cache.picture(name))
        end
        for sprite in @sprites
          sprite.bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
        end
      end
    end
     
    #7
  8. gstv87

    gstv87 Veteran Veteran

    Messages:
    1,674
    Likes Received:
    694
    First Language:
    Spanish
    Primarily Uses:
    RMVXA
    well, that solves the problem, but breaks the whole flow of the animation.
    that's there to prevent unnecessary updates, so it has to remain there.

    the weather system is updated in every frame by default, so I left it as it was because it was correct.
    and it worked when I made the first conversion, before adding the symbols, so the whole thing works, it just broke down when changing the structure from numbers to symbols.
    I wouldn't change it back because that's how Ace works, with symbols.
     
    #8
  9. Cherrylux

    Cherrylux Villager Member

    Messages:
    5
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMVXA
    Thank you so much!! It's working perfectly now, thank you for the conversion!
     
    #9
  10. Cherrylux

    Cherrylux Villager Member

    Messages:
    5
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMVXA
    Thanks to everyone who helped, the script and the script call is now working pretty much perfectly! ^-^
     
    #10
  11. gstv87

    gstv87 Veteran Veteran

    Messages:
    1,674
    Likes Received:
    694
    First Language:
    Spanish
    Primarily Uses:
    RMVXA
    it's most certainly NOT working perfectly! it'll generate a lot of lag, and it won't update correctly!

    wait until we post the finished version, it won't take long.
     
    #11
    tv.ghost likes this.
  12. Cherrylux

    Cherrylux Villager Member

    Messages:
    5
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMVXA
    Oh, I didn't even realize! I don't mind waiting, thanks for all this help!
     
    #12
  13. tv.ghost

    tv.ghost Veteran Veteran

    Messages:
    284
    Likes Received:
    85
    First Language:
    English
    Primarily Uses:
    RMVXA
    Maybe try commenting this out only?
    Code:
          if @tone == $game_map.screen.weather_tone
            return
          end
    The issue isn't for the rain type specifically. It seems initializing any sort of weather at startup (with your script conversion) causes it to just not show up. The following weather effect(s) will also hide themselves once you enter/exit the main menu + most likely any sort of window scenes.
     
    #13
  14. gstv87

    gstv87 Veteran Veteran

    Messages:
    1,674
    Likes Received:
    694
    First Language:
    Spanish
    Primarily Uses:
    RMVXA
    ok, update. I managed to isolate the problem:
    Code:
    def type=(type)
        if @type == type
          if @tone == $game_map.screen.weather_tone
            return
          end
        end
        @type = type
        @tone = $game_map.screen.weather_tone
        @thunder = false
        case @type
        when :rain, :thunder # rain
          bitmap = @rain_bitmap
          if @type == :thunder
            @thunder = true
          end
        when :storm # storm
          bitmap = @storm_bitmap
        when :snow# snow
          bitmap = @snow_bitmap
        when :hail
          bitmap = @hail_bitmap
        when :fall# falling autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :fall_wind # blowing autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :fall_swirl # swirling autumn leaves
          bitmap = @autumn_leaf_bitmaps[0]
        when :leaves # falling green leaves
          bitmap = @green_leaf_bitmaps[0]
        when :cherry_blossom # sakura petals
          bitmap = @petal_bitmap
        when :rose # rose petals
          bitmap = @rose_bitmaps[0]
        when :feathers # feathers
          bitmap = @feather_bitmaps[0]
        when :blood # blood rain
          bitmap = @blood_rain_bitmap
        when :sparkles # sparkles
          bitmap = @sparkle_bitmaps[0]
        when :user # user-defined
            bitmap = @user_bitmaps[rand(@user_bitmaps.size)]
        when :snow_wind # blowing snow
          bitmap = @snow_bitmap
          @tone = $game_map.screen.weather_tone
        when :meteor # meteors
          bitmap = @meteor_bitmap
        when :ash # falling ash
          bitmap = @ash_bitmaps[rand(@ash_bitmaps.size)]
        when :bubbles # bubbles
          bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
        else
          @type = :none
          bitmap = nil
          @thunder = false
          @tone = Tone.new(0,0,0)
        end
        # **** ccoa ****
        for i in 1..sprite_max
          sprite = @sprites[i]
          if sprite != nil
            sprite.visible = (i <= sprite_max)
            if @type == :bubbles
              sprite.bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
            else
              sprite.bitmap = bitmap
            end
            sprite.tone = @tone
          end
        end
      end
    

    Code:
    if @type == type
          if @tone == $game_map.screen.weather_tone
            return
          end
        end
    
    this has to stay, although it could be improved.

    Code:
    for i in 1..sprite_max
          sprite = @sprites[i]
          if sprite != nil
            sprite.visible = (i <= sprite_max)
            if @type == :bubbles
              sprite.bitmap = @bubble_bitmaps[rand(@bubble_bitmaps.size)]
            else
              sprite.bitmap = bitmap
            end
            sprite.tone = @tone
          end
        end
      end
    
    this, initializes in 0 for some reason.
    sprite_max is tied to @power, and @power is set from the call to change_weather, so by the time sprite_max is called the first time (that is, when the weather is changed from :none to something else), it should update @power before reading sprite_max, but for some reason it isn't.

    viewports are checked and cleared, visibility of the sprites checks out, coordinates, Z order, everything that is the sprite itself and it's motion, checks out.
    the one thing that doesn't, is the number of sprites on screen..... which, when you go check for them being loaded and drawn, manually, they are, but they don't show up

    Code:
    if [:rain,:thunder,:blood].include?(@type)
         if i == 1
            p sprite.visible         #
            p sprite.viewport        #   <<< all of this checks out!
            p sprite.x               #
            p sprite.z               #
        end
            sprite.x -= 2
            sprite.y += 16
            sprite.opacity -= 8
            if @thunder and ((rand(90000) - sprite_max) == 0)
              $game_map.screen.start_flash(Color.new(255, 255, 255, 255), 5)
              Audio.se_play("Audio/SE/" + THUNDER_SE)
            end
          end
    
    at least 1 sprite should be showing on screen, because i == 1 is true, and sprite 1 is being updated.
     
    #14

Share This Page