simaple.preset

Provides everythong about job-unspecific character configuration.

Includes:

  1. gearset

  2. hyperstat

  3. link

  4. union squad (occupation & block)

  5. level

  6. level_stat (Stat increment from level)

simaple.preset.base

preset.py

Job independant description about character. Give gearset / hyperstat / link / union / inner-ability attached property.

class simaple.optimizer.preset.Preset(*, gearset: Gearset, hyperstat: Hyperstat, links: LinkSkillset, union_squad: UnionSquad, union_occupation: UnionOccupation, level: int, level_stat: Stat)[source]
gearset: Gearset
get_action_stat() ActionStat[source]
get_stat() Stat[source]
hyperstat: Hyperstat
level: int
level_stat: Stat
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]] = {'gearset': FieldInfo(annotation=Gearset, required=True), 'hyperstat': FieldInfo(annotation=Hyperstat, required=True), 'level': FieldInfo(annotation=int, required=True), 'level_stat': FieldInfo(annotation=Stat, required=True), 'links': FieldInfo(annotation=LinkSkillset, required=True), 'union_occupation': FieldInfo(annotation=UnionOccupation, required=True), 'union_squad': FieldInfo(annotation=UnionSquad, 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.

union_occupation: UnionOccupation
union_squad: UnionSquad
class simaple.optimizer.preset.PresetOptimizer(*, union_block_count: int, default_stat: Stat, level: int, damage_logic: DamageLogic, character_job_type: JobType, alternate_character_job_types: List[JobType], link_count: int, buff_duration_preempted: bool = False)[source]

An opitmization-target class, which yields optimized Preset object via method create_optimal_preset_from_gearset.

Optimzation may not optimal; also takes long time (more than 1 minute).

alternate_character_job_types: List[JobType]
buff_duration_preempted: bool
calculate_optimal_hyperstat(reference_stat: Stat) Hyperstat[source]
calculate_optimal_union_occupation(reference_stat: Stat, occupation_count: int) UnionOccupation[source]
calculate_optimal_union_squad(reference_stat: Stat) UnionSquad[source]
calculate_optimal_weapon_potential(reference_stat: Stat, weapon_potential_tiers) Tuple[Potential, Potential, Potential][source]
character_job_type: JobType
create_optimal_preset_from_gearset(gearset_prototype: Gearset) Preset[source]

Return optimal preset, based on given gearset gearset_prototype.

damage_logic: DamageLogic
default_stat: Stat
level: int
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]] = {'alternate_character_job_types': FieldInfo(annotation=List[JobType], required=True), 'buff_duration_preempted': FieldInfo(annotation=bool, required=False, default=False), 'character_job_type': FieldInfo(annotation=JobType, required=True), 'damage_logic': FieldInfo(annotation=DamageLogic, required=True), 'default_stat': FieldInfo(annotation=Stat, required=True), 'level': FieldInfo(annotation=int, required=True), 'link_count': FieldInfo(annotation=int, required=True), 'union_block_count': FieldInfo(annotation=int, 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.

union_block_count: int