item

package
v0.0.0-...-0cfb223 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2024 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const Collection = "items"

Collection indicates the MongoDB item collection

Variables

KindList holds all kinds

Functions

func Create

func Create(e Entity) error

Create creates a new entity

func GetAll

func GetAll(filter model.DocumentFilter, k Kind, opts *Options) (*model.Result, error)

GetAll returns a result based on filters

func GetByIDs

func GetByIDs(ids []string, k Kind, opts *Options) (*model.Result, error)

GetByIDs returns a result by given IDs

func GetByText

func GetByText(q string, opts *Options, kind Kind) (*model.Result, error)

GetByText returns a result based on given keyword

func Remove

func Remove(id string) error

Remove removes an entity

func Replace

func Replace(id string, e Entity) error

Replace replaces the data of an existing entity

Types

type AmmoEffects

type AmmoEffects struct {
	LightBleedingChance float64 `json:"lightBleedingChance,omitempty" bson:"lightBleedingChance,omitempty"`
	HeavyBleedingChance float64 `json:"heavyBleedingChance,omitempty" bson:"heavyBleedingChance,omitempty"`
}

AmmoEffects holds the effects of Ammunition

type AmmoFrag

type AmmoFrag struct {
	Chance float64 `json:"chance" bson:"chance"`
	Min    int64   `json:"min" bson:"min"`
	Max    int64   `json:"max" bson:"max"`
}

AmmoFrag represents the fragmentation data of Ammunition

type AmmoGrenadeProperties

type AmmoGrenadeProperties struct {
	Delay         float64 `json:"delay" bson:"delay"`
	FragmentCount float64 `json:"fragCount" bson:"fragCount"`
	MinRadius     float64 `json:"minRadius" bson:"minRadius"`
	MaxRadius     float64 `json:"maxRadius" bson:"maxRadius"`
}

AmmoGrenadeProperties represents the grenade properties of Ammunition

type Ammunition

type Ammunition struct {
	Item `bson:",inline"`

	Caliber             string                 `json:"caliber" bson:"caliber"`
	Type                string                 `json:"type" bson:"type"`
	Tracer              bool                   `json:"tracer" bson:"tracer"`
	TracerColor         string                 `json:"tracerColor" bson:"tracerColor"`
	Subsonic            bool                   `json:"subsonic" bson:"subsonic"`
	CasingMass          float64                `json:"casingMass" bson:"casingMass"`
	BulletMass          float64                `json:"bulletMass" bson:"bulletMass"`
	BulletDiameter      float64                `json:"bulletDiameter" bson:"bulletDiameter"`
	Velocity            float64                `json:"velocity" bson:"velocity"`
	BallisticCoeficient float64                `json:"ballisticCoef" bson:"ballisticCoef"`
	Retardation         float64                `json:"retardation" bson:"retardation"`
	Damage              float64                `json:"damage" bson:"damage"`
	Penetration         float64                `json:"penetration" bson:"penetration"`
	ArmorDamage         float64                `json:"armorDamage" bson:"armorDamage"`
	Fragmentation       AmmoFrag               `json:"fragmentation" bson:"fragmentation"`
	Effects             AmmoEffects            `json:"effects" bson:"effects"`
	Projectiles         int64                  `json:"projectiles" bson:"projectiles"`
	Pellets             int64                  `json:"pellets,omitempty" bson:"pellets,omitempty"` // Deprecated: no longer used
	MisfireChance       float64                `json:"misfireChance" bson:"misfireChance"`
	FailureToFeedChance float64                `json:"failureToFeedChance" bson:"failureToFeedChance"`
	WeaponModifier      WeaponModifier         `json:"weaponModifier" bson:"weaponModifier"`
	GrenadeProperties   *AmmoGrenadeProperties `json:"grenadeProps,omitempty" bson:"grenadeProps,omitempty"`
}

Ammunition describes the entity of an ammunition item

type AmmunitionFilter

type AmmunitionFilter struct {
	Caliber *string
	Type    *string
}

AmmunitionFilter describes the filters used for filtering Ammunition

func (*AmmunitionFilter) Filter

func (f *AmmunitionFilter) Filter() bson.D

Filter implements the DocumentFilter interface

type Armor

