common

package
v0.0.0-...-1d786e0 Latest Latest
Warning

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

Go to latest
Published: May 11, 2021 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TargetWho_AllAlly    = "all ally"
	TargetWho_TargetAlly = "target ally"
	TargetWho_OtherAlly  = "other allys"
	TargetWho_Target     = "target"
)
View Source
const (
	StatusEffect_CounterAttack = "counterattack"
)

Variables

View Source
var (
	ErrNotInitialized = fmt.Errorf("factory not initialized")
)
View Source
var (
	ErrSkillNotFound = fmt.Errorf("skill not found")
)
View Source
var (
	SynergyData = map[SynergyContextKey]struct {
		Title          string
		RawDescription string
	}{
		SynergyContextKey_PoisonCounterattack: {
			Title:          "Poison and Counterattack",
			RawDescription: "Mixing a champion having A1 applying a Poison debuff, and a champion able to place a counterattack buff on him, is a very good situational synergy that can be impressive during Clan Boss battles.",
		},
	}
)

Functions

func ConvertLocation

func ConvertLocation(s string) string

func GetLinkNameFromSanitizedName

func GetLinkNameFromSanitizedName(name string) string

func GetSanitizedName

func GetSanitizedName(name string) (string, error)

func InitFactory

func InitFactory(dataDirectory string) error

Types

type AllRatings

type AllRatings []*RatingSource

func (AllRatings) Compute

func (ar AllRatings) Compute() *Rating

type Aura

type Aura struct {
	RawDescription string          `json:"raw_description"`
	Effects        []*StatusEffect `json:"effects"`
	Stats          []string        `json:"stats"`
	Locations      []string        `json:"locations"`
	Value          int64           `json:"value"`
	Percentage     bool            `json:"percentage"`
}

func (*Aura) Sanitize

func (a *Aura) Sanitize() error

type Build

type Build struct {
	From      string         `json:"from"`
	Author    string         `json:"author"`
	Locations []string       `json:"locations"`
	Sets      []string       `json:"sets"`
	Stats     *StatsPriority `json:"stats"`
}

func (*Build) IsSameThan

func (b *Build) IsSameThan(oth *Build) bool

func (*Build) Sanitize

func (b *Build) Sanitize() error

func (*Build) Set

func (b *Build) Set(piece string, stat *StatPriority)

type Champion

type Champion struct {
	Name               string                    `json:"name"`
	DateAdded          string                    `json:"date_added"`
	Rarity             string                    `json:"rarity"`
	Element            string                    `json:"element"`
	Type               string                    `json:"type"`
	Rating             *Rating                   `json:"rating"`
	Reviews            *Review                   `json:"reviews"`
	AllRatings         AllRatings                `json:"all_ratings"`
	Slug               string                    `json:"slug"`
	Characteristics    map[int64]Characteristics `json:"characteristics"`
	Auras              []*Aura                   `json:"auras"`
	Skills             []*Skill                  `json:"skills"`
	Faction            Faction                   `json:"faction"`
	FactionSlug        string                    `json:"faction_slug"`
	WebsiteLink        string                    `json:"website_link"`
	ImageSlug          string                    `json:"image_slug"`
	SEO                *seo.SEO                  `json:"seo"`
	DefaultDescription string                    `json:"default_description"`
	RecommendedBuilds  []*Build                  `json:"recommended_builds"`
	Lore               string                    `json:"lore"`
	GIID               string                    `json:"giid"`
	Synergies          []*Synergy                `json:"synergy"`
	Thumbnail          string                    `json:"thumbnail"`
	Tags               []string                  `json:"tags"`
	Masteries          []*ChampionMasteries      `json:"masteries"`
	FusionData         []*ChampionFusionData     `json:"fusion_data"`
	EffectSlugs        []string                  `json:"effect_slugs"`
	Videos             []*Video                  `json:"videos"`
}

func (*Champion) AddBuild

func (c *Champion) AddBuild(build *Build)

func (*Champion) AddMastery

func (c *Champion) AddMastery(mastery *ChampionMasteries)

func (*Champion) AddRating

func (c *Champion) AddRating(source string, rating *Rating, weight int)

func (*Champion) AddSkill

func (c *Champion) AddSkill(name string, description string, passive bool) *Skill

func (*Champion) DefaultSEO

func (c *Champion) DefaultSEO()

