Class BuildSpaceshipController
In: app/controllers/build_spaceship_controller.rb
Parent: ApplicationController

Methods

Public Instance methods

Methode, die ein Gebäude baut. Es wird eine xml-Datei mit Erfolg oder Misserfolg an das iPhone gesendet. @params: typ

ship_id: Integer
RaumschiffId des Raumschiffs, das gebaut werden soll
count: Integer
Anzahl der zu bauenden Raumschiffe
l: Integer
Level, das gebaut werden soll
planet_id: Integer
PlanetenId des Planeten, auf dem gebaut werden soll

[Source]

     # File app/controllers/build_spaceship_controller.rb, line 83
 83:   def build_spaceship
 84:     @id = params[:ship_id].to_i
 85:     @spaceshipname = ''
 86:     
 87:     case @id 
 88:       when 0
 89:         @spaceshipname = "Jäger"
 90:       when 1
 91:         @spaceshipname = "Bomber"
 92:       when 2
 93:         @spaceshipname = "Kreuzer"
 94:       when 3
 95:         @spaceshipname = "Zerstörer"
 96:       when 4
 97:         @spaceshipname = "Schlachtschiff"
 98:       when 5
 99:         @spaceshipname = "Spionagesonde"
100:       when 6
101:         @spaceshipname = "Transporter"
102:       when 7
103:         @spaceshipname = "Kolonieschiff"
104:       when 8
105:         @spaceshipname = "Truppentransporter"
106:       else 
107:         @spaceshipname = "default"
108:     end
109:     
110:     @count = params[:count].to_i
111:     @user = current_user
112:     @planet = Planet.find(params[:planet_id])
113:     @level = params[:level].to_i
114:    
115:    
116:    if (BackendSpaceshipController.new().build_spaceship(@planet, @spaceshipname, @level, @user, @count)) > 0
117:         @result = 'wird gebaut'
118:         @success = 'YES'
119:     elsif (BackendSpaceshipController.new().build_spaceship(@planet, @spaceshipname, @level, @user, @count)) == 0
120:        @success = 'NO'
121:         @result = 'kann nicht gebaut werden'
122:     else
123:       @success = 'NO'
124:       @result = 'bla'
125:     end
126: 
127:   
128:   respond_to do |format|
129:     format.xml do
130:       render :template => 'users/result.xml.erb'
131:     end
132:   end
133: end

Methode, um zu ueberpruefen, ob ein Raumschiff gebaut werden darf. Es wird eine xml-Datei an das iPhone gesendet, in der ‘ok’ steht oder der Grund, warum nicht gebaut werden kann @params: typ

id: Integer
SpaceshipID, dessen (Aus-)Bau ueberprueft werden soll
planet_id: Integer
PlanetenID, auf dem ein (Aus-)Bau ueberprueft werden soll
level: Integer
Level, zu dem die Abfrage eines Ausbaus gestellt wird

[Source]

    # File app/controllers/build_spaceship_controller.rb, line 14
14:   def buildable
15:     @id = params[:id]
16:     @spaceshipname = ''
17:     @user = current_user
18:     @planet = Planet.find(params[:planet_id])
19:     @level = params[:level].to_i
20:     
21:     @success= 'NO'
22: 
23:     case @id 
24:       when 0
25:         @spaceshipname = "Jäger"
26:       when 1
27:         @spaceshipname = "Bomber"
28:       when 2
29:         @spaceshipname = "Kreuzer"
30:       when 3
31:         @spaceshipname = "Zerstörer"
32:       when 4
33:         @spaceshipname = "Schlachtschiff"
34:       when 5
35:         @spaceshipname = "Spionagesonde"
36:       when 6
37:         @spaceshipname = "Transporter"
38:       when 7
39:         @spaceshipname = "Kolonieschiff"
40:       when 8
41:         @spaceshipname = "Truppentransporter"
42:       else 
43:         @spaceshipname = "default"
44:     end
45:      
46:     @b = BackendSpaceshipController.new().buildable(@planet, @spaceshipname, @level, @user)
47:     case @b
48:       when 0
49:         @result = 'moeglich'
50:         @success = 'YES'
51:       when 1
52:         @result = 'Raumschiff wird bereits gebaut'
53:       when 2
54:         @result = 'keine geeignete Schiffswerft'
55:       when 3
56:         @result = 'zu wenig Erz'
57:       when 4
58:         @result = 'zu wenig Kristall'
59:       when 5
60:         @result = 'nicht der eigene Planet'
61:       else
62:         @result = 'default'
63:     end
64:     
65:     respond_to do |format|
66:       format.xml do
67:         render :template => 'users/result.xml.erb'
68:       end
69:     end
70:     
71:   end