type Armor struct {
	Item `bson:",inline"`

	Type           string           `json:"type" bson:"type"`
	Armor          ArmorProps       `json:"armor" bson:"armor"`
	Components     []ArmorComponent `json:"components" bson:"components"`
	RicochetChance string           `json:"ricochetChance,omitempty" bson:"ricochetChance,omitempty"`
	Penalties      Penalties        `json:"penalties" bson:"penalties"`
	Blocking       []string         `json:"blocking" bson:"blocking"`
	Slots          Slots            `json:"slots" bson:"slots"`
	Compatibility  List             `json:"compatibility" bson:"compatibility"`
	Conflicts      List             `json:"conflicts" bson:"conflicts"`
}

Armor describes the entity of an armor item

type ArmorComponent

type ArmorComponent struct {
	ArmorProps `bson:",inline"`
}

ArmorComponent describes the entity of an armor component

type ArmorFilter

type ArmorFilter struct {
	Type         *string
	ArmorClass   *int64
	MaterialName *string
}

ArmorFilter describes the filters used for filtering Armor

func (*ArmorFilter) Filter

func (f *ArmorFilter) Filter() bson.D

Filter implements the DocumentFilter interface

type ArmorMaterial

type ArmorMaterial struct {
	Name            string  `json:"name" bson:"name"`
	Destructibility float64 `json:"destructibility" bson:"destructibility"`
}

ArmorMaterial represents the armor material of ArmorProps

type ArmorProps

type ArmorProps struct {
	Class           int64         `json:"class" bson:"class"`
	Durability      float64       `json:"durability" bson:"durability"`
	Material        ArmorMaterial `json:"material" bson:"material"`
	BluntThroughput float64       `json:"bluntThroughput" bson:"bluntThroughput"`
	Zones           []string      `json:"zones" bson:"zones"`
}

ArmorProps represents the armor properties of ArmorComponent and Armor

type Auxiliary

type Auxiliary struct {
	Modification `bson:",inline"`

	DurabilityBurn float64 `json:"durabilityBurn" bson:"durabilityBurn"`
	HeatFactor     float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor     float64 `json:"coolFactor" bson:"coolFactor"`
}

Auxiliary describes the entity of an auxiliary mod item

type Backpack

type Backpack struct {
	Item `bson:",inline"`

	Capacity  int64     `json:"capacity" bson:"capacity"`
	Grids     []Grid    `json:"grids" bson:"grids"`
	Penalties Penalties `json:"penalties" bson:"penalties"`
}

Backpack describes the entity of an backpack item

type Barrel

type Barrel struct {
	Modification `bson:",inline"`

	Length         float64 `json:"length" bson:"length"`
	Velocity       float64 `json:"velocity" bson:"velocity"`
	Suppressor     bool    `json:"suppressor" bson:"suppressor"`
	CenterOfImpact float64 `json:"centerOfImpact" bson:"centerOfImpact"`
	DurabilityBurn float64 `json:"durabilityBurn" bson:"durabilityBurn"`
	HeatFactor     float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor     float64 `json:"coolFactor" bson:"coolFactor"`
}

Barrel describes the entity of an barrel item

type Barter

type Barter struct {
	Item `bson:",inline"`
}

Barter describes the entity of an barter item

type Bipod

type Bipod struct {
	Modification `bson:",inline"`
}

Bipod describes the entity of an bipod item

type Charge

type Charge struct {
	Modification `bson:",inline"`
}

Charge describes the entity of an charging handle item

type Clothing

type Clothing struct {
	Item `bson:",inline"`

	Type      string    `json:"type" bson:"type"`
	Blocking  []string  `json:"blocking" bson:"blocking"`
	Penalties Penalties `json:"penalties" bson:"penalties"`
	Slots     Slots     `json:"slots" bson:"slots"`
}

Clothing describes the entity of an clothing item

type Compressor

type Compressor struct {
	Attack    float64 `json:"attack" bson:"attack"`
	Gain      float64 `json:"gain" bson:"gain"`
	Release   float64 `json:"release" bson:"release"`
	Treshhold float64 `json:"treshhold" bson:"treshhold"`
	Volume    float64 `json:"volume" bson:"volume"`
}

Compressor represents the compressor data of Headphone

type Container

type Container struct {
	Item `bson:",inline"`

	Capacity int64  `json:"capacity" bson:"capacity"`
	Grids    []Grid `json:"grids" bson:"grids"`
}

Container describes the entity of an container item

type Device

type Device struct {
	Modification `bson:",inline"`

	Type  string   `json:"type" bson:"type"`
	Modes []string `json:"modes" bson:"modes"`
}

Device describes the entity of an tactical device item

type Effect