func (Champion) Filename

func (c Champion) Filename() string

func (*Champion) GetPageContent

func (c *Champion) GetPageContent(input io.Reader, output io.Writer, extraData map[string]interface{}) error

func (*Champion) GetPageContent_Templates

func (c *Champion) GetPageContent_Templates(tmpl *template.Template, output io.Writer, extraData map[string]interface{}) error

func (Champion) GetPageExcerpt

func (c Champion) GetPageExcerpt() string

func (*Champion) GetPageExtraData

func (c *Champion) GetPageExtraData(dataDirectory string) (map[string]interface{}, error)

func (Champion) GetPageSlug

func (c Champion) GetPageSlug() string

func (Champion) GetPageTemplate

func (_ Champion) GetPageTemplate() string

func (Champion) GetPageTitle

func (c Champion) GetPageTitle() string

func (Champion) GetParentPageID

func (_ Champion) GetParentPageID() int

func (*Champion) GetSkillByName

func (c *Champion) GetSkillByName(name string) (*Skill, error)

func (*Champion) GetSkillBySlug

func (c *Champion) GetSkillBySlug(slug string) (*Skill, error)

func (Champion) LinkName

func (c Champion) LinkName() string

func (*Champion) ParseRawSkill

func (c *Champion) ParseRawSkill(raw string) error

func (*Champion) Sanitize

func (c *Champion) Sanitize() error

func (*Champion) SetAura

func (c *Champion) SetAura(description string)

type ChampionFilter

type ChampionFilter func(*Champion) bool

func FilterChampionFactionSlug

func FilterChampionFactionSlug(slug string) ChampionFilter

func FilterChampionName

func FilterChampionName(name string) ChampionFilter

func FilterChampionNotSlug

func FilterChampionNotSlug(slug string) ChampionFilter

func FilterChampionSlug

func FilterChampionSlug(slug string) ChampionFilter

func FilterChampionStatusEffect

func FilterChampionStatusEffect(effectSlug string) ChampionFilter

func FilterChampionStatusEffectOnSkill

func FilterChampionStatusEffectOnSkill(skillNumber, effectSlug string) ChampionFilter

func FilterChampionStatusEffectWithTargets

func FilterChampionStatusEffectWithTargets(effectSlug string, targets ...string) ChampionFilter

type ChampionFusionData

type ChampionFusionData struct {
	FusionSlug string `json:"fusion_slug"`
	FusionType string `json:"fusion_type"`
}

type ChampionList

type ChampionList []*Champion

func GetChampions

func GetChampions(filters ...ChampionFilter) (ChampionList, error)

func (ChampionList) Sort

func (cl ChampionList) Sort()

func (ChampionList) Union

func (cl ChampionList) Union(oth ChampionList) ChampionList

type ChampionMasteries

type ChampionMasteries struct {
	From      string   `json:"from"`
	Author    string   `json:"author"`
	Locations []string `json:"locations"`
	Offense   []string `json:"offense"`
	Defense   []string `json:"defense"`
	Support   []string `json:"support"`
}

func (*ChampionMasteries) Sanitize

func (m *ChampionMasteries) Sanitize() error

type Characteristics

type Characteristics struct {
	HP             int64   `json:"hp"`
	Attack         int64   `json:"attack"`
	Defense        int64   `json:"defense"`
	Speed          int64   `json:"speed"`
	CriticalRate   float64 `json:"critical_rate"`
	CriticalDamage float64 `json:"critical_damage"`
	Resistance     int64   `json:"resistance"`
	Accuracy       int64   `json:"accuracy"`
}

type Faction

type Faction struct {
	Name               string   `json:"name"`
	Slug               string   `json:"slug"`
	DateAdded          string   `json:"date_added"`
	WebsiteLink        string   `json:"website_link"`
	ImageSlug          string   `json:"image_slug"`
	NumberOfChampions  int64    `json:"number_of_champions"`
	DefaultDescription string   `json:"default_description"`
	SEO                *seo.SEO `json:"seo"`
	GIID               string   `json:"giid"`
	RawDescription     string   `json:"raw_description"`
	ChampionSlugs      []string `json:"champion_slugs"`
}

func (*Faction) DefaultSEO

func (f *Faction) DefaultSEO()

func (Faction) Filename

func (f Faction) Filename() string

func (Faction) GetPageContent

