Class: Game_Actor

Inherits:
Game_Battler show all
Defined in:
lib/rgss3_default_scripts/Game_Actor.rb

Overview

** Game_Actor


This class handles actors. It is used within the Game_Actors class

($game_actors) and is also referenced from the Game_Party class ($game_party).

Constant Summary

Constants inherited from Game_Battler

Game_Battler::EFFECT_ADD_BUFF, Game_Battler::EFFECT_ADD_DEBUFF, Game_Battler::EFFECT_ADD_STATE, Game_Battler::EFFECT_COMMON_EVENT, Game_Battler::EFFECT_GAIN_TP, Game_Battler::EFFECT_GROW, Game_Battler::EFFECT_LEARN_SKILL, Game_Battler::EFFECT_RECOVER_HP, Game_Battler::EFFECT_RECOVER_MP, Game_Battler::EFFECT_REMOVE_BUFF, Game_Battler::EFFECT_REMOVE_DEBUFF, Game_Battler::EFFECT_REMOVE_STATE, Game_Battler::EFFECT_SPECIAL, Game_Battler::SPECIAL_EFFECT_ESCAPE

Constants inherited from Game_BattlerBase

Game_BattlerBase::FEATURE_ACTION_PLUS, Game_BattlerBase::FEATURE_ATK_ELEMENT, Game_BattlerBase::FEATURE_ATK_SPEED, Game_BattlerBase::FEATURE_ATK_STATE, Game_BattlerBase::FEATURE_ATK_TIMES, Game_BattlerBase::FEATURE_COLLAPSE_TYPE, Game_BattlerBase::FEATURE_DEBUFF_RATE, Game_BattlerBase::FEATURE_ELEMENT_RATE, Game_BattlerBase::FEATURE_EQUIP_ATYPE, Game_BattlerBase::FEATURE_EQUIP_FIX, Game_BattlerBase::FEATURE_EQUIP_SEAL, Game_BattlerBase::FEATURE_EQUIP_WTYPE, Game_BattlerBase::FEATURE_PARAM, Game_BattlerBase::FEATURE_PARTY_ABILITY, Game_BattlerBase::FEATURE_SKILL_ADD, Game_BattlerBase::FEATURE_SKILL_SEAL, Game_BattlerBase::FEATURE_SLOT_TYPE, Game_BattlerBase::FEATURE_SPARAM, Game_BattlerBase::FEATURE_SPECIAL_FLAG, Game_BattlerBase::FEATURE_STATE_RATE, Game_BattlerBase::FEATURE_STATE_RESIST, Game_BattlerBase::FEATURE_STYPE_ADD, Game_BattlerBase::FEATURE_STYPE_SEAL, Game_BattlerBase::FEATURE_XPARAM, Game_BattlerBase::FLAG_ID_AUTO_BATTLE, Game_BattlerBase::FLAG_ID_GUARD, Game_BattlerBase::FLAG_ID_PRESERVE_TP, Game_BattlerBase::FLAG_ID_SUBSTITUTE, Game_BattlerBase::ICON_BUFF_START, Game_BattlerBase::ICON_DEBUFF_START

Instance Attribute Summary collapse

Attributes inherited from Game_Battler

#action_times, #actions, #animation_id, #animation_mirror, #battler_hue, #battler_name, #last_target_index, #magic_reflection, #result, #speed, #sprite_effect_type

Attributes inherited from Game_BattlerBase

#hp, #mp, #tp

Instance Method Summary collapse

Methods inherited from Game_Battler

