artifacts/characters/types.go
2024-07-31 23:09:11 +02:00

154 lines
7.4 KiB
Go

package characters
import "time"
// Character is a struct that holds info on a character
type Character struct {
Name string `json:"name"`
Skin Skin `json:"skin"`
Level int `json:"level"`
Xp int `json:"xp"`
MaxXp int `json:"max_xp"`
TotalXp int `json:"total_xp"`
Gold int `json:"gold"`
Speed int `json:"speed"`
MiningLevel int `json:"mining_level"`
MiningXp int `json:"mining_xp"`
MiningMaxXp int `json:"mining_max_xp"`
WoodcuttingLevel int `json:"woodcutting_level"`
WoodcuttingXp int `json:"woodcutting_xp"`
WoodcuttingMaxXp int `json:"woodcutting_max_xp"`
FishingLevel int `json:"fishing_level"`
FishingXp int `json:"fishing_xp"`
FishingMaxXp int `json:"fishing_max_xp"`
WeaponcraftingLevel int `json:"weaponcrafting_level"`
WeaponcraftingXp int `json:"weaponcrafting_xp"`
WeaponcraftingMaxXp int `json:"weaponcrafting_max_xp"`
GearcraftingLevel int `json:"gearcrafting_level"`
GearcraftingXp int `json:"gearcrafting_xp"`
GearcraftingMaxXp int `json:"gearcrafting_max_xp"`
JewelrycraftingLevel int `json:"jewelrycrafting_level"`
JewelrycraftingXp int `json:"jewelrycrafting_xp"`
JewelrycraftingMaxXp int `json:"jewelrycrafting_max_xp"`
CookingLevel int `json:"cooking_level"`
CookingXp int `json:"cooking_xp"`
CookingMaxXp int `json:"cooking_max_xp"`
Hp int `json:"hp"`
Haste int `json:"haste"`
CriticalStrike int `json:"critical_strike"`
Stamina int `json:"stamina"`
AttackFire int `json:"attack_fire"`
AttackEarth int `json:"attack_earth"`
AttackWater int `json:"attack_water"`
AttackAir int `json:"attack_air"`
DmgFire int `json:"dmg_fire"`
DmgEarth int `json:"dmg_earth"`
DmgWater int `json:"dmg_water"`
DmgAir int `json:"dmg_air"`
ResFire int `json:"res_fire"`
ResEarth int `json:"res_earth"`
ResWater int `json:"res_water"`
ResAir int `json:"res_air"`
X int `json:"x"`
Y int `json:"y"`
Cooldown int `json:"cooldown"`
CooldownExpiration time.Time `json:"cooldown_expiration"`
WeaponSlot string `json:"weapon_slot"`
ShieldSlot string `json:"shield_slot"`
HelmetSlot string `json:"helmet_slot"`
BodyArmorSlot string `json:"body_armor_slot"`
LegArmorSlot string `json:"leg_armor_slot"`
BootsSlot string `json:"boots_slot"`
Ring1Slot string `json:"ring1_slot"`
Ring2Slot string `json:"ring2_slot"`
AmuletSlot string `json:"amulet_slot"`
Artifact1Slot string `json:"artifact1_slot"`
Artifact2Slot string `json:"artifact2_slot"`
Artifact3Slot string `json:"artifact3_slot"`
Consumable1Slot string `json:"consumable1_slot"`
Consumable1SlotQuantity int `json:"consumable1_slot_quantity"`
Consumable2Slot string `json:"consumable2_slot"`
Consumable2SlotQuantity int `json:"consumable2_slot_quantity"`
InventorySlot1 string `json:"inventory_slot1"`
InventorySlot1Quantity int `json:"inventory_slot1_quantity"`
InventorySlot2 string `json:"inventory_slot2"`
InventorySlot2Quantity int `json:"inventory_slot2_quantity"`
InventorySlot3 string `json:"inventory_slot3"`
InventorySlot3Quantity int `json:"inventory_slot3_quantity"`
InventorySlot4 string `json:"inventory_slot4"`
InventorySlot4Quantity int `json:"inventory_slot4_quantity"`
InventorySlot5 string `json:"inventory_slot5"`
InventorySlot5Quantity int `json:"inventory_slot5_quantity"`
InventorySlot6 string `json:"inventory_slot6"`
InventorySlot6Quantity int `json:"inventory_slot6_quantity"`
InventorySlot7 string `json:"inventory_slot7"`
InventorySlot7Quantity int `json:"inventory_slot7_quantity"`
InventorySlot8 string `json:"inventory_slot8"`
InventorySlot8Quantity int `json:"inventory_slot8_quantity"`
InventorySlot9 string `json:"inventory_slot9"`
InventorySlot9Quantity int `json:"inventory_slot9_quantity"`
InventorySlot10 string `json:"inventory_slot10"`
InventorySlot10Quantity int `json:"inventory_slot10_quantity"`
InventorySlot11 string `json:"inventory_slot11"`
InventorySlot11Quantity int `json:"inventory_slot11_quantity"`
InventorySlot12 string `json:"inventory_slot12"`
InventorySlot12Quantity int `json:"inventory_slot12_quantity"`
InventorySlot13 string `json:"inventory_slot13"`
InventorySlot13Quantity int `json:"inventory_slot13_quantity"`
InventorySlot14 string `json:"inventory_slot14"`
InventorySlot14Quantity int `json:"inventory_slot14_quantity"`
InventorySlot15 string `json:"inventory_slot15"`
InventorySlot15Quantity int `json:"inventory_slot15_quantity"`
InventorySlot16 string `json:"inventory_slot16"`
InventorySlot16Quantity int `json:"inventory_slot16_quantity"`
InventorySlot17 string `json:"inventory_slot17"`
InventorySlot17Quantity int `json:"inventory_slot17_quantity"`
InventorySlot18 string `json:"inventory_slot18"`
InventorySlot18Quantity int `json:"inventory_slot18_quantity"`
InventorySlot19 string `json:"inventory_slot19"`
InventorySlot19Quantity int `json:"inventory_slot19_quantity"`
InventorySlot20 string `json:"inventory_slot20"`
InventorySlot20Quantity int `json:"inventory_slot20_quantity"`
InventoryMaxItems int `json:"inventory_max_items"`
Task string `json:"task"`
TaskType string `json:"task_type"`
TaskProgress int `json:"task_progress"`
TaskTotal int `json:"task_total"`
}
// Skin is a custom type used for the allowed skins
type Skin string
// allowed skins
const (
Man1 Skin = "men1"
Man2 Skin = "men2"
Man3 Skin = "men3"
Woman1 Skin = "women1"
Woman2 Skin = "women2"
Woman3 Skin = "women3"
)
// CharacterMovement is a struct that holds info on the movement of a character
type CharacterMovement struct {
Cooldown Cooldown
Destination Destination
Character Character
}
// Cooldown is a struct that holds info on the remaining time for a given action
type Cooldown struct {
TotalSeconds int `json:"totalSeconds"`
RemainingSeconds int `json:"remainingSeconds"`
Expiration time.Time `json:"expiration"`
Reason string `json:"reason"`
}
// Destination is a struct that holds info on a map tile
type Destination struct {
Name string `json:"name"`
X int `json:"x"`
Y int `json:"y"`
Content any `json:"content"`
}