type Effect struct {
	Name          string          `json:"name,omitempty" bson:"name,omitempty"`
	ResourceCosts int64           `json:"resourceCosts" bson:"resourceCosts"`
	FadeIn        float64         `json:"fadeIn" bson:"fadeIn"`
	FadeOut       float64         `json:"fadeOut" bson:"fadeOut"`
	Chance        float64         `json:"chance" bson:"chance"`
	Delay         float64         `json:"delay" bson:"delay"`
	Duration      float64         `json:"duration" bson:"duration"`
	Value         float64         `json:"value" bson:"value"`
	IsPercent     bool            `json:"isPercent" bson:"isPercent"`
	Removes       bool            `json:"removes" bson:"removes"`
	Penalties     EffectPenalties `json:"penalties" bson:"penalties"`
}

Effect represents the properties of an effect

type EffectPenalties

type EffectPenalties struct {
	HealthMin float64 `json:"healthMin,omitempty" bson:"healthMin,omitempty"`
	HealthMax float64 `json:"healthMax,omitempty" bson:"healthMax,omitempty"`
}

EffectPenalties holds the effect penalties

type Effects

type Effects struct {
	Energy            *Effect  `json:"energy,omitempty" bson:"energy,omitempty"`
	EnergyRate        *Effect  `json:"energyRate,omitempty" bson:"energyRate,omitempty"`
	Hydration         *Effect  `json:"hydration,omitempty" bson:"hydration,omitempty"`
	HydrationRate     *Effect  `json:"hydrationRate,omitempty" bson:"hydrationRate,omitempty"`
	Stamina           *Effect  `json:"stamina,omitempty" bson:"stamina,omitempty"`
	StaminaRate       *Effect  `json:"staminaRate,omitempty" bson:"staminaRate,omitempty"`
	Health            *Effect  `json:"health,omitempty" bson:"health,omitempty"`
	HealthRate        *Effect  `json:"healthRate,omitempty" bson:"healthRate,omitempty"`
	Bloodloss         *Effect  `json:"bloodloss,omitempty" bson:"bloodloss,omitempty"` // Deprecated: replaced
	LightBleeding     *Effect  `json:"lightBleeding,omitempty" bson:"lightBleeding,omitempty"`
	HeavyBleeding     *Effect  `json:"heavyBleeding,omitempty" bson:"heavyBleeding,omitempty"`
	Fracture          *Effect  `json:"fracture,omitempty" bson:"fracture,omitempty"`
	Contusion         *Effect  `json:"contusion,omitempty" bson:"contusion,omitempty"`
	Pain              *Effect  `json:"pain,omitempty" bson:"pain,omitempty"`
	TunnelVision      *Effect  `json:"tunnelVision,omitempty" bson:"tunnelVision,omitempty"`
	Tremor            *Effect  `json:"tremor,omitempty" bson:"tremor,omitempty"`
	Toxication        *Effect  `json:"toxication,omitempty" bson:"toxication,omitempty"`
	Antidote          *Effect  `json:"antidote,omitempty" bson:"antidote,omitempty"`
	RadiationExposure *Effect  `json:"radExposure,omitempty" bson:"radExposure,omitempty"`
	BodyTemperature   *Effect  `json:"bodyTemperature,omitempty" bson:"bodyTemperature,omitempty"`
	Mobility          *Effect  `json:"mobility,omitempty" bson:"mobility,omitempty"`
	Recoil            *Effect  `json:"recoil,omitempty" bson:"recoil,omitempty"`
	ReloadSpeed       *Effect  `json:"reloadSpeed,omitempty" bson:"reloadSpeed,omitempty"`
	LootSpeed         *Effect  `json:"lootSpeed,omitempty" bson:"lootSpeed,omitempty"`
	UnlockSpeed       *Effect  `json:"unlockSpeed,omitempty" bson:"unlockSpeed,omitempty"`
	DestroyedPart     *Effect  `json:"destroyedPart,omitempty" bson:"destroyedPart,omitempty"`
	WeightLimit       *Effect  `json:"weightLimit,omitempty" bson:"weightLimit,omitempty"`
	DamageModifier    *Effect  `json:"damageModifier,omitempty" bson:"damageModifier,omitempty"`
	Skill             []Effect `json:"skill,omitempty" bson:"skill,omitempty"`
}

Effects holds all effect types

type Entity

type Entity interface {
	GetID() objectID
	SetID(objectID)

	GetKind() Kind
	SetKind(Kind)

	GetModified() timestamp
	SetModified(timestamp)

	Validate() error
}

Entity defines the methods of an item entity

