neo: Correct the documentation of neo.nit according to PR #734.
[nit.git] / lib / bucketed_game.nit
index 409b549..b680079 100644 (file)
@@ -38,7 +38,7 @@ class Buckets[G: Game]
        super Turnable[G]
        type BUCKET: HashSet[Bucketable[G]]
 
-       private var buckets: Array[BUCKET]
+       private var buckets: Array[BUCKET] is noinit
 
        private var next_bucket: nullable BUCKET = null
        private var current_bucket_key: Int = -1
@@ -104,14 +104,14 @@ end
 
 # Game logic on the client
 class ThinGame
-       var tick: Int protected writable = 0
+       var tick: Int = 0 is protected writable
 end
 
 # Game turn on the client
 class ThinGameTurn[G: ThinGame]
-       var tick: Int protected writable = 0
+       var tick: Int = 0 is protected writable
 
-       var events: List[GameEvent] protected writable = new List[GameEvent]
+       var events: List[GameEvent] = new List[GameEvent] is protected writable
 
        init (t: Int) do tick = t
 end
@@ -151,6 +151,11 @@ class Game
 
        var buckets: Buckets[G] = new Buckets[G]
 
+       # Last turn executed in this game
+       # Can be used to consult the latest events (by the display for example),
+       # but cannot be used to add new Events.
+       var last_turn: nullable ThinGameTurn[G] = null
+
        init do end
 
        fun do_turn: GameTurn[G]
@@ -161,6 +166,8 @@ class Game
                buckets.do_turn(turn)
                do_post_turn(turn)
 
+               last_turn = turn
+
                tick += 1
 
                return turn