simaple.core
simaple.core.base
- class simaple.core.base.ActionStat(*, cooltime_reduce: float = 0.0, summon_duration: float = 0.0, buff_duration: float = 0.0, cooltime_reduce_rate: float = 0.0)[source]
- buff_duration: float
- cooltime_reduce: float
- cooltime_reduce_rate: float
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'buff_duration': FieldInfo(annotation=float, required=False, default=0.0), 'cooltime_reduce': FieldInfo(annotation=float, required=False, default=0.0), 'cooltime_reduce_rate': FieldInfo(annotation=float, required=False, default=0.0), 'summon_duration': FieldInfo(annotation=float, required=False, default=0.0)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- summon_duration: float
- class simaple.core.base.AttackType(value)[source]
An enumeration.
- attack_power = 'attack_power'
- magic_attack = 'magic_attack'
- class simaple.core.base.BaseStatType(value)[source]
An enumeration.
- DEX = 'DEX'
- INT = 'INT'
- LUK = 'LUK'
- STR = 'STR'
- class simaple.core.base.ExtendedStat(*, stat: Stat = None, action_stat: ActionStat = None, level_stat: LevelStat = None)[source]
- action_stat: ActionStat
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'action_stat': FieldInfo(annotation=ActionStat, required=False, default_factory=ActionStat), 'level_stat': FieldInfo(annotation=LevelStat, required=False, default_factory=LevelStat), 'stat': FieldInfo(annotation=Stat, required=False, default_factory=Stat)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.base.LevelStat(*, STR: float = 0.0, LUK: float = 0.0, INT: float = 0.0, DEX: float = 0.0, attack_power: float = 0.0, magic_attack: float = 0.0)[source]
- DEX: float
- INT: float
- LUK: float
- STR: float
- attack_power: float
- magic_attack: float
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'DEX': FieldInfo(annotation=float, required=False, default=0.0), 'INT': FieldInfo(annotation=float, required=False, default=0.0), 'LUK': FieldInfo(annotation=float, required=False, default=0.0), 'STR': FieldInfo(annotation=float, required=False, default=0.0), 'attack_power': FieldInfo(annotation=float, required=False, default=0.0), 'magic_attack': FieldInfo(annotation=float, required=False, default=0.0)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.base.Stat(*, STR: float = 0.0, LUK: float = 0.0, INT: float = 0.0, DEX: float = 0.0, STR_multiplier: float = 0.0, LUK_multiplier: float = 0.0, INT_multiplier: float = 0.0, DEX_multiplier: float = 0.0, STR_static: float = 0.0, LUK_static: float = 0.0, INT_static: float = 0.0, DEX_static: float = 0.0, attack_power: float = 0.0, magic_attack: float = 0.0, attack_power_multiplier: float = 0.0, magic_attack_multiplier: float = 0.0, critical_rate: float = 0.0, critical_damage: float = 0.0, boss_damage_multiplier: float = 0.0, damage_multiplier: float = 0.0, final_damage_multiplier: float = 0.0, ignored_defence: float = 0.0, MHP: float = 0.0, MMP: float = 0.0, MHP_multiplier: float = 0.0, MMP_multiplier: float = 0.0, elemental_resistance: float = 0.0)[source]
- DEX: float
- DEX_multiplier: float
- DEX_static: float
- INT: float
- INT_multiplier: float
- INT_static: float
- LUK: float
- LUK_multiplier: float
- LUK_static: float
- MHP: float
- MHP_multiplier: float
- MMP: float
- MMP_multiplier: float
- STR: float
- STR_multiplier: float
- STR_static: float
- attack_power: float
- attack_power_multiplier: float
- boss_damage_multiplier: float
- critical_damage: float
- critical_rate: float
- damage_multiplier: float
- elemental_resistance: float
- final_damage_multiplier: float
- get_attack_coefficient(attack_type: AttackType) float[source]
- get_base_stat_coefficient(base_stat_type: BaseStatType) float[source]
- ignored_defence: float
- magic_attack: float
- magic_attack_multiplier: float
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'DEX': FieldInfo(annotation=float, required=False, default=0.0), 'DEX_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'DEX_static': FieldInfo(annotation=float, required=False, default=0.0), 'INT': FieldInfo(annotation=float, required=False, default=0.0), 'INT_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'INT_static': FieldInfo(annotation=float, required=False, default=0.0), 'LUK': FieldInfo(annotation=float, required=False, default=0.0), 'LUK_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'LUK_static': FieldInfo(annotation=float, required=False, default=0.0), 'MHP': FieldInfo(annotation=float, required=False, default=0.0), 'MHP_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'MMP': FieldInfo(annotation=float, required=False, default=0.0), 'MMP_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'STR': FieldInfo(annotation=float, required=False, default=0.0), 'STR_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'STR_static': FieldInfo(annotation=float, required=False, default=0.0), 'attack_power': FieldInfo(annotation=float, required=False, default=0.0), 'attack_power_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'boss_damage_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'critical_damage': FieldInfo(annotation=float, required=False, default=0.0), 'critical_rate': FieldInfo(annotation=float, required=False, default=0.0), 'damage_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'elemental_resistance': FieldInfo(annotation=float, required=False, default=0.0), 'final_damage_multiplier': FieldInfo(annotation=float, required=False, default=0.0), 'ignored_defence': FieldInfo(annotation=float, required=False, default=0.0), 'magic_attack': FieldInfo(annotation=float, required=False, default=0.0), 'magic_attack_multiplier': FieldInfo(annotation=float, required=False, default=0.0)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- stack(stack: int) Stat[source]
StackableBuffSkill을 위한 메소드로, armor_ignore 및 final_damage_multiplier를 단순 곱셈한 값을 반환합니다.
- classmethod sum(stats: list[simaple.core.base.Stat]) Stat[source]
- class simaple.core.base.StatProps(value)[source]
An enumeration.
- DEX = 'DEX'
- DEX_multiplier = 'DEX_multiplier'
- DEX_static = 'DEX_static'
- INT = 'INT'
- INT_multiplier = 'INT_multiplier'
- INT_static = 'INT_static'
- LUK = 'LUK'
- LUK_multiplier = 'LUK_multiplier'
- LUK_static = 'LUK_static'
- MHP = 'MHP'
- MHP_multiplier = 'MHP_multiplier'
- MMP = 'MMP'
- MMP_multiplier = 'MMP_multiplier'
- STR = 'STR'
- STR_multiplier = 'STR_multiplier'
- STR_static = 'STR_static'
- attack_power = 'attack_power'
- attack_power_multiplier = 'attack_power_multiplier'
- boss_damage_multiplier = 'boss_damage_multiplier'
- critical_damage = 'critical_damage'
- critical_rate = 'critical_rate'
- damage_multiplier = 'damage_multiplier'
- final_damage_multiplier = 'final_damage_multiplier'
- ignored_defence = 'ignored_defence'
- magic_attack = 'magic_attack'
- magic_attack_multiplier = 'magic_attack_multiplier'
- classmethod multiplier(base_type: BaseStatType)[source]
- classmethod static(base_type: BaseStatType)[source]
- class simaple.core.job_category.JobCategory(value)[source]
An enumeration.
- archer = 2
- magician = 1
- pirate = 4
- thief = 3
- warrior = 0
- class simaple.core.damage.DEXBasedDamageLogic(*, attack_range_constant: float, mastery: float)[source]
- get_attack_type() AttackType[source]
- get_symbol_stat(value: int) Stat[source]
value may given as hundreds; to represent arcane and authentic both
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'attack_range_constant': FieldInfo(annotation=float, required=True), 'mastery': FieldInfo(annotation=float, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.damage.DamageLogic(*, attack_range_constant: float, mastery: float)[source]
- attack_range_constant: float
- abstract get_attack_type() AttackType[source]
- get_damage_factor(stat: Stat, armor: int = 300) float[source]
Averaged Multiplier for skill damage.
- abstract get_symbol_stat(value: int) Stat[source]
value may given as hundreds; to represent arcane and authentic both
- mastery: float
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'attack_range_constant': FieldInfo(annotation=float, required=True), 'mastery': FieldInfo(annotation=float, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.damage.INTBasedDamageLogic(*, attack_range_constant: float, mastery: float)[source]
- get_attack_type() AttackType[source]
- get_symbol_stat(value: int) Stat[source]
value may given as hundreds; to represent arcane and authentic both
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'attack_range_constant': FieldInfo(annotation=float, required=True), 'mastery': FieldInfo(annotation=float, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.damage.LUKBasedDamageLogic(*, attack_range_constant: float, mastery: float)[source]
- get_attack_type() AttackType[source]
- get_symbol_stat(value: int) Stat[source]
value may given as hundreds; to represent arcane and authentic both
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'attack_range_constant': FieldInfo(annotation=float, required=True), 'mastery': FieldInfo(annotation=float, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.damage.LUKBasedDualSubDamageLogic(*, attack_range_constant: float, mastery: float)[source]
- get_attack_type() AttackType[source]
- get_symbol_stat(value: int) Stat[source]
value may given as hundreds; to represent arcane and authentic both
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'attack_range_constant': FieldInfo(annotation=float, required=True), 'mastery': FieldInfo(annotation=float, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.damage.STRBasedDamageLogic(*, attack_range_constant: float, mastery: float)[source]
- get_attack_type() AttackType[source]
- get_symbol_stat(value: int) Stat[source]
value may given as hundreds; to represent arcane and authentic both
- model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'attack_range_constant': FieldInfo(annotation=float, required=True), 'mastery': FieldInfo(annotation=float, required=True)}
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- class simaple.core.jobtype.JobType(value)[source]
An enumeration.
- adele = 'adele'
- angelicbuster = 'angelicbuster'
- aran = 'aran'
- archmagefb = 'archmagefb'
- archmagetc = 'archmagetc'
- ark = 'ark'
- battlemage = 'battlemage'
- bishop = 'bishop'
- blaster = 'blaster'
- bowmaster = 'bowmaster'
- buccaneer = 'buccaneer'
- cadena = 'cadena'
- cannoneer = 'cannoneer'
- corsair = 'corsair'
- darkknight = 'darkknight'
- demonslayer = 'demonslayer'
- dualblade = 'dualblade'
- eunwol = 'eunwol'
- evan = 'evan'
- flamewizard = 'flamewizard'
- hero = 'hero'
- hoyoung = 'hoyoung'
- illium = 'illium'
- kain = 'kain'
- kaiser = 'kaiser'
- khali = 'khali'
- kinesis = 'kinesis'
- lara = 'lara'
- luminous = 'luminous'
- mechanic = 'mechanic'
- mercedes = 'mercedes'
- mihile = 'mihile'
- nightlord = 'nightlord'
- nightwalker = 'nightwalker'
- paladin = 'paladin'
- pathfinder = 'pathfinder'
- phantom = 'phantom'
- shadower = 'shadower'
- sniper = 'sniper'
- soulmaster = 'soulmaster'
- striker = 'striker'
- virtual_maplestory_m = 'virtual_maplestory_m'
- wildhunter = 'wildhunter'
- windbreaker = 'windbreaker'
- zenon = 'zenon'
- zero = 'zero'
- simaple.core.jobtype.get_job_category(jobtype: JobType) JobCategory[source]