func GetByID

func GetByID(id string, k Kind) (Entity, error)

GetByID returns the entity of the given ID

type Firearm

type Firearm struct {
	Item `bson:",inline"`

	Type               string   `json:"type" bson:"type"`
	Class              string   `json:"class" bson:"class"`
	Caliber            string   `json:"caliber" bson:"caliber"`
	Manufacturer       string   `json:"manufacturer" bson:"manufacturer"`
	RateOfFire         int64    `json:"rof" bson:"rof"`
	BurstRounds        int64    `json:"burstRounds,omitempty" bson:"burstRounds,omitempty"`
	Action             string   `json:"action" bson:"action"`
	Modes              []string `json:"modes" bson:"modes"`
	Velocity           float64  `json:"velocity" bson:"velocity"`
	EffectiveDistance  int64    `json:"effectiveDist" bson:"effectiveDist"`
	ErgonomicsFloat    float64  `json:"ergonomicsFP" bson:"ergonomicsFP"`
	Ergonomics         int64    `json:"ergonomics" bson:"ergonomics"` // Deprecated: replaced
	FoldRectractable   bool     `json:"foldRectractable" bson:"foldRectractable"`
	RecoilVertical     int64    `json:"recoilVertical" bson:"recoilVertical"`
	RecoilHorizontal   int64    `json:"recoilHorizontal" bson:"recoilHorizontal"`
	OperatingResources float64  `json:"operatingResources" bson:"operatingResources"`
	MalfunctionChance  float64  `json:"malfunctionChance" bson:"malfunctionChance"`
	DurabilityRatio    float64  `json:"durabilityRatio" bson:"durabilityRatio"`
	HeatFactor         float64  `json:"heatFactor" bson:"heatFactor"`
	HeatFactorByShot   float64  `json:"heatFactorByShot" bson:"heatFactorByShot"`
	CoolFactor         float64  `json:"coolFactor" bson:"coolFactor"`
	CoolFactorMods     float64  `json:"coolFactorMods" bson:"coolFactorMods"`
	CenterOfImpact     float64  `json:"centerOfImpact" bson:"centerOfImpact"`
	Slots              Slots    `json:"slots" bson:"slots"`
}

Firearm describes the entity of an firearm item

type FirearmFilter

type FirearmFilter struct {
	Manufacturer *string
	Type         *string
	Class        *string
	Caliber      *string
}

FirearmFilter describes the filters used for filtering Firearm

func (*FirearmFilter) Filter

func (f *FirearmFilter) Filter() bson.D

Filter implements the DocumentFilter interface

type Food

type Food struct {
	Item `bson:",inline"`

	Type      string  `json:"type" bson:"type"`
	Resources int64   `json:"resources" bson:"resources"`
	UseTime   float64 `json:"useTime" bson:"useTime"`
	Effects   Effects `json:"effects" bson:"effects"`
}

Food describes the entity of an food item

type Foregrip

type Foregrip struct {
	Modification `bson:",inline"`
}

Foregrip describes the entity of an foregrip item

type GasBlock

type GasBlock struct {
	Modification `bson:",inline"`

	DurabilityBurn float64 `json:"durabilityBurn" bson:"durabilityBurn"`
	HeatFactor     float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor     float64 `json:"coolFactor" bson:"coolFactor"`
}

GasBlock describes the entity of an gas block item

type Goggles

type Goggles struct {
	Modification `bson:",inline"`

	Type string `json:"type" bson:"type"`

	OpticSpecial `bson:",inline"`
}

Goggles describes the entity of an goggles item

type Grenade

type Grenade struct {
	Item `bson:",inline"`

	Type              string  `json:"type" bson:"type"`
	Delay             float64 `json:"delay" bson:"delay"`
	FragmentCount     float64 `json:"fragCount" bson:"fragCount"`
	FragmentDamage    float64 `json:"fragDamage,omitempty" bson:"fragDamage,omitempty"`
	MinDistance       float64 `json:"minDistance" bson:"minDistance"`
	MaxDistance       float64 `json:"maxDistance" bson:"maxDistance"`
	ContusionDistance float64 `json:"contusionDistance" bson:"contusionDistance"`
	Strength          float64 `json:"strength" bson:"strength"`
	EmitTime          float64 `json:"emitTime" bson:"emitTime"`
}

Grenade describes the entity of an grenade item

type Grid

