Remove unnecessary rebind of crazyhouse policy.
[kaya.git] / lib / plugins / crazyhouse / crazyhouse.rb
blob1449d791cddbcac174b443032e524d8570e1a962
1 # Copyright (c) 2009 Paolo Capriotti <p.capriotti@gmail.com>
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
8 require 'plugins/plugin'
9 require_bundle 'crazyhouse', 'state'
10 require_bundle 'crazyhouse', 'validator'
11 require_bundle 'crazyhouse', 'serializer'
13 module Crazyhouse
14   
15 class Game
16   include Plugin
17   
18   plugin :name => 'Crazyhouse',
19          :interface => :game,
20          :id => :crazyhouse,
21          :keywords => %w(chess),
22          :depends => [:chess, :shogi],
23          :bundle => 'crazyhouse'
25   attr_reader :size, :state, :board, :pool,
26               :policy, :move, :animator, :validator,
27               :piece, :players, :types, :serializer,
28               :notation, :game_writer, :game_extensions
29               
30   def initialize
31     @size = Point.new(8, 8)
32     @state = Factory.new(State) do
33       State.new(board.new, pool, move, piece)
34     end
35     @board = chess.board
36     @pool = shogi.pool
37     @piece = chess.piece
38     @move = shogi.move
39     @validator = Validator
40     @animator = chess.animator
41     @policy = chess.policy
42     
43     @players = [:white, :black]
44     @types = [:pawn, :knight, :bishop, :rook, :queen, :king]
45               
46     @serializer = Factory.new(Serializer) do |rep|
47       Serializer.new(rep, validator, move, piece, notation)
48     end
49     @notation = chess.notation
50     
51     @game_writer = chess.game_writer
52     @game_extensions = []
53   end
54 end
55   
56 end