func (_ Faction) GetPageContent(input io.Reader, output io.Writer, extraData map[string]interface{}) error

func (*Faction) GetPageContent_Templates

func (f *Faction) GetPageContent_Templates(tmpl *template.Template, output io.Writer, extraData map[string]interface{}) error

func (Faction) GetPageExcerpt

func (f Faction) GetPageExcerpt() string

func (*Faction) GetPageExtraData

func (f *Faction) GetPageExtraData(dataDirectory string) (map[string]interface{}, error)

func (Faction) GetPageSlug

func (f Faction) GetPageSlug() string

func (Faction) GetPageTemplate

func (_ Faction) GetPageTemplate() string

func (Faction) GetPageTitle

func (f Faction) GetPageTitle() string

func (Faction) GetParentPageID

func (_ Faction) GetParentPageID() int

func (Faction) LinkName

func (f Faction) LinkName() string

func (*Faction) Sanitize

func (f *Faction) Sanitize() error

type FactionFilter

type FactionFilter func(*Faction) bool

func FilterFactionSlug

func FilterFactionSlug(slug string) FactionFilter

type FactionList

type FactionList []*Faction

func GetFactions

func GetFactions(filters ...FactionFilter) (FactionList, error)

func (FactionList) Sort

func (fl FactionList) Sort()

type Factory

type Factory struct {
	// contains filtered or unexported fields
}

type Fusion

type Fusion struct {
	DateAdded        string              `json:"date_added"`
	TimeStart        *time.Time          `json:"time_start"`
	TimeEnd          *time.Time          `json:"time_end"`
	Active           bool                `json:"active"`
	Limit            *int64              `json:"limit"`
	ChampionSlug     string              `json:"champion_slug"`
	Name             string              `json:"name"`
	Slug             string              `json:"slug"`
	Ingredients      []*FusionIngredient `json:"ingredients"`
	ParentFusionSlug *string             `json:"parent_fusion_slug"`
	Schedule         *FusionSchedule     `json:"schedule"`
}

func (Fusion) GetPageContent

func (f Fusion) GetPageContent(r io.Reader, output io.Writer, extraData map[string]interface{}) error

func (*Fusion) GetPageContent_Templates

func (f *Fusion) GetPageContent_Templates(tmpl *template.Template, output io.Writer, extraData map[string]interface{}) error

func (Fusion) GetPageExcerpt

func (f Fusion) GetPageExcerpt() string

func (*Fusion) GetPageExtraData

func (f *Fusion) GetPageExtraData(dataDirectory string) (map[string]interface{}, error)

func (Fusion) GetPageSlug

func (f Fusion) GetPageSlug() string

func (Fusion) GetPageTemplate

func (_ Fusion) GetPageTemplate() string

func (Fusion) GetPageTitle

func (f Fusion) GetPageTitle() string

func (Fusion) GetParentPageID

func (_ Fusion) GetParentPageID() int

func (Fusion) LinkName

func (f Fusion) LinkName() string

func (*Fusion) Sanitize

func (f *Fusion) Sanitize() error

type FusionFilter

type FusionFilter func(*Fusion) bool

func FilterFusionSlug

func FilterFusionSlug(slug string) FusionFilter

type FusionIngredient

type FusionIngredient struct {
	ChampionSlug  string  `json:"champion_slug"`
	Level         int64   `json:"level"`
	Stars         int64   `json:"stars"`
	AscendedStars int64   `json:"ascended_stars"`
	Fusion        *Fusion `json:"fusion"`
	FusionSlug    *string `json:"fusion_slug"`
}

type FusionList

type FusionList []*Fusion

func GetFusions

func GetFusions(filters ...FusionFilter) (FusionList, error)

func (FusionList) Sort

func (fl FusionList) Sort()

type FusionSchedule

type FusionSchedule struct {
	DateStart string                `json:"-"`
	DateEnd   string                `json:"-"`
	Raw       []*FusionScheduleItem `json:"raw"`
	Daily     map[string][]int      `json:"daily"`
}

func (*FusionSchedule) Sanitize

func (fs *FusionSchedule) Sanitize() error

type FusionScheduleItem

type FusionScheduleItem struct {
	Index         int      `json:"index"`
	Type          string   `json:"type"`
	Name          string   `json:"name"`
	DateStart     string   `json:"date_start"`
	DateEnd       string   `json:"date_end"`
	ChampionSlugs []string `json:"champion_slugs"`
}