type Grid struct {
	ID        string  `json:"id" bson:"id"`
	Height    int64   `json:"height" bson:"height"`
	Width     int64   `json:"width" bson:"width"`
	MaxWeight float64 `json:"maxWeight" bson:"maxWeight"`
	Filter    List    `json:"filter" bson:"filter"`
}

Grid describes the properties of a grid

type GridModifier

type GridModifier struct {
	Height int64 `json:"height" bson:"height"`
	Width  int64 `json:"width" bson:"width"`
}

GridModifier represents the properties of an grid modifier

type GridProps

type GridProps struct {
	Color  RGBA  `json:"color" bson:"color"`
	Height int64 `json:"height" bson:"height"`
	Width  int64 `json:"width" bson:"width"`
}

GridProps represents the grid properties of an item

type Handguard

type Handguard struct {
	Modification `bson:",inline"`

	HeatFactor float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor float64 `json:"coolFactor" bson:"coolFactor"`
}

Handguard describes the entity of an handguard item

type Headphone

type Headphone struct {
	Item `bson:",inline"`

	AmbientVolume  float64    `json:"ambientVol" bson:"ambientVol"`
	DryVolume      float64    `json:"dryVol" bson:"dryVol"`
	Distortion     float64    `json:"distortion" bson:"distortion"`
	HighPassFilter HighPass   `json:"hpf" bson:"hpf"`
	Compressor     Compressor `json:"compressor" bson:"compressor"`
}

Headphone describes the entity of an headphone item

type HighPass

type HighPass struct {
	CutoffFrequency float64 `json:"cutoffFreq" bson:"cutoffFreq"`
	Resonance       float64 `json:"resonance" bson:"resonance"`
}

HighPass represents the highpass filter data of Headphone

type Index

type Index struct {
	Total    int64               `json:"total" bson:"total"`
	Modified timestamp           `json:"modified" bson:"modified"`
	Kinds    map[Kind]*KindStats `json:"kinds" bson:"kinds"`
}

Index describes the entity of an the item root endpoint

func GetIndex

func GetIndex(skipKinds bool) (*Index, error)

GetIndex returns the data of the item root endpoint

func (*Index) WithKinds

func (i *Index) WithKinds(c *mongo.Collection) error

WithKinds fills Index with kind data

func (*Index) WithoutKinds

func (i *Index) WithoutKinds(c *mongo.Collection) error

WithoutKinds fills Index without kind data

type Item

type Item struct {
	ID          objectID  `json:"_id" bson:"_id"`
	Name        string    `json:"name" bson:"name"`
	ShortName   string    `json:"shortName" bson:"shortName"`
	Description string    `json:"description" bson:"description"`
	Price       int64     `json:"price" bson:"price"` // Deprecated: no longer supported
	Weight      float64   `json:"weight" bson:"weight"`
	MaxStack    int64     `json:"maxStack" bson:"maxStack"`
	Rarity      string    `json:"rarity" bson:"rarity"` // Deprecated: no longer supported
	Grid        GridProps `json:"grid" bson:"grid"`
	Modified    timestamp `json:"_modified" bson:"_modified"`
	Kind        Kind      `json:"_kind" bson:"_kind"`
}

Item represents the basic data of item

func (*Item) GetID

func (i *Item) GetID() objectID

GetID returns the ID of the item

func (*Item) GetKind

func (i *Item) GetKind() Kind

GetKind returns the Kind of the item

func (*Item) GetModified

func (i *Item) GetModified() timestamp

GetModified returns the modified date of the item

func (*Item) SetID

func (i *Item) SetID(id objectID)

SetID sets an ID

func (*Item) SetKind

func (i *Item) SetKind(k Kind)

SetKind sets an kind

func (*Item) SetModified

func (i *Item) SetModified(t timestamp)

SetModified sets an modified date

func (*Item) Validate

func (i *Item) Validate() error

Validate validates the item fields

type Key

type Key struct {
	Item `bson:",inline"`

	Location string `json:"location" bson:"location"`
	Usages   int64  `json:"usages,omitempty" bson:"usages,omitempty"`
}

Key describes the entity of an key item

type Kind

type Kind string

A Kind represents an item type

