tables

package
v0.3.26 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2021 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const PointsPerRank = 5

Variables

View Source
var (
	MysteryBerry1 = [11]ItemID{
		Mistake,
		Mistake,
		Mistake,
		Mistake,
		BigMistake,
		BigMistake,
		RoastedBerries,
		RoastedBerries,
		BerryJuice,
		SucculentPlatter,
		BerrySmoothie,
	}
	MysteryBerry2 = [13]ItemID{
		Mistake,
		BigMistake,
		BigMistake,
		SucculentPlatter,
		SucculentPlatter,
		SucculentPlatter,
		BerrySmoothie,
		BerrySmoothie,
		RoastedBerries,
		BerryJuice,
		TangyJam,
		SpicyBomb,
		BurlyBomb,
	}
	Recipe1 = map[ItemID]RecipeData{
		AgaricShroom: {
			Result:  CookedShroom,
			Method1: CookWiggle,
		},
		AphidEgg: {
			Result:  FriedEgg,
			Method1: CookTimed,
		},
		BagOfFlour: {
			Result:  DryBread,
			Method1: CookTimed,
		},
		BigMistake: {
			Result:  BigMistake,
			Method1: CookRandom,
		},
		BurlyBerry: {
			Result:  RoastedBerries,
			Method1: CookChop,
		},
		ClearWater: {
			Result:  ClearWater,
			Method1: CookStir,
		},
		CrunchyLeaf: {
			Result:  LeafSalad,
			Method1: CookChop,
		},
		DangerShroom: {
			Result:  CookedDanger,
			Method1: CookWiggle,
		},
		DangerSpud: {
			Result:  BakedYam,
			Method1: CookTimed,
		},
		DarkCherries: {
			Result:  SucculentPlatter,
			Method1: CookChop,
		},
		GlazedHoney: {
			Result:  Abomihoney,
			Method1: CookStir,
		},
		HardSeed: {
			Result:  RoastedBerries,
			Method1: CookChop,
		},
		HoneyDrop: {
			Result:  GlazedHoney,
			Method1: CookStir,
		},
		HustleBerry: {
			Result:  RoastedBerries,
			Method1: CookChop,
		},
		MagicIce: {
			Result:  ShavedIce,
			Method1: CookChop,
		},
		Mistake: {
			Result:  BigMistake,
			Method1: CookRandom,
		},
		Mushroom: {
			Result:  CookedShroom,
			Method1: CookWiggle,
		},
		ShockBerry: {
			Result:  RoastedBerries,
			Method1: CookChop,
		},
		SpicyBerry: {
			Result:  RoastedBerries,
			Method1: CookChop,
		},
		Squash: {
			Result:  SquashPuree,
			Method1: CookStir,
		},
		SucculentBerry: {
			Result:  SucculentPlatter,
			Method1: CookChop,
		},
		TangyBerry: {
			Result:  TangyCarpaccio,
			Method1: CookChop,
		},
	}
	Recipe2 = map[[2]ItemID]RecipeData{}/* 178 elements not displayed */

)
View Source
var (
	ChefModel              *tables3d.ModelObject
	SceneBugariaFull       tables3d.Scene
	SceneBugariaCommercial tables3d.Scene
	SceneUndergroundBar    tables3d.Scene
	SceneDefiantRootDining tables3d.Scene
)
View Source
var Chefs = [...]ChefData{
	ChefFry: {
		Flags:    0,
		Pronouns: PronounHeHim,
		Sprite:   sprites.TablesFry,
		HighQuality: func(s *State, id ItemID) bool {
			panic("TODO: HighQuality(Fry)")
		},
	},
	ChefDoppel: {
		Flags:           0,
		Pronouns:        PronounHeHim,
		PassiveItem:     BerryJuice,
		PassiveInterval: 120,
		Sprite:          sprites.TablesDoppel,
		HighQuality: func(_ *State, id ItemID) bool {
			return id == BerryJuice
		},
	},
	ChefCrisbee: {
		Flags:       0,
		Pronouns:    PronounHeHim,
		IsMerchant:  MerchantCrisbee,
		PassiveItem: BagOfFlour,
		Sprite:      sprites.TablesCrisbee,
		HighQuality: func(s *State, id ItemID) bool {
			panic("TODO: HighQuality(Crisbee)")
		},
		Discount: func(m MerchantID, i ItemID) int {
			if m == MerchantCrisbee && i == BagOfFlour {
				return 4
			}

			return 0
		},
	},
	ChefKut: {
		Flags:    0,
		Pronouns: PronounHeHim,
		Sprite:   sprites.TablesKut,
		HighQuality: func(*State, ItemID) bool {
			return true
		},
	},
	ChefJayde: {
		Flags:       0,
		Pronouns:    PronounSheHer,
		IsMerchant:  MerchantJayde,
		PassiveItem: JaydesStew,
		PassiveCost: 7,
		Sprite:      sprites.TablesJayde,
		HighQuality: func(_ *State, id ItemID) bool {
			return id == JaydesStew
		},
		Discount: func(m MerchantID, i ItemID) int {
			if m == MerchantJayde && i == JaydesStew {
				return 18
			}

			return 0
		},
	},
	ChefMasterSlice: {
		Flags:    0,
		Pronouns: PronounHeHim,
		Sprite:   sprites.TablesMasterSlice,
		HighQuality: func(_ *State, id ItemID) bool {
			return Items[id].Flags&FlagTangy != 0
		},
		Discount: func(_ MerchantID, i ItemID) int {
			switch i {
			case TangyBerry:
				return 10
			case DarkCherries:
				return 10
			default:
				return 0
			}
		},
	},
	ChefMicrowave: {
		Flags:    FlagMicrowave,
		Pronouns: PronounItIts,
		Sprite:   sprites.TablesMicrowave,
		HighQuality: func(_ *State, id ItemID) bool {
			return id == Mistake || id == BigMistake || id == Abomihoney || id == MiteBurger
		},
	},
}
View Source
var Explorers = [...]ExplorerData{
	ExplorerAnt: {
		Sprite:     sprites.TablesAnt,
		Members:    []string{"Gen", "Eri"},
		Cost:       100,
		NotAllowed: ForagingForsakenLands,
		ForagingModifier: [...]int8{
			ForagingBugariaOutskirts: 1,
			ForagingSnakemouthDen:    -2,
			ForagingHoneyFactory:     1,
			ForagingLostSands:        0,
			ForagingGoldenHills:      0,
			ForagingForsakenLands:    0,
		},
	},
	ExplorerCelia: {
		Sprite:  sprites.TablesCelia,
		Members: []string{"Levi", "Celia"},
		Cost:    100,
		ForagingModifier: [...]int8{
			ForagingBugariaOutskirts: -1,
			ForagingSnakemouthDen:    0,
			ForagingHoneyFactory:     0,
			ForagingLostSands:        1,
			ForagingGoldenHills:      2,
			ForagingForsakenLands:    -1,
		},
	},
	ExplorerMothiva: {
		Sprite:     sprites.TablesMothiva,
		Members:    []string{"Mothiva", "Zasp"},
		Cost:       300,
		NotAllowed: ForagingHoneyFactory,
		ForagingModifier: [...]int8{
			ForagingBugariaOutskirts: 0,
			ForagingSnakemouthDen:    -1,
			ForagingHoneyFactory:     0,
			ForagingLostSands:        0,
			ForagingGoldenHills:      2,
			ForagingForsakenLands:    -1,
		},
	},
	ExplorerSlacker: {
		Sprite:  sprites.TablesSlacker,
		Members: []string{"Stratos", "Delilah"},
		Cost:    200,
		ForagingModifier: [...]int8{
			ForagingBugariaOutskirts: 0,
			ForagingSnakemouthDen:    0,
			ForagingHoneyFactory:     0,
			ForagingLostSands:        0,
			ForagingGoldenHills:      0,
			ForagingForsakenLands:    0,
		},
	},
	ExplorerMaki: {
		Sprite:  sprites.TablesMaki,
		Members: []string{"Maki", "Kina"},
		Cost:    200,
		ForagingModifier: [...]int8{
			ForagingBugariaOutskirts: 0,
			ForagingSnakemouthDen:    1,
			ForagingHoneyFactory:     -2,
			ForagingLostSands:        0,
			ForagingGoldenHills:      -1,
			ForagingForsakenLands:    1,
		},
	},
	ExplorerSnakemouth: {
		Sprite:  sprites.TablesSnakemouth,
		Members: []string{"Vi", "Kabbu", "Leif"},
		Cost:    400,
		ForagingModifier: [...]int8{
			ForagingBugariaOutskirts: 1,
			ForagingSnakemouthDen:    1,
			ForagingHoneyFactory:     1,
			ForagingLostSands:        1,
			ForagingGoldenHills:      1,
			ForagingForsakenLands:    1,
		},
	},
}
View Source
var ForagingLocations = [...]ForagingData{
	ForagingBugariaOutskirts: {
		Description: "Send a team of Explorers to forage for ingredients near the Association.",
		Sprite:      sprites.Blank,
		Common: []ItemID{
			CrunchyLeaf,
			DangerSpud,
		},
		Uncommon: []ItemID{
			HoneyDrop,
			SpicyBerry,
			BurlyBerry,
		},
		Rare: []ItemID{
			AphidEgg,
			Mushroom,
			HardSeed,
			ClearWater,
			NumbnailDart,
			MysteryBerry,
		},
		SuperRare: []ItemID{
			DangerShroom,
			TangyBerry,
			DarkCherries,
			MagicSeed,
		},
	},
	ForagingSnakemouthDen: {
		Description: "Send a team of Explorers to forage for ingredients in Snakemouth Den, which is safer now that that spider has been dealt with.",
		Sprite:      sprites.Blank,
		Common: []ItemID{
			CrunchyLeaf,
			HoneyDrop,
			AphidEgg,
			Mushroom,
		},
		Uncommon: []ItemID{
			SpicyBerry,
			BurlyBerry,
		},
		Rare: []ItemID{
			HardSeed,
			ClearWater,
			MysteryBerry,
		},
		SuperRare: []ItemID{
			DangerShroom,
			DangerSpud,
			TangyBerry,
			DarkCherries,
			MagicSeed,
		},
	},
	ForagingHoneyFactory: {
		Description: "Send a team of Explorers to help out at the Honey Factory.",
		Sprite:      sprites.Blank,
		Common: []ItemID{
			HoneyDrop,
			ShockBerry,
		},
		Uncommon: []ItemID{
			CrunchyLeaf,
			SpicyBerry,
			BurlyBerry,
		},
		Rare: []ItemID{
			AphidEgg,
			Mushroom,
			HardSeed,
			ClearWater,
			MagicSeed,
			MysteryBerry,
		},
		SuperRare: []ItemID{
			DangerShroom,
			DangerSpud,
			TangyBerry,
			DarkCherries,
		},
	},
	ForagingLostSands: {
		Description: "Send a team of Explorers to forage near Defiant Root.",
		Sprite:      sprites.Blank,
		Common: []ItemID{
			AgaricShroom,
			SucculentBerry,
		},
		Uncommon: []ItemID{
			CrunchyLeaf,
			HoneyDrop,
			HardSeed,
			SpicyBerry,
			BurlyBerry,
		},
		Rare: []ItemID{
			AphidEgg,
			Mushroom,
			ClearWater,
			HustleBerry,
			MysteryBerry,
		},
		SuperRare: []ItemID{
			DangerShroom,
			DangerSpud,
			TangyBerry,
			DarkCherries,
			MagicSeed,
		},
	},
	ForagingGoldenHills: {
		Description: "Send a team of Explorers to forage near Golden Settlement.",
		Sprite:      sprites.Blank,
		Common: []ItemID{
			HardSeed,
			ClearWater,
			NumbnailDart,
		},
		Uncommon: []ItemID{
			CrunchyLeaf,
			HoneyDrop,
			SpicyBerry,
			BurlyBerry,
		},
		Rare: []ItemID{
			AphidEgg,
			Mushroom,
			AphidDew,
			PoisonDart,
			MysteryBerry,
		},
		SuperRare: []ItemID{
			DangerShroom,
			DangerSpud,
			TangyBerry,
			DarkCherries,
			MagicSeed,
		},
	},
	ForagingForsakenLands: {
		Description: "Send a team of Explorers to forage near the Termite Kingdom.",
		Sprite:      sprites.Blank,
		Common: []ItemID{
			Squash,
		},
		Uncommon: []ItemID{
			CrunchyLeaf,
			HoneyDrop,
			SpicyBerry,
			BurlyBerry,
		},
		Rare: []ItemID{
			AphidEgg,
			Mushroom,
			HardSeed,
			ClearWater,
			MysteryBerry,
		},
		SuperRare: []ItemID{
			DangerShroom,
			DangerSpud,
			TangyBerry,
			DarkCherries,
			MagicSeed,
		},
	},
}
View Source
var Items = [...]ItemData{
	Mistake: {
		Flags:  FlagGarbage | FlagPoison,
		Value:  2,
		Sprite: sprites.TablesItems[23],
	},
	BigMistake: {
		Flags:  FlagGarbage | FlagPoison,
		Value:  1,
		Sprite: sprites.TablesItems[51],
	},
	CrunchyLeaf: {
		Flags:  FlagIngredient | FlagCrunchy | FlagSavory,
		Value:  3,
		Sprite: sprites.TablesItems[0],
	},
	HoneyDrop: {
		Flags:  FlagIngredient | FlagSticky | FlagSweet,
		Value:  4,
		Sprite: sprites.TablesItems[1],
	},
	AphidEgg: {
		Flags:  FlagIngredient | FlagRaw,
		Value:  2,
		Sprite: sprites.TablesItems[16],
	},
	Mushroom: {
		Flags:  FlagIngredient | FlagSavory,
		Value:  3,
		Sprite: sprites.TablesItems[12],
	},
	DangerShroom: {
		Flags:  FlagIngredient | FlagPoison,
		Value:  3,
		Sprite: sprites.TablesItems[25],
	},
	AgaricShroom: {
		Flags:  FlagIngredient | FlagNumb,
		Value:  7,
		Sprite: sprites.TablesItems[95],
	},
	AphidDew: {
		Flags:  FlagIngredient | FlagLiquid | FlagSavory,
		Value:  5,
		Sprite: sprites.TablesItems[47],
	},
	HardSeed: {
		Flags:  FlagIngredient | FlagRaw | FlagCrunchy | FlagHard,
		Value:  3,
		Sprite: sprites.TablesItems[22],
	},
	BagOfFlour: {
		Flags:  FlagIngredient | FlagRaw | FlagSavory,
		Value:  4,
		Sprite: sprites.TablesItems[67],
	},
	ClearWater: {
		Flags:  FlagIngredient | FlagLiquid | FlagCleanse | FlagCold,
		Value:  3,
		Sprite: sprites.TablesItems[11],
	},
	MagicIce: {
		Flags:  FlagIngredient | FlagHard | FlagRaw | FlagCrunchy | FlagIce | FlagCold,
		Value:  10,
		Sprite: sprites.TablesItems[41],
	},
	DangerSpud: {
		Flags:  FlagIngredient | FlagPoison | FlagSavory,
		Value:  3,
		Sprite: sprites.TablesItems[63],
	},
	Squash: {
		Flags:  FlagIngredient | FlagRaw | FlagSavory,
		Value:  9,
		Sprite: sprites.TablesItems[58],
	},
	SpicyBerry: {
		Flags:  FlagIngredient | FlagSpicy,
		Value:  12,
		Sprite: sprites.TablesItems[2],
	},
	BurlyBerry: {
		Flags:  FlagIngredient | FlagBitter,
		Value:  12,
		Sprite: sprites.TablesItems[3],
	},
	ShockBerry: {
		Flags:  FlagIngredient | FlagNumb,
		Value:  11,
		Sprite: sprites.TablesItems[42],
	},
	SucculentBerry: {
		Flags:  FlagIngredient | FlagSweet,
		Value:  10,
		Sprite: sprites.TablesItems[89],
	},
	HustleBerry: {
		Flags:  FlagIngredient | FlagBitter | FlagCaffeine,
		Value:  18,
		Sprite: sprites.TablesItems[26],
	},
	TangyBerry: {
		Flags:  FlagIngredient | FlagSavory | FlagTangy,
		Value:  40,
		Sprite: sprites.TablesItems[76],
	},
	DarkCherries: {
		Flags:  FlagIngredient | FlagSweet | FlagRaw,
		Value:  50,
		Sprite: sprites.TablesItems[54],
	},
	MagicSeed: {
		Flags:  FlagIngredient | FlagRaw,
		Value:  18,
		Sprite: sprites.TablesItems[10],
	},
	NumbnailDart: {
		Flags:  FlagIngredient | FlagGarbage | FlagSleep,
		Value:  8,
		Sprite: sprites.TablesItems[39],
	},
	PoisonDart: {
		Flags:  FlagIngredient | FlagGarbage | FlagPoison,
		Value:  8,
		Sprite: sprites.TablesItems[87],
	},
	MysteryBerry: {
		Flags:  FlagIngredient | FlagGarbage | FlagRaw,
		Value:  23,
		Sprite: sprites.TablesItems[100],
	},
	LeafSalad: {
		Flags:  FlagCrunchy | FlagSavory,
		Value:  6,
		Sprite: sprites.TablesItems[15],
	},
	GlazedHoney: {
		Flags:  FlagSticky | FlagSweet,
		Value:  8,
		Sprite: sprites.TablesItems[19],
	},
	Abomihoney: {
		Flags:  FlagGarbage | FlagSticky | FlagSweet,
		Value:  8,
		Sprite: sprites.TablesItems[34],
	},
	CookedShroom: {
		Flags:  FlagSavory,
		Value:  5,
		Sprite: sprites.TablesItems[13],
	},
	CookedDanger: {
		Flags:  FlagSavory | FlagPoison,
		Value:  7,
		Sprite: sprites.TablesItems[27],
	},
	SweetShroom: {
		Flags:  FlagSweet | FlagSticky,
		Value:  10,
		Sprite: sprites.TablesItems[20],
	},
	SweetDanger: {
		Flags:  FlagSweet | FlagPoison | FlagSticky,
		Value:  11,
		Sprite: sprites.TablesItems[21],
	},
	FriedEgg: {
		Flags:  FlagSavory,
		Value:  7,
		Sprite: sprites.TablesItems[17],
	},
	LeafOmelet: {
		Flags:  FlagSavory | FlagCrunchy,
		Value:  9,
		Sprite: sprites.TablesItems[24],
	},
	HoneydLeaf: {
		Flags:  FlagSweet | FlagSticky | FlagCrunchy,
		Value:  9,
		Sprite: sprites.TablesItems[9],
	},
	RoastedBerries: {
		Flags:  FlagSavory,
		Value:  9,
		Sprite: sprites.TablesItems[33],
	},
	SucculentPlatter: {
		Flags:  FlagSavory,
		Value:  16,
		Sprite: sprites.TablesItems[90],
	},
	SucculentCookies: {
		Flags:  FlagSweet | FlagSavory,
		Value:  17,
		Sprite: sprites.TablesItems[91],
	},
	BerryJuice: {
		Flags:  FlagLiquid | FlagSweet | FlagCold,
		Value:  10,
		Sprite: sprites.TablesItems[38],
	},
	MushroomSkewer: {
		Flags:  FlagSavory,
		Value:  12,
		Sprite: sprites.TablesItems[32],
	},
	HeartyBreakfast: {
		Flags:  FlagSavory,
		Value:  12,
		Sprite: sprites.TablesItems[18],
	},
	MushroomSalad: {
		Flags:  FlagSavory | FlagCrunchy,
		Value:  9,
		Sprite: sprites.TablesItems[14],
	},
	SweetDew: {
		Flags:  FlagSweet | FlagSticky | FlagLiquid | FlagCold,
		Value:  20,
		Sprite: sprites.TablesItems[49],
	},
	BakedYam: {
		Flags:  FlagSavory,
		Value:  9,
		Sprite: sprites.TablesItems[64],
	},
	SpicyFries: {
		Flags:  FlagSpicy,
		Value:  25,
		Sprite: sprites.TablesItems[65],
	},
	BurlyChips: {
		Flags:  FlagBitter,
		Value:  25,
		Sprite: sprites.TablesItems[66],
	},
	DangerDish: {
		Flags:  FlagPoison,
		Value:  15,
		Sprite: sprites.TablesItems[40],
	},
	ShavedIce: {
		Flags:  FlagCrunchy | FlagCold | FlagIce,
		Value:  10,
		Sprite: sprites.TablesItems[46],
	},
	ColdSalad: {
		Flags:  FlagCrunchy | FlagCold | FlagIce,
		Value:  17,
		Sprite: sprites.TablesItems[52],
	},
	IceCream: {
		Flags:  FlagCold | FlagIce,
		Value:  15,
		Sprite: sprites.TablesItems[50],
	},
	HoneyIceCream: {
		Flags:  FlagSweet | FlagCold | FlagIce,
		Value:  18,
		Sprite: sprites.TablesItems[48],
	},
	DryBread: {
		Flags:  FlagSavory,
		Value:  7,
		Sprite: sprites.TablesItems[71],
	},
	NuttyCake: {
		Flags:  FlagSweet | FlagSavory,
		Value:  10,
		Sprite: sprites.TablesItems[72],
	},
	PoisonCake: {
		Flags:  FlagSweet | FlagPoison,
		Value:  12,
		Sprite: sprites.TablesItems[73],
	},
	FrostPie: {
		Flags:  FlagSweet | FlagCold | FlagIce,
		Value:  18,
		Sprite: sprites.TablesItems[81],
	},
	YamBread: {
		Flags:  FlagSavory,
		Value:  15,
		Sprite: sprites.TablesItems[68],
	},
	ShockCandy: {
		Flags:  FlagNumb | FlagSweet,
		Value:  20,
		Sprite: sprites.TablesItems[74],
	},
	MushroomGummies: {
		Flags:  FlagSweet,
		Value:  9,
		Sprite: sprites.TablesItems[94],
	},
	SweetPudding: {
		Flags:  FlagSweet | FlagSticky,
		Value:  15,
		Sprite: sprites.TablesItems[92],
	},
	LeafCroissant: {
		Flags:  FlagSavory | FlagCrunchy,
		Value:  9,
		Sprite: sprites.TablesItems[37],
	},
	HoneyPancakes: {
		Flags:  FlagSticky | FlagSweet,
		Value:  16,
		Sprite: sprites.TablesItems[88],
	},
	DrowsyCake: {
		Flags:  FlagSleep | FlagSweet,
		Value:  10,
		Sprite: sprites.TablesItems[36],
	},
	HustleCandy: {
		Flags:  FlagBitter | FlagSweet | FlagCaffeine,
		Value:  17,
		Sprite: sprites.TablesItems[28],
	},
	SpicyCandy: {
		Flags:  FlagSpicy | FlagSweet,
		Value:  25,
		Sprite: sprites.TablesItems[69],
	},
	BurlyCandy: {
		Flags:  FlagBitter | FlagSweet,
		Value:  25,
		Sprite: sprites.TablesItems[70],
	},
	BerryJam: {
		Flags:  FlagSavory,
		Value:  25,
		Sprite: sprites.TablesItems[62],
	},
	HotDrink: {
		Flags:  FlagBitter | FlagCaffeine | FlagLiquid,
		Value:  15,
		Sprite: sprites.TablesItems[102],
	},
	PlainTea: {
		Flags:  FlagLiquid | FlagSavory,
		Value:  10,
		Sprite: sprites.TablesItems[75],
	},
	SpicyTea: {
		Flags:  FlagLiquid | FlagSpicy,
		Value:  26,
		Sprite: sprites.TablesItems[79],
	},
	BurlyTea: {
		Flags:  FlagLiquid | FlagBitter,
		Value:  26,
		Sprite: sprites.TablesItems[80],
	},
	AphidShake: {
		Flags:  FlagSavory | FlagLiquid,
		Value:  15,
		Sprite: sprites.TablesItems[99],
	},
	SquashPuree: {
		Flags:  FlagSavory | FlagSticky,
		Value:  7,
		Sprite: sprites.TablesItems[97],
	},
	SquashCandy: {
		Flags:  FlagSavory | FlagSweet,
		Value:  17,
		Sprite: sprites.TablesItems[59],
	},
	SquashTart: {
		Flags:  FlagSpicy | FlagSavory,
		Value:  13,
		Sprite: sprites.TablesItems[103],
	},
	PlumplingPie: {
		Flags:  FlagSweet | FlagSavory | FlagBitter,
		Value:  25,
		Sprite: sprites.TablesItems[104],
	},
	TangyJam: {
		Flags:  FlagSavory | FlagSticky | FlagTangy | FlagCold,
		Value:  40,
		Sprite: sprites.TablesItems[77],
	},
	TangyJuice: {
		Flags:  FlagSavory | FlagLiquid | FlagTangy | FlagCold,
		Value:  35,
		Sprite: sprites.TablesItems[78],
	},
	TangyPie: {
		Flags:  FlagSavory | FlagSweet | FlagTangy,
		Value:  26,
		Sprite: sprites.TablesItems[84],
	},
	SpicyBomb: {
		Flags:  FlagSpicy | FlagExplodes,
		Value:  20,
		Sprite: sprites.TablesItems[29],
	},
	BurlyBomb: {
		Flags:  FlagBitter | FlagExplodes,
		Value:  21,
		Sprite: sprites.TablesItems[60],
	},
	PoisonBomb: {
		Flags:  FlagPoison | FlagExplodes,
		Value:  28,
		Sprite: sprites.TablesItems[30],
	},
	SleepBomb: {
		Flags:  FlagSleep | FlagExplodes,
		Value:  30,
		Sprite: sprites.TablesItems[45],
	},
	NumbBomb: {
		Flags:  FlagNumb | FlagExplodes,
		Value:  30,
		Sprite: sprites.TablesItems[44],
	},
	FrostBomb: {
		Flags:  FlagIce | FlagCold | FlagExplodes,
		Value:  30,
		Sprite: sprites.TablesItems[43],
	},
	ClearBomb: {
		Flags:  FlagCleanse | FlagCold | FlagExplodes,
		Value:  20,
		Sprite: sprites.TablesItems[35],
	},
	Abombination: {
		Flags:  FlagSweet | FlagSticky | FlagExplodes,
		Value:  26,
		Sprite: sprites.TablesItems[61],
	},
	CherryBombs: {
		Flags:  FlagHard | FlagExplodes,
		Value:  75,
		Sprite: sprites.TablesItems[96],
	},
	CherryPie: {
		Flags:  FlagSavory | FlagSweet,
		Value:  65,
		Sprite: sprites.TablesItems[55],
	},
	BerrySmoothie: {
		Flags:  FlagLiquid | FlagSweet | FlagCold,
		Value:  35,
		Sprite: sprites.TablesItems[57],
	},
	MiracleShake: {
		Flags:  FlagCleanse | FlagLiquid | FlagSweet | FlagCold | FlagTangy,
		Value:  70,
		Sprite: sprites.TablesItems[56],
	},
	TangyCarpaccio: {
		Flags:        FlagSavory | FlagTangy,
		RequiredChef: ChefKut,
		Value:        26,
		Sprite:       sprites.TablesItems[86],
	},
	CrisbeeDonut: {
		Flags:        FlagSweet | FlagSticky,
		RequiredChef: ChefCrisbee,
		Value:        26,
		Sprite:       sprites.TablesItems[85],
	},
	QueensDinner: {
		Flags:        FlagSavory | FlagSweet | FlagSticky | FlagTangy,
		RequiredChef: ChefFry,
		Value:        40,
		Sprite:       sprites.TablesItems[31],
	},
	MegaRush: {
		Flags:  FlagLiquid | FlagSweet | FlagBitter | FlagCaffeine | FlagCold,
		Value:  15,
		Sprite: sprites.TablesItems[93],
	},
	MiteBurger: {
		Flags:  FlagSavory,
		Value:  20,
		Sprite: sprites.TablesItems[98],
	},
	JaydesStew: {
		Flags:  FlagSavory | FlagLiquid,
		Value:  25,
		Sprite: sprites.TablesItems[53],
	},
	RandomMysteryBerry1: {
		Flags:  FlagGarbage,
		Sprite: sprites.TablesItems[100],
	},
	RandomMysteryBerry2: {
		Flags:  FlagGarbage,
		Sprite: sprites.TablesItems[100],
	},
}
View Source
var Locations = [...]LocationData{
	LocationBugariaCommercial: {
		Flags: FlagOutdoor | FlagNoLadybugs,
		Noise: 35,
		Rent:  10,
		NearMerchant: []MerchantID{
			MerchantMadameButterfly,
			MerchantCricketly,
		},
		Sprite:  sprites.TablesBugariaCommercial,
		FullLoc: [3]float32{-3, 0, 14.5},
		Scene:   &SceneBugariaCommercial,
	},
	LocationDefiantRoot: {
		Flags: FlagOutdoor,
		Noise: 15,
		Rent:  10,
		NearMerchant: []MerchantID{
			MerchantCricketly,
			MerchantSandy,
			MerchantCrisbee,
			MerchantNeil,
			MerchantXic,
		},
		Sprite:  sprites.TablesDefiantRoot,
		FullLoc: [3]float32{-4.75, 0, -6},
		Scene:   &SceneDefiantRootDining,
	},
	LocationUndergroundTavern: {
		Flags: 0,
		Noise: 25,
		Rent:  10,
		NearMerchant: []MerchantID{
			MerchantMadameButterfly,
			MerchantCricketly,
			MerchantCherryGuy,
		},
		Sprite:  sprites.TablesUndergroundTavern,
		FullLoc: [3]float32{-2, 0, 14.5},
		Scene:   &SceneUndergroundBar,
	},
	LocationBeeCafeteria: {
		Flags: FlagConveyorBelt | FlagBeeOnly,
		Noise: 40,
		Rent:  10,
		NearMerchant: []MerchantID{
			MerchantClaire,
		},
		Sprite:  sprites.TablesBeeCafeteria,
		FullLoc: [3]float32{-11.5, -37, -17},
	},
	LocationGoldenSettlementFine: {
		Flags: FlagOutdoor | FlagFancy,
		Noise: 5,
		Rent:  20,
		NearMerchant: []MerchantID{
			MerchantCricketly,
			MerchantGein,
			MerchantYumnum,
			MerchantJayde,
		},
		Sprite:  sprites.TablesGoldenSettlementFine,
		FullLoc: [3]float32{-13, 0, 11},
	},
	LocationWaspKingdomCart: {
		Flags: FlagCarryOut,
		Noise: 15,
		Rent:  5,
		NearMerchant: []MerchantID{
			MerchantJayde,
		},
		Sprite:  sprites.TablesWaspKingdomCart,
		FullLoc: [3]float32{-0.75, 0, -28},
	},
	LocationDineMite: {
		Flags: FlagCarryOut | FlagNoAnts,
		Noise: 200,
		Rent:  10,
		NearMerchant: []MerchantID{
			MerchantTyna,
		},
		Sprite:  sprites.TablesDineMite,
		FullLoc: [3]float32{6, 0, 27.5},
	},
	LocationMetalIsland: {
		Flags: FlagFancy | FlagConveyorBelt,
		Noise: 10,
		Rent:  25,
		NearMerchant: []MerchantID{
			MerchantSkirby,
		},
		Sprite:  sprites.TablesMetalIsland,
		FullLoc: [3]float32{29.5, 0, 25},
	},
	LocationApartment: {
		Flags: FlagNoAnts,
		Noise: 25,
		Rent:  5,
		NearMerchant: []MerchantID{
			MerchantTyna,
		},
		Sprite:  sprites.TablesApartment,
		FullLoc: [3]float32{6, 0, 27.5},
	},
	LocationColosseum: {
		Flags: FlagNoAnts,
		Noise: 50,
		Rent:  15,
		NearMerchant: []MerchantID{
			MerchantCricketly,
			MerchantTyna,
		},
		Sprite:  sprites.TablesColosseum,
		FullLoc: [3]float32{6, 0, 27.5},
	},
}
View Source
var Merchants = [...]MerchantData{
	MerchantMadameButterfly: {
		Pronouns: PronounSheHer,
		Items: []ItemCost{
			{
				Item: CrunchyLeaf,
				Cost: 3,
			},
			{
				Item: HoneyDrop,
				Cost: 4,
			},
			{
				Item: AphidEgg,
				Cost: 2,
			},
			{
				Item: Mushroom,
				Cost: 3,
			},
			{
				Item: DangerShroom,
				Cost: 3,
			},
		},
		Sprite: sprites.TablesMadameButterfly,
	},
	MerchantCricketly: {
		Pronouns: PronounSheHer,
		Items: []ItemCost{
			{
				Item: SpicyBerry,
				Cost: 12,
			},
			{
				Item: BurlyBerry,
				Cost: 12,
			},
			{
				Item: MagicSeed,
				Cost: 18,
			},
			{
				Item: SucculentBerry,
				Cost: 10,
			},
		},
		Sprite: sprites.TablesCricketly,
	},
	MerchantSandy: {
		Pronouns: PronounSheHer,
		Items: []ItemCost{
			{
				Item: DryBread,
				Cost: 7,
			},
			{
				Item: CrunchyLeaf,
				Cost: 3,
			},
			{
				Item: ClearWater,
				Cost: 3,
			},
			{
				Item: AgaricShroom,
				Cost: 7,
			},
			{
				Item: HustleBerry,
				Cost: 18,
			},
		},
		Sprite: sprites.TablesSandy,
	},
	MerchantClaire: {
		Pronouns: PronounSheHer,
		Items: []ItemCost{
			{
				Item: HoneydLeaf,
				Cost: 10,
			},
			{
				Item: LeafOmelet,
				Cost: 10,
			},
			{
				Item: GlazedHoney,
				Cost: 9,
			},
			{
				Item: HoneyIceCream,
				Cost: 20,
			},
			{
				Item: ShockBerry,
				Cost: 11,
			},
		},
		Sprite: sprites.TablesClaire,
	},
	MerchantCrisbee: {
		Pronouns: PronounHeHim,
		Items: []ItemCost{
			{
				Item: HoneyDrop,
				Cost: 4,
			},
			{
				Item: BagOfFlour,
				Cost: 4,
			},
			{
				Item: NuttyCake,
				Cost: 10,
			},
		},
		Sprite: sprites.TablesCrisbee,
	},
	MerchantNeil: {
		Pronouns: PronounHeHim,
		Items: []ItemCost{
			{
				Item: MagicIce,
				Cost: 10,
			},
		},
		Sprite: sprites.TablesNeil,
	},
	MerchantXic: {
		Pronouns: PronounHeHim,
		Items: []ItemCost{
			{
				Item: DangerSpud,
				Cost: 3,
			},
			{
				Item: DangerShroom,
				Cost: 3,
			},
			{
				Item: PoisonBomb,
				Cost: 28,
			},
			{
				Item: PoisonDart,
				Cost: 8,
			},
		},
		Sprite: sprites.TablesXic,
	},
	MerchantGein: {
		Pronouns: PronounHeHim,
		Items: []ItemCost{
			{
				Item: ClearWater,
				Cost: 3,
			},
			{
				Item: HardSeed,
				Cost: 4,
			},
			{
				Item: HoneyDrop,
				Cost: 4,
			},
			{
				Item: AphidDew,
				Cost: 9,
			},
			{
				Item: AphidEgg,
				Cost: 3,
			},
		},
		Sprite: sprites.TablesGein,
	},
	MerchantYumnum: {
		Pronouns: PronounHeHim,
		Items: []ItemCost{
			{
				Item: NumbnailDart,
				Cost: 8,
			},
			{
				Item: SleepBomb,
				Cost: 30,
			},
			{
				Item: DrowsyCake,
				Cost: 10,
			},
		},
		Sprite: sprites.TablesYumnum,
	},
	MerchantSkirby: {
		Pronouns: PronounHeHim,
		Items: []ItemCost{
			{
				Item: TangyBerry,
				Cost: 40,
			},
		},
		Sprite: sprites.TablesSkirby,
	},
	MerchantCherryGuy: {
		Pronouns: PronounHeHim,
		Items: []ItemCost{
			{
				Item: DarkCherries,
				Cost: 50,
			},
		},
		Sprite: sprites.TablesCherryGuy,
	},
	MerchantJayde: {
		Pronouns: PronounSheHer,
		Items: []ItemCost{
			{
				Item: JaydesStew,
				Cost: 25,
			},
			{
				Item: MagicSeed,
				Cost: 18,
			},
			{
				Item: MushroomSalad,
				Cost: 7,
			},
		},
		Sprite: sprites.TablesJayde,
	},
	MerchantTyna: {
		Pronouns: PronounSheHer,
		Items: []ItemCost{
			{
				Item: Squash,
				Cost: 9,
			},
			{
				Item: MegaRush,
				Cost: 15,
			},
			{
				Item: AphidShake,
				Cost: 15,
			},
			{
				Item: SpicyFries,
				Cost: 12,
			},
			{
				Item: MiteBurger,
				Cost: 15,
			},
		},
		Sprite: sprites.TablesTyna,
	},
	MerchantRina: {
		Pronouns: PronounSheHer,
		Items: []ItemCost{
			{
				Item: MagicSeed,
				Cost: 17,
			},
			{
				Item: MysteryBerry,
				Cost: 23,
			},
		},
		Sprite: sprites.TablesRina,
	},
}
View Source
var Patrons = [...]PatronData{}
View Source
var Unlocks = [...]UnlockData{
	{
		Chefs:     []ChefID{ChefFry},
		Merchants: []MerchantID{MerchantMadameButterfly},
		Locations: []LocationID{LocationBugariaCommercial},

		ForceRecipe: [][2]ItemID{
			{ItemNone, CrunchyLeaf},
			{ItemNone, HoneyDrop},
			{ItemNone, Mushroom},
			{ItemNone, AphidEgg},
			{CrunchyLeaf, AphidEgg},
			{AphidEgg, Mushroom},
			{Mushroom, DangerShroom},
			{HoneyDrop, Mushroom},
		},
		MenuItems: 4,
	},
	{
		Foraging:  []ForagingID{ForagingBugariaOutskirts},
		Explorers: []ExplorerID{ExplorerAnt},
	},
	{
		Chefs:     []ChefID{ChefDoppel},
		Merchants: []MerchantID{MerchantCricketly},
	},
	{
		Locations: []LocationID{LocationUndergroundTavern},
		Foraging:  []ForagingID{ForagingSnakemouthDen},
	},
	{
		Merchants: []MerchantID{MerchantSandy, MerchantNeil, MerchantXic},
		Locations: []LocationID{LocationDefiantRoot},
	},
	{
		Merchants: []MerchantID{MerchantClaire},
		Explorers: []ExplorerID{ExplorerCelia},

		MenuItems: 2,
	},
	{
		Locations: []LocationID{LocationBeeCafeteria},
		Foraging:  []ForagingID{ForagingHoneyFactory},
	},
	{
		Chefs:     []ChefID{ChefCrisbee},
		Merchants: []MerchantID{MerchantCrisbee},

		ForceRecipe: [][2]ItemID{
			{BagOfFlour, GlazedHoney},
		},
	},
	{
		Explorers: []ExplorerID{ExplorerMothiva},
		Merchants: []MerchantID{MerchantGein, MerchantYumnum},
	},
	{
		Chefs:     []ChefID{ChefKut},
		Locations: []LocationID{LocationGoldenSettlementFine},
		Foraging:  []ForagingID{ForagingGoldenHills},

		ForceRecipe: [][2]ItemID{
			{ItemNone, TangyBerry},
			{TangyCarpaccio, CrisbeeDonut},
		},
	},
	{
		Merchants: []MerchantID{MerchantSkirby, MerchantCherryGuy},

		MenuItems: 3,
	},
	{
		Explorers: []ExplorerID{ExplorerSlacker},
	},
	{
		Foraging: []ForagingID{ForagingLostSands},
	},
	{
		Chefs:     []ChefID{ChefJayde},
		Merchants: []MerchantID{MerchantJayde},
		Locations: []LocationID{LocationWaspKingdomCart},
	},
	{
		Merchants: []MerchantID{MerchantTyna},
		Locations: []LocationID{LocationDineMite},
	},
	{
		Explorers: []ExplorerID{ExplorerMaki},
		Foraging:  []ForagingID{ForagingForsakenLands},

		MenuItems: 4,
	},
	{
		Chefs:     []ChefID{ChefMasterSlice},
		Locations: []LocationID{LocationMetalIsland},
	},
	{
		Merchants: []MerchantID{MerchantRina},
	},
	{
		Explorers: []ExplorerID{ExplorerSnakemouth},
	},
	{},
	{

		MenuItems: 5,
	},
	{},
	{},
	{},
	{},
	{

		MenuItems: 7,
	},
	{},
	{
		Chefs:     []ChefID{ChefMicrowave},
		Locations: []LocationID{LocationApartment, LocationColosseum},
	},
}

