Guest User

Untitled

a guest
Jul 23rd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. class Building < ActiveRecord::Base
  2. belongs_to :tribe
  3. belongs_to :blueprint
  4. has_one :location, :as => :locateable
  5.  
  6. validates_presence_of :tribe_id
  7. validates_presence_of :blueprint_id
  8.  
  9. validate :must_own_location
  10. validate :must_have_prerequisite_buildings
  11. # validate :must_have_technology TODO: implement this
  12. # validate :must_have_materials TODO: implement this
  13.  
  14.  
  15. def prerequisites_met?
  16. check_prerequisite_buildings
  17. end
  18.  
  19.  
  20. private
  21. def must_own_location
  22. errors.add_to_base "Must own build location" unless (location.island.tribe == tribe)
  23. end
  24.  
  25.  
  26. ## Building prerequisites
  27. def must_have_prerequisite_buildings
  28. unless prerequisite_buildings.nil?
  29. prerequisite_buildings.each do |prerequisite|
  30. errors.add_to_base "Missing Required Building #{prerequisite.name}" unless tribe.buildings.find_by_blueprint_id(prerequisite)
  31. end
  32. end
  33. end
  34.  
  35. def check_prerequisite_buildings
  36. unless prerequisite_buildings.nil?
  37. prerequisite_buildings.each do |prerequisite|
  38. # TODO: implement me
  39. return nil
  40. end
  41. end
  42. end
  43.  
  44. def prerequisite_buildings
  45. prerequisites ||= load_prerequisite_buildings
  46. end
  47.  
  48. def load_prerequisite_buildings
  49. prerequisites = nil
  50. unless blueprint.requirements.nil? then
  51. prerequisites = Array.new
  52. blueprint.requirements.each do |requirement|
  53. prerequisites << requirement.prerequisite
  54. end
  55. return prerequisites
  56. end
  57. end
  58. end
Add Comment
Please, Sign In to add comment