const (
	// KindModification represents the kind of Modification
	KindModification Kind = "modification"

	// KindModificationBarrel represents the kind of Barrel
	KindModificationBarrel Kind = "modificationBarrel"

	// KindModificationAuxiliary represents the kind of Auxiliary
	KindModificationAuxiliary Kind = "modificationAuxiliary"

	// KindModificationBipod represents the kind of Bipod
	KindModificationBipod Kind = "modificationBipod"

	// KindModificationCharge represents the kind of Charge
	KindModificationCharge Kind = "modificationCharge"

	// KindModificationDevice represents the kind of Device
	KindModificationDevice Kind = "modificationDevice"

	// KindModificationForegrip represents the kind of Foregrip
	KindModificationForegrip Kind = "modificationForegrip"

	// KindModificationGasblock represents the kind of GasBlock
	KindModificationGasblock Kind = "modificationGasblock"

	// KindModificationHandguard represents the kind of Handguard
	KindModificationHandguard Kind = "modificationHandguard"

	// KindModificationLauncher represents the kind of Launcher
	KindModificationLauncher Kind = "modificationLauncher"

	// KindModificationMount represents the kind of Mount
	KindModificationMount Kind = "modificationMount"

	// KindModificationMuzzle represents the kind of Muzzle
	KindModificationMuzzle Kind = "modificationMuzzle"

	// KindModificationGoggles represents the kind of Goggles
	KindModificationGoggles Kind = "modificationGoggles"

	// KindModificationPistolgrip represents the kind of PistolGrip
	KindModificationPistolgrip Kind = "modificationPistolgrip"

	// KindModificationReceiver represents the kind of Receiver
	KindModificationReceiver Kind = "modificationReceiver"

	// KindModificationSight represents the kind of Sight
	KindModificationSight Kind = "modificationSight"

	// KindModificationSightSpecial represents the kind of SightSpecial
	KindModificationSightSpecial Kind = "modificationSightSpecial"

	// KindModificationStock represents the kind of Stock
	KindModificationStock Kind = "modificationStock"
)
const (
	// KindAmmunition represents the kind of Ammunition
	KindAmmunition Kind = "ammunition"
)
const (
	// KindArmor represents the kind of Armor
	KindArmor Kind = "armor"
)
const (
	// KindBackpack represents the kind of Backpack
	KindBackpack Kind = "backpack"
)
const (
	// KindBarter represents the kind of Barter
	KindBarter Kind = "barter"
)
const (
	// KindClothing represents the kind of Clothing
	KindClothing Kind = "clothing"
)
const KindCommon Kind = "common"

KindCommon represents the kind of Item

const (
	// KindContainer represents the kind of Container
	KindContainer Kind = "container"
)
const (
	// KindFirearm represents the kind of Firearm
	KindFirearm Kind = "firearm"
)
const (
	// KindFood represents the kind of Food
	KindFood Kind = "food"
)
const (
	// KindGrenade represents the kind of Grenade
	KindGrenade Kind = "grenade"
)
const (
	// KindHeadphone represents the kind of Headphone
	KindHeadphone Kind = "headphone"
)
const (
	// KindKey represents the kind of Key
	KindKey Kind = "key"
)
const (
	// KindMagazine represents the kind of Magazine
	KindMagazine Kind = "magazine"
)
const (
	// KindMap represents the kind of Map
	KindMap Kind = "map"
)
const (
	// KindMedical represents the kind of Medical
	KindMedical Kind = "medical"
)
const (
	// KindMelee represents the kind of Melee
	KindMelee Kind = "melee"
)
const (
	// KindMoney represents the kind of Money
	KindMoney Kind = "money"
)
const (
	// KindTacticalrig represents the kind of TacticalRig
	KindTacticalrig Kind = "tacticalrig"
)

func (Kind) GetEntity

func (k Kind) GetEntity() (Entity, error)

GetEntity returns the associated entity of the kind

func (Kind) IsEmpty

func (k Kind) IsEmpty() bool

IsEmpty checks if a kind is empty

func (Kind) IsValid

func (k Kind) IsValid() bool

IsValid checks if a kind is valid

func (*Kind) MarshalJSON

func (k *Kind) MarshalJSON() ([]byte, error)

MarshalJSON implements the JSON marshaler

func (Kind) String

func (k Kind) String() string

String returns the string representation of the kind

func (*Kind) UnmarshalJSON

func (k *Kind) UnmarshalJSON(b []byte) error

UnmarshalJSON implements the JSON unmarshaler

type KindStats

type KindStats struct {
	Count    int64     `json:"count" bson:"count"`
	Modified timestamp `json:"modified" bson:"modified"`
}

KindStats describes the statistics of a kind

type Launcher

type Launcher struct {
	Modification `bson:",inline"`

	Caliber string `json:"caliber" bson:"caliber"`
}

Launcher describes the entity of an launcher item

type List

type List map[Kind][]objectID

