SHOW:
|
|
- or go back to the newest paste.
| 1 | ###----------------------------------------------------------------------------- | |
| 2 | - | # Skill Display script v1.0 |
| 2 | + | # Skill Display v1.2 |
| 3 | # Created by Neon Black | |
| 4 | - | # V1.1 - 1.28.2012 - Small updates |
| 4 | + | # V1.2 - 2.11.2014 - More small updates |
| 5 | # V1.1 - 1.28.2013 - Small updates | |
| 6 | - | # Created for both commercial and non-commercial use as long as credit is |
| 6 | + | |
| 7 | - | # given to Neon Black. |
| 7 | + | # For both commercial and non-commercial use as long as credit is given to |
| 8 | # Neon Black and any additional authors. Licensed under Creative Commons | |
| 9 | # CC BY 4.0 - http://creativecommons.org/licenses/by/4.0/ | |
| 10 | ###----------------------------------------------------------------------------- | |
| 11 | ||
| 12 | - | ## These three constants can be changed from nil to a string value ("Counter"
|
| 12 | + | |
| 13 | - | ## with the quotes for example) to display a message when counter, reflection, |
| 13 | + | |
| 14 | - | ## or substitution occurs. |
| 14 | + | # These three constants can be changed from nil to a string value ("Counter"
|
| 15 | # with the quotes for example) to display a message when counter, reflection, | |
| 16 | # or substitution occurs. | |
| 17 | ##------ | |
| 18 | COUNTER = nil | |
| 19 | REFLECT = nil | |
| 20 | SUB = nil | |
| 21 | - | ## These twho constants are used to determined the X and Y offsets of the |
| 21 | + | |
| 22 | - | ## window. Increase these values to move them down or right and decrease |
| 22 | + | |
| 23 | - | ## them to move the window up and left. |
| 23 | + | # These twho constants are used to determined the X and Y offsets of the |
| 24 | # window. Increase these values to move them down or right and decrease | |
| 25 | # them to move the window up and left. | |
| 26 | ##------ | |
| 27 | ||
| 28 | X_OFFSET = 0 | |
| 29 | Y_OFFSET = 48 | |
| 30 | - | ## Allows a picture to be used instead of the default black background. If |
| 30 | + | |
| 31 | - | ## you do not want to use a picture, just set this to nil. The picture goes |
| 31 | + | |
| 32 | - | ## in the Graphics/Pictures folder. |
| 32 | + | # Allows a picture to be used instead of the default black background. If |
| 33 | # you do not want to use a picture, just set this to nil. The picture goes | |
| 34 | # in the Graphics/Pictures folder. | |
| 35 | ##------ | |
| 36 | ||
| 37 | BACK_COLOR = Color.new(0, 0, 0, 64) | |
| 38 | BACK_PIC = nil | |
| 39 | ||
| 40 | ##------ | |
| 41 | # The time taken for each turn measured in frames. | |
| 42 | ##------ | |
| 43 | ACTION_SPEED = 20 | |
| 44 | ||
| 45 | ##----------------------------------------------------------------------------- | |
| 46 | # The following lines are the actual core code of the script. While you are | |
| 47 | # certainly invited to look, modifying it may result in undesirable results. | |
| 48 | # Modify at your own risk! | |
| 49 | ##----------------------------------------------------------------------------- | |
| 50 | ||
| 51 | ||
| 52 | ## Adds a new array to store skill names. | |
| 53 | alias cp_init initialize | |
| 54 | def initialize | |
| 55 | @pop_wind = [] | |
| 56 | cp_init | |
| 57 | @back_sprite.x = self.x = X_OFFSET | |
| 58 | @back_sprite.y = self.y = Y_OFFSET | |
| 59 | create_background_picture | |
| 60 | end | |
| 61 | ||
| 62 | def create_background_picture | |
| 63 | @back_pic_sprite = Sprite.new | |
| 64 | return unless BACK_PIC | |
| 65 | @back_pic_sprite.bitmap = Cache.picture(BACK_PIC) | |
| 66 | @back_pic_sprite.ox = @back_pic_sprite.width / 2 | |
| 67 | @back_pic_sprite.oy = @back_pic_sprite.height / 2 | |
| 68 | @back_pic_sprite.x = width / 2 + x | |
| 69 | @back_pic_sprite.y = height / 2 + y | |
| 70 | @back_pic_sprite.visible = false | |
| 71 | end | |
| 72 | ||
| 73 | ## Change the log window to 1 line max. | |
| 74 | def max_line_number | |
| 75 | return 1 | |
| 76 | end | |
| 77 | ||
| 78 | alias cp_window_clear clear | |
| 79 | def clear | |
| 80 | @pop_wind.clear | |
| 81 | cp_window_clear | |
| 82 | end | |
| 83 | ||
| 84 | ## Overwrites the refresh to change what is drawn. | |
| 85 | def refresh | |
| 86 | draw_background unless BACK_PIC | |
| 87 | contents.clear | |
| 88 | @back_pic_sprite.visible = false if @back_pic_sprite | |
| 89 | return if @pop_wind.empty? | |
| 90 | @back_pic_sprite.visible = true | |
| 91 | if @pop_wind[-1].is_a?(String) | |
| 92 | draw_text(0, 0, contents.width, line_height, @pop_wind[-1], 1) | |
| 93 | elsif @pop_wind[-1].is_a?(Array) | |
| 94 | xpos = contents.width - (contents.text_size(@pop_wind[-1][1]).width + 24) | |
| 95 | xpos /= 2 | |
| 96 | draw_icon(@pop_wind[-1][0], xpos, 0) | |
| 97 | change_color(normal_color) | |
| 98 | draw_text(xpos + 24, 0, contents.width, line_height, @pop_wind[-1][1]) | |
| 99 | else | |
| 100 | xpos = contents.width - (contents.text_size(@pop_wind[-1].name).width + 24) | |
| 101 | xpos /= 2 | |
| 102 | draw_item_name(@pop_wind[-1], xpos, 0) | |
| 103 | end | |
| 104 | end | |
| 105 | ||
| 106 | ## Draws the display box in a different size. | |
| 107 | def draw_background | |
| 108 | @back_bitmap.clear | |
| 109 | @back_bitmap.fill_rect(back_rect, back_color) | |
| 110 | rect1 = Rect.new(back_rect.x - 64, back_rect.y, 64, back_rect.height) | |
| 111 | rect2 = Rect.new(back_rect.x + back_rect.width, back_rect.y, 64, | |
| 112 | back_rect.height) | |
| 113 | @back_bitmap.gradient_fill_rect(rect1, no_colour, back_color) | |
| 114 | @back_bitmap.gradient_fill_rect(rect2, back_color, no_colour) | |
| 115 | end | |
| 116 | ||
| 117 | def back_rect | |
| 118 | - | Color.new(0, 0, 0, 0) |
| 118 | + | |
| 119 | i = width | |
| 120 | elsif @pop_wind[-1].is_a?(Array) | |
| 121 | n = @pop_wind[-1][1] | |
| 122 | i = contents.text_size(n).width | |
| 123 | i += 24 | |
| 124 | else | |
| 125 | n = @pop_wind[-1].is_a?(String) ? @pop_wind[-1] : @pop_wind[-1].name | |
| 126 | i = contents.text_size(n).width | |
| 127 | i += 24 unless @pop_wind[-1].is_a?(String) | |
| 128 | end | |
| 129 | Rect.new((width - i) / 2, padding, i, (@pop_wind.empty? ? 0 : 1) * line_height) | |
| 130 | end | |
| 131 | ||
| 132 | def back_color | |
| 133 | BACK_COLOR | |
| 134 | end | |
| 135 | ||
| 136 | def no_colour | |
| 137 | color = back_color.clone | |
| 138 | color.alpha = 0 | |
| 139 | color | |
| 140 | end | |
| 141 | ||
| 142 | def add_pop_line(item = nil) | |
| 143 | @pop_wind.push(item) unless item.nil? || item == "" | |
| 144 | @pop_wind.pop if !item.is_a?(String) && item.name == "" | |
| 145 | refresh | |
| 146 | end | |
| 147 | ||
| 148 | def add_pop_array(icon = 0, text = "") | |
| 149 | @pop_wind.push([icon, text]) unless text.empty? | |
| 150 | refresh | |
| 151 | end | |
| 152 | ||
| 153 | ## Grabs the names of skills rather than the usage lines. | |
| 154 | - | end |
| 154 | + | |
| 155 | add_pop_line(item) | |
| 156 | end | |
| 157 | ||
| 158 | def display_counter(target, item) | |
| 159 | return unless COUNTER | |
| 160 | add_pop_line(COUNTER) | |
| 161 | wait | |
| 162 | end | |
| 163 | ||
| 164 | def display_reflection(target, item) | |
| 165 | return unless REFLECT | |
| 166 | add_pop_line(REFLECT) | |
| 167 | wait | |
| 168 | end | |
| 169 | ||
| 170 | def display_substitute(substitute, target) | |
| 171 | return unless SUB | |
| 172 | add_pop_line(SUB) | |
| 173 | wait | |
| 174 | end | |
| 175 | ||
| 176 | def message_speed | |
| 177 | return ACTION_SPEED | |
| 178 | end | |
| 179 | end | |
| 180 | ||
| 181 | ||
| 182 | ##----------------------------------------------------------------------------- | |
| 183 | # End of script. | |
| 184 | ##----------------------------------------------------------------------------- |