Commit f510d2e
ai.go
@@ -1,9 +1,12 @@
package main
type Bot struct {
- Updates <-chan Update
- Games <-chan Game
+ UserID string // AKA Password
+ Username string
+ Updates <-chan Update
+ Games <-chan Game
Game
+ GeneralsIO
}
func (ai *Bot) RecieveUpdates() {
@@ -12,6 +15,12 @@ func (ai *Bot) RecieveUpdates() {
u := <-ai.Updates
ai.Map.Patch(u)
ai.Map.Print()
+ c := ai.Game.Map.Generals[ai.Game.UserIndex]
+ l.Info(c)
+ err := ai.GeneralsIO.Emit("attack", c, c+1)
+ if err != nil {
+ l.Fatal(err)
+ }
}
}
main.go
@@ -29,30 +29,35 @@ func exitHandler() {
}
func main() {
- user_id := "k_00004"
- username := "[Bot]k_0004"
- var ai Bot
- var g GeneralsIO
u, games := make(chan Update), make(chan Game)
- ai.Updates, ai.Games = u, games
- g.Updates, g.Games = u, games
- g.Connect()
+ g := GeneralsIO{
+ Updates: u,
+ Games: games,
+ }
+ ai := Bot{
+ UserID: "k_00004",
+ Username: "[Bot]k_0004",
+ Updates: u,
+ Games: games,
+ GeneralsIO: g,
+ }
+ ai.GeneralsIO.Connect()
- err := g.Emit("set_username", user_id, username)
+ err := ai.GeneralsIO.Emit("set_username", ai.UserID, ai.Username)
if err != nil {
l.Fatal(err)
}
- err = g.Emit("join_private", "test", user_id)
+ err = ai.GeneralsIO.Emit("join_private", "test", ai.UserID)
if err != nil {
l.Fatal(err)
}
- err = g.Emit("set_force_start", "test", true)
+ err = ai.GeneralsIO.Emit("set_force_start", "test", true)
if err != nil {
l.Fatal(err)
}
- go g.Ping(5)
- go g.RecievePackets() // Packets > Messages > Events
+ go ai.GeneralsIO.Ping(5)
+ go ai.GeneralsIO.RecievePackets() // Packets > Messages > Events
go ai.RecieveUpdates()
exitHandler()
}
map.go
@@ -109,10 +109,12 @@ func (t *Tile) DecodeTerrain(terrain int) {
switch terrain {
case GENIO_EMPTY:
t.Seen = true
+ t.Fog = false
t.Terrain = EMPTY
t.Owner = 0
case GENIO_MOUNTAIN:
t.Seen = true
+ t.Fog = false
t.Terrain = MOUNTAIN
case GENIO_FOG:
t.Fog = true
@@ -125,9 +127,10 @@ func (t *Tile) DecodeTerrain(terrain int) {
t.Terrain = OBSTACLE
}
t.Fog = true
- default:
+ default: // player owned
t.Seen = true
- t.Owner = terrain
+ t.Fog = false
+ t.Owner = terrain // Player index
}
}