List holds entity IDs and the associated kind

type Magazine

type Magazine struct {
	Item `bson:",inline"`

	Capacity          int64            `json:"capacity" bson:"capacity"`
	Caliber           string           `json:"caliber" bson:"caliber"`
	ErgonomicsFloat   float64          `json:"ergonomicsFP" bson:"ergonomicsFP"`
	Ergonomics        int64            `json:"ergonomics" bson:"ergonomics"` // Deprecated: replaced
	MalfunctionChance float64          `json:"malfunctionChance" bson:"malfunctionChance"`
	Modifier          MagazineModifier `json:"modifier" bson:"modifier"`
	GridModifier      GridModifier     `json:"gridModifier" bson:"gridModifier"`
	Compatibility     List             `json:"compatibility" bson:"compatibility"`
	Conflicts         List             `json:"conflicts" bson:"conflicts"`
}

Magazine describes the entity of an magazine item

type MagazineFilter

type MagazineFilter struct {
	Caliber *string
}

MagazineFilter describes the filters used for filtering Magazine

func (*MagazineFilter) Filter

func (f *MagazineFilter) Filter() bson.D

Filter implements the DocumentFilter interface

type MagazineModifier

type MagazineModifier struct {
	CheckTime  float64 `json:"checkTime" bson:"checkTime"`
	LoadUnload float64 `json:"loadUnload" bson:"loadUnload"`
}

MagazineModifier describes the properties of Modifier in Magazine

type Map

type Map struct {
	Item `bson:",inline"`
}

Map describes the entity of an map item

type Medical

type Medical struct {
	Item `bson:",inline"`

	Type         string  `json:"type" bson:"type"`
	Resources    int64   `json:"resources" bson:"resources"`
	ResourceRate int64   `json:"resourceRate" bson:"resourceRate"` // Deprecated: no longer used
	UseTime      float64 `json:"useTime" bson:"useTime"`
	Effects      Effects `json:"effects" bson:"effects"`
}

Medical describes the entity of an medical item

type Melee

type Melee struct {
	Item `bson:",inline"`

	Slash MeleeAttack `json:"slash" bson:"slash"`
	Stab  MeleeAttack `json:"stab" bson:"stab"`
}

Melee describes the entity of an melee item

type MeleeAttack

type MeleeAttack struct {
	Damage      float64 `json:"damage" bson:"damage"`
	Rate        float64 `json:"rate" bson:"rate"`
	Range       float64 `json:"range" bson:"range"`
	Consumption float64 `json:"consumption" bson:"consumption"`
}

MeleeAttack represents the slash and stab data of Melee

type Modification

type Modification struct {
	Item `bson:",inline"`

	ErgonomicsFloat float64      `json:"ergonomicsFP" bson:"ergonomicsFP"`
	Ergonomics      int64        `json:"ergonomics" bson:"ergonomics"` // Deprecated: replaced
	Accuracy        float64      `json:"accuracy" bson:"accuracy"`
	Recoil          float64      `json:"recoil" bson:"recoil"`
	RaidModdable    int64        `json:"raidModdable" bson:"raidModdable"`
	GridModifier    GridModifier `json:"gridModifier" bson:"gridModifier"`
	Slots           Slots        `json:"slots" bson:"slots"`
	Compatibility   List         `json:"compatibility" bson:"compatibility"`
	Conflicts       List         `json:"conflicts" bson:"conflicts"`
}

Modification represents the basic data of modification item

type Money

type Money struct {
	Item `bson:",inline"`
}

Money describes the entity of an money item

type Mount

type Mount struct {
	Modification `bson:",inline"`

	HeatFactor float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor float64 `json:"coolFactor" bson:"coolFactor"`
}

Mount describes the entity of an mount item

type Muzzle

type Muzzle struct {
	Modification `bson:",inline"`

	Type           string  `json:"type" bson:"type"`
	Velocity       float64 `json:"velocity" bson:"velocity"`
	Loudness       float64 `json:"loudness" bson:"loudness"`
	DurabilityBurn float64 `json:"durabilityBurn" bson:"durabilityBurn"`
	HeatFactor     float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor     float64 `json:"coolFactor" bson:"coolFactor"`
}

Muzzle describes the entity of an muzzle item

type OpticSpecial

type OpticSpecial struct {
	Modes []string `json:"modes" bson:"modes"`
	Color RGBA     `json:"color" bson:"color"`
	Noise string   `json:"noise" bson:"noise"`
}

OpticSpecial represents the properties of GogglesSpecial and SightSpecial

