Class: Olib::Creatures
- Inherits:
-
Object
- Object
- Olib::Creatures
- Defined in:
- lib/Olib/creatures.rb
Class Method Summary collapse
- .[](exp) ⇒ Object
- .active ⇒ Object
- .all ⇒ Object
- .ambushed? ⇒ Boolean
- .antimagic ⇒ Object
- .bandits ⇒ Object
- .dead ⇒ Object
- .each(&block) ⇒ Object
- .escortees ⇒ Object
- .filter(&block) ⇒ Object
- .first ⇒ Object
- .flying ⇒ Object
- .grimswarm ⇒ Object
- .ignoreable ⇒ Object
- .invasion ⇒ Object
- .living ⇒ Object
- .prone ⇒ Object
- .stunned ⇒ Object
- .undead ⇒ Object
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 |
.active ⇒ Object
45 |
# File 'lib/Olib/creatures.rb', line 45 def Creatures.active; all.select(&:active?) ;end |
.all ⇒ Object
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..include?('animate') } .select { |creature| !creature.gone? } || [] end |
.ambushed? ⇒ 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 |
.antimagic ⇒ Object
37 |
# File 'lib/Olib/creatures.rb', line 37 def Creatures.antimagic; all.select { |creature| creature.is?('antimagic') } ;end |
.bandits ⇒ Object
33 |
# File 'lib/Olib/creatures.rb', line 33 def Creatures.bandits; all.select { |creature| creature.is?('bandit') } ;end |
.dead ⇒ Object
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 |
.escortees ⇒ Object
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 |
.first ⇒ Object
6 7 8 |
# File 'lib/Olib/creatures.rb', line 6 def Creatures.first all.first end |
.flying ⇒ Object
35 |
# File 'lib/Olib/creatures.rb', line 35 def Creatures.; all.select { |creature| creature.is?('flying') } ;end |
.grimswarm ⇒ Object
40 |
# File 'lib/Olib/creatures.rb', line 40 def Creatures.grimswarm; all.select { |creature| creature.is?('grimswarm') } ;end |
.ignoreable ⇒ Object
34 |
# File 'lib/Olib/creatures.rb', line 34 def Creatures.ignoreable; all.select { |creature| creature.is?('ignoreable') } ;end |
.invasion ⇒ Object
41 |
# File 'lib/Olib/creatures.rb', line 41 def Creatures.invasion; all.select { |creature| creature.is?('invasion') } ;end |
.living ⇒ Object
36 |
# File 'lib/Olib/creatures.rb', line 36 def Creatures.living; all.select { |creature| creature.is?('living') } ;end |
.prone ⇒ Object
47 |
# File 'lib/Olib/creatures.rb', line 47 def Creatures.prone; all.select(&:prone?) ;end |
.stunned ⇒ Object
44 |
# File 'lib/Olib/creatures.rb', line 44 def Creatures.stunned; all.select(&:stunned?) ;end |
.undead ⇒ Object
38 |
# File 'lib/Olib/creatures.rb', line 38 def Creatures.undead; all.select { |creature| creature.is?('undead') } ;end |