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? %>
diff --git a/db/migrate/20110612042651_rename_move_to_ready_to_squad.rb b/db/migrate/20110612042651_rename_move_to_ready_to_squad.rb new file mode 100644 index 0000000..ebca2e9 --- /dev/null +++ b/db/migrate/20110612042651_rename_move_to_ready_to_squad.rb @@ -0,0 +1,9 @@ +class RenameMoveToReadyToSquad < ActiveRecord::Migration + def self.up + rename_column :squads, :move, :ready + end + + def self.down + rename_column :squads, :ready, :move + end +end diff --git a/db/schema.rb b/db/schema.rb index adc7e8a..468e866 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20110522203126) do +ActiveRecord::Schema.define(:version => 20110612042651) do create_table "generic_fleets", :force => true do |t| t.integer "squad_id" @@ -101,7 +101,7 @@ t.datetime "created_at" t.datetime "updated_at" t.integer "user_id" - t.boolean "move" + t.boolean "ready" t.string "color" t.integer "faction" end