Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Building < ActiveRecord::Base
- belongs_to :tribe
- belongs_to :blueprint
- has_one :location, :as => :locateable
- validates_presence_of :tribe_id
- validates_presence_of :blueprint_id
- validate :must_own_location
- validate :must_have_prerequisite_buildings
- # validate :must_have_technology TODO: implement this
- # validate :must_have_materials TODO: implement this
- def prerequisites_met?
- check_prerequisite_buildings
- end
- private
- def must_own_location
- errors.add_to_base "Must own build location" unless (location.island.tribe == tribe)
- end
- ## Building prerequisites
- def must_have_prerequisite_buildings
- unless prerequisite_buildings.nil?
- prerequisite_buildings.each do |prerequisite|
- errors.add_to_base "Missing Required Building #{prerequisite.name}" unless tribe.buildings.find_by_blueprint_id(prerequisite)
- end
- end
- end
- def check_prerequisite_buildings
- unless prerequisite_buildings.nil?
- prerequisite_buildings.each do |prerequisite|
- # TODO: implement me
- return nil
- end
- end
- end
- def prerequisite_buildings
- prerequisites ||= load_prerequisite_buildings
- end
- def load_prerequisite_buildings
- prerequisites = nil
- unless blueprint.requirements.nil? then
- prerequisites = Array.new
- blueprint.requirements.each do |requirement|
- prerequisites << requirement.prerequisite
- end
- return prerequisites
- end
- end
- end
Add Comment
Please, Sign In to add comment