func (*FusionScheduleItem) Sanitize

func (fsi *FusionScheduleItem) Sanitize() error

type Location

type Location struct {
	Slug string `json:"slug"`
	Name string `json:"name"`
}

func (*Location) Sanitize

func (l *Location) Sanitize() error

type Mastery

type Mastery struct {
	Name        string `json:"name"`
	Star        int64  `json:"star"`
	Description string `json:"description"`
	Tree        uint8  `json:"tree"`
	Level       uint8  `json:"level"`
	ScrollType  uint8  `json:"scroll_type"`
	Unlock      uint64 `json:"unlock"`
	ImageSlug   string `json:"image_slug"`
	Slug        string `json:"slug"`
}

type MasteryFilter

type MasteryFilter func(*Mastery) bool

func FilterMasteryLowercasedName

func FilterMasteryLowercasedName(name string) MasteryFilter

type MasteryList

type MasteryList []*Mastery

func GetMasteries

func GetMasteries(filters ...MasteryFilter) (MasteryList, error)

func (MasteryList) Sort

func (ml MasteryList) Sort()

type Rating

type Rating struct {
	Overall       string `json:"overall"`
	Campaign      string `json:"campaign"`
	ArenaOff      string `json:"arena_offense"`
	ArenaDef      string `json:"arena_defense"`
	ClanBossWoGS  string `json:"clan_boss_without_giant_slayer"`
	ClanBosswGS   string `json:"clan_boss_with_giant_slayer"`
	IceGuardian   string `json:"ice_guardian"`
	Dragon        string `json:"dragon"`
	Spider        string `json:"spider"`
	FireKnight    string `json:"fire_knight"`
	Minotaur      string `json:"minotaur"`
	ForceDungeon  string `json:"force_dungeon"`
	MagicDungeon  string `json:"magic_dungeon"`
	SpiritDungeon string `json:"spirit_dungeon"`
	VoidDungeon   string `json:"void_dungeon"`
	FactionWars   string `json:"faction_wars"`
}

func (*Rating) Sanitize

func (r *Rating) Sanitize() error

type RatingSource

type RatingSource struct {
	Source string  `json:"source"`
	Rating *Rating `json:"rating"`
	Weight int     `json:"weight"`
}

func (*RatingSource) Sanitize

func (rs *RatingSource) Sanitize() error

type Review

type Review struct {
	NumberOfReviews int64   `json:"amount"`
	Campaign        float64 `json:"campaign"`
	ArenaOff        float64 `json:"arena_offense"`
	ArenaDef        float64 `json:"arena_defense"`
	ClanBoss        float64 `json:"clan_boss"`
	IceGuardian     float64 `json:"ice_guardian"`
	Dragon          float64 `json:"dragon"`
	Spider          float64 `json:"spider"`
	FireKnight      float64 `json:"fire_knight"`
	Minotaur        float64 `json:"minotaur"`
	ForceDungeon    float64 `json:"force_dungeon"`
	MagicDungeon    float64 `json:"magic_dungeon"`
	SpiritDungeon   float64 `json:"spirit_dungeon"`
	VoidDungeon     float64 `json:"void_dungeon"`
}

type Skill

type Skill struct {
	Passive        bool            `json:"passive"`
	Name           string          `json:"name"`
	RawDescription string          `json:"raw_description"`
	Slug           string          `json:"slug"`
	Effects        []*StatusEffect `json:"effects"`
	DamageBasedOn  []string        `json:"damaged_based_on"`
	GIID           string          `json:"giid"`
	Cooldown       int64           `json:"cooldown"`
	Upgrades       []*SkillData    `json:"upgrades"`
	ImageSlug      string          `json:"image_slug"`
	SkillNumber    string          `json:"skill_number"`
}

func (*Skill) Sanitize

func (s *Skill) Sanitize() error

func (*Skill) SetSkillData

func (s *Skill) SetSkillData(sd *SkillData)

type SkillData

type SkillData struct {
	Level     string          `json:"level"`
	Hits      int64           `json:"hits"`
	Target    *Target         `json:"target"`
	Effects   []*StatusEffect `json:"effects"`
	BasedOn   []string        `json:"based_on"`
	Cooldown  int64           `json:"cooldown"`
	RawDetail string          `json:"raw_detail"`
}

