Changeset 5b00c95df34de1961334d80b3c9c80b9fd4371c8
- Timestamp:
- 07/11/07 17:53:32
(1 year ago)
- Author:
- Christopher Jung <bktheg@web.de>
- git-committer:
- Christopher Jung <bktheg@web.de> 1184169212 +0200
- git-parent:
[89d279c3cd5e9c1635b8bae910ca1a9365cba062]
- git-author:
- Christopher Jung <bktheg@web.de> 1184169212 +0200
- Message:
Werftlayout weiter an die Werftslots angepasst
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r89d279c |
r5b00c95 |
|
| 180 | 180 | |
|---|
| 181 | 181 | werft.setBaseField(field); |
|---|
| 182 | | |
|---|
| 183 | | response.append("<div>Werft auf "+base.getName()+"<br /><br /></div>\n"); |
|---|
| 184 | | |
|---|
| | 182 | |
|---|
| 185 | 183 | WerftGUI werftgui = new WerftGUI( context, t ); |
|---|
| 186 | 184 | response.append(werftgui.execute( werft )); |
|---|
| 187 | 185 | |
|---|
| 188 | | response.append("<div><br /></div>\n"); |
|---|
| | 186 | response.append("<br /></div>\n"); |
|---|
| 189 | 187 | return response.toString(); |
|---|
| 190 | 188 | } |
|---|
| r9965374 |
r5b00c95 |
|
| 125 | 125 | } |
|---|
| 126 | 126 | |
|---|
| 127 | | echo.append("Werft "+Common._plaintitle(ship.getName())+"<br /><br />\n"); |
|---|
| 128 | | |
|---|
| 129 | 127 | WerftGUI werftgui = new WerftGUI( getContext(), getTemplateEngine() ); |
|---|
| 130 | 128 | echo.append(werftgui.execute( werft )); |
|---|
| rbed664f |
r5b00c95 |
|
| 28 | 28 | import net.driftingsouls.ds2.server.Offizier; |
|---|
| 29 | 29 | import net.driftingsouls.ds2.server.bases.Base; |
|---|
| | 30 | import net.driftingsouls.ds2.server.bases.Building; |
|---|
| | 31 | import net.driftingsouls.ds2.server.bases.Werft; |
|---|
| 30 | 32 | import net.driftingsouls.ds2.server.cargo.Cargo; |
|---|
| 31 | 33 | import net.driftingsouls.ds2.server.entities.User; |
|---|
| | 34 | import net.driftingsouls.ds2.server.framework.ContextMap; |
|---|
| 32 | 35 | |
|---|
| 33 | 36 | /** |
|---|
| … | … | |
| 87 | 90 | this.fieldid = field; |
|---|
| 88 | 91 | } |
|---|
| 89 | | |
|---|
| 90 | | @Override |
|---|
| 91 | | public int getWerftType() { |
|---|
| 92 | | return WerftObject.BUILDING; |
|---|
| 93 | | } |
|---|
| 94 | 92 | |
|---|
| 95 | 93 | @Override |
|---|
| … | … | |
| 169 | 167 | @Override |
|---|
| 170 | 168 | public int getWerftSlots() { |
|---|
| 171 | | return 5; |
|---|
| | 169 | return 6; |
|---|
| 172 | 170 | } |
|---|
| 173 | 171 | |
|---|
| … | … | |
| 201 | 199 | return base.getSize(); |
|---|
| 202 | 200 | } |
|---|
| | 201 | |
|---|
| | 202 | @Override |
|---|
| | 203 | public String getWerftPicture() { |
|---|
| | 204 | if( fieldid != -1 ) { |
|---|
| | 205 | Building building = Building.getBuilding(base.getBebauung()[fieldid]); |
|---|
| | 206 | return building.getPicture(); |
|---|
| | 207 | } |
|---|
| | 208 | |
|---|
| | 209 | org.hibernate.Session db = ContextMap.getContext().getDB(); |
|---|
| | 210 | Werft building = (Werft)db.createQuery("from WerftBuilding") |
|---|
| | 211 | .setMaxResults(1) |
|---|
| | 212 | .uniqueResult(); |
|---|
| | 213 | |
|---|
| | 214 | return building.getPicture(); |
|---|
| | 215 | } |
|---|
| | 216 | |
|---|
| | 217 | @Override |
|---|
| | 218 | public String getWerftName() { |
|---|
| | 219 | return base.getName(); |
|---|
| | 220 | } |
|---|
| 203 | 221 | } |
|---|
| r89d279c |
r5b00c95 |
|
| 122 | 122 | return this.ship; |
|---|
| 123 | 123 | } |
|---|
| 124 | | |
|---|
| 125 | | @Override |
|---|
| 126 | | public int getWerftType() { |
|---|
| 127 | | return WerftObject.SHIP; |
|---|
| 128 | | } |
|---|
| 129 | | |
|---|
| | 124 | |
|---|
| 130 | 125 | @Override |
|---|
| 131 | 126 | public Cargo getCargo(boolean localonly) { |
|---|
| … | … | |
| 404 | 399 | return result; |
|---|
| 405 | 400 | } |
|---|
| | 401 | |
|---|
| | 402 | @Override |
|---|
| | 403 | public String getWerftPicture() { |
|---|
| | 404 | return this.ship.getTypeData().getPicture(); |
|---|
| | 405 | } |
|---|
| | 406 | |
|---|
| | 407 | @Override |
|---|
| | 408 | public String getWerftName() { |
|---|
| | 409 | return this.ship.getName(); |
|---|
| | 410 | } |
|---|
| 406 | 411 | } |
|---|
| r89d279c |
r5b00c95 |
|
| 110 | 110 | t.set_var("werftgui.main", 1); |
|---|
| 111 | 111 | |
|---|
| | 112 | WerftQueueEntry[] queue = werft.getBuildQueue(); |
|---|
| | 113 | t.set_var( |
|---|
| | 114 | "werftgui.name", werft.getWerftName(), |
|---|
| | 115 | "werftgui.picture", werft.getWerftPicture(), |
|---|
| | 116 | "werftgui.crew", werft.getCrew(), |
|---|
| | 117 | "werftgui.werftslots", werft.getWerftSlots(), |
|---|
| | 118 | "werftgui.totalqueueentries", queue.length |
|---|
| | 119 | ); |
|---|
| | 120 | |
|---|
| | 121 | // Resourcenliste |
|---|
| 112 | 122 | SQLResultRow[] shipdata = werft.getBuildShipList(); |
|---|
| 113 | 123 | |
|---|
| 114 | | // Resourcenliste |
|---|
| 115 | 124 | Cargo costs = new Cargo(); |
|---|
| 116 | 125 | for( int i=0; i < shipdata.length; i++ ) { |
|---|
| … | … | |
| 159 | 168 | } |
|---|
| 160 | 169 | |
|---|
| 161 | | out_queueShipList(werft, werft.getBuildQueue()); |
|---|
| | 170 | out_queueShipList(werft, queue); |
|---|
| 162 | 171 | } |
|---|
| 163 | 172 | else if( "options".equals(show) ) { |
|---|
| … | … | |
| 165 | 174 | |
|---|
| 166 | 175 | // Verbindung Base <-> Werft |
|---|
| 167 | | if( werft.getWerftType() == WerftObject.SHIP ) { |
|---|
| | 176 | if( werft instanceof ShipWerft ) { |
|---|
| 168 | 177 | int shipid = ((ShipWerft)werft).getShipID(); |
|---|
| 169 | 178 | Base linkedbase = ((ShipWerft)werft).getLinkedBase(); |
|---|
| … | … | |
| 223 | 232 | Ship ship = (Ship)iter.next(); |
|---|
| 224 | 233 | |
|---|
| 225 | | if( (werft.getWerftType() == WerftObject.SHIP) && (((ShipWerft)werft).getShip() == ship) ) { |
|---|
| | 234 | if( (werft instanceof ShipWerft) && (((ShipWerft)werft).getShip() == ship) ) { |
|---|
| 226 | 235 | continue; |
|---|
| 227 | 236 | } |
|---|
| … | … | |
| 251 | 260 | t.set_block("queueshiplist.listitem", "queueship.buildcosts.listitem", "queueship.buildcosts.list"); |
|---|
| 252 | 261 | |
|---|
| 253 | | int remaining = 0; |
|---|
| 254 | 262 | for( int i=0; i < queue.length; i++ ) { |
|---|
| 255 | 263 | t.start_record(); |
|---|
| 256 | 264 | WerftQueueEntry entry = queue[i]; |
|---|
| 257 | 265 | |
|---|
| 258 | | remaining += entry.getRemainingTime(); |
|---|
| 259 | | |
|---|
| 260 | 266 | t.set_var( |
|---|
| 261 | 267 | "queueship.buildcosts.list", "", |
|---|
| … | … | |
| 264 | 270 | "queueship.type.id", entry.getBuildShipType().getTypeId(), |
|---|
| 265 | 271 | "queueship.type.name", entry.getBuildShipType().getNickname(), |
|---|
| 266 | | "queueship.remainingtotal", remaining, |
|---|
| | 272 | "queueship.remainingtotal", werft.getTicksTillFinished(entry), |
|---|
| | 273 | "queueship.slots", entry.getSlots(), |
|---|
| 267 | 274 | "queueship.building", entry.isScheduled(), |
|---|
| 268 | 275 | "queueship.uppossible", i > 0, |
|---|
| … | … | |
| 412 | 419 | return; |
|---|
| 413 | 420 | } |
|---|
| 414 | | if( (werft.getWerftType() == WerftObject.SHIP) && (((ShipWerft)werft).getShipID() == ws) ) { |
|---|
| | 421 | if( (werft instanceof ShipWerft) && (((ShipWerft)werft).getShipID() == ws) ) { |
|---|
| 415 | 422 | context.addError("Sie können sich nicht selbst reparieren", werft.getUrlBase()+"&sess="+sess); |
|---|
| 416 | 423 | return; |
|---|
| … | … | |
| 766 | 773 | |
|---|
| 767 | 774 | // Crew |
|---|
| 768 | | int frei = werft.getCrew(); |
|---|
| | 775 | final int frei = werft.getCrew(); |
|---|
| 769 | 776 | |
|---|
| 770 | 777 | t.set_var( "res.image", Configuration.getSetting("URL")+"data/interface/arbeitslos.gif", |
|---|
| … | … | |
| 776 | 783 | t.parse("build.othercosts.list", "build.res.listitem", true); |
|---|
| 777 | 784 | |
|---|
| | 785 | // Werftslots |
|---|
| | 786 | t.set_var( "res.image", Configuration.getSetting("URL")+"data/interface/schiffinfo/werftslots.png", |
|---|
| | 787 | "res.plainname", "Werftslots", |
|---|
| | 788 | "res.cargo.pertick", "", |
|---|
| | 789 | "res.cargo.available", werft.getWerftSlots(), |
|---|
| | 790 | "res.cargo.needed", shipdata.getInt("werftslots"), |
|---|
| | 791 | "res.cargo.mangel", false); |
|---|
| | 792 | t.parse("build.othercosts.list", "build.res.listitem", true); |
|---|
| | 793 | |
|---|
| | 794 | // Dauer |
|---|
| | 795 | t.set_var( "res.image", Configuration.getSetting("URL")+"data/interface/time.gif", |
|---|
| | 796 | "res.plainname", "Dauer", |
|---|
| | 797 | "res.cargo.pertick", "", |
|---|
| | 798 | "res.cargo.available", "", |
|---|
| | 799 | "res.cargo.needed", shipdata.getInt("dauer"), |
|---|
| | 800 | "res.cargo.mangel", false); |
|---|
| | 801 | t.parse("build.othercosts.list", "build.res.listitem", true); |
|---|
| | 802 | |
|---|
| 778 | 803 | // Testen ob Bau moeglich |
|---|
| 779 | 804 | if( !conf.equals("ok") ) { |
|---|
| r89d279c |
r5b00c95 |
|
| 20 | 20 | |
|---|
| 21 | 21 | import java.util.ArrayList; |
|---|
| | 22 | import java.util.Arrays; |
|---|
| 22 | 23 | import java.util.HashMap; |
|---|
| 23 | 24 | import java.util.Iterator; |
|---|
| 24 | 25 | import java.util.List; |
|---|
| 25 | 26 | import java.util.Map; |
|---|
| | 27 | import java.util.SortedMap; |
|---|
| | 28 | import java.util.TreeMap; |
|---|
| 26 | 29 | |
|---|
| 27 | 30 | import javax.persistence.Column; |
|---|
| … | … | |
| 32 | 35 | import javax.persistence.InheritanceType; |
|---|
| 33 | 36 | import javax.persistence.Table; |
|---|
| | 37 | import javax.persistence.Transient; |
|---|
| 34 | 38 | |
|---|
| 35 | 39 | import net.driftingsouls.ds2.server.ContextCommon; |
|---|
| … | … | |
| 80 | 84 | @DiscriminatorFormula("case when col is not null then 'base' else 'ship' end") |
|---|
| 81 | 85 | public abstract class WerftObject extends DSObject implements Locatable { |
|---|
| 82 | | protected static final int BUILDING = 0; |
|---|
| 83 | | protected static final int SHIP = 1; |
|---|
| 84 | | |
|---|
| 85 | 86 | @Id @GeneratedValue |
|---|
| 86 | 87 | private int id = 0; |
|---|
| … | … | |
| 147 | 148 | * @return Die Anzahl der belegten Slots |
|---|
| 148 | 149 | */ |
|---|
| 149 | | public int getUsedSlots() { |
|---|
| | 150 | public final int getUsedSlots() { |
|---|
| 150 | 151 | org.hibernate.Session db = ContextMap.getContext().getDB(); |
|---|
| 151 | 152 | |
|---|
| … | … | |
| 156 | 157 | |
|---|
| 157 | 158 | /** |
|---|
| | 159 | * Gibt den Zeitpunkt zurueck, an dem ein Bauauftrag voraussichtlich fertig sein wird |
|---|
| | 160 | * @param searched Der Bauauftrag |
|---|
| | 161 | * @return Die Zeit in Ticks bis zur Fertigstellung |
|---|
| | 162 | */ |
|---|
| | 163 | public final int getTicksTillFinished(WerftQueueEntry searched) { |
|---|
| | 164 | List<WerftQueueEntry> entries = new ArrayList<WerftQueueEntry>(); |
|---|
| | 165 | entries.addAll(Arrays.asList(getBuildQueue())); |
|---|
| | 166 | |
|---|
| | 167 | int slots = this.getWerftSlots(); |
|---|
| | 168 | int time = 0; |
|---|
| | 169 | boolean first = true; |
|---|
| | 170 | |
|---|
| | 171 | SortedMap<Integer,List<WerftQueueEntry>> scheduled = new TreeMap<Integer,List<WerftQueueEntry>>(); |
|---|
| | 172 | |
|---|
| | 173 | while( !entries.isEmpty() ) { |
|---|
| | 174 | for( int i=0; i < entries.size(); i++ ) { |
|---|
| | 175 | WerftQueueEntry entry = entries.get(i); |
|---|
| | 176 | |
|---|
| | 177 | if( (first && entry.isScheduled()) || (!first && entry.getSlots() <= slots) ) { |
|---|
| | 178 | if( entry == searched ) { |
|---|
| | 179 | return time+entry.getRemainingTime(); |
|---|
| | 180 | } |
|---|
| | 181 | |
|---|
| | 182 | slots -= entries.get(i).getSlots(); |
|---|
| | 183 | |
|---|
| | 184 | if( !scheduled.containsKey(time+entry.getRemainingTime()) ) { |
|---|
| | 185 | scheduled.put(time+entry.getRemainingTime(), new ArrayList<WerftQueueEntry>()); |
|---|
| | 186 | } |
|---|
| | 187 | scheduled.get(time+entry.getRemainingTime()).add(entry); |
|---|
| | 188 | entries.remove(i--); |
|---|
| | 189 | |
|---|
| | 190 | if( slots == 0 ) { |
|---|
| | 191 | continue; |
|---|
| | 192 | } |
|---|
| | 193 | } |
|---|
| | 194 | } |
|---|
| | 195 | |
|---|
| | 196 | first = false; |
|---|
| | 197 | |
|---|
| | 198 | time = scheduled.firstKey(); |
|---|
| | 199 | List<WerftQueueEntry> remove = scheduled.remove(time); |
|---|
| | 200 | for( WerftQueueEntry entry : remove ) { |
|---|
| | 201 | slots += entry.getSlots(); |
|---|
| | 202 | } |
|---|
| | 203 | } |
|---|
| | 204 | |
|---|
| | 205 | return -1; |
|---|
| | 206 | } |
|---|
| | 207 | |
|---|
| | 208 | /** |
|---|
| 158 | 209 | * Gibt den Typ der Werft zurueck |
|---|
| 159 | 210 | * @return Typ der Werft |
|---|
| … | … | |
| 183 | 234 | final WerftQueueEntry entry = entries[i]; |
|---|
| 184 | 235 | |
|---|
| 185 | | if( (entry.getSlots() <= freeSlots) && entry.isBuildContPossible() ) { |
|---|
| | 236 | if( entry.getSlots() <= freeSlots ) { |
|---|
| 186 | 237 | entry.setScheduled(true); |
|---|
| 187 | 238 | |
|---|
| … | … | |
| 207 | 258 | |
|---|
| 208 | 259 | this.buildFlagschiff = false; |
|---|
| | 260 | this.entries = null; |
|---|
| 209 | 261 | } |
|---|
| 210 | 262 | |
|---|
| … | … | |
| 224 | 276 | return id; |
|---|
| 225 | 277 | } |
|---|
| | 278 | |
|---|
| | 279 | /** |
|---|
| | 280 | * Gibt den Namen der Werft zurueck |
|---|
| | 281 | * @return Der Name |
|---|
| | 282 | */ |
|---|
| | 283 | public abstract String getWerftName(); |
|---|
| | 284 | |
|---|
| | 285 | /** |
|---|
| | 286 | * Gibt das Bild der Werft zurueck |
|---|
| | 287 | * @return Das Bild |
|---|
| | 288 | */ |
|---|
| | 289 | public abstract String getWerftPicture(); |
|---|
| 226 | 290 | |
|---|
| 227 | 291 | /** |
|---|
| … | … | |
| 237 | 301 | public abstract User getOwner(); |
|---|
| 238 | 302 | |
|---|
| 239 | | /** |
|---|
| 240 | | * Gibt den Werfttyp (Basis,Schiff) zurueck |
|---|
| 241 | | * @return Der Werfttyp |
|---|
| 242 | | */ |
|---|
| 243 | | public abstract int getWerftType(); |
|---|
| 244 | | |
|---|
| 245 | 303 | /** |
|---|
| 246 | 304 | * Gibt den Cargo der Werft zurueck |
|---|
| … | … | |
| 1279 | 1337 | else { |
|---|
| 1280 | 1338 | if( this.getOneWayFlag() == 0 ) { |
|---|
| 1281 | | this.setCargo(cargo, false); |
|---|
| 1282 | | this.setEnergy(e); |
|---|
| | 1339 | if( !costsPerTick ) { |
|---|
| | 1340 | this.setCargo(cargo, false); |
|---|
| | 1341 | this.setEnergy(e); |
|---|
| | 1342 | } |
|---|
| 1283 | 1343 | this.setCrew(frei); |
|---|
| 1284 | 1344 | |
|---|
| 1285 | 1345 | } |
|---|
| 1286 | 1346 | // TODO: Ab nach ShipWerft... |
|---|
| 1287 | | else if( this.getWerftType() == SHIP ) { |
|---|
| | 1347 | else if( this instanceof ShipWerft ) { |
|---|
| 1288 | 1348 | // Einweg-Werft-Code |
|---|
| 1289 | 1349 | |
|---|
| … | … | |
| 1329 | 1389 | db.persist(entry); |
|---|
| 1330 | 1390 | |
|---|
| | 1391 | this.entries = null; |
|---|
| | 1392 | |
|---|
| 1331 | 1393 | rescheduleQueue(); |
|---|
| 1332 | 1394 | |
|---|
| … | … | |
| 1334 | 1396 | } |
|---|
| 1335 | 1397 | } |
|---|
| | 1398 | |
|---|
| | 1399 | @Transient |
|---|
| | 1400 | private WerftQueueEntry[] entries = null; |
|---|
| 1336 | 1401 | |
|---|
| 1337 | 1402 | /** |
|---|
| … | … | |
| 1340 | 1405 | */ |
|---|
| 1341 | 1406 | public WerftQueueEntry[] getBuildQueue() { |
|---|
| | 1407 | if( entries != null ) { |
|---|
| | 1408 | return entries.clone(); |
|---|
| | 1409 | } |
|---|
| | 1410 | |
|---|
| 1342 | 1411 | org.hibernate.Session db = ContextMap.getContext().getDB(); |
|---|
| 1343 | 1412 | |
|---|
| … | … | |
| 1352 | 1421 | } |
|---|
| 1353 | 1422 | |
|---|
| | 1423 | this.entries = list; |
|---|
| | 1424 | |
|---|
| 1354 | 1425 | return list; |
|---|
| 1355 | 1426 | } |
|---|
| r89d279c |
r5b00c95 |
|
| 506 | 506 | if( !this.getCostsPerTick().isEmpty() ) { |
|---|
| 507 | 507 | Cargo cargo = werft.getCargo(false); |
|---|
| 508 | | ResourceList reslist = this.getCostsPerTick().compare(cargo, false); |
|---|
| | 508 | ResourceList reslist = this.costsPerTick.compare(cargo, false); |
|---|
| 509 | 509 | for( ResourceEntry res : reslist ) { |
|---|
| 510 | 510 | if( res.getDiff() > 0 ) { |
|---|
| re2ca6c9 |
r5b00c95 |
|
| 245 | 245 | {if werftgui.main} |
|---|
| 246 | 246 | {!table_begin 810} |
|---|
| | 247 | <h3>Werft: {werftgui.name}</h3> |
|---|
| | 248 | <div style="text-align:left"> |
|---|
| | 249 | <table class="noBorderX" cellpadding="2" cellspacing="1"> |
|---|
| | 250 | <tr> |
|---|
| | 251 | <td class="noBorderX" style="vertical-align:top"> |
|---|
| | 252 | <img style="width:64px" src="{werftgui.picture}" alt="" /> |
|---|
| | 253 | </td> |
|---|
| | 254 | <td class="noBorderX" width="50"></td> |
|---|
| | 255 | <td class="noBorderX" style="vertical-align:top"> |
|---|
| | 256 | Freies Personal: <img style="vertical-align:middle" src="{URL}data/interface/arbeitslos.gif" alt="" /> {werftgui.crew}<br /> |
|---|
| | 257 | Werftkapazität: <img style="vertical-align:middle" src="{URL}data/interface/schiffinfo/werftslots.png" alt="" /> {werftgui.werftslots} |
|---|
| | 258 | </td> |
|---|
| | 259 | <td class="noBorderX" width="50"></td> |
|---|
| | 260 | <td class="noBorderX" style="vertical-align:top"> |
|---|
| | 261 | Auslastung: {werftgui.totalqueueentries} Schiffe</a> |
|---|
| | 262 | </td> |
|---|
| | 263 | </table> |
|---|
| | 264 | </div> |
|---|
| | 265 | <br /> |
|---|
| 247 | 266 | <h3>Vorhandene Rohstoffe</h3> |
|---|
| 248 | 267 | <table class="noBorderX" style="width:90%; margin-left:auto; margin-right:auto"> |
|---|
| … | … | |
| 278 | 297 | <hr noshade="noshade" size="1" style="color:#cccccc" /> |
|---|
| 279 | 298 | <br /> |
|---|
| | 299 | <script type="text/javascript"> |
|---|
| | 300 | <!-- |
|---|
| | 301 | //<![CDATA[ |
|---|
| | 302 | function highlightRow(row, highlight) { |
|---|
| | 303 | if( highlight ) { |
|---|
| | 304 | row.style.backgroundColor = '#36413A'; |
|---|
| | 305 | } |
|---|
| | 306 | else { |
|---|
| | 307 | row.style.backgroundColor = 'transparent'; |
|---|
| | 308 | } |
|---|
| | 309 | } |
|---|
| | 310 | //]]> |
|---|
| | 311 | --> |
|---|
| | 312 | </script> |
|---|
| 280 | 313 | {if werftgui.main.build} |
|---|
| 281 | | <script type="text/javascript"> |
|---|
| 282 | | <!-- |
|---|
| 283 | | //<![CDATA[ |
|---|
| 284 | | function highlightRow(row, highlight) { |
|---|
| 285 | | if( highlight ) { |
|---|
| 286 | | row.style.backgroundColor = '#36413A'; |
|---|
| 287 | | } |
|---|
| 288 | | else { |
|---|
| 289 | | row.style.backgroundColor = 'transparent'; |
|---|
| 290 | | } |
|---|
| 291 | | } |
|---|
| 292 | | //]]> |
|---|
| 293 | | --> |
|---|
| 294 | | </script> |
|---|
| 295 | 314 | {if werftgui.buildshiplist} |
|---|
| 296 | 315 | <div style="height:400px; overflow:auto;"> |
|---|
| … | … | |
| 383 | 402 | </td> |
|---|
| 384 | 403 | <td class="noBorderX"> |
|---|
| 385 | | Fertigstellung in: <img vertical-align="middle" src="{URL}data/interface/time.gif" alt="Dauer" title="Dauer" />{queueship.remainingtotal} |
|---|
| | 404 | Fertigstellung in: <img vertical-align="middle" src="{URL}data/interface/time.gif" alt="Dauer" title="Dauer" />{queueship.remainingtotal}<br /> |
|---|
| | 405 | Benötigte Slots: <img vertical-align="middle" src="{URL}data/interface/schiffinfo/werftslots.png" alt="Werftslots" title="Werftslots" />{queueship.slots} |
|---|
| 386 | 406 | {if queueship.reqitem} |
|---|
| 387 | 407 | <br />Benötigt: <img style="vertical-align:middle" src="{URL}data/items/{queueship.item.picture}" alt="{queueship.item.name}" />{queueship.item.name} |
|---|