Functions

This section is empty.

Types

type ChefData

type ChefData struct {
	Flags           ChefFlags
	Pronouns        Pronoun
	IsMerchant      MerchantID
	PassiveItem     ItemID
	PassiveCost     uint8
	PassiveInterval uint8
	Sprite          *sprites.Sprite
	HighQuality     func(*State, ItemID) bool
	Discount        func(MerchantID, ItemID) int
}

type ChefFlags

type ChefFlags uint32
const (
	FlagMicrowave ChefFlags = 1 << iota // can only cook one item at a time, double cooking speed, auto eject cooked food, randomly changes Mistake/Big Mistake/Abomihoney into Mite Burger
)

type ChefID

type ChefID uint8
const (
	ChefNone        ChefID = iota // (none)
	ChefFry                       // Fry
	ChefDoppel                    // Doppel
	ChefCrisbee                   // Crisbee
	ChefKut                       // Kut
	ChefJayde                     // Jayde
	ChefMasterSlice               // Master Slice
	ChefMicrowave                 // Microwave
)

func (ChefID) Model

func (c ChefID) Model() string

func (ChefID) String

func (i ChefID) String() string

type CookData

type CookData struct {
	Sequence [][]input.Button
	Check    []input.Button
}

type CookType

type CookType uint8
const (
	CookNone CookType = iota
	CookRandom
	CookStir
	CookChop
	CookTimed
	CookWiggle
)