type Options

type Options struct {
	Sort   bson.D
	Limit  int64
	Offset int64
}

Options represents the options for a database operation

type Penalties

type Penalties struct {
	Mouse           float64 `json:"mouse,omitempty" bson:"mouse,omitempty"`
	Speed           float64 `json:"speed,omitempty" bson:"speed,omitempty"`
	ErgonomicsFloat float64 `json:"ergonomicsFP,omitempty" bson:"ergonomicsFP,omitempty"`
	Ergonomics      int64   `json:"ergonomics,omitempty" bson:"ergonomics,omitempty"` // Deprecated: replaced
	Deafness        string  `json:"deafness,omitempty" bson:"deafness,omitempty"`
}

Penalties holds all existing penaltie types

type PistolGrip

type PistolGrip struct {
	Modification `bson:",inline"`
}

PistolGrip describes the entity of an pistol grip item

type RGBA

type RGBA struct {
	R uint `json:"r" bson:"r"`
	G uint `json:"g" bson:"g"`
	B uint `json:"b" bson:"b"`
	A uint `json:"a" bson:"a"`
}

RGBA represents a color in RGBA

type Receiver

type Receiver struct {
	Modification `bson:",inline"`

	Velocity       float64 `json:"velocity" bson:"velocity"`
	DurabilityBurn float64 `json:"durabilityBurn" bson:"durabilityBurn"`
	HeatFactor     float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor     float64 `json:"coolFactor" bson:"coolFactor"`
}

Receiver describes the entity of an receiver item

type Sight

type Sight struct {
	Modification `bson:",inline"`

	Type          string   `json:"type" bson:"type"`
	Magnification []string `json:"magnification" bson:"magnification"`
	VariableZoom  bool     `json:"variableZoom" bson:"variableZoom"`
	ZeroDistances []int64  `json:"zeroDistances" bson:"zeroDistances"`
}

Sight describes the entity of an sight item

type SightSpecial

type SightSpecial struct {
	Sight        `bson:",inline"`
	OpticSpecial `bson:",inline"`
}

SightSpecial describes the entity of an special sights item

type Slot

type Slot struct {
	Filter   List `json:"filter" bson:"filter"`
	Required bool `json:"required" bson:"required"`
}

Slot represents a mod slot of an item

type Slots

type Slots map[string]Slot

Slots stores the mod slots of an item

type Stock

type Stock struct {
	Modification `bson:",inline"`

	FoldRectractable bool    `json:"foldRectractable" bson:"foldRectractable"`
	HeatFactor       float64 `json:"heatFactor" bson:"heatFactor"`
	CoolFactor       float64 `json:"coolFactor" bson:"coolFactor"`
}

Stock describes the entity of an stock item

type TacticalRig

type TacticalRig struct {
	Item `bson:",inline"`

	Capacity        int64            `json:"capacity" bson:"capacity"`
	Grids           []Grid           `json:"grids" bson:"grids"`
	Penalties       Penalties        `json:"penalties" bson:"penalties"`
	Armor           *ArmorProps      `json:"armor,omitempty" bson:"armor,omitempty"` // Deprecated
	ArmorComponents []ArmorComponent `json:"armorComponents,omitempty" bson:"armorComponents,omitempty"`
	IsPlateCarrier  bool             `json:"isPlateCarrier" bson:"isPlateCarrier"`
	Slots           Slots            `json:"slots" bson:"slots"`
}

TacticalRig describes the entity of an tactical rig item

type TacticalRigFilter

type TacticalRigFilter struct {
	IsPlateCarrier *bool
	IsArmored      *bool
	ArmorClass     *int64
	ArmorMaterial  *string
}

TacticalRigFilter describes the filters used for filtering TacticalRig

func (*TacticalRigFilter) Filter

func (f *TacticalRigFilter) Filter() bson.D

Filter implements the DocumentFilter interface

type WeaponModifier

type WeaponModifier struct {
	Accuracy          float64 `json:"accuracy" bson:"accuracy"`
	Recoil            float64 `json:"recoil" bson:"recoil"`
	MalfunctionChance float64 `json:"malfunctionChance" bson:"malfunctionChance"` // Deprecated: replaced
	DurabilityBurn    float64 `json:"durabilityBurn" bson:"durabilityBurn"`
	HeatFactor        float64 `json:"heatFactor" bson:"heatFactor"`
}

WeaponModifier contains the weapon modifiers of Ammunition

Jump to

Keyboard shortcuts

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