#add_buff, #add_debuff, #add_new_state, #add_state, #apply_critical, #apply_guard, #apply_variance, #attack_apply, #buff?, #buff_max?, #charge_tp_by_damage, #clear_sprite_effects, #clear_states, #clear_tp, #consume_item, #current_action, #debuff?, #debuff_max?, #die, #elements_max_rate, #erase_buff, #escape, #execute_damage, #force_action, #init_tp, #item_apply, #item_cnt, #item_cri, #item_effect_add_buff, #item_effect_add_debuff, #item_effect_add_state, #item_effect_add_state_attack, #item_effect_add_state_normal, #item_effect_apply, #item_effect_common_event, #item_effect_gain_tp, #item_effect_grow, #item_effect_learn_skill, #item_effect_recover_hp, #item_effect_recover_mp, #item_effect_remove_buff, #item_effect_remove_debuff, #item_effect_remove_state, #item_effect_special, #item_effect_test, #item_element_rate, #item_eva, #item_global_effect_apply, #item_has_any_valid_effects?, #item_hit, #item_mrf, #item_test, #item_user_effect, #luk_effect_rate, #make_action_times, #make_damage_value, #make_speed, #max_slip_damage, #on_action_end, #on_battle_end, #on_battle_start, #on_damage, #on_restrict, #on_turn_end, #opposite?, #overwrite_buff_turns, #regenerate_all, #regenerate_hp, #regenerate_mp, #regenerate_tp, #remove_all_buffs, #remove_battle_states, #remove_buff, #remove_buffs_auto, #remove_current_action, #remove_state, #remove_states_auto, #remove_states_by_damage, #reset_state_counts, #revive, #state_addable?, #state_removed?, #state_restrict?, #update_buff_turns, #update_state_turns, #use_item

Methods inherited from Game_BattlerBase

#action_plus_set, #add_param, #added_skill_types, #added_skills, #agi, #alive?, #all_features, #appear, #atk, #atk_speed, #atk_states, #atk_states_rate, #atk_times_add, #attack_skill_id, #attack_usable?, #auto_battle?, #buff_icon_index, #buff_icons, #cev, #change_hp, #clear_buffs, #clear_param_plus, #clear_states, #cnt, #collapse_type, #confusion?, #confusion_level, #cri, #dead?, #death_state?, #death_state_id, #debuff_rate, #def, #dual_wield?, #element_rate, #enemy?, #equip_atype_ok?, #equip_type_fixed?, #equip_type_sealed?, #equip_wtype_ok?, #equippable?, #erase_state, #eva, #exist?, #exr, #fdr, #features, #features_pi, #features_set, #features_sum, #features_sum_all, #features_with_id, #grd, #guard?, #guard_skill_id, #guard_usable?, #hidden?, #hide, #hit, #hp_rate, #hrg, #inputable?, #item_conditions_met?, #luk, #mat, #max_tp, #mcr, #mdf, #mdr, #mev, #mhp, #mmp, #most_important_state_text, #movable?, #mp_rate, #mrf, #mrg, #normal?, #occasion_ok?, #param, #param_buff_rate, #param_min, #param_rate, #party_ability, #pay_skill_cost, #pdr, #pha, #preserve_tp?, #rec, #recover_all, #restriction, #skill_conditions_met?, #skill_cost_payable?, #skill_mp_cost, #skill_sealed?, #skill_tp_cost, #skill_type_sealed?, #slot_type, #sort_states, #sparam, #special_flag, #state?, #state_icons, #state_rate, #state_resist?, #state_resist_set, #states, #substitute?, #tcr, #tgr, #tp_rate, #trg, #usable?, #usable_item_conditions_met?, #xparam

Constructor Details

#initialize(actor_id) ⇒ Game_Actor


  • Object Initialization




25
26
27
28
29
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 25

def initialize(actor_id)
  super()
  setup(actor_id)
  @last_skill = Game_BaseItem.new
end

Instance Attribute Details

#action_input_indexObject (readonly)

action number being input



20
21
22
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 20

def action_input_index
  @action_input_index
end

#character_indexObject (readonly)

character graphic index



15
16
17
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 15

def character_index
  @character_index
end

#character_nameObject (readonly)

character graphic filename



14
15
16
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 14

def character_name
  @character_name
end

#class_idObject (readonly)

class ID



18
19
20
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 18

def class_id
  @class_id
end

#face_indexObject (readonly)

face graphic index



17
18
19
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 17

def face_index
  @face_index
end

#face_nameObject (readonly)

face graphic filename



16
17
18
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 16

def face_name
  @face_name
end

#last_skillObject (readonly)

