Module: Lich::Gemstone::SK

Defined in:
documented/gemstone/sk.rb

Class Method Summary collapse

Class Method Details

.add(*numbers) ⇒ void

This method returns an undefined value.

Adds one or more spell numbers to the known SK spells.

Parameters:

  • numbers (Array)

    The spell numbers to add.



66
67
68
69
# File 'documented/gemstone/sk.rb', line 66

def self.add(*numbers)
  self.sk_known = (@sk_known + numbers).uniq
  self.list
end

.helpvoid

This method returns an undefined value.

Provides help information for managing SK spells.



53
54
55
56
57
58
59
60
61
# File 'documented/gemstone/sk.rb', line 53

def self.help
  respond "   Script to add SK spells to be known and used with Spell API calls."
  respond ""
  respond "   ;sk add <SPELL_NUMBER>  - Add spell number to saved list"
  respond "   ;sk rm <SPELL_NUMBER>   - Remove spell number from saved list"
  respond "   ;sk list                - Show all currently saved SK spell numbers"
  respond "   ;sk help                - Show this menu"
  respond ""
end

.known?(spell) ⇒ Boolean

Checks if a specific spell is known.

Parameters:

  • spell (Object)

    The spell object to check.

Returns:

  • (Boolean)

    True if the spell is known, false otherwise.



39
40
41
42
# File 'documented/gemstone/sk.rb', line 39

def self.known?(spell)
  self.sk_known if @sk_known.nil?
  @sk_known.include?(spell.num.to_s)
end

.listvoid

This method returns an undefined value.

Lists the current known SK spells.



46
47
48
49
# File 'documented/gemstone/sk.rb', line 46

def self.list
  respond "Current SK Spells: #{@sk_known.inspect}"
  respond ""
end

.main(action = help, spells = nil) ⇒ void

This method returns an undefined value.

Main entry point for managing SK spells based on the action provided.

Parameters:

  • action (Symbol) (defaults to: help)

    The action to perform (:add, :rm, :list, or :help).

  • spells (String, nil) (defaults to: nil)

    The spell numbers to process, if applicable.



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'documented/gemstone/sk.rb', line 83

def self.main(action = help, spells = nil)
  self.sk_known if @sk_known.nil?
  action = action.to_sym
  spells = spells.split(" ").uniq
  case action
  when :add
    self.add(*spells) unless spells.empty?
    self.help if spells.empty?
  when :rm
    self.remove(*spells) unless spells.empty?
    self.help if spells.empty?
  when :list
    self.list
  else
    self.help
  end
end

.remove(*numbers) ⇒ void

This method returns an undefined value.

Removes one or more spell numbers from the known SK spells.

Parameters:

  • numbers (Array)

    The spell numbers to remove.



74
75
76
77
# File 'documented/gemstone/sk.rb', line 74

def self.remove(*numbers)
  self.sk_known = (@sk_known - numbers).uniq
  self.list
end

.sk_knownArray?

Retrieves the known SK spells. If the known spells are not set, it attempts to read from the database.

Returns:

  • (Array, nil)

    The list of known SK spells or nil if not set.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'documented/gemstone/sk.rb', line 9

def self.sk_known
  if @sk_known.nil?
    val = DB_Store.read("#{XMLData.game}:#{XMLData.name}", "sk_known")
    if val.nil? || (val.is_a?(Hash) && val.empty?)
      old_settings = DB_Store.read("#{XMLData.game}:#{XMLData.name}", "vars")["sk/known"]
      if old_settings.is_a?(Array)
        val = old_settings
      else
        val = []
      end
      self.sk_known = val
    end
    @sk_known = val unless val.nil?
  end
  return @sk_known
end

.sk_known=(val) ⇒ void

This method returns an undefined value.

Sets the known SK spells.

Parameters:

  • val (Array)

    The list of SK spells to be known.



29
30
31
32
33
34
# File 'documented/gemstone/sk.rb', line 29

def self.sk_known=(val)
  unless @sk_known == val
    DB_Store.save("#{XMLData.game}:#{XMLData.name}", "sk_known", val)
    @sk_known = val
  end
end