Classes events in Swift

//In Swift there are no events type
protocol GameListener {
    func gameStarted(name: String)
}

class Game {
    private var listeners: [GameListener] = []
    
    func addListener(listener: GameListener) {
        listeners.append(listener)
    }
    
    var name: String
    
    func Start() {
        for listener in listeners {
            listener.gameStarted(name)
        }
    }
    
    init (name: String) {
        self.name = name
    }
}

class Statistic: GameListener {
    var startsCount: Int = 0
    var lastGame: String = ""
    
    func gameStarted(name: String) {
        startsCount++
        lastGame = name
    }
}

let statistic = Statistic()
let heroes = Game(name: "Heroes")
let doom = Game(name: "Doom")

//subscribe to events
heroes.addListener(statistic);
doom.addListener(statistic);

doom.Start();
heroes.Start();
//statistic.lastGame is "Heroes"
//statistic.startsCount is 2