For cursor memorization: Skill



21
22
23
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 21

def last_skill
  @last_skill
end

#levelObject (readonly)

level



19
20
21
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 19

def level
  @level
end

#nameObject


  • Public Instance Variables




12
13
14
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 12

def name
  @name
end

#nicknameObject

Nickname



13
14
15
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 13

def nickname
  @nickname
end

Instance Method Details

#actorObject


  • Get Actor Object




51
52
53
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 51

def actor
  $data_actors[@actor_id]
end

#actor?Boolean


  • Determine if Actor or Not


Returns:

  • (Boolean)


299
300
301
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 299

def actor?
  return true
end

#armorsObject


  • Get Armor Object Array




164
165
166
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 164

def armors
  @equips.select {|item| item.is_armor? }.collect {|item| item.object }
end

#atk_animation_id1Object


  • Get Normal Attack Animation ID




386
387
388
389
390
391
392
393
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 386

def atk_animation_id1
  if dual_wield?
    return weapons[0].animation_id if weapons[0]
    return weapons[1] ? 0 : 1
  else
    return weapons[0] ? weapons[0].animation_id : 1
  end
end

#atk_animation_id2Object


  • Get Animation ID of Normal Attack (Dual Wield: Weapon 2)




397
398
399
400
401
402
403
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 397

def atk_animation_id2
  if dual_wield?
    return weapons[1] ? weapons[1].animation_id : 0
  else
    return 0
  end
end

#atk_elementsObject


  • Get Attack Element




359
360
361
362
363
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 359

def atk_elements
  set = super
  set |= [1] if weapons.compact.empty?  # Unarmed: Physical element
  return set
end

#basic_floor_damageObject


  • Get Base Value for Floor Damage




652
653
654
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 652

def basic_floor_damage
  return 10
end

#battle_member?Boolean


  • Determine Battle Members


Returns:

  • (Boolean)


329
330
331
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 329

def battle_member?
  $game_party.battle_members.include?(self)
end

#change_class(class_id, keep_exp = false) ⇒ Object


  • Change Class

    keep_exp:  Keep EXP
    



506
507
508
509
510
511
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 506

def change_class(class_id, keep_exp = false)
  @exp[class_id] = exp if keep_exp
  @class_id = class_id
  change_exp(@exp[@class_id] || 0, false)
  refresh
end

#change_equip(slot_id, item) ⇒ Object


  • Change Equipment

    slot_id:  Equipment slot ID
    item:    Weapon/armor (remove equipment if nil)
    



187
188
189
190
191
192
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 187

def change_equip(slot_id, item)
  return unless trade_item_with_party(item, equips[slot_id])
  return if item && equip_slots[slot_id] != item.etype_id
  @equips[slot_id].object = item
  refresh
end

#change_equip_by_id(slot_id, item_id) ⇒ Object


  • Change Equipment (Specify with ID)

    slot_id:  Equipment slot ID
    item_id:  Weapons/armor ID
    



219
220
221
222
223
224
225
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 219

def change_equip_by_id(slot_id, item_id)
  if equip_slots[slot_id] == 0
    change_equip(slot_id, $data_weapons[item_id])
  else
    change_equip(slot_id, $data_armors[item_id])
  end
end

#change_exp(exp, show) ⇒ Object


  • Change Experience

    show : Level up display flag
    



408
409
410
411
412
413
414
415
416
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 408

def change_exp(exp, show)
  @exp[@class_id] = [exp, 0].max
  last_level = @level
  last_skills = skills
  level_up while !max_level? && self.exp >= next_level_exp
  level_down while self.exp < current_level_exp
  display_level_up(skills - last_skills) if show && @level > last_level
  refresh
end

#change_level(level, show) ⇒ Object


  • Change Level

    show : Level up display flag
    



471
472
473
474
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 471

def change_level(level, show)
  level = [[level, max_level].min, 1].max
  change_exp(exp_for_level(level), show)
end

#check_floor_effectObject


  • Determine Floor Effect




638
639
640
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 638

def check_floor_effect
  execute_floor_damage if $game_player.on_damage_floor?
