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]
class Config[source]
extra = 'forbid'
buff_duration: float
calculate_buff_duration(original_duration)[source]
calculate_cooldown(original_cooldown)[source]
cooltime_reduce: float
cooltime_reduce_rate: float
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
compute_by_level(level) Stat[source]
level_stat: LevelStat
stat: Stat
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]
class Config[source]
extra = 'forbid'
DEX: float
INT: float
LUK: float
STR: float
attack_power: float
get_stat(level: int) Stat[source]
magic_attack: float
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]
class Config[source]
extra = 'forbid'
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
classmethod all_stat(v) Stat[source]
classmethod all_stat_multiplier(v) Stat[source]
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(prop: StatProps)[source]
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
short_dict() dict[str, float][source]
show() str[source]
stack(stack: int) Stat[source]

StackableBuffSkill을 위한 메소드로, armor_ignore 및 final_damage_multiplier를 단순 곱셈한 값을 반환합니다.

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'
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]
attack_range_constant: float
get_attack_type_factor(stat: Stat) float[source]
get_base_stat_factor(stat: Stat) float[source]
get_best_level_based_stat(level: int) Stat[source]
get_major_stat(stat: Stat) float[source]
mastery: float
class simaple.core.damage.DamageLogic(*, attack_range_constant: float, mastery: float)[source]
attack_range_constant: float
get_armor_factor(stat: Stat, armor: int) float[source]
abstract get_attack_type_factor(stat: Stat) float[source]
abstract get_base_stat_factor(stat: Stat) float[source]
abstract get_best_level_based_stat(level: int) Stat[source]
get_critical_factor(stat: Stat) float[source]
get_damage_factor(stat: Stat, armor: int = 300) float[source]

Averaged Multiplier for skill damage.

get_dot_factor(stat: Stat, armor: int = 300) float[source]
get_elemental_disadvantage(stat: Stat) float[source]
abstract get_major_stat(stat: Stat) float[source]
get_maximum_attack_range(stat: Stat) float[source]

Maximum stat power in character status window.

get_minimum_attack_range(stat: Stat) float[source]
mastery: float
class simaple.core.damage.INTBasedDamageLogic(*, attack_range_constant: float, mastery: float)[source]
attack_range_constant: float
get_attack_type_factor(stat: Stat) float[source]
get_base_stat_factor(stat: Stat) float[source]
get_best_level_based_stat(level: int) Stat[source]
get_major_stat(stat: Stat) float[source]
mastery: float
class simaple.core.damage.LUKBasedDamageLogic(*, attack_range_constant: float, mastery: float)[source]
attack_range_constant: float
get_attack_type_factor(stat: Stat) float[source]
get_base_stat_factor(stat: Stat) float[source]
get_best_level_based_stat(level: int) Stat[source]
get_major_stat(stat: Stat) float[source]
mastery: float
class simaple.core.damage.LUKBasedDualSubDamageLogic(*, attack_range_constant: float, mastery: float)[source]
attack_range_constant: float
get_attack_type_factor(stat: Stat) float[source]
get_base_stat_factor(stat: Stat) float[source]
get_best_level_based_stat(level: int) Stat[source]
get_major_stat(stat: Stat) float[source]
mastery: float
class simaple.core.damage.STRBasedDamageLogic(*, attack_range_constant: float, mastery: float)[source]
attack_range_constant: float
get_attack_type_factor(stat: Stat) float[source]
get_base_stat_factor(stat: Stat) float[source]
get_best_level_based_stat(level: int) Stat[source]
get_major_stat(stat: Stat) float[source]
mastery: float
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'
demonavenger = 'demonavenger'
demonslayer = 'demonslayer'
dualblade = 'dualblade'
eunwol = 'eunwol'
evan = 'evan'
flamewizard = 'flamewizard'
hero = 'hero'
hoyoung = 'hoyoung'
illium = 'illium'
kain = 'kain'
kaiser = 'kaiser'
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'