Methode, die alle baubaren Raumschiffe an einem Planeten zurueckgibt falls ein Raumschiff nicht gebaut werden kann, wird der Grund mit angegeben @params: typ

id: Integer
PlanetenID des Planeten, auf dem die baubaren Raumschiffe bestimmt wird

[Source]

     # File app/controllers/build_spaceship_controller.rb, line 142
142: def buildable_spaceships
143:   
144:   @user = current_user
145:   @planet = Planet.find(params[:id])
146:   @spaceships = RulesAndRegulations::SPACESHIPS
147:   
148:   @count = 0
149:   @ore = 0
150:   @crystal = 0
151:   @required_ore = 0
152:   @required_crystal = 0
153:   @text = ''
154:   @spaceshipname = ''
155:   @b = 0
156:   @level = 0
157:   @levels = [1, 2, 3, 4, 5]
158:   @hash = Hash.new
159:   @hash1 = {"Jäger" => 0, "Bomber" => 1, "Kreuzer" => 2, "Zerstörer" => 3, "Schlachtschiff" => 4, "Spionagesonde" => 5, "Transporter" => 6, "Kolonieschiff" => 7, "Truppentransporter" => 8}
160: 
161: 
162:  
163:  @spaceships.each do |spaceship|
164:     @spaceshipname = spaceship
165:     @hash[@spaceshipname]=Array.new(25)
166:      @levels.each do |level|
167:        @level = level
168:        @b= BackendSpaceshipController.new().buildable(@planet, @spaceshipname , @level, @user)
169:       
170:       case @b
171:         when 0
172:           @ore = (@planet.ore/RulesAndRegulations.required_ore_spaceship(level, spaceship, @user.race)).floor
173:           @crystal = (@planet.crystal/RulesAndRegulations.required_crystal_spaceship(level, spaceship, @user.race)).floor
174: 
175:           @min = [@ore, @crystal].min
176:           @count = @min
177:           @text = 'bauen'
178:         when 1
179:           @text = 'Raumschiff wird bereits gebaut'
180:           @count = 0
181:         when 2
182:           @text = 'keine geeignete Schiffswerft'
183:           @count = 0
184:         when 3
185:           @text = 'zu wenig Erz'
186:           @count = 0
187:         when 4
188:           @text = 'zu wenig Kristall'
189:           @count = 0
190:         when 5
191:           @text = 'nicht der eigene Planet'
192:           @count = 0
193:         when 6
194:           @text = 'nicht bekannte Schiffsklasse'
195:           @count = 0
196:         else
197:           @text = @b
198:           @count = 0
199:       end
200:       
201:      @required_ore = RulesAndRegulations.required_ore_spaceship(level, spaceship, @user.race)
202:      @required_crystal = RulesAndRegulations.required_crystal_spaceship(level, spaceship, @user.race)
203:      
204:           
205:      @hash[@spaceshipname][@level-1]=@level
206:      @hash[@spaceshipname][@level+4]=@count
207:      @hash[@spaceshipname][@level+9]=@text
208:      @hash[@spaceshipname][@level+14]= @required_ore
209:      @hash[@spaceshipname][@level+19]= @required_crystal 
210: 
211:     end
212:   end 
213: 
214:     respond_to do |format|
215:       format.xml do
216:         render :template => 'spaceship/buildable_spaceships.xml.erb'
217:       end
218:     end
219: end

[Validate]