end

#classObject


  • Get Class Object




335
336
337
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 335

def class
  $data_classes[@class_id]
end

#clear_actionsObject


  • Clear Actions




670
671
672
673
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 670

def clear_actions
  super
  @action_input_index = 0
end

#clear_equipmentsObject


  • Remove All Equipment




253
254
255
256
257
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 253

def clear_equipments
  equip_slots.size.times do |i|
    change_equip(i, nil) if equip_change_ok?(i)
  end
end

#current_level_expObject


  • Get Minimum EXP for Current Level




84
85
86
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 84

def current_level_exp
  exp_for_level(@level)
end

#descriptionObject


  • Get Description




499
500
501
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 499

def description
  actor.description
end

#discard_equip(item) ⇒ Object


  • Discard Equipment

    item:  Weapon/armor to discard
    



230
231
232
233
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 230

def discard_equip(item)
  slot_id = equips.index(item)
  @equips[slot_id].object = nil if slot_id
end

#display_level_up(new_skills) ⇒ Object


  • Show Level Up Message

    new_skills : Array of newly learned skills
    



442
443
444
445
446
447
448
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 442

def display_level_up(new_skills)
  $game_message.new_page
  $game_message.add(sprintf(Vocab::LevelUp, @name, Vocab::level, @level))
  new_skills.each do |skill|
    $game_message.add(sprintf(Vocab::ObtainSkill, skill.name))
  end
end

#empty_slot(etype_id) ⇒ Object


  • Convert from Equipment Type to Slot ID (Empty Take Precedence)




144
145
146
147
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 144

def empty_slot(etype_id)
  list = slot_list(etype_id)
  list.find {|i| @equips[i].is_nil? } || list[0]
end

#equip_change_ok?(slot_id) ⇒ Boolean


  • Determine if Equipment Change Possible

    slot_id:  Equipment slot ID
    

Returns:

  • (Boolean)


177
178
179
180
181
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 177

def equip_change_ok?(slot_id)
  return false if equip_type_fixed?(equip_slots[slot_id])
  return false if equip_type_sealed?(equip_slots[slot_id])
  return true
end

#equip_slotsObject


  • Get Equipment Slot Array




151
152
153
154
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 151

def equip_slots
  return [0,0,2,3,4] if dual_wield?       # Dual wield
  return [0,1,2,3,4]                      # Normal
end

#equipsObject


  • Get Equipped Item Object Array




170
171
172
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 170

def equips
  @equips.collect {|item| item.object }
end

#execute_floor_damageObject


  • Floor Damage Processing




644
645
646
647
648
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 644

def execute_floor_damage
  damage = (basic_floor_damage * fdr).to_i
  self.hp -= [damage, max_floor_damage].min
  perform_map_damage_effect if damage > 0
end

#expObject


  • Get Experience




78
79
80
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 78

def exp
  @exp[@class_id]
end

#exp_for_level(level) ⇒ Object


  • Get Total EXP Required for Rising to Specified Level




66
67
68
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 66

def exp_for_level(level)
  self.class.exp_for_level(level)
end

#feature_objectsObject


  • Get Array of All Objects Retaining Features




353
354
355
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 353

def feature_objects
  super + [actor] + [self.class] + equips.compact
end

#final_exp_rateObject


  • Calculate Final EXP Rate




458
459
460
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 458

def final_exp_rate
  exr * (battle_member? ? 1 : reserve_members_exp_rate)
end

#force_change_equip(slot_id, item) ⇒ Object


  • Forcibly Change Equipment

    slot_id:  Equipment slot ID
    item:     Weapon/armor (remove equipment if nil)
    



198
199
200
201
202
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 198

def force_change_equip(slot_id, item)
  @equips[slot_id].object = item
  release_unequippable_items(false)
  refresh
end

#forget_skill(skill_id) ⇒ Object


  • Forget Skill




487
488
489
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 487

def forget_skill(skill_id)
  @skills.delete(skill_id)
end

#friends_unitObject


  • Get Allied Units




305
306
307
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 305

