# coding: utf-8

"""
    LoL v3 Stats

    LoL v3 Stats  # noqa: E501

    OpenAPI spec version: 1.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class LolStatsChampion(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'attack': 'float',
        'defense': 'float',
        'magic': 'float',
        'difficulty': 'float',
        'hp': 'float',
        'hp_up_per_level': 'float',
        'mp': 'float',
        'mp_up_per_level': 'float',
        'move_speed': 'float',
        'armor': 'float',
        'armor_per_level': 'float',
        'spell_block': 'float',
        'spell_block_per_level': 'float',
        'attack_range': 'float',
        'hp_regen': 'float',
        'hp_regen_per_level': 'float',
        'mp_regen': 'float',
        'mp_regen_per_level': 'float',
        'attack_damage': 'float',
        'attack_damage_per_level': 'float',
        'attack_speed_offset': 'float',
        'champion_id': 'int',
        'name': 'str',
        'title': 'str'
    }

    attribute_map = {
        'attack': 'Attack',
        'defense': 'Defense',
        'magic': 'Magic',
        'difficulty': 'Difficulty',
        'hp': 'Hp',
        'hp_up_per_level': 'HpUpPerLevel',
        'mp': 'Mp',
        'mp_up_per_level': 'MpUpPerLevel',
        'move_speed': 'MoveSpeed',
        'armor': 'Armor',
        'armor_per_level': 'ArmorPerLevel',
        'spell_block': 'SpellBlock',
        'spell_block_per_level': 'SpellBlockPerLevel',
        'attack_range': 'AttackRange',
        'hp_regen': 'HpRegen',
        'hp_regen_per_level': 'HpRegenPerLevel',
        'mp_regen': 'MpRegen',
        'mp_regen_per_level': 'MpRegenPerLevel',
        'attack_damage': 'AttackDamage',
        'attack_damage_per_level': 'AttackDamagePerLevel',
        'attack_speed_offset': 'AttackSpeedOffset',
        'champion_id': 'ChampionId',
        'name': 'Name',
        'title': 'Title'
    }

    def __init__(self, attack=None, defense=None, magic=None, difficulty=None, hp=None, hp_up_per_level=None, mp=None, mp_up_per_level=None, move_speed=None, armor=None, armor_per_level=None, spell_block=None, spell_block_per_level=None, attack_range=None, hp_regen=None, hp_regen_per_level=None, mp_regen=None, mp_regen_per_level=None, attack_damage=None, attack_damage_per_level=None, attack_speed_offset=None, champion_id=None, name=None, title=None):  # noqa: E501
        """LolStatsChampion - a model defined in Swagger"""  # noqa: E501
        self._attack = None
        self._defense = None
        self._magic = None
        self._difficulty = None
        self._hp = None
        self._hp_up_per_level = None
        self._mp = None
        self._mp_up_per_level = None
        self._move_speed = None
        self._armor = None
        self._armor_per_level = None
        self._spell_block = None
        self._spell_block_per_level = None
        self._attack_range = None
        self._hp_regen = None
        self._hp_regen_per_level = None
        self._mp_regen = None
        self._mp_regen_per_level = None
        self._attack_damage = None
        self._attack_damage_per_level = None
        self._attack_speed_offset = None
        self._champion_id = None
        self._name = None
        self._title = None
        self.discriminator = None
        if attack is not None:
            self.attack = attack
        if defense is not None:
            self.defense = defense
        if magic is not None:
            self.magic = magic
        if difficulty is not None:
            self.difficulty = difficulty
        if hp is not None:
            self.hp = hp
        if hp_up_per_level is not None:
            self.hp_up_per_level = hp_up_per_level
        if mp is not None:
            self.mp = mp
        if mp_up_per_level is not None:
            self.mp_up_per_level = mp_up_per_level
        if move_speed is not None:
            self.move_speed = move_speed
        if armor is not None:
            self.armor = armor
        if armor_per_level is not None:
            self.armor_per_level = armor_per_level
        if spell_block is not None:
            self.spell_block = spell_block
        if spell_block_per_level is not None:
            self.spell_block_per_level = spell_block_per_level
        if attack_range is not None:
            self.attack_range = attack_range
        if hp_regen is not None:
            self.hp_regen = hp_regen
        if hp_regen_per_level is not None:
            self.hp_regen_per_level = hp_regen_per_level
        if mp_regen is not None:
            self.mp_regen = mp_regen
        if mp_regen_per_level is not None:
            self.mp_regen_per_level = mp_regen_per_level
        if attack_damage is not None:
            self.attack_damage = attack_damage
        if attack_damage_per_level is not None:
            self.attack_damage_per_level = attack_damage_per_level
        if attack_speed_offset is not None:
            self.attack_speed_offset = attack_speed_offset
        if champion_id is not None:
            self.champion_id = champion_id
        if name is not None:
            self.name = name
        if title is not None:
            self.title = title

    @property
    def attack(self):
        """Gets the attack of this LolStatsChampion.  # noqa: E501


        :return: The attack of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._attack

    @attack.setter
    def attack(self, attack):
        """Sets the attack of this LolStatsChampion.


        :param attack: The attack of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._attack = attack

    @property
    def defense(self):
        """Gets the defense of this LolStatsChampion.  # noqa: E501


        :return: The defense of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._defense

    @defense.setter
    def defense(self, defense):
        """Sets the defense of this LolStatsChampion.


        :param defense: The defense of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._defense = defense

    @property
    def magic(self):
        """Gets the magic of this LolStatsChampion.  # noqa: E501


        :return: The magic of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._magic

    @magic.setter
    def magic(self, magic):
        """Sets the magic of this LolStatsChampion.


        :param magic: The magic of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._magic = magic

    @property
    def difficulty(self):
        """Gets the difficulty of this LolStatsChampion.  # noqa: E501


        :return: The difficulty of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._difficulty

    @difficulty.setter
    def difficulty(self, difficulty):
        """Sets the difficulty of this LolStatsChampion.


        :param difficulty: The difficulty of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._difficulty = difficulty

    @property
    def hp(self):
        """Gets the hp of this LolStatsChampion.  # noqa: E501


        :return: The hp of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._hp

    @hp.setter
    def hp(self, hp):
        """Sets the hp of this LolStatsChampion.


        :param hp: The hp of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._hp = hp

    @property
    def hp_up_per_level(self):
        """Gets the hp_up_per_level of this LolStatsChampion.  # noqa: E501


        :return: The hp_up_per_level of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._hp_up_per_level

    @hp_up_per_level.setter
    def hp_up_per_level(self, hp_up_per_level):
        """Sets the hp_up_per_level of this LolStatsChampion.


        :param hp_up_per_level: The hp_up_per_level of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._hp_up_per_level = hp_up_per_level

    @property
    def mp(self):
        """Gets the mp of this LolStatsChampion.  # noqa: E501


        :return: The mp of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._mp

    @mp.setter
    def mp(self, mp):
        """Sets the mp of this LolStatsChampion.


        :param mp: The mp of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._mp = mp

    @property
    def mp_up_per_level(self):
        """Gets the mp_up_per_level of this LolStatsChampion.  # noqa: E501


        :return: The mp_up_per_level of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._mp_up_per_level

    @mp_up_per_level.setter
    def mp_up_per_level(self, mp_up_per_level):
        """Sets the mp_up_per_level of this LolStatsChampion.


        :param mp_up_per_level: The mp_up_per_level of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._mp_up_per_level = mp_up_per_level

    @property
    def move_speed(self):
        """Gets the move_speed of this LolStatsChampion.  # noqa: E501


        :return: The move_speed of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._move_speed

    @move_speed.setter
    def move_speed(self, move_speed):
        """Sets the move_speed of this LolStatsChampion.


        :param move_speed: The move_speed of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._move_speed = move_speed

    @property
    def armor(self):
        """Gets the armor of this LolStatsChampion.  # noqa: E501


        :return: The armor of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._armor

    @armor.setter
    def armor(self, armor):
        """Sets the armor of this LolStatsChampion.


        :param armor: The armor of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._armor = armor

    @property
    def armor_per_level(self):
        """Gets the armor_per_level of this LolStatsChampion.  # noqa: E501


        :return: The armor_per_level of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._armor_per_level

    @armor_per_level.setter
    def armor_per_level(self, armor_per_level):
        """Sets the armor_per_level of this LolStatsChampion.


        :param armor_per_level: The armor_per_level of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._armor_per_level = armor_per_level

    @property
    def spell_block(self):
        """Gets the spell_block of this LolStatsChampion.  # noqa: E501


        :return: The spell_block of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._spell_block

    @spell_block.setter
    def spell_block(self, spell_block):
        """Sets the spell_block of this LolStatsChampion.


        :param spell_block: The spell_block of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._spell_block = spell_block

    @property
    def spell_block_per_level(self):
        """Gets the spell_block_per_level of this LolStatsChampion.  # noqa: E501


        :return: The spell_block_per_level of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._spell_block_per_level

    @spell_block_per_level.setter
    def spell_block_per_level(self, spell_block_per_level):
        """Sets the spell_block_per_level of this LolStatsChampion.


        :param spell_block_per_level: The spell_block_per_level of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._spell_block_per_level = spell_block_per_level

    @property
    def attack_range(self):
        """Gets the attack_range of this LolStatsChampion.  # noqa: E501


        :return: The attack_range of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._attack_range

    @attack_range.setter
    def attack_range(self, attack_range):
        """Sets the attack_range of this LolStatsChampion.


        :param attack_range: The attack_range of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._attack_range = attack_range

    @property
    def hp_regen(self):
        """Gets the hp_regen of this LolStatsChampion.  # noqa: E501


        :return: The hp_regen of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._hp_regen

    @hp_regen.setter
    def hp_regen(self, hp_regen):
        """Sets the hp_regen of this LolStatsChampion.


        :param hp_regen: The hp_regen of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._hp_regen = hp_regen

    @property
    def hp_regen_per_level(self):
        """Gets the hp_regen_per_level of this LolStatsChampion.  # noqa: E501


        :return: The hp_regen_per_level of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._hp_regen_per_level

    @hp_regen_per_level.setter
    def hp_regen_per_level(self, hp_regen_per_level):
        """Sets the hp_regen_per_level of this LolStatsChampion.


        :param hp_regen_per_level: The hp_regen_per_level of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._hp_regen_per_level = hp_regen_per_level

    @property
    def mp_regen(self):
        """Gets the mp_regen of this LolStatsChampion.  # noqa: E501


        :return: The mp_regen of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._mp_regen

    @mp_regen.setter
    def mp_regen(self, mp_regen):
        """Sets the mp_regen of this LolStatsChampion.


        :param mp_regen: The mp_regen of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._mp_regen = mp_regen

    @property
    def mp_regen_per_level(self):
        """Gets the mp_regen_per_level of this LolStatsChampion.  # noqa: E501


        :return: The mp_regen_per_level of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._mp_regen_per_level

    @mp_regen_per_level.setter
    def mp_regen_per_level(self, mp_regen_per_level):
        """Sets the mp_regen_per_level of this LolStatsChampion.


        :param mp_regen_per_level: The mp_regen_per_level of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._mp_regen_per_level = mp_regen_per_level

    @property
    def attack_damage(self):
        """Gets the attack_damage of this LolStatsChampion.  # noqa: E501


        :return: The attack_damage of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._attack_damage

    @attack_damage.setter
    def attack_damage(self, attack_damage):
        """Sets the attack_damage of this LolStatsChampion.


        :param attack_damage: The attack_damage of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._attack_damage = attack_damage

    @property
    def attack_damage_per_level(self):
        """Gets the attack_damage_per_level of this LolStatsChampion.  # noqa: E501


        :return: The attack_damage_per_level of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._attack_damage_per_level

    @attack_damage_per_level.setter
    def attack_damage_per_level(self, attack_damage_per_level):
        """Sets the attack_damage_per_level of this LolStatsChampion.


        :param attack_damage_per_level: The attack_damage_per_level of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._attack_damage_per_level = attack_damage_per_level

    @property
    def attack_speed_offset(self):
        """Gets the attack_speed_offset of this LolStatsChampion.  # noqa: E501


        :return: The attack_speed_offset of this LolStatsChampion.  # noqa: E501
        :rtype: float
        """
        return self._attack_speed_offset

    @attack_speed_offset.setter
    def attack_speed_offset(self, attack_speed_offset):
        """Sets the attack_speed_offset of this LolStatsChampion.


        :param attack_speed_offset: The attack_speed_offset of this LolStatsChampion.  # noqa: E501
        :type: float
        """

        self._attack_speed_offset = attack_speed_offset

    @property
    def champion_id(self):
        """Gets the champion_id of this LolStatsChampion.  # noqa: E501


        :return: The champion_id of this LolStatsChampion.  # noqa: E501
        :rtype: int
        """
        return self._champion_id

    @champion_id.setter
    def champion_id(self, champion_id):
        """Sets the champion_id of this LolStatsChampion.


        :param champion_id: The champion_id of this LolStatsChampion.  # noqa: E501
        :type: int
        """

        self._champion_id = champion_id

    @property
    def name(self):
        """Gets the name of this LolStatsChampion.  # noqa: E501


        :return: The name of this LolStatsChampion.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this LolStatsChampion.


        :param name: The name of this LolStatsChampion.  # noqa: E501
        :type: str
        """

        self._name = name

    @property
    def title(self):
        """Gets the title of this LolStatsChampion.  # noqa: E501


        :return: The title of this LolStatsChampion.  # noqa: E501
        :rtype: str
        """
        return self._title

    @title.setter
    def title(self, title):
        """Sets the title of this LolStatsChampion.


        :param title: The title of this LolStatsChampion.  # noqa: E501
        :type: str
        """

        self._title = title

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(LolStatsChampion, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, LolStatsChampion):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
