diff --git a/lib/aethyr/core/actions/commands/say.rb b/lib/aethyr/core/actions/commands/say.rb index 9b60ba6b6e304313432e4210eb89676060dd35a6..2b29013c35d475ed0eafa614b8a82f59a98f9446 100644 --- a/lib/aethyr/core/actions/commands/say.rb +++ b/lib/aethyr/core/actions/commands/say.rb @@ -77,33 +77,34 @@ module Aethyr phrase = "<say>\"#{phrase}#{ender}\"</say>" - self[:message_type] = :chat - self[:target] = target + room_out_event = { :player => self[:agent] } + room_out_event[:message_type] = :chat + room_out_event[:target] = target if target and pvoice == "ask" - self[:to_target] = prefix + "#{self[:agent].name} #{rvoice} you, #{phrase}" - self[:to_player] = prefix + "you #{pvoice} #{target.name}, #{phrase}" - self[:to_other] = prefix + "#{self[:agent].name} #{rvoice} #{target.name}, #{phrase}" - self[:to_blind_target] = "Someone asks, #{phrase}" - self[:to_blind_other] = "Someone asks, #{phrase}" - self[:to_deaf_target] = "#{self[:agent].name} seems to be asking you something." - self[:to_deaf_other] = "#{self[:agent].name} seems to be asking #{target.name} something." + room_out_event[:to_target] = prefix + "#{self[:agent].name} #{rvoice} you, #{phrase}" + room_out_event[:to_player] = prefix + "you #{pvoice} #{target.name}, #{phrase}" + room_out_event[:to_other] = prefix + "#{self[:agent].name} #{rvoice} #{target.name}, #{phrase}" + room_out_event[:to_blind_target] = "Someone asks, #{phrase}" + room_out_event[:to_blind_other] = "Someone asks, #{phrase}" + room_out_event[:to_deaf_target] = "#{self[:agent].name} seems to be asking you something." + room_out_event[:to_deaf_other] = "#{self[:agent].name} seems to be asking #{target.name} something." elsif target - self[:to_target] = prefix + "#{self[:agent].name} #{rvoice} to you, #{phrase}" - self[:to_player] = prefix + "you #{pvoice} to #{target.name}, #{phrase}" - self[:to_other] = prefix + "#{self[:agent].name} #{rvoice} to #{target.name}, #{phrase}" - self[:to_blind_target] = "Someone #{rvoice}, #{phrase}" - self[:to_blind_other] = "Someone #{rvoice}, #{phrase}" - self[:to_deaf_target] = "You see #{self[:agent].name} say something to you." - self[:to_deaf_other] = "You see #{self[:agent].name} say something to #{target.name}." + room_out_event[:to_target] = prefix + "#{self[:agent].name} #{rvoice} to you, #{phrase}" + room_out_event[:to_player] = prefix + "you #{pvoice} to #{target.name}, #{phrase}" + room_out_event[:to_other] = prefix + "#{self[:agent].name} #{rvoice} to #{target.name}, #{phrase}" + room_out_event[:to_blind_target] = "Someone #{rvoice}, #{phrase}" + room_out_event[:to_blind_other] = "Someone #{rvoice}, #{phrase}" + room_out_event[:to_deaf_target] = "You see #{self[:agent].name} say something to you." + room_out_event[:to_deaf_other] = "You see #{self[:agent].name} say something to #{target.name}." else - self[:to_player] = prefix + "you #{pvoice}, #{phrase}" - self[:to_other] = prefix + "#{self[:agent].name} #{rvoice}, #{phrase}" - self[:to_blind_other] = "Someone #{rvoice}, #{phrase}" - self[:to_deaf_target] = "You see #{self[:agent].name} say something." - self[:to_deaf_other] = "You see #{self[:agent].name} say something." + room_out_event[:to_player] = prefix + "you #{pvoice}, #{phrase}" + room_out_event[:to_other] = prefix + "#{self[:agent].name} #{rvoice}, #{phrase}" + room_out_event[:to_blind_other] = "Someone #{rvoice}, #{phrase}" + room_out_event[:to_deaf_target] = "You see #{self[:agent].name} say something." + room_out_event[:to_deaf_other] = "You see #{self[:agent].name} say something." end - room.out_event(event) + room.out_event(Event.new(room_out_event)) end end end diff --git a/lib/aethyr/core/objects/game_object.rb b/lib/aethyr/core/objects/game_object.rb index 710fbceb79e59447a47910a6d1833841ae66a82d..249c88eba308c2866d8bbf320c40eb9698b8e22f 100644 --- a/lib/aethyr/core/objects/game_object.rb +++ b/lib/aethyr/core/objects/game_object.rb @@ -153,14 +153,7 @@ class GameObject < Publisher #Returns plural form of object's name. def plural - return @plural if @plural - if @generic - "#{@generic}s" - elsif @name - "#{@names}s" - else - "unkowns" - end + return noun(:proper => true, :plurality => Lexicon::Plurality::PLURAL) end #Run any logic you need (thinking). diff --git a/lib/aethyr/core/objects/traits/lexicon.rb b/lib/aethyr/core/objects/traits/lexicon.rb index 2173a32c2c2da284704f9a39050141c619585f9a..7f634cd9787c7815d1846cc6727301c28c86ca14 100644 --- a/lib/aethyr/core/objects/traits/lexicon.rb +++ b/lib/aethyr/core/objects/traits/lexicon.rb @@ -218,9 +218,13 @@ module Lexicon def noun(proper = true, plurality: nil, gramatical_person: nil, relation: nil, subjectivity: nil, quantifier: nil) if proper - final_noun = @name + final_noun = @name ? @name : (@generic ? @generic : "unknown") if plurality == Plurality::PLURAL - final_noun += 's' + if @plural + final_noun = @plural + else + final_noun += 's' + end final_noun += '\'' if relation == Relation::POSSESSIVE elsif relation == Relation::POSSESSIVE final_nount += '\'s'