func (CookType) String

func (i CookType) String() string

type CookingMinigame

type CookingMinigame struct {
	Flags    CookingMinigameFlags
	Type     CookType
	Seed     uint8
	Progress uint8
	Dazed    uint8
	Safety   uint8
	Time     uint16
	MaxTime  uint16
}

func NewCookingMinigame

func NewCookingMinigame(r *rng.RNG, ty CookType) *CookingMinigame

func (*CookingMinigame) Render

func (c *CookingMinigame) Render(batch *sprites.Batch)

func (*CookingMinigame) Update

func (c *CookingMinigame) Update(ictx *input.Context)

type CookingMinigameFlags

type CookingMinigameFlags uint8
const (
	MinigameActive CookingMinigameFlags = 1 << iota
	MinigameDone
)

type CookingMinigameSequence

type CookingMinigameSequence []*CookingMinigame

func NewCookingMinigameSequence

func NewCookingMinigameSequence(r *rng.RNG, ty ...CookType) CookingMinigameSequence

func (CookingMinigameSequence) Render

func (s CookingMinigameSequence) Render(batch *sprites.Batch)

func (CookingMinigameSequence) Update

func (s CookingMinigameSequence) Update(ictx *input.Context)

type ExplorerData

type ExplorerData struct {
	Sprite           *sprites.Sprite
	Members          []string
	Cost             uint64
	NotAllowed       ForagingID
	ForagingModifier [7]int8
}

