Class: Olib::Creatures

Inherits:
Object
  • Object
show all
Defined in:
lib/Olib/creatures.rb

Class Method Summary collapse

Class Method Details

.[](exp) ⇒ Object



23
24
25
26
27
# File 'lib/Olib/creatures.rb', line 23

def Creatures.[](exp)
  regexp = exp.class == String ? /#{exp}/ : exp


  all.select { |creature| creature.name =~ regexp || creature.id == exp }
end

.activeObject



45
# File 'lib/Olib/creatures.rb', line 45

def Creatures.active;      all.select(&:active?)    ;end

.allObject



10
11
12
13
14
15
16
17
# File 'lib/Olib/creatures.rb', line 10

def Creatures.all
  GameObj.npcs
    .map    { |creature| Olib::Creature.new(creature) }
    .select { |creature| !creature.dead?              }
    .select { |creature| !creature.ignorable?         }
    .select { |creature| !creature.tags.include?('animate') }
    .select { |creature| !creature.gone? } || []
end

.ambushed?Boolean

Returns:

  • (Boolean)


49
50
51
52
53
54
# File 'lib/Olib/creatures.rb', line 49

def Creatures.ambushed?
  last_line = $_SERVERBUFFER_.reverse.find { |line| line =~ /<pushStream id='room'\/>|An? .*? fearfully exclaims, "It's an ambush!"|#{Olib::Dictionary.bandit_traps.values.join('|')}/ }
  echo "detected ambush..." if !last_line.nil? && last_line !~ /pushStream id='room'/

  !last_line.nil? && last_line !~ /pushStream id='room'/
end

.antimagicObject



37
# File 'lib/Olib/creatures.rb', line 37

def Creatures.antimagic;   all.select { |creature| creature.is?('antimagic') } ;end

.banditsObject



33
# File 'lib/Olib/creatures.rb', line 33

def Creatures.bandits;     all.select { |creature| creature.is?('bandit') }    ;end

.deadObject



46
# File 'lib/Olib/creatures.rb', line 46

def Creatures.dead;        all.select(&:dead?)      ;end

.each(&block) ⇒ Object



19
20
21
# File 'lib/Olib/creatures.rb', line 19

def Creatures.each(&block)
  all.each(&block)
end

.escorteesObject



42
# File 'lib/Olib/creatures.rb', line 42

def Creatures.escortees;   GameObj.npcs.map {|creature| Creature.new(creature) }.select {|creature| creature.is?('escortee') } ;end

.filter(&block) ⇒ Object



29
30
31
# File 'lib/Olib/creatures.rb', line 29

def Creatures.filter(&block); 
  all.select(&block)                                
end

.firstObject



6
7
8
# File 'lib/Olib/creatures.rb', line 6

def Creatures.first
  all.first
end

.flyingObject



35
# File 'lib/Olib/creatures.rb', line 35

def Creatures.flying;      all.select { |creature| creature.is?('flying') }    ;end

.grimswarmObject



40
# File 'lib/Olib/creatures.rb', line 40

def Creatures.grimswarm;   all.select { |creature| creature.is?('grimswarm') } ;end

.ignoreableObject



34
# File 'lib/Olib/creatures.rb', line 34

def Creatures.ignoreable;  all.select { |creature| creature.is?('ignoreable') }    ;end

.invasionObject



41
# File 'lib/Olib/creatures.rb', line 41

def Creatures.invasion;    all.select { |creature| creature.is?('invasion')  } ;end

.livingObject



36
# File 'lib/Olib/creatures.rb', line 36

def Creatures.living;      all.select { |creature| creature.is?('living') }    ;end

.proneObject



47
# File 'lib/Olib/creatures.rb', line 47

def Creatures.prone;       all.select(&:prone?)     ;end

.stunnedObject



44
# File 'lib/Olib/creatures.rb', line 44

def Creatures.stunned;     all.select(&:stunned?)   ;end

.undeadObject



38
# File 'lib/Olib/creatures.rb', line 38

def Creatures.undead;      all.select { |creature| creature.is?('undead') }    ;end