Execute turn for this instance.

Property definitions

bucketed_game $ Turnable :: do_turn
	# Execute `turn` for this instance.
	fun do_turn(turn: GameTurn[G]) is abstract
lib/bucketed_game/bucketed_game.nit:34,2--35,43

bucketed_game $ Buckets :: do_turn
	redef fun do_turn(turn: GameTurn[G])
	do
		current_bucket_key = key_for_tick(turn.tick)
		var current_bucket = buckets[current_bucket_key]

		var next_bucket = new HashSet[Bucketable[G]]
		buckets[current_bucket_key] = next_bucket
		self.next_bucket = next_bucket

		for e in current_bucket do
			var act_at = e.act_at
			if act_at != null then
				if turn.tick == act_at then
					e.do_turn(turn)
				else if act_at > turn.tick and
					key_for_tick(act_at) == current_bucket_key
				then
					next_bucket.add(e)
				end
			end
		end
	end
lib/bucketed_game/bucketed_game.nit:91,2--112,4