simulation

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2022 License: MIT Imports: 237 Imported by: 5

Documentation

Overview

Package simulation provide the functionality required to run one simulation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoMoreActions = errors.New("no more actions left")

Functions

func NewCore

func NewCore(seed int64, debug bool, cfg *ast.ActionList) (*core.Core, error)

func SetupCharactersInCore added in v1.0.0

func SetupCharactersInCore(core *core.Core, chars []profile.CharacterProfile, initial keys.Char) error

func SetupMisc added in v1.0.0

func SetupMisc(c *core.Core)

func SetupResonance added in v1.0.0

func SetupResonance(s *core.Core)

func SetupTargetsInCore added in v1.0.0

func SetupTargetsInCore(core *core.Core, p core.Coord, targets []enemy.EnemyProfile) error

Types

type CharDetail

type CharDetail struct {
	Name          string         `json:"name"`
	Element       string         `json:"element"`
	Level         int            `json:"level"`
	MaxLevel      int            `json:"max_level"`
	Cons          int            `json:"cons"`
	Weapon        WeaponDetail   `json:"weapon"`
	Talents       TalentDetail   `json:"talents"`
	Sets          map[string]int `json:"sets"`
	Stats         []float64      `json:"stats"`
	SnapshotStats []float64      `json:"snapshot"`
}

type DamageDetails

type DamageDetails struct {
	FrameBucket int     `json:"frame_bucket"`
	Char        int     `json:"char_index"`
	Target      int     `json:"target_index"`
	Damage      float64 `json:"damage"`
}

type EnergyEvent added in v1.0.0

type EnergyEvent struct {
	Active         bool
	Once           bool //how often
	Start          int
	End            int
	Particles      int
	LastEnergyDrop int
}

type HurtEvent added in v1.0.0

type HurtEvent struct {
	Active bool
	Once   bool //how often
	Start  int  //
	End    int
	Min    float64
	Max    float64
	Ele    attributes.Element
}

type Result

type Result struct {
	IsDamageMode          bool                         `json:"is_damage_mode"`
	CharNames             []string                     `json:"char_names"`
	CharDetails           []CharDetail                 `json:"char_details"`
	DamageByChar          []map[string]float64         `json:"damage_by_char"`
	DamageInstancesByChar []map[string]int             `json:"damage_instances_by_char"`
	DamageByCharByTargets []map[int]float64            `json:"damage_by_char_by_targets"`
	DamageDetailByTime    map[int]float64              `json:"damage_detail_by_time"`
	CharActiveTime        []int                        `json:"char_active_time"`
	AbilUsageCountByChar  []map[string]int             `json:"abil_usage_count_by_char"`
	ParticleCount         map[string]float64           `json:"particle_count"`
	ReactionsTriggered    map[combat.ReactionType]int  `json:"reactions_triggered"`
	Duration              int                          `json:"sim_duration"`
	ElementUptime         []map[attributes.Element]int `json:"ele_uptime"`
	// Tracks, for each character, energy source,
	// [total energy added on-field, total energy added off-field, total energy wasted on-field, total energy wasted off-field]
	EnergyDetail    []map[string][4]float64 `json:"energy_detail"`
	EnergyWhenBurst [][]float64             `json:"energy_when_burst"`
	//final result
	Damage float64 `json:"damage"`
	DPS    float64 `json:"dps"`
	//for tracking min/max run
	Seed int64 `json:"seed"`
}

type Simulation

type Simulation struct {
	C *core.Core
	// contains filtered or unexported fields
}

func New

func New(cfg *ast.ActionList, c *core.Core) (*Simulation, error)

func (*Simulation) AdvanceFrame

func (s *Simulation) AdvanceFrame() error

func (*Simulation) Run

func (s *Simulation) Run() (Result, error)

type TalentDetail

type TalentDetail struct {
	Attack int `json:"attack"`
	Skill  int `json:"skill"`
	Burst  int `json:"burst"`
}

type WeaponDetail

type WeaponDetail struct {
	Name     string `json:"name"`
	Refine   int    `json:"refine"`
	Level    int    `json:"level"`
	MaxLevel int    `json:"max_level"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL