Files
LilGuy/internal/maps/plains.go
2025-12-16 00:44:52 -07:00

79 lines
2.0 KiB
Go

package maps
import (
"image/color"
"github.com/atridad/LilGuy/internal/config"
"github.com/atridad/LilGuy/internal/portal"
"github.com/atridad/LilGuy/internal/world"
)
func CreatePlains(screenWidth, screenHeight float64) *Map {
m := NewMap("plains", 1, "Plains", screenWidth, screenHeight)
m.BackgroundColor = color.NRGBA{R: 135, G: 206, B: 235, A: 255}
m.TimeOfDay = Daytime
// ground surface
groundColor := color.NRGBA{R: 34, G: 139, B: 34, A: 255}
m.World.AddSurface(&world.Surface{
X: 0,
Y: screenHeight - config.GroundHeight,
Width: screenWidth,
Height: config.GroundHeight,
Tag: world.TagGround,
Color: groundColor,
})
// Platforms
// Use ground color by default as requested
platformColor := groundColor
// Platform 1: Low left
m.World.AddSurface(&world.Surface{
X: 100,
Y: screenHeight - 120,
Width: 150,
Height: 20,
Tag: world.TagPlatform,
Color: platformColor,
})
// Platform 2: Mid center
m.World.AddSurface(&world.Surface{
X: 350,
Y: screenHeight - 200,
Width: 200,
Height: 20,
Tag: world.TagPlatform,
Color: platformColor,
})
// Platform 3: High right
m.World.AddSurface(&world.Surface{
X: 650,
Y: screenHeight - 280,
Width: 150,
Height: 20,
Tag: world.TagPlatform,
Color: platformColor,
})
// left portal to desert
leftPortal := portal.CreateSidePortal("plains_left", portal.SideLeft, screenWidth, screenHeight)
leftPortal.DestinationMap = "desert"
leftPortal.DestinationPortal = "desert_right"
leftPortal.Color = color.NRGBA{R: 255, G: 100, B: 100, A: 180}
leftPortal.GlowColor = color.NRGBA{R: 255, G: 150, B: 150, A: 100}
m.AddPortal(leftPortal)
// right portal to desert
rightPortal := portal.CreateSidePortal("plains_right", portal.SideRight, screenWidth, screenHeight)
rightPortal.DestinationMap = "desert"
rightPortal.DestinationPortal = "desert_left"
rightPortal.Color = color.NRGBA{R: 100, G: 255, B: 100, A: 180}
rightPortal.GlowColor = color.NRGBA{R: 150, G: 255, B: 150, A: 100}
m.AddPortal(rightPortal)
return m
}