diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/colonial_twilight/cards.rb | 76 | 
1 files changed, 51 insertions, 25 deletions
| diff --git a/lib/colonial_twilight/cards.rb b/lib/colonial_twilight/cards.rb index 4ffcff5..de962c0 100644 --- a/lib/colonial_twilight/cards.rb +++ b/lib/colonial_twilight/cards.rb @@ -1,34 +1,59 @@  #! /usr/bin/env ruby -# -*- coding: UTF-8 -*- +# frozen_string_literal: true -module ColonialTwilight +# rubocop:disable Style/Documentation -  CARD_SINGLE=1 -  CARD_FLN_MARKED=2 -  CARD_ALWAYS_PLAY=4 +module ColonialTwilight +  CARD_SINGLE = 1 +  CARD_FLN_MARKED = 2 +  CARD_ALWAYS_PLAY = 4    class Card      attr_reader :num, :title -    def initialize n, t, attr, a0=nil, a1=nil -      @num = n -      @title = t + +    def initialize(num, title, attr, act0 = nil, act1 = nil) +      @num = num +      @title = title        @attributes = attr -      @a0 = a0 -      @a1 = a1 +      @act0 = act0 +      @act1 = act1 +    end + +    def dual? +      @attributes & CARD_SINGLE.zero? +    end + +    def single? +      @attributes & CARD_SINGLE == CARD_SINGLE      end -    def dual?; @attributes & CARD_SINGLE == 0 end -    def single?; @attributes & CARD_SINGLE == CARD_SINGLE end -    def fln_marked?; @attributes & CARD_FLN_MARKED == CARD_FLN_MARKED end -    def always_play?; @attributes & CARD_ALWAYS_PLAY == CARD_ALWAYS_PLAY end -    def capability?; false end -    def fln_effective?; false end -    def fln_effectiveness; 0 end + +    def fln_marked? +      @attributes & CARD_FLN_MARKED == CARD_FLN_MARKED +    end + +    def always_play? +      @attributes & CARD_ALWAYS_PLAY == CARD_ALWAYS_PLAY +    end + +    def capability? +      false +    end + +    def fln_effective? +      false +    end + +    def fln_effectiveness +      0 +    end +      def fln_playable?        # reduce GOV support or resources or commitment        # shift France Track toward F        # place FLN base or increase FLN resources        false      end +      def check        # @attributes.each do |attr| raise "unknown attribute : #{attr}" if attr not in ATTRS end        # puts single? @@ -39,31 +64,32 @@ module ColonialTwilight    end    class CardAction -    def initialize t, c -      @txt = t -      @condition=c +    def initialize(txt, cond) +      @txt = txt +      @condition = cond      end    end    class Deck      attr_reader :cards +      def initialize        @cards = {}        add_card 0, 'None', nil, nil -      add_card 1, 'Quadrillage', 0, CardAction.new('Place up to all French Police in Available in up to 3 spaces', {:what=>:french_police,:from=>:available}) +      add_card 1, 'Quadrillage', 0, CardAction.new('Place up to all French Police in Available in up to 3 spaces', { what: :french_police, from: :available })      end -    def pull n; @cards[n > 0 ? 1 : 0] end # FIXME +    def pull(num) +      @cards[num.positive? ? 1 : 0] # FIXME +    end      private -    def add_card num, title, attrs, action +    def add_card(num, title, attrs, _action)        @cards[num] = Card.new num, title, attrs        @cards[num].check      end -    end -  end   # 'Balky Conscripts' | 
