Class: Monotony::Utility

Inherits:
PurchasableProperty show all
Defined in:
lib/monotony/utility.rb

Overview

Represents a utility tile, such as the Electricity Company or Water Works.

Instance Attribute Summary

Attributes inherited from PurchasableProperty

#cost, #is_mortgaged, #mortgage_value, #owner, #value

Attributes inherited from Square

#action, #colour, #name, #owner, #set

Instance Method Summary collapse

Methods inherited from PurchasableProperty

#give_to, #is_mortgaged?, #mortgage, #number_in_set, #number_of_set_owned, #place_offer, #properties_in_set, #sell_to, #set_owned?, #unmortgage

Constructor Details

#initialize(opts) ⇒ Utility

Returns a new instance of Utility.

Parameters:

  • opts (Hash)

Options Hash (opts):

  • :name (String)

    A symbol identifying this property as a member of a set of properties.



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/monotony/utility.rb', line 10

def initialize(opts)
	super
	@set = :utilities
	@action = Proc.new do |game, owner, player, property|
		if owner
			rent = game.last_roll * ( owner.properties.collect { |p| p.is_a? Utility }.count == 2 ? 10 : 4 ) 
			player.pay(owner, rent)
		else
			player.behaviour[:purchase_possible].call(game, player, self) if player.currency >= cost
		end
	end
end