class Plugins::Attack

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/Zeta/plugins/attack.rb, line 17
def initialize(*args)
  @attackdict = []
  super
end

Public Instance Methods

execute(m, target=nil) click to toggle source

Methods

# File lib/Zeta/plugins/attack.rb, line 26
def execute(m, target=nil)
  target = target.rstrip
  target = m.user.nick if !target.nil? && target.match(/(\bmy\b|\b#{@bot.nick}\S*\b|\b\S*self\b)/i)
  target.gsub(/(\bmy\b|\b#{@bot.nick}\S*\b|\b\S*self\b)/i,m.user.nick+"'s") if !target.nil?;
   populate_attacks!
   output = if target
    attack!(target.gsub(/\x03([0-9]{2}(,[0-9]{2})?)?/,''), m.user.nick)
  else
    random_attack!(m.channel.users, m.user.nick)
  end
  m.channel.action output
end

Private Instance Methods

attack!(target, assailant) click to toggle source
# File lib/Zeta/plugins/attack.rb, line 48
def attack!(target, assailant)
  return nil if target.nil?;
  @attackdict.sample % {:target => target, :assailant => assailant, :bot => @bot.nick};
end
grab_random_nick(users) click to toggle source
# File lib/Zeta/plugins/attack.rb, line 44
def grab_random_nick(users)
  users.to_a.sample[0].nick;
end
populate_attacks!() click to toggle source
# File lib/Zeta/plugins/attack.rb, line 40
def populate_attacks!
  @attackdict.replace load_locale('attack').map {|e| e.gsub(/<(\w+)>/, "%<#{'\1'.downcase}>s") }
end
random_attack!(targets, assailant) click to toggle source
# File lib/Zeta/plugins/attack.rb, line 53
def random_attack!(targets, assailant)
  @attackdict.sample % {:target => grab_random_nick(targets), :assailant => assailant, :bot => @bot.nick};
end