def friends_unit
  $game_party
end

#gain_exp(exp) ⇒ Object


  • Get EXP (Account for Experience Rate)




452
453
454
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 452

def gain_exp(exp)
  change_exp(self.exp + (exp * final_exp_rate).to_i, true)
end

#idObject


  • Get Actor ID




317
318
319
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 317

def id
  @actor_id
end

#indexObject


  • Get Index




323
324
325
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 323

def index
  $game_party.members.index(self)
end

#index_to_etype_id(index) ⇒ Object


  • Convert Index Set by Editor to Equipment Type ID




130
131
132
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 130

def index_to_etype_id(index)
  index == 1 && dual_wield? ? 0 : index
end

#init_equips(equips) ⇒ Object


  • Initialize Equipment

    equips:  An array of initial equipment
    



118
119
120
121
122
123
124
125
126
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 118

def init_equips(equips)
  @equips = Array.new(equip_slots.size) { Game_BaseItem.new }
  equips.each_with_index do |item_id, i|
    etype_id = index_to_etype_id(i)
    slot_id = empty_slot(etype_id)
    @equips[slot_id].set_equip(etype_id == 0, item_id) if slot_id
  end
  refresh
end

#init_expObject


  • Initialize EXP




72
73
74
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 72

def init_exp
  @exp[@class_id] = current_level_exp
end

#init_graphicsObject


  • Initialize Graphics




57
58
59
60
61
62
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 57

def init_graphics
  @character_name = actor.character_name
  @character_index = actor.character_index
  @face_name = actor.face_name
  @face_index = actor.face_index
end

#init_skillsObject


  • Initialize Skills




108
109
110
111
112
113
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 108

def init_skills
  @skills = []
  self.class.learnings.each do |learning|
    learn_skill(learning.skill_id) if learning.level <= @level
  end
end

#inputObject


  • Get Action Being Input




677
678
679
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 677

def input
  @actions[@action_input_index]
end

#learn_skill(skill_id) ⇒ Object


  • Learn Skill




478
479
480
481
482
483
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 478

def learn_skill(skill_id)
  unless skill_learn?($data_skills[skill_id])
    @skills.push(skill_id)
    @skills.sort!
  end
end

#level_downObject


  • Level Down




435
436
437
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 435

def level_down
  @level -= 1
end

#level_upObject


  • Level Up




426
427
428
429
430
431
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 426

def level_up
  @level += 1
  self.class.learnings.each do |learning|
    learn_skill(learning.skill_id) if learning.level == @level
  end
end

#make_action_listObject


  • Create Action Candidate List for Auto Battle




547
548
549
550
551
552
553
554
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 547

def make_action_list
  list = []
  list.push(Game_Action.new(self).set_attack.evaluate)
  usable_skills.each do |skill|
    list.push(Game_Action.new(self).set_skill(skill.id).evaluate)
  end
  list
end

#make_actionsObject


  • Create Battle Action




574
575
576
577
578
579
580
581
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 574

def make_actions
  super
  if auto_battle?
    make_auto_battle_actions
  elsif confusion?
    make_confusion_actions
  end
end

#make_auto_battle_actionsObject


  • Create Action During Auto Battle




558
559
560
561
562
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 558

def make_auto_battle_actions
  @actions.size.times do |i|
    @actions[i] = make_action_list.max_by {|action| action.value }
  end
end

#make_confusion_actionsObject


  • Create Action During Confusion




566
567
568
569
570
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 566

def make_confusion_actions
  @actions.size.times do |i|
    @actions[i].set_confusion
  end
end

#max_floor_damageObject


  • Get Maximum Value for Floor Damage




658
659
660
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 658

def max_floor_damage
  $data_system.opt_floor_death ? hp : [hp - 1, 0].max
end

#max_levelObject


  • Maximum Level




96
97
98
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 96

def max_level
  actor.max_level
end

#max_level?Boolean


  • Determine Maximum Level


Returns:

  • (Boolean)


102
103
104
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 102

def max_level?
  @level >= max_level
end

#next_commandObject


  • To Next Command Input




