Class: GamesAndRpgParadise::MUD::ControlAnimal

Inherits:
RpgParadise::Mud::MudObject
  • Object
show all
Defined in:
lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb

Overview

RpgParadise::MUD::ControlAnimal

Constant Summary collapse

AVAILABLE_TRICKS =
#

AVAILABLE_TRICKS

#
[
  :follow, 
  :assist_in_combat,
  :deliver_something
]

Instance Method Summary collapse

Constructor Details

#initialize(this_animal) ⇒ ControlAnimal

#

initialize

#


45
46
47
48
49
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 45

def initialize(this_animal)
  # super()
  reset
  set_animal(this_animal)
end

Instance Method Details

#add_master(i) ⇒ Object

#

add_master

Add a master for this animal. Only the master can teach the animal new tricks to respond to.

#


87
88
89
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 87

def add_master(i)
  @master = i
end

#add_trick(i) ⇒ Object

#

add_trick

#


152
153
154
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 152

def add_trick(i)
  @knows_these_tricks << i unless @knows_these_tricks.include?(i)
end

#debugObject

#

debug

#


138
139
140
141
142
143
144
145
146
147
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 138

def debug
  e
  e 'The known tricks are:'
  e
  pp @knows_these_tricks
  e
  e 'All available tricks are:'
  e
  pp AVAILABLE_TRICKS
end

#followObject

#

follow

#


131
132
133
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 131

def follow
  @animal.follow(@master)
end

#knows_n_tricks_alreadyObject

#

knows_n_tricks_already

#


77
78
79
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 77

def knows_n_tricks_already
  @knows_these_tricks.size
end

#knows_these_tricks?Boolean Also known as: knows_these_tricks

#

knows_these_tricks?

#

Returns:

  • (Boolean)


159
160
161
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 159

def knows_these_tricks?
  @knows_these_tricks
end

#learn_a_trick(what_kind_of_trick = :random) ⇒ Object Also known as: learn_trick

#

learn_a_trick

Make the animal learn a specific trick.

#


96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 96

def learn_a_trick(
    what_kind_of_trick = :random
  )
  t = what_kind_of_trick
  case what_kind_of_trick
  # ======================================================================= #
  # === :random
  # ======================================================================= #
  when :random
    t = AVAILABLE_TRICKS.sample
  end
  case what_kind_of_trick
  # ======================================================================= #
  # === :follow
  # ======================================================================= #
  when :follow
    if (@animal.int / 10) < knows_n_tricks_already
      add_trick(t)
      tp 'The animal will try to follow you.'
    end
  # ======================================================================= #
  # === :assist_in_combat
  # ======================================================================= #
  when :assist_in_combat
    if (@animal.int / 10) < knows_n_tricks_already
      add_trick(t)
      tp 'The animal will try to assist you in combat.'
    end
  end
  add_trick(t)
end

#resetObject

#

reset (reset tag)

#


61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 61

def reset
  # ======================================================================= #
  # === @knows_these_tricks
  #
  # The animal knows the following tricks.
  # ======================================================================= #
  @knows_these_tricks = []
  # ======================================================================= #
  # === @master
  # ======================================================================= #
  @master = nil
end

#set_animal(i) ⇒ Object

#

set_animal

#


54
55
56
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 54

def set_animal(i)
  @animal = i
end

#set_knows_these_tricks(i) ⇒ Object Also known as: knows_these_tricks=

#

set_knows_these_tricks

#


166
167
168
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 166

def set_knows_these_tricks(i)
  @knows_these_tricks = [i].flatten.compact
end

#tame_animal(a = @animal) ⇒ Object

#

tame_animal

Pass an animal into this method.

#


175
176
177
178
179
180
# File 'lib/games_and_rpg_paradise/mud/control_animal/control_animal.rb', line 175

def tame_animal(a = @animal)
  tp 'You begin taming the '+a.desc?+'.'
  if a.tame_level == 0
    learn_trick
  end
end