type ExplorerID

type ExplorerID uint8
const (
	ExplorerNone       ExplorerID = iota // (none)
	ExplorerAnt                          // Team Ant
	ExplorerCelia                        // Team Celia
	ExplorerMothiva                      // Team Mothiva
	ExplorerSlacker                      // Team Slacker
	ExplorerMaki                         // Team Maki
	ExplorerSnakemouth                   // Team Snakemouth
)

func (ExplorerID) String

func (i ExplorerID) String() string

type ForagingData

type ForagingData struct {
	Description string
	Sprite      *sprites.Sprite
	Common      []ItemID
	Uncommon    []ItemID
	Rare        []ItemID
	SuperRare   []ItemID
}

type ForagingID

type ForagingID uint8
const (
	ForagingNone             ForagingID = iota // (none)
	ForagingBugariaOutskirts                   // Bugaria Outskirts
	ForagingSnakemouthDen                      // Snakemouth Den
	ForagingHoneyFactory                       // Honey Factory
	ForagingLostSands                          // Lost Sands
	ForagingGoldenHills                        // Golden Hills
	ForagingForsakenLands                      // Forsaken Lands
)

func (ForagingID) String

func (i ForagingID) String() string

type FurnitureID

type FurnitureID uint8
const (
	FurnitureNone  FurnitureID = iota // (none)
	FurnitureStool                    // Stool
	FurnitureTable                    // Table
)