683
684
685
686
687
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 683

def next_command
  return false if @action_input_index >= @actions.size - 1
  @action_input_index += 1
  return true
end

#next_level_expObject


  • Get EXP for Next Level




90
91
92
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 90

def next_level_exp
  exp_for_level(@level + 1)
end

#on_player_walkObject


  • Processing Performed When Player Takes 1 Step




585
586
587
588
589
590
591
592
593
594
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 585

def on_player_walk
  @result.clear
  check_floor_effect
  if $game_player.normal_walk?
    turn_end_on_map
    states.each {|state| update_state_steps(state) }
    show_added_states
    show_removed_states
  end
end

#opponents_unitObject


  • Get Enemy Units




311
312
313
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 311

def opponents_unit
  $game_troop
end

#optimize_equipmentsObject


  • Ultimate Equipment




261
262
263
264
265
266
267
268
269
270
271
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 261

def optimize_equipments
  clear_equipments
  equip_slots.size.times do |i|
    next if !equip_change_ok?(i)
    items = $game_party.equip_items.select do |item|
      item.etype_id == equip_slots[i] &&
      equippable?(item) && item.performance >= 0
    end
    change_equip(i, items.max_by {|item| item.performance })
  end
end

#param_base(param_id) ⇒ Object


  • Get Base Value of Parameter




374
375
376
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 374

def param_base(param_id)
  self.class.params[param_id, @level]
end

#param_max(param_id) ⇒ Object


  • Get Maximum Value of Parameter




367
368
369
370
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 367

def param_max(param_id)
  return 9999 if param_id == 0  # MHP
  return super
end

#param_plus(param_id) ⇒ Object


  • Get Added Value of Parameter




380
381
382
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 380

def param_plus(param_id)
  equips.compact.inject(super) {|r, item| r += item.params[param_id] }
end

#perform_collapse_effectObject


  • Execute Collapse Effect




538
539
540
541
542
543
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 538

def perform_collapse_effect
  if $game_party.in_battle
    @sprite_effect_type = :collapse
    Sound.play_actor_collapse
  end
end

#perform_damage_effectObject


  • Execute Damage Effect




530
531
532
533
534
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 530

def perform_damage_effect
  $game_troop.screen.start_shake(5, 5, 10)
  @sprite_effect_type = :blink
  Sound.play_actor_damage
end

#perform_map_damage_effectObject


  • Execute Damage Effect on Map




664
665
666
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 664

def perform_map_damage_effect
  $game_map.screen.start_flash_for_damage
end

#prior_commandObject


  • To Previous Command Input




691
692
693
694
695
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 691

def prior_command
  return false if @action_input_index <= 0
  @action_input_index -= 1
  return true
end

#refreshObject


  • Refresh




292
293
294
295
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 292

def refresh
  release_unequippable_items
  super
end

#release_unequippable_items(item_gain = true) ⇒ Object


  • Remove Equipment that Cannot Be Equipped

    item_gain:  Return removed equipment to party.
    



238
239
240
241
242
243
244
245
246
247
248
249
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 238

def release_unequippable_items(item_gain = true)
  loop do
    last_equips = equips.dup
    @equips.each_with_index do |item, i|
      if !equippable?(item.object) || item.object.etype_id != equip_slots[i]
        trade_item_with_party(nil, item.object) if item_gain
        item.object = nil
      end
    end
    return if equips == last_equips
  end
end

#reserve_members_exp_rateObject


  • Get EXP Rate for Reserve Members




464
465
466
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 464

def reserve_members_exp_rate
  $data_system.opt_extra_exp ? 1 : 0
end

#set_graphic(character_name, character_index, face_name, face_index) ⇒ Object


  • Change Graphics




515
516
517
518
519
520
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 515

def set_graphic(character_name, character_index, face_name, face_index)
  @character_name = character_name
  @character_index = character_index
  @face_name = face_name
  @face_index = face_index
end

#setup(actor_id) ⇒ Object


  • Setup




33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 33

