Sha256: 6a1d4eed6a45c26e875ac24e3593d4323be453014fb6ad05b8219451c4c0736d

Contents?: true

Size: 736 Bytes

Versions: 3

Compression:

Stored size: 736 Bytes

Contents

# frozen string literal: true

require 'dry-struct'
require 'spy_alley_application/models/game_state/start_of_turn'

module SpyAlleyApplication
  module Models
    module GameState
      class SpyEliminator < Dry::Struct
        @@can_handle_spy_eliminator = ::Types.Interface(:handle_spy_eliminator)

        attribute :name, ::Types.Value('spy_eliminator')
        attribute :seat, ::Types::Coercible::Integer
        attribute :targetable_seats, ::Types::ArrayOfStrictInteger
        attribute :parent, SpyAlleyApplication::Models::GameState::StartOfTurn

        def accept(visitor, **args)
          @@can_handle_spy_eliminator.(visitor)
          visitor.handle_spy_eliminator(self, args)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spy_alley_application-0.3.2 lib/spy_alley_application/models/game_state/spy_eliminator.rb
spy_alley_application-0.3.1 lib/spy_alley_application/models/game_state/spy_eliminator.rb
spy_alley_application-0.3.0 lib/spy_alley_application/models/game_state/spy_eliminator.rb