type GameData

type GameData struct {
	Start       time.Time                 `json:"s"`
	Berries     big.Int                   `json:"b"`
	Day         uint64                    `json:"d"`
	DayProgress uint32                    `json:"t"`
	Location    LocationID                `json:"a"`
	Chef        ChefID                    `json:"c"`
	Inventory   map[ItemID]uint64         `json:"i"`
	Foraging    map[ForagingID]ExplorerID `json:"f"`
	Menu        []ItemCost                `json:"m"`
	Kitchen     KitchenState              `json:"k"`
	Restaurant  RestaurantState           `json:"r"`
	Layout      Layout                    `json:"l"`
	Objective   Objective                 `json:"o"`
	Served      uint64                    `json:"p"`
	Wrong       uint64                    `json:"w"`
}

func NewGameData

func NewGameData() *GameData

type HistoryData

type HistoryData struct {
	Start     time.Time         `json:"s"`
	Berries   big.Int           `json:"b"`
	Location  LocationID        `json:"a"`
	Chef      ChefID            `json:"c"`
	Inventory map[ItemID]uint64 `json:"i"`
	Menu      []ItemCost        `json:"m"`
	Layout    Layout            `json:"l"`
	Objective Objective         `json:"o"`
	Served    uint64            `json:"p"`
}

