SHOW:
|
|
- or go back to the newest paste.
| 1 | - | #=================================================== |
| 1 | + | #======================# |
| 2 | - | # Alternate MP X System :: By Zetu (RMVXAce) |
| 2 | + | # Z-Systems by: Zetu # |
| 3 | - | # v1.01 |
| 3 | + | #===========================#======================#===========================# |
| 4 | - | ##================================================== |
| 4 | + | # * * * Z02 AMPX Ace Version v1.03 * * * # |
| 5 | - | # You may need slight scripting knowledge of working with arrays (but not a whole lot!). |
| 5 | + | #=#==========================================================================#=# |
| 6 | - | #------------------------------------------------------------------------------------------- |
| 6 | + | # You may need slight scripting knowledge of working with arrays (but # |
| 7 | - | # * * Anything in "< >" means replace with the described contents. * * |
| 7 | + | # not a whole lot!). # |
| 8 | - | # REQUIRED PARAMETERS (Any resource without it will cause an error) |
| 8 | + | #--------------------------------------------------------------------------# |
| 9 | - | # :name, <name of resource> |
| 9 | + | # * * Anything in "< >" means replace with the described contents. * * # |
| 10 | - | # :abbv, <1 or 2 character abbv. of resource> |
| 10 | + | # REQUIRED PARAMETERS (Any resource without it will cause an error) # |
| 11 | - | # :color, <color 1>, <color 2> |
| 11 | + | # :name, <name of resource> # |
| 12 | - | # * These color attributes are indexes of the window skin |
| 12 | + | # :abbv, <1 or 2 character abbv. of resource> # |
| 13 | - | # OPTIONAL PARAMETERS |
| 13 | + | # :color, <color 1>, <color 2> # |
| 14 | - | # Resource Regen for each turn: |
| 14 | + | # * These color attributes are indexes of the window skin # |
| 15 | - | # :regen, <type>, <base> |
| 15 | + | # OPTIONAL PARAMETERS # |
| 16 | - | # type can be :mmp, :atk, :def, :spi, :agi, :set |
| 16 | + | # Resource Regen for each turn: # |
| 17 | - | # base is number multiplied by type (:set is considered 1) |
| 17 | + | # :regen, <type>, <base> # |
| 18 | - | # Resource Regen on Damage |
| 18 | + | # type can be :mmp, :atk, :def, :spi, :agi, :set # |
| 19 | - | # :regenondamage, <type>, <base> |
| 19 | + | # base is number multiplied by type (:set is considered 1) # |
| 20 | - | # type can be :damage, :mmp, :set, :percentdmg |
| 20 | + | # Resource Regen on Damage # |
| 21 | - | # base in number multipled by type (:set is considered 1) |
| 21 | + | # :regenondamage, <type>, <base> # |
| 22 | - | # (:percentdmg is ratio of mmp and damage) |
| 22 | + | # type can be :damage, :mmp, :set, :percentdmg # |
| 23 | - | # :regenelemental, <element_id>, <type>, <base> |
| 23 | + | # base in number multipled by type (:set is considered 1) # |
| 24 | - | # same as :regenondamage, except on elemental damage (of element_ids) |
| 24 | + | # (:percentdmg is ratio of mmp and damage) # |
| 25 | - | # (may place more than 1 id) |
| 25 | + | # :regenelemental, <type>, <element_id(s)>, <base> # |
| 26 | - | # Resource Change Out of Battle: |
| 26 | + | # same as :regenondamage, except on elemental damage (of # |
| 27 | - | # :depleteoob (Set to 0) |
| 27 | + | # element_ids) (may place more than 1 id) # |
| 28 | - | # :regenoob (Set to Max) |
| 28 | + | # Resource Change Out of Battle: # |
| 29 | - | # Max Value |
| 29 | + | # :depleteoob (Set to 0) # |
| 30 | - | # :max, <value> |
| 30 | + | # :regenoob (Set to Max) # |
| 31 | - | # Resource Inversion |
| 31 | + | # Max Value # |
| 32 | - | # :invert |
| 32 | + | # :max, <value> # |
| 33 | - | # this allows the resource to Add instead of Subtract for its cost and disallows |
| 33 | + | # Resource Inversion # |
| 34 | - | # skill use if cost will exceed the max resource |
| 34 | + | # :invert # |
| 35 | # this allows the resource to Add instead of Subtract for its cost # | |
| 36 | # and disallows skill use if cost will exceed the max resource. # | |
| 37 | #==========================================================================# | |
| 38 | - | RESOURCES = [ |
| 38 | + | |
| 39 | ||
| 40 | RESOURCES = [[ | |
| 41 | :regen, :mmp, 0.05, | |
| 42 | :name, "Mana", | |
| 43 | :abbv, "M", | |
| 44 | :color, 23, 22 | |
| 45 | - | :regenondamage, :percent, 12, |
| 45 | + | |
| 46 | :depleteoob, | |
| 47 | :regenondamage, :percentdmg, 120, | |
| 48 | :max, 100, | |
| 49 | :name, "Rage", | |
| 50 | :abbv, "R", | |
| 51 | :color, 10, 2 | |
| 52 | ],[ | |
| 53 | :regenoob, | |
| 54 | :regen, :set, 20, | |
| 55 | :max, 100, | |
| 56 | :name, "Energy", | |
| 57 | :abbv, "E", | |
| 58 | :color, 6, 14 | |
| 59 | ],[ | |
| 60 | - | :regenondamage, :percent, -15, |
| 60 | + | |
| 61 | :regen, :set, 30, | |
| 62 | :regenondamage, :percentdmg, -150, | |
| 63 | :max, 100, | |
| 64 | :name, "Focus", | |
| 65 | :abbv, "F", | |
| 66 | :color, 3, 11 | |
| 67 | ],[ | |
| 68 | - | :regenelemental, 9, :percent, 2, |
| 68 | + | |
| 69 | - | :regenelemental, 10, 12, :percent, -1, |
| 69 | + | |
| 70 | :regenelemental, 3, :percent, 80, | |
| 71 | :regenelemental, 4, 6, :percent, -120, | |
| 72 | :regen, :set, -30, | |
| 73 | :max, 150, | |
| 74 | :name, "Heat", | |
| 75 | - | ] |
| 75 | + | |
| 76 | - | # If set to false, use RESBYCLASS's indexes as Actor IDs instead of Class IDs |
| 76 | + | |
| 77 | - | BIND_TO_CLASS = true |
| 77 | + | ]] |
| 78 | ||
| 79 | # Place in Class/Actor note to specify what resource(s) they use. | |
| 80 | # (May use more than one.) | |
| 81 | - | REGEXP_RESOURCES = /<ampx[: ]+(.*)>/i |
| 81 | + | REGEXP_RESOURCES = /<ampx[:]*\s*(.*)>/i |
| 82 | ||
| 83 | # Place in Skill note to specify mana cost. First regexp will default | |
| 84 | # in value in database (MP Cost) | |
| 85 | - | REGEXP_NOVALUE = /<ampx[: ]+(.+)>/i |
| 85 | + | REGEXP_NOVALUE = /<ampxcost[:]*\s*(.+)>/i |
| 86 | - | REGEXP_WVALUE = /<ampx[: ]+(.+) +(\d+)>/i |
| 86 | + | REGEXP_WVALUE = /<ampxcost[:]*\s*(.+) +(\d+)>/i |
| 87 | ||
| 88 | # If skill does MP damage/healing, use this to tell what resource. | |
| 89 | REGEXP_AMPX = /<ampxvalue[:]*\s*(.+)>/i | |
| 90 | ||
| 91 | # Default value if not in RESBYCLASS hash. | |
| 92 | DEF_RES = "Mana" | |
| 93 | #========#======================#====#================================#========# | |
| 94 | #--------# #----# DO NOT EDIT PAST THIS POINT!!! #--------# | |
| 95 | #--------# End of Customization #----# Editing will cause death by #--------# | |
| 96 | #--------# #----# brain asplosions. #--------# | |
| 97 | #========#======================#====#================================#========# | |
| 98 | end | |
| 99 | ($imported||={})[:z02]=true
| |
| 100 | class Window_Base < Window | |
| 101 | #-------------------------------------------------------------------------- | |
| 102 | # * New method: draw_actor_ampx | |
| 103 | #-------------------------------------------------------------------------- | |
| 104 | - | if actor.resources.nil? |
| 104 | + | |
| 105 | - | actor.setup(actor.id) |
| 105 | + | |
| 106 | - | end |
| 106 | + | |
| 107 | draw_text(x, y, 30, line_height, resource.abbv) | |
| 108 | draw_current_and_max_values(x, y, width, resource.value, resource.max,#~ | |
| 109 | mp_color(resource.actor), normal_color) | |
| 110 | end | |
| 111 | #-------------------------------------------------------------------------- | |
| 112 | # * Overwrite method: draw_actor_mp | |
| 113 | #-------------------------------------------------------------------------- | |
| 114 | def draw_actor_mp(actor, x, y, width=124) | |
| 115 | if actor.resources.nil? | |
| 116 | actor.setup(actor.id) | |
| 117 | end | |
| 118 | width /= actor.resources.size | |
| 119 | offset = width | |
| 120 | if actor.resources.size != 1 | |
| 121 | offset += 2 | |
| 122 | width -= 1 | |
| 123 | end | |
| 124 | for i in 0...actor.resources.size | |
| 125 | - | attr_accessor :max |
| 125 | + | |
| 126 | end | |
| 127 | end | |
| 128 | ||
| 129 | end | |
| 130 | ||
| 131 | class Game_Resources | |
| 132 | attr_reader :name, :abbv, :color1, :color2, :value, :regenelemental, | |
| 133 | :regentype, :regenbase, :regenodtype, :regenodbase, :tags, :regenouttype, | |
| 134 | :regenoutbase, :actor, :index | |
| 135 | attr_writer :max | |
| 136 | ||
| 137 | - | @max = @actor.mmp |
| 137 | + | |
| 138 | - | @value = @max |
| 138 | + | |
| 139 | @index = get_resource_index(type) | |
| 140 | scan_object_variables(@index) | |
| 141 | end | |
| 142 | ||
| 143 | def scan_object_variables(index) | |
| 144 | i = 0 | |
| 145 | array=Z02::RESOURCES[index] | |
| 146 | @tags = [] | |
| 147 | @value = max | |
| 148 | @maxdefault = true | |
| 149 | @regenelemental = {}
| |
| 150 | while (i < array.size) | |
| 151 | case array[i] | |
| 152 | when :name; @name = array[i+1]; i+=1 | |
| 153 | when :abbv; @abbv = array[i+1]; i+=1 | |
| 154 | when :color; @color1 = array[i+1]; @color2 = array[i+2]; i+=2 | |
| 155 | when :regen; @regentype = array[i+1]; @regenbase = array[i+2]; i+=2 | |
| 156 | when :regenonoutdmg | |
| 157 | @regenouttype = array[i+1] | |
| 158 | @regenoutbase = array[i+2] | |
| 159 | i+=2 | |
| 160 | when :regenondamage | |
| 161 | @regenodtype = array[i+1] | |
| 162 | @regenodbase = array[i+2] | |
| 163 | - | @regenelemental[n]= array[i], array[i+1] |
| 163 | + | |
| 164 | when :regenelemental | |
| 165 | i+=1 | |
| 166 | id = [] | |
| 167 | while (array[i].is_a?(Integer)) | |
| 168 | id.push(array[i]) | |
| 169 | i+=1 | |
| 170 | end | |
| 171 | for n in id | |
| 172 | @regenelemental[n]= [array[i], array[i+1]] | |
| 173 | end | |
| 174 | i+=1 | |
| 175 | when :max | |
| 176 | @max = array[i+1] | |
| 177 | i+=1 | |
| 178 | @value = [@max, @value].min | |
| 179 | @maxdefault = false | |
| 180 | when :depleteoob; @tags.push(:depleteoob); @value = 0 | |
| 181 | when :regenoob; @tags.push(:regenoob) | |
| 182 | when :invert; @tags.push(:invert) | |
| 183 | end | |
| 184 | i+=1 | |
| 185 | end | |
| 186 | end | |
| 187 | ||
| 188 | def max | |
| 189 | @max.nil? ? @actor.mmp : @max | |
| 190 | end | |
| 191 | ||
| 192 | - | self.value=self.max |
| 192 | + | |
| 193 | for i in 0...Z02::RESOURCES.size | |
| 194 | index = Z02::RESOURCES[i].index(:name)+1 | |
| 195 | if Z02::RESOURCES[i][index].upcase==name.upcase | |
| 196 | return i | |
| 197 | - | @value = [[new_value, 0].max, @max].min |
| 197 | + | |
| 198 | end | |
| 199 | end | |
| 200 | ||
| 201 | def reinitialize | |
| 202 | if @tags.include?(:depleteoob) | |
| 203 | self.value=0 | |
| 204 | elsif @tags.include?(:regenoob) | |
| 205 | self.value=max | |
| 206 | end | |
| 207 | end | |
| 208 | ||
| 209 | def value=(new_value) | |
| 210 | @value = [[new_value, 0].max, max].min | |
| 211 | end | |
| 212 | ||
| 213 | def rate | |
| 214 | max > 0 ? value.to_f / max : 0 | |
| 215 | end | |
| 216 | ||
| 217 | def regen | |
| 218 | - | def regendmg(value) |
| 218 | + | |
| 219 | return if @regentype.nil? | |
| 220 | tvalue = @regenbase | |
| 221 | case @regentype | |
| 222 | - | when :damage |
| 222 | + | |
| 223 | - | value *= tvalue |
| 223 | + | |
| 224 | - | when :maxmp |
| 224 | + | |
| 225 | - | tvalue *= max |
| 225 | + | |
| 226 | - | when :percentdmg |
| 226 | + | |
| 227 | - | tvalue *= value.to_f/max |
| 227 | + | |
| 228 | self.value += tvalue.to_i | |
| 229 | end | |
| 230 | ||
| 231 | def regenoffdmg(amt) | |
| 232 | - | def regenoffdmg(value) |
| 232 | + | |
| 233 | return if amt < 1 | |
| 234 | tvalue = regenoutbase | |
| 235 | case regenouttype | |
| 236 | - | when :damage |
| 236 | + | when :damage; tvalue *= amt |
| 237 | - | value *= tvalue |
| 237 | + | when :maxmp; tvalue *= max |
| 238 | - | when :maxmp |
| 238 | + | when :percentdmg; tvalue *= amt.to_f/@actor.mhp |
| 239 | - | tvalue *= max |
| 239 | + | |
| 240 | - | when :percentdmg |
| 240 | + | |
| 241 | - | tvalue *= value.to_f/max |
| 241 | + | |
| 242 | ||
| 243 | def regendmg(amt, element_id=0) | |
| 244 | regendmgreg(amt) | |
| 245 | regendmgele(amt, element_id) | |
| 246 | end | |
| 247 | ||
| 248 | - | return (self.value+amount)<=self.max |
| 248 | + | def regendmgreg(amt) |
| 249 | return if regenodtype.nil? | |
| 250 | - | return (self.value)>=amount |
| 250 | + | return if amt < 1 |
| 251 | tvalue = regenodbase | |
| 252 | case regenodtype | |
| 253 | when :damage; tvalue *= amt | |
| 254 | - | def pay(amount) |
| 254 | + | when :maxmp; tvalue *= max |
| 255 | when :percentdmg; tvalue *= amt.to_f/@actor.mhp | |
| 256 | - | self.value += amount |
| 256 | + | |
| 257 | self.value += tvalue.to_i | |
| 258 | - | self.value -= amount |
| 258 | + | |
| 259 | ||
| 260 | def regendmgele(amt, element_id) | |
| 261 | return if regenelemental.nil? | |
| 262 | return if regenelemental[element_id].nil? | |
| 263 | return if amt < 1 | |
| 264 | tvalue = regenelemental[element_id][1] | |
| 265 | case regenelemental[element_id][0] | |
| 266 | when :damage; tvalue *= amt | |
| 267 | when :maxmp; tvalue *= max | |
| 268 | - | print "Creating Resources for #{self.name}!\n"
|
| 268 | + | when :percentdmg; tvalue *= amt.to_f/@actor.mhp |
| 269 | end | |
| 270 | self.value += tvalue.to_i | |
| 271 | end | |
| 272 | ||
| 273 | def pay?(amount) | |
| 274 | if @tags.include?(:invert) | |
| 275 | return (@value+amount)<=@max | |
| 276 | else | |
| 277 | - | alias z02ote on_turn_end unless $@ |
| 277 | + | return (@value)>=amount |
| 278 | end | |
| 279 | end | |
| 280 | - | for resource in self.resources |
| 280 | + | |
| 281 | def pay(amt) | |
| 282 | if @tags.include?(:invert) | |
| 283 | @value += amt | |
| 284 | else | |
| 285 | - | alias z02od on_damage |
| 285 | + | @value -= amt |
| 286 | - | def on_damage(value) |
| 286 | + | |
| 287 | - | z02od(value) |
| 287 | + | |
| 288 | - | for resource in self.resources |
| 288 | + | |
| 289 | - | resource.regendmg(value) |
| 289 | + | |
| 290 | ||
| 291 | class Game_Battler < Game_BattlerBase | |
| 292 | attr_reader :resources | |
| 293 | #-------------------------------------------------------------------------- | |
| 294 | # * New method: create_resources | |
| 295 | #-------------------------------------------------------------------------- | |
| 296 | def create_resources | |
| 297 | @resources = [] | |
| 298 | create_actor_spec_resources | |
| 299 | @resources.push(Game_Resources.new(Z02::DEF_RES, self)) if @resources.size==0 | |
| 300 | end | |
| 301 | #-------------------------------------------------------------------------- | |
| 302 | # * New method: create_actor_spec_resources | |
| 303 | #-------------------------------------------------------------------------- | |
| 304 | def create_actor_spec_resources | |
| 305 | end | |
| 306 | #-------------------------------------------------------------------------- | |
| 307 | # * Alias method: on_turn_end | |
| 308 | #-------------------------------------------------------------------------- | |
| 309 | alias :z02ote :on_turn_end | |
| 310 | def on_turn_end | |
| 311 | z02ote | |
| 312 | for resource in @resources | |
| 313 | resource.regen | |
| 314 | end | |
| 315 | end | |
| 316 | #-------------------------------------------------------------------------- | |
| 317 | # * New method: resourcebyid | |
| 318 | #-------------------------------------------------------------------------- | |
| 319 | def resourcebyid(id) | |
| 320 | for resource in @resources | |
| 321 | return resource if resource.index==id | |
| 322 | end | |
| 323 | return nil | |
| 324 | end | |
| 325 | - | alias z02psc pay_skill_cost unless $@ |
| 325 | + | #-------------------------------------------------------------------------- |
| 326 | # * New method: skill_ampx_costs | |
| 327 | #-------------------------------------------------------------------------- | |
| 328 | def skill_ampx_costs(skill) | |
| 329 | values = [] | |
| 330 | skill.note.scan(Z02::REGEXP_NOVALUE){
| |
| 331 | next if (index=self.resources[0].get_resource_index($1)).nil? | |
| 332 | values[index] = skill.mp_cost} | |
| 333 | skill.note.scan(Z02::REGEXP_WVALUE){
| |
| 334 | next if (index=self.resources[0].get_resource_index($1)).nil? | |
| 335 | values[index] = $2.to_i} | |
| 336 | if values.size==0 | |
| 337 | index = self.resources[0].index | |
| 338 | values[index]=skill.mp_cost | |
| 339 | end | |
| 340 | - | alias z02init initialize unless $@ |
| 340 | + | |
| 341 | end | |
| 342 | #-------------------------------------------------------------------------- | |
| 343 | # * Overwrite method: skill_cost_payable? | |
| 344 | #-------------------------------------------------------------------------- | |
| 345 | def skill_cost_payable?(skill) | |
| 346 | values = skill_ampx_costs(skill) | |
| 347 | for i in 0...values.size | |
| 348 | next if values[i].nil? | |
| 349 | return false if (resource = resourcebyid(i)).nil? | |
| 350 | - | alias z02setup setup unless $@ |
| 350 | + | |
| 351 | end | |
| 352 | return true | |
| 353 | end | |
| 354 | #-------------------------------------------------------------------------- | |
| 355 | # * Alias method: pay_skill_cost | |
| 356 | #-------------------------------------------------------------------------- | |
| 357 | - | (Z02::BIND_TO_CLASS ? self.class : self).note.scan(Z02::REGEXP_RESOURCES){
|
| 357 | + | alias :z02psc :pay_skill_cost |
| 358 | def pay_skill_cost(skill) | |
| 359 | z02psc(skill) | |
| 360 | values = skill_ampx_costs(skill) | |
| 361 | for i in 0...values.size | |
| 362 | next if values[i].nil? | |
| 363 | return false if (resource = resourcebyid(i)).nil? | |
| 364 | resource.pay(values[i]) | |
| 365 | end | |
| 366 | end | |
| 367 | #-------------------------------------------------------------------------- | |
| 368 | # * Alias method: item_apply | |
| 369 | - | next if actor.resources.nil? |
| 369 | + | #-------------------------------------------------------------------------- |
| 370 | alias :z02ia :item_apply | |
| 371 | def item_apply(user, item) | |
| 372 | z02ia(user, item) | |
| 373 | if @result.hit? | |
| 374 | unless item.damage.none? | |
| 375 | ampx_ondamage(user, item.damage.element_id) | |
| 376 | resource = resource(item) | |
| 377 | unless resource.nil? | |
| 378 | resource.value -= @result.mp_damage | |
| 379 | ####user.mp += @result.mp_drain#### NEED TO ADD DRAIN | |
| 380 | - | alias z02dsc draw_skill_cost unless $@ |
| 380 | + | |
| 381 | end | |
| 382 | end | |
| 383 | end | |
| 384 | ||
| 385 | def ampx_ondamage(user, element_id) | |
| 386 | return if @result.hp_damage==0 | |
| 387 | for resource in @resources | |
| 388 | resource.regendmg(@result.hp_damage, element_id) | |
| 389 | - | change_color(text_color(resource.color1), @actor.skill_cost_payable?(skill)) |
| 389 | + | |
| 390 | for resource in user.resources | |
| 391 | resource.regenoffdmg(@result.hp_damage) | |
| 392 | end | |
| 393 | end | |
| 394 | ||
| 395 | def resource(item) | |
| 396 | name = item.resourcename | |
| 397 | - | |
| 397 | + | |
| 398 | return resource if resource.name.upcase==name.upcase | |
| 399 | end | |
| 400 | return nil | |
| 401 | end | |
| 402 | ||
| 403 | end | |
| 404 | ||
| 405 | class Game_Enemy < Game_Battler | |
| 406 | #-------------------------------------------------------------------------- | |
| 407 | # * Alias method: initialize | |
| 408 | #-------------------------------------------------------------------------- | |
| 409 | alias :z02init :initialize | |
| 410 | def initialize(index, enemy_id) | |
| 411 | z02init(index, enemy_id) | |
| 412 | create_resources | |
| 413 | end | |
| 414 | ||
| 415 | end | |
| 416 | ||
| 417 | class Game_Actor < Game_Battler | |
| 418 | #-------------------------------------------------------------------------- | |
| 419 | # * Alias method: setup | |
| 420 | #-------------------------------------------------------------------------- | |
| 421 | alias :z02setup :setup | |
| 422 | def setup(actor_id) | |
| 423 | z02setup(actor_id) | |
| 424 | create_resources | |
| 425 | end | |
| 426 | #-------------------------------------------------------------------------- | |
| 427 | # * New method: create_actor_spec_resources | |
| 428 | #-------------------------------------------------------------------------- | |
| 429 | def create_actor_spec_resources | |
| 430 | self.class.note.scan(Z02::REGEXP_RESOURCES){
| |
| 431 | @resources.push(Game_Resources.new($1, self))} | |
| 432 | end | |
| 433 | ||
| 434 | end | |
| 435 | ||
| 436 | module SceneManager | |
| 437 | #-------------------------------------------------------------------------- | |
| 438 | # * Alias method: call | |
| 439 | #-------------------------------------------------------------------------- | |
| 440 | class <<self; alias_method :z02call, :call; end | |
| 441 | def self.call(scene_class) | |
| 442 | self.z02call(scene_class) | |
| 443 | for actor in $game_party.members | |
| 444 | next if actor.resources.nil? | |
| 445 | for resource in actor.resources | |
| 446 | resource.reinitialize | |
| 447 | end | |
| 448 | end | |
| 449 | end | |
| 450 | ||
| 451 | end | |
| 452 | ||
| 453 | class Window_SkillList < Window_Selectable | |
| 454 | #-------------------------------------------------------------------------- | |
| 455 | # * Alias method: draw_skill_cost | |
| 456 | #-------------------------------------------------------------------------- | |
| 457 | alias :z02dsc :draw_skill_cost | |
| 458 | def draw_skill_cost(rect, skill) | |
| 459 | if @actor.skill_tp_cost(skill) > 0 | |
| 460 | z02dsc(rect, skill) | |
| 461 | elsif @actor.skill_mp_cost(skill) > 0 | |
| 462 | values = @actor.skill_ampx_costs(skill) | |
| 463 | values.size.downto(0) { |i|
| |
| 464 | next if values[i].nil? | |
| 465 | next if (resource = @actor.resourcebyid(i)).nil? | |
| 466 | change_color(text_color(resource.color1), | |
| 467 | @actor.skill_cost_payable?(skill)) | |
| 468 | draw_text(rect, values[i], 2) | |
| 469 | rect.width -= 32 | |
| 470 | } | |
| 471 | end | |
| 472 | end | |
| 473 | ||
| 474 | end | |
| 475 | ||
| 476 | class RPG::UsableItem < RPG::BaseItem | |
| 477 | ||
| 478 | def resourcename | |
| 479 | self.note.scan(Z02::REGEXP_AMPX){
| |
| 480 | return $1} | |
| 481 | return Z02::DEF_RES | |
| 482 | end | |
| 483 | ||
| 484 | end | |
| 485 | ||
| 486 | class Game_ActionResult | |
| 487 | ||
| 488 | def ampx_damage_text(name) | |
| 489 | if @mp_drain > 0 | |
| 490 | fmt = @battler.actor? ? Vocab::ActorDrain : Vocab::EnemyDrain | |
| 491 | sprintf(fmt, @battler.name, name, @mp_drain) | |
| 492 | elsif @mp_damage > 0 | |
| 493 | fmt = @battler.actor? ? Vocab::ActorLoss : Vocab::EnemyLoss | |
| 494 | sprintf(fmt, @battler.name, name, @mp_damage) | |
| 495 | elsif @mp_damage < 0 | |
| 496 | fmt = @battler.actor? ? Vocab::ActorRecovery : Vocab::EnemyRecovery | |
| 497 | sprintf(fmt, @battler.name, name, -@mp_damage) | |
| 498 | else | |
| 499 | "" | |
| 500 | end | |
| 501 | end | |
| 502 | ||
| 503 | end |