def setup(actor_id)
  @actor_id = actor_id
  @name = actor.name
  @nickname = actor.nickname
  init_graphics
  @class_id = actor.class_id
  @level = actor.initial_level
  @exp = {}
  @equips = []
  init_exp
  init_skills
  init_equips(actor.equips)
  clear_param_plus
  recover_all
end

#show_added_statesObject


  • Show Added State




607
608
609
610
611
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 607

def show_added_states
  @result.added_state_objects.each do |state|
    $game_message.add(name + state.message1) unless state.message1.empty?
  end
end

#show_removed_statesObject


  • Show Removed State




615
616
617
618
619
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 615

def show_removed_states
  @result.removed_state_objects.each do |state|
    $game_message.add(name + state.message4) unless state.message4.empty?
  end
end

#skill_learn?(skill) ⇒ Boolean


  • Determine if Skill Is Already Learned


Returns:

  • (Boolean)


493
494
495
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 493

def skill_learn?(skill)
  skill.is_a?(RPG::Skill) && @skills.include?(skill.id)
end

#skill_wtype_ok?(skill) ⇒ Boolean


  • Determine if Skill-Required Weapon Is Equipped


Returns:

  • (Boolean)


275
276
277
278
279
280
281
282
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 275

def skill_wtype_ok?(skill)
  wtype_id1 = skill.required_wtype_id1
  wtype_id2 = skill.required_wtype_id2
  return true if wtype_id1 == 0 && wtype_id2 == 0
  return true if wtype_id1 > 0 && wtype_equipped?(wtype_id1)
  return true if wtype_id2 > 0 && wtype_equipped?(wtype_id2)
  return false
end

#skillsObject


  • Get Skill Object Array




341
342
343
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 341

def skills
  (@skills | added_skills).sort.collect {|id| $data_skills[id] }
end

#slot_list(etype_id) ⇒ Object


  • Convert from Equipment Type to List of Slot IDs




136
137
138
139
140
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 136

def slot_list(etype_id)
  result = []
  equip_slots.each_with_index {|e, i| result.push(i) if e == etype_id }
  result
end

#steps_for_turnObject


  • Number of Steps Regarded as One Turn in Battle




623
624
625
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 623

def steps_for_turn
  return 20
end

#trade_item_with_party(new_item, old_item) ⇒ Object


  • Trade Item with Party

    new_item:  Item to get from party
    old_item:  Item to give to party
    



208
209
210
211
212
213
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 208

def trade_item_with_party(new_item, old_item)
  return false if new_item && !$game_party.has_item?(new_item)
  $game_party.gain_item(old_item, 1)
  $game_party.lose_item(new_item, 1)
  return true
end

#turn_end_on_mapObject


  • End of Turn Processing on Map Screen




629
630
631
632
633
634
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 629

def turn_end_on_map
  if $game_party.steps % steps_for_turn == 0
    on_turn_end
    perform_map_damage_effect if @result.hp_damage > 0
  end
end

#update_state_steps(state) ⇒ Object


  • Update Step Count for State




598
599
600
601
602
603
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 598

def update_state_steps(state)
  if state.remove_by_walking
    @state_steps[state.id] -= 1 if @state_steps[state.id] > 0
    remove_state(state.id) if @state_steps[state.id] == 0
  end
end

#usable_skillsObject


  • Get Array of Currently Usable Skills




347
348
349
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 347

def usable_skills
  skills.select {|skill| usable?(skill) }
end

#use_sprite?Boolean


  • Use Sprites?


Returns:

  • (Boolean)


524
525
526
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 524

def use_sprite?
  return false
end

#weaponsObject


  • Get Weapon Object Array




158
159
160
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 158

def weapons
  @equips.select {|item| item.is_weapon? }.collect {|item| item.object }
end

#wtype_equipped?(wtype_id) ⇒ Boolean


  • Determine if Specific Type of Weapon Is Equipped


Returns:

  • (Boolean)


286
287
288
# File 'lib/rgss3_default_scripts/Game_Actor.rb', line 286

def wtype_equipped?(wtype_id)
  weapons.any? {|weapon| weapon.wtype_id == wtype_id }
end