func parseCommand(game *obj.Game, message map[string]interface{}, player *obj.Unit) []byte { switch command := message["get"]; command { case "units": return game.World.UnitsToJSON() case "boom": coords := message["args"].(map[string]interface{}) game.MakeBoom(float32(coords["x"].(float64)), float32(coords["y"].(float64))) case "move": player.SetPlayerMoveSpeed(message["args"].(map[string]interface{})) case "direction": coords := message["args"].(map[string]interface{}) player.TargetX, player.TargetY = float32(coords["x"].(float64)), float32(coords["y"].(float64)) case "fire": player.Fire = message["args"].(bool) } return nil }