From c397aeba4ed0a1d01bed09e59e831ababf72a47c Mon Sep 17 00:00:00 2001 From: Joni Savolainen Date: Tue, 13 Oct 2020 20:49:50 +0300 Subject: [PATCH] Setters for Pokemon::Owner --- Data/Scripts/016_Pokemon/001_Pokemon.rb | 43 +++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/Data/Scripts/016_Pokemon/001_Pokemon.rb b/Data/Scripts/016_Pokemon/001_Pokemon.rb index cacf9761e..f198df348 100644 --- a/Data/Scripts/016_Pokemon/001_Pokemon.rb +++ b/Data/Scripts/016_Pokemon/001_Pokemon.rb @@ -134,7 +134,7 @@ class Pokemon # @param id [Integer] the ID of the owner # @param name [String] the name of the owner - # @param gender [0, 1, 2] the gender of the owner (0 = male, 1 = female, 2 = unknown) + # @param gender [Integer] the gender of the owner (0 = male, 1 = female, 2 = unknown) # @param language [Integer] the language of the owner (see {pbGetLanguage} for language IDs) def initialize(id, name, gender, language) @id = id @@ -150,6 +150,34 @@ class Pokemon return new(trainer.id, trainer.name, trainer.gender, trainer.language) end + def id=(new_id) + unless new_id.is_a?(Integer) + raise ArgumentError, _INTL('A {1} was given as Pokémon owner id', new_id.class.name) + end + @id = new_id + end + + def name=(new_name) + unless new_name.is_a?(String) + raise ArgumentError, _INTL('A {1} was given as Pokémon owner id', new_name.class.name) + end + @name = new_name + end + + def gender=(new_gender) + unless new_gender.is_a?(Integer) + raise ArgumentError, _INTL('A {1} was given as Pokémon owner id', new_gender.class.name) + end + @gender = new_gender + end + + def language=(new_language) + unless new_language.is_a?(Integer) + raise ArgumentError, _INTL('A {1} was given as Pokémon owner id', new_language.class.name) + end + @language = new_language + end + # @return [Integer] the public portion of the owner's ID def public_id return @id & 0xFFFF @@ -157,7 +185,18 @@ class Pokemon end # @return [Owner] this Pokémon's owner - attr_reader :owner + def owner + return @owner + end + + # Changes this Pokémon's owner. + # @param new_owner [Owner] the owner to change to + def owner=(new_owner) + unless new_owner.is_a?(Owner) + raise ArgumentError, _INTL("A {1} was given as a Pokémon owner", new_owner.class.name) + end + @owner = new_owner + end # @return [Integer] the public portion of the original trainer's ID def publicID