All pastes #31437 Raw Edit

Minkoff::ABS

public ruby v1 · immutable
#31437 ·published 2005-11-27 20:02 UTC
rendered paste body
module Minkoff  class ABS    ENABLED = true    def initialize      @enemies = []      @cooldown = 0    end    def main      for event in $game_map.events.values        for monster in $data_enemies.compact          if event.event.name == monster.name            @enemies.push(ABS_Enemy.new(monster, event))            break          end        end      end    end    def update      for enemy in @enemies        enemy.update        if $game_player.minkoff_abs_in_range?(enemy.event, 1) and            $game_player.minkoff_abs_facing?(enemy.event) and @cooldown == 0 and            Input.trigger?(Input::SHIFT) and !$game_player.moving?          enemy.attack_effect($game_party.actors[0])          if enemy.dead?            enemy.event.erase            @enemies.delete(enemy)          end          $game_player.animation_id = $game_party.actors[0].animation1_id          enemy.event.animation_id = $game_party.actors[0].animation2_id          @cooldown = 25        end      end      @cooldown -= 1 if @cooldown > 0    end    class ABS_Enemy < Game_Enemy            attr_reader :event            def initialize(monster, event)        minkoff_abs_initialize        @enemy_id = monster.id        @battler_name = monster.battler_name        @battler_hue = monster.battler_hue        @hp = maxhp        @sp = maxsp        @monster = monster        @event = event        @cooldown = 0      end            def update        if @engaged          if @cooldown == 0 and !@event.moving? and             @event.minkoff_abs_in_range?($game_player, 1)            $game_party.actors[0].attack_effect(self)            $game_temp.gameover = $game_party.actors[0].dead?            $game_map.events[@event.id].animation_id = animation1_id            $game_player.animation_id = animation2_id            @cooldown = 50          elsif !@event.minkoff_abs_in_range?($game_player, 7)            @engaged = false            @event.move_type = @old_move_type          end        elsif @event.minkoff_abs_facing?($game_player) and               @event.minkoff_abs_in_range?($game_player)          @engaged = true          @old_move_type = @event.move_type          @event.move_type = 2        end        @cooldown -= 1 if @cooldown > 0      end    end  endendif Minkoff::ABS::ENABLED  class Scene_Map    @@_minkoff_abs = Minkoff::ABS.new    alias minkoff_abs_main main    def main      @@_minkoff_abs.main      minkoff_abs_main    end    alias minkoff_abs_update update    def update      @@_minkoff_abs.update      minkoff_abs_update    end  end  class Game_Character    attr_accessor :move_type    attr_accessor :move_frequency    attr_accessor :move_speed    attr_accessor :character_name    attr_reader :event    def minkoff_abs_facing?(event)      case self.direction      when 2        return true if event.y > self.y      when 4        return true if event.x < self.x      when 6        return true if event.x > self.x      when 8        return true if event.y < self.y      else        return false      end    end        def minkoff_abs_in_range?(event, range = 5)      x = (self.x - event.x).abs      y = (self.y - event.y).abs      return x + y <= range    end  end  class Game_Battler    alias minkoff_abs_initialize initialize    def initialize      minkoff_abs_initialize    end  endend