#============================================================================== # [ZTBS] -Zenith Tactical Battle System- タクティカルバトルシステム #  〜+B11:ダメージ床対応〜 by 水夜 #  ver0.90 Zenith Creation (http://zenith.ifdef.jp/) #------------------------------------------------------------------------------ # マップ上での戦略的なバトルを実現。 #============================================================================== #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 地形ダメージチェック #-------------------------------------------------------------------------- def ztbs_check_tile_damage # 地形タグのダメージを読み取る base = Numset::DAMAGE_SET[$game_player.terrain_tag] if base != nil if base =~ /^([amp])([+-]?([1-9]\d*|0)\.?\d*)?/i set = $1.downcase damage = $2.to_i end return damagetile(set, damage) else # 無い場合はチェックしない return 0 end end end #============================================================================== # ■ Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :sprite # スプライトの参照 end #============================================================================== # ■ Sprite_Character #============================================================================== class Sprite_Character < RPG::Sprite #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(viewport, character = nil) super(viewport) @character = character @character.sprite = self update end end #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● 未行動アクター処理 #-------------------------------------------------------------------------- def not_acted_actor_refresh for i in $game_system.tactics_actors.keys # 未行動の場合 if !$game_map.events[i].acted # アクター取得 actor = $game_system.tactics_actors[i] # 地形ダメージ slip_damage = actor.ztbs_check_tile_damage if slip_damage != 0 $game_map.events[i].damage = slip_damage $game_map.events[i].damage_pop = true se = Numset::DAMAGE_SE if se[0] != nil Audio.se_play("Audio/SE/#{se[0]}", se[1], se[2]) end $game_map.events[i].sprite.flash(Numset::FLASH_SET, 4) end # スリップダメージ if actor.hp > 0 and actor.slip_damage? actor.slip_damage_effect $game_map.events[i].damage = actor.damage $game_map.events[i].damage_pop = true end # ステート自然解除 actor.remove_states_auto # 消去対象をチェック set_erase_battler # バトラー情報リフレッシュ refresh_battler_info # 行動済みにする $game_map.events[i].acted = true end end end #-------------------------------------------------------------------------- # ● フレーム更新 (ステップ 10 共有 : 行動終了) #-------------------------------------------------------------------------- alias :ztbsb12_update_step10 :update_step10 def update_step10 # 地形ダメージ slip_damage = @attacker.ztbs_check_tile_damage if slip_damage != 0 @active_battler.damage = slip_damage @active_battler.damage_pop = true se = Numset::DAMAGE_SE if se[0] != nil Audio.se_play("Audio/SE/#{se[0]}", se[1], se[2]) end @active_battler.sprite.flash(Numset::FLASH_SET, 4) end ztbsb12_update_step10 end end