type ItemCost

type ItemCost struct {
	Item ItemID `json:"i"`
	Cost uint8  `json:"c"`
}

type ItemData

type ItemData struct {
	Flags        ItemFlags
	Value        uint8
	RequiredChef ChefID
	Sprite       *sprites.Sprite
}

type ItemFlags

type ItemFlags uint32
const (
	FlagGarbage    ItemFlags = 1 << iota // patrons will not order. -2 quality.
	FlagCold                             // complaint for leaving it out will be "warm" rather than "cold". sells better at warm locations.
	FlagHard                             // can injure patrons, causing -2 overall quality.
	FlagIce                              // chance of freezing patrons, causing slower eating and -1 quality.
	FlagPoison                           // if not ordered, -2 quality. only brave patrons will order.
	FlagSleep                            // chance of making patrons fall asleep. +1 quality, but slower eating.
	FlagNumb                             // chance of numbing patrons. moves overall visit quality towards zero by 1 point.
	FlagExplodes                         // patrons will not order. if eaten, causes an AOE effect.
	FlagRaw                              // patrons will not order. -1 quality.
	FlagIngredient                       // -1 quality if price is greater than or equal to value.
	FlagSticky                           // makes a mess.
	FlagCrunchy                          // flavor. preferred by ants.
	FlagSavory                           // flavor.
	FlagSweet                            // flavor. preferred by bees and children.
	FlagSpicy                            // flavor. brave patrons will order.
	FlagBitter                           // flavor. children do not order. +1 quality if ordered, -1 quality if not ordered.
	FlagCaffeine                         // faster eating. preferred by termites.
	FlagLiquid                           // patrons can drink this item.
	FlagCleanse                          // +2 to overall quality if overall quality is negative.
	FlagTangy                            // contains tangy berries.
)