func (*SkillData) AddEffect

func (sd *SkillData) AddEffect(effect string, who string, turns int64, chance float64, placesIf string, value float64, amount int64)

func (*SkillData) Sanitize

func (sd *SkillData) Sanitize() error

type StatPriority

type StatPriority struct {
	MainStat        string   `json:"main_stat,omitempty"`
	MainStats       []string `json:"main_stats"`
	AdditionalStats []string `json:"additional_stats"`
}

func (*StatPriority) Sanitize

func (sp *StatPriority) Sanitize() error

type StatsPriority

type StatsPriority struct {
	Weapon     *StatPriority `json:"weapon"`
	Helmet     *StatPriority `json:"helmet"`
	Shield     *StatPriority `json:"shield"`
	Gauntlets  *StatPriority `json:"gauntlets"`
	Chestplate *StatPriority `json:"chestplate"`
	Boots      *StatPriority `json:"boots"`
	Ring       *StatPriority `json:"ring"`
	Amulet     *StatPriority `json:"amulet"`
	Banner     *StatPriority `json:"banner"`
}

func (*StatsPriority) Sanitize

func (ssp *StatsPriority) Sanitize() error

type StatusEffect

type StatusEffect struct {
	DateAdded      string   `json:"date_added"`
	EffectType     string   `json:"effect_type"`
	Type           string   `json:"type"`
	Value          float64  `json:"value"`
	Chance         float64  `json:"chance"`
	Turns          int64    `json:"turns"`
	Target         *Target  `json:"target"`
	ImageSlug      string   `json:"image_slug"`
	Slug           string   `json:"slug"`
	WebsiteLink    string   `json:"website_link"`
	Extra          bool     `json:"extra"`
	RawDescription string   `json:"raw_description"`
	PlacesIf       string   `json:"places_if"`
	Amount         int64    `json:"amount"`
	PossibleValues []string `json:"possible_values"`
	ChampionSlugs  []string `json:"champion_slugs"`
}

func (StatusEffect) GetPageContent

func (se StatusEffect) GetPageContent(input io.Reader, output io.Writer, extraData map[string]interface{}) error

func (*StatusEffect) GetPageContent_Templates

func (se *StatusEffect) GetPageContent_Templates(tmpl *template.Template, output io.Writer, extraData map[string]interface{}) error

func (StatusEffect) GetPageExcerpt

func (se StatusEffect) GetPageExcerpt() string

func (*StatusEffect) GetPageExtraData

func (se *StatusEffect) GetPageExtraData(dataDirectory string) (map[string]interface{}, error)

func (StatusEffect) GetPageSlug

func (se StatusEffect) GetPageSlug() string

func (StatusEffect) GetPageTemplate

func (_ StatusEffect) GetPageTemplate() string

func (StatusEffect) GetPageTitle

func (se StatusEffect) GetPageTitle() string

func (StatusEffect) GetParentPageID

func (se StatusEffect) GetParentPageID() int

func (StatusEffect) LinkName

func (se StatusEffect) LinkName() string

func (*StatusEffect) Sanitize

func (se *StatusEffect) Sanitize() error

type StatusEffectFilter

type StatusEffectFilter func(*StatusEffect) bool

type StatusEffectList

type StatusEffectList []*StatusEffect

func GetStatuseffects

func GetStatuseffects(filters ...StatusEffectFilter) (StatusEffectList, error)

func (StatusEffectList) Sort

func (sl StatusEffectList) Sort()

type Synergy

type Synergy struct {
	Context   SynergyContext `json:"context"`
	Champions []string       `json:"champions"`
}

func (*Synergy) Sanitize

func (s *Synergy) Sanitize() error

type SynergyContext

type SynergyContext struct {
	Key SynergyContextKey `json:"key"`
}

type SynergyContextKey

type SynergyContextKey string
const (
	SynergyContextKey_PoisonCounterattack SynergyContextKey = "poison-counterattack"
)

type Target

type Target struct {
	Who     string `json:"who"`
	Targets string `json:"targets"`
}

func (*Target) Sanitize

func (t *Target) Sanitize() error

type Video

type Video struct {
	Source    string `json:"source"`
	ID        string `json:"id"`
	Author    string `json:"author"`
	DateAdded string `json:"date_added"`
}

func (*Video) Sanitize

func (v *Video) Sanitize() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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