diff --git a/app/controllers/squads_controller.rb b/app/controllers/squads_controller.rb
index 0ae61a7..420003b 100644
--- a/app/controllers/squads_controller.rb
+++ b/app/controllers/squads_controller.rb
@@ -14,7 +14,7 @@ def create
end
def ready
- current_squad.ready
+ current_squad.ready!
redirect_to :fleets
end
diff --git a/app/models/round.rb b/app/models/round.rb
index 0d1d1ba..e233d25 100644
--- a/app/models/round.rb
+++ b/app/models/round.rb
@@ -17,16 +17,11 @@ def new_game!
def end_moving!
Squad.all.each do |squad|
- squad.move = nil
+ squad.ready = nil
squad.save
end
- moving_fleets = Fleet.where(:moving => true)
- moving_fleets.each do |fleet|
- fleet.move!
- end
- GenericFleet.all.each do |fleet|
- Result.create(:generic_fleet_id => fleet.id, :planet => fleet.planet, :quantity => fleet.quantity, :generic_unit_id => fleet.generic_unit.id, :round => self, :squad => fleet.squad)
- end
+ self.move_fleets
+ self.check_conflicts
self.move = nil
self.attack = true
save
@@ -34,23 +29,18 @@ def end_moving!
end
def end_round!
- Result.where(:round => self).each do |result|
- result.blast! unless result.blasted == nil || result.blasted <= 0
- result.capture! unless result.captured == nil || result.captured <= 0
- result.flee! unless result.fled == nil || result.fled <= 0
- end
+ self.apply_results
self.attack = nil
self.done = true
save
- new_round_number = self.number + 1
- Round.create(:number => new_round_number, :move => true)
+ Round.create(:number => self.number + 1, :move => true)
set_map
Squad.all.each do |squad|
squad.generate_profits!
squad.facility_fleets.each do |facility|
facility.produce!
end
- squad.move = nil
+ squad.ready = nil
squad.save
end
end
@@ -61,4 +51,35 @@ def set_map
planet.set_ground_ownership
end
end
+
+ def check_state
+ squads_not_ready = Squad.where(:ready => nil)
+ if Round.getInstance.move?
+ Round.getInstance.end_moving! if squads_not_ready.empty?
+ else
+ Round.getInstance.end_round! if squads_not_ready.empty?
+ end
+ end
+
+ def move_fleets
+ moving_fleets = Fleet.where(:moving => true)
+ moving_fleets.each do |fleet|
+ fleet.move!
+ end
+ end
+
+ def check_conflicts #TODO criar os post results somente em planetas que tiverem conflito (2 squads no mesmo planeta)
+ GenericFleet.all.each do |fleet|
+ Result.create(:generic_fleet_id => fleet.id, :planet => fleet.planet, :quantity => fleet.quantity, :generic_unit_id => fleet.generic_unit.id, :round => self, :squad => fleet.squad)
+ end
+ end
+
+ def apply_results
+ Result.where(:round => self).each do |result|
+ result.blast! unless result.blasted == nil || result.blasted <= 0
+ result.capture! unless result.captured == nil || result.captured <= 0
+ result.flee! unless result.fled == nil || result.fled <= 0
+ end
+ end
+
end
diff --git a/app/models/squad.rb b/app/models/squad.rb
index 0e83e59..014131b 100644
--- a/app/models/squad.rb
+++ b/app/models/squad.rb
@@ -91,23 +91,10 @@ def deposit quantity
save
end
- def ready
- self.move = true
+ def ready!
+ self.ready = true
save
- if Round.getInstance.move == true
- squads_not_ready = Squad.where(:move => nil)
- if squads_not_ready.empty?
- Round.getInstance.end_moving!
- end
- else
- squads_not_ready = Squad.where(:move => nil)
- if squads_not_ready.empty?
- Round.getInstance.end_round!
- end
- end
+ Round.getInstance.check_state
end
-
-
-
end
diff --git a/app/views/generic_fleets/index.html.erb b/app/views/generic_fleets/index.html.erb
index c71468f..8aada33 100644
--- a/app/views/generic_fleets/index.html.erb
+++ b/app/views/generic_fleets/index.html.erb
@@ -2,7 +2,7 @@
;font-weight:bold;font-size:18px><%= @squad.name %>
Round: <%= @round.number %> | Credits: $<%= @squad.credits %> | Income: $<%= @income %>
<%= link_to "Is #{@squad.name} ready to go? ", :ready %>
-<%= "Yes, we're waiting!" if @squad.move? %>
+<%= "Yes, we're waiting!" if @squad.ready? %>