type ItemID

type ItemID uint8
const (
	ItemNone            ItemID = iota // (none)
	Mistake                           // Mistake
	BigMistake                        // Big Mistake
	CrunchyLeaf                       // Crunchy Leaf
	HoneyDrop                         // Honey Drop
	AphidEgg                          // Aphid Egg
	Mushroom                          // Mushroom
	DangerShroom                      // Danger Shroom
	AgaricShroom                      // Agaric Shroom
	AphidDew                          // Aphid Dew
	HardSeed                          // Hard Seed
	BagOfFlour                        // Bag of Flour
	ClearWater                        // Clear Water
	MagicIce                          // Magic Ice
	DangerSpud                        // Danger Spud
	Squash                            // Squash
	SpicyBerry                        // Spicy Berry
	BurlyBerry                        // Burly Berry
	ShockBerry                        // Shock Berry
	SucculentBerry                    // Succulent Berry
	HustleBerry                       // Hustle Berry
	TangyBerry                        // Tangy Berry
	DarkCherries                      // Dark Cherries
	MagicSeed                         // Magic Seed
	NumbnailDart                      // Numbnail Dart
	PoisonDart                        // Poison Dart
	MysteryBerry                      // Mystery Berry
	LeafSalad                         // Leaf Salad
	GlazedHoney                       // Glazed Honey
	Abomihoney                        // Abomihoney
	CookedShroom                      // Cooked Shroom
	CookedDanger                      // Cooked Danger
	SweetShroom                       // Sweet Shroom
	SweetDanger                       // Sweet Danger
	FriedEgg                          // Fried Egg
	LeafOmelet                        // Leaf Omelet
	HoneydLeaf                        // Honey'd Leaf
	RoastedBerries                    // Roasted Berries
	SucculentPlatter                  // Succulent Platter
	SucculentCookies                  // Succulent Cookies
	BerryJuice                        // Berry Juice
	MushroomSkewer                    // Mushroom Skewer
	HeartyBreakfast                   // Hearty Breakfast
	MushroomSalad                     // Mushroom Salad
	SweetDew                          // Sweet Dew
	BakedYam                          // Baked Yam
	SpicyFries                        // Spicy Fries
	BurlyChips                        // Burly Chips
	DangerDish                        // Danger Dish
	ShavedIce                         // Shaved Ice
	ColdSalad                         // Cold Salad
	IceCream                          // Ice Cream
	HoneyIceCream                     // Honey Ice Cream
	DryBread                          // Dry Bread
	NuttyCake                         // Nutty Cake
	PoisonCake                        // Poison Cake
	FrostPie                          // Frost Pie
	YamBread                          // Yam Bread
	ShockCandy                        // Shock Candy
	MushroomGummies                   // Mushroom Gummies
	SweetPudding                      // Sweet Pudding
	LeafCroissant                     // Leaf Croissant
	HoneyPancakes                     // Honey Pancakes
	DrowsyCake                        // Drowsy Cake
	HustleCandy                       // Hustle Candy
	SpicyCandy                        // Spicy Candy
	BurlyCandy                        // Burly Candy
	BerryJam                          // Berry Jam
	HotDrink                          // Hot Drink
	PlainTea                          // Plain Tea
	SpicyTea                          // Spicy Tea
	BurlyTea                          // Burly Tea
	AphidShake                        // Aphid Shake
	SquashPuree                       // Squash Puree
	SquashCandy                       // Squash Candy
	SquashTart                        // Squash Tart
	PlumplingPie                      // Plumpling Pie
	TangyJam                          // Tangy Jam
	TangyJuice                        // Tangy Juice
	TangyPie                          // Tangy Pie
	SpicyBomb                         // Spicy Bomb
	BurlyBomb                         // Burly Bomb
	PoisonBomb                        // Poison Bomb
	SleepBomb                         // Sleep Bomb
	NumbBomb                          // Numb Bomb
	FrostBomb                         // Frost Bomb
	ClearBomb                         // Clear Bomb
	Abombination                      // Abombination
	CherryBombs                       // Cherry Bombs
	CherryPie                         // Cherry Pie
	BerrySmoothie                     // Berry Smoothie
	MiracleShake                      // Miracle Shake
	TangyCarpaccio                    // Tangy Carpaccio
	CrisbeeDonut                      // Crisbee Donut
	QueensDinner                      // Queen's Dinner
	MegaRush                          // Mega-Rush™
	MiteBurger                        // Mite Burger
	JaydesStew                        // Jayde's Stew
	RandomMysteryBerry1               // MB1 (should not be displayed)
	RandomMysteryBerry2               // MB2 (should not be displayed)
)

func (ItemID) String

func (i ItemID) String() string

type KitchenState

type KitchenState struct {
}

type Layout

type Layout struct {
	Furniture  []FurnitureID `json:"f"`
	VPartition []PartitionID `json:"v"`
	HPartition []PartitionID `json:"h"`
}

type LocationData

type LocationData struct {
	Flags        LocationFlags
	Noise        uint8
	Rent         uint8
	NearMerchant []MerchantID
	Sprite       *sprites.Sprite
	FullLoc      [3]float32
	Scene        *tables3d.Scene
}

type LocationFlags

type LocationFlags uint32
const (
	FlagOutdoor LocationFlags = 1 << iota
	FlagFancy
	FlagConveyorBelt
	FlagCarryOut
	FlagBeeOnly
	FlagNoAnts
	FlagNoLadybugs
)

type LocationID

type LocationID uint8
const (
	LocationNone                 LocationID = iota // (none)
	LocationBugariaCommercial                      // Bugaria Commercial District
	LocationDefiantRoot                            // Defiant Root
	LocationUndergroundTavern                      // Underground Tavern
	LocationBeeCafeteria                           // Bee Kingdom Cafeteria
	LocationGoldenSettlementFine                   // Golden Settlement Fine Dining
	LocationWaspKingdomCart                        // Wasp Kingdom Food Cart
	LocationDineMite                               // DineMite™
	LocationMetalIsland                            // Metal Island Machine Cafe
	LocationApartment                              // Apartment 301-B
	LocationColosseum                              // Termite Colosseum Food Court
)

func (LocationID) String

func (i LocationID) String() string

type MerchantData

type MerchantData struct {
	Pronouns Pronoun
	Sprite   *sprites.Sprite
	Items    []ItemCost
}

type MerchantID

type MerchantID uint8
const (
	MerchantNone            MerchantID = iota // (none)
	MerchantMadameButterfly                   // Madame Butterfly
	MerchantCricketly                         // Cricketly
	MerchantSandy                             // Sandy
	MerchantClaire                            // Claire
	MerchantCrisbee                           // Crisbee
	MerchantNeil                              // Neil
	MerchantXic                               // Xic
	MerchantGein                              // Gein
	MerchantYumnum                            // Yumnum
	MerchantSkirby                            // Skirby
	MerchantCherryGuy                         // Shady Contact
	MerchantJayde                             // Jayde
	MerchantTyna                              // Tyna
	MerchantRina                              // Rina
)

func (MerchantID) String

func (i MerchantID) String() string

type Objective

type Objective struct {
	Target    ObjectiveTargetType `json:"t"`
	Limit     ObjectiveLimitType  `json:"l"`
	TargetNum uint64              `json:"x"`
	LimitNum  uint64              `json:"y"`
	Days      uint64              `json:"d"`
}

func (*Objective) String

func (o *Objective) String() string

type ObjectiveLimitType

type ObjectiveLimitType uint8
const (
	ObjectiveLimitMissing ObjectiveLimitType = iota
	ObjectiveNoLimit
	ObjectiveMenuSize
	ObjectiveMissedPatrons
	ObjectiveWrongOrders
)

type ObjectiveTargetType

type ObjectiveTargetType uint8
const (
	ObjectiveTargetMissing ObjectiveTargetType = iota
	ObjectivePatrons
	ObjectiveBerries
	ObjectiveRating
	ObjectiveMeals
)

type PageID

type PageID uint8
const (
	PageNone PageID = iota
	PageAttract
	PageSaves
	PageSetupChefLoc
	PageSetupMenu
	PagePreDay
	PageForaging
	PageMerchants
	PageStaff
	PageLayout
)

type PartitionID

type PartitionID uint8
const (
	PartitionNone    PartitionID = iota // (none)
	PartitionGeneric                    // Partition
)

type PatronData

type PatronData struct {
	Flags PatronFlags
}

type PatronFlags

type PatronFlags uint32
const (
	FlagUnique PatronFlags = 1 << iota
)

type PatronID

type PatronID uint8
const (
	PatronNone PatronID = iota // (none)
)

func (PatronID) String

func (i PatronID) String() string

type PersistentData

type PersistentData struct {
	RankPoints   uint64                `json:"p"`
	KnownRecipes [][2]ItemID           `json:"r"`
	History      []HistoryData         `json:"h"`
	LastLayout   map[LocationID]Layout `json:"l"`
}

func (*PersistentData) EnsureRankRecipes

func (p *PersistentData) EnsureRankRecipes()

func (*PersistentData) Rank

func (p *PersistentData) Rank() uint64

type Pronoun

type Pronoun uint8
const (
	PronounHeHim Pronoun = iota
	PronounSheHer
	PronounItIts
)

type RecipeData

type RecipeData struct {
	Result  ItemID
	Method1 CookType
}

func ComputeRecipe

func ComputeRecipe(item1, item2 ItemID) RecipeData

type RestaurantState

type RestaurantState struct {
}

type State

type State struct {
	Page PageID `json:"s"`

	Persistent *PersistentData `json:"p"`
	Data       *GameData       `json:"d"`
	// contains filtered or unexported fields
}

func New

func New(ctx context.Context) (*State, error)

func (*State) MakeScreenReaderUI

func (s *State) MakeScreenReaderUI() *screenreader.UI

func (*State) Render

func (s *State) Render(ctx context.Context) error

func (*State) Resize

func (s *State) Resize(ctx context.Context) error

func (*State) Save

func (s *State) Save()

func (*State) Update

func (s *State) Update(ctx context.Context, frameAdvance bool) (*router.PageInfo, error)

type UnlockData

type UnlockData struct {
	Chefs       []ChefID
	Merchants   []MerchantID
	Locations   []LocationID
	Foraging    []ForagingID
	Explorers   []ExplorerID
	Patrons     []PatronID
	ForceRecipe [][2]ItemID
	MenuItems   uint8
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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