Steemnova bugfixing pack (Marketplace + wrong page)
utopian-io·@dotevo·
0.000 HBDSteemnova bugfixing pack (Marketplace + wrong page)
### Bug Fixes #### Requested resource can be empty Description: [Utopian](https://utopian.io/utopian-io/@thewizard.studio/error-occurs-when-purchasing-a-free-transaction-from-marketplace) I've added additional checking: ``` php diff --git a/includes/pages/game/ShowFleetStep3Page.class.php b/includes/pages/game/ShowFleetStep3Page.class.php index affa8cd..60e1a46 100644 --- a/includes/pages/game/ShowFleetStep3Page.class.php +++ b/includes/pages/game/ShowFleetStep3Page.class.php @@ -96,6 +96,14 @@ class ShowFleetStep3Page extends AbstractGamePage ))); } + if ($targetMission == 16 && $WantedResourceAmount < 1) + { + $this->printMessage($LNG['fl_no_noresource'], array(array( + 'label' => $LNG['sys_back'], + 'url' => 'game.php?page=fleet2' + ))); + } + ``` #### Wrong time for fleet return Description: When you click the return from planet where fleet is standing the return time is equal fly time + on_hold status. So If the offer is on the market 10h fleet return time will be to long (+ 10hours). Fix is changing the type of return time calculation. ``` php diff --git a/includes/classes/class.FleetFunctions.php b/includes/classes/class.FleetFunctions.php index 1d72ed3..b57fa8e 100644 --- a/includes/classes/class.FleetFunctions.php +++ b/includes/classes/class.FleetFunctions.php @@ -365,7 +365,7 @@ class FleetFunctions } } - if($fleetResult['fleet_mission'] == 5 && $fleetResult['fleet_mess'] == FLEET_HOLD) { + if(($fleetResult['fleet_mission'] == 5 || $fleetResult['fleet_mission'] == 16) && $fleetResult['fleet_mess'] == FLEET_HOLD) { $fleetEndTime = ($fleetResult['fleet_start_time'] - $fleetResult['start_time']) + TIMESTAMP; }else{ $fleetEndTime = (TIMESTAMP - $fleetResult['start_time']) + TIMESTAMP; ``` #### Return button is not working for transport after trading Description: When you click to "return" button nothing happens. Solution. Work as designed because you should not have possibility to return the fleet in this case. But button should be removed. I've added the field to template ``` php @@ -230,11 +230,12 @@ class ShowFleetTablePage extends AbstractGamePage { $returnTime = $fleetsRow['fleet_end_time']; } - + $FlyingFleetList[] = array( 'id' => $fleetsRow['fleet_id'], 'mission' => $fleetsRow['fleet_mission'], 'state' => $fleetsRow['fleet_mess'], + 'no_returnable' => $fleetsRow['fleet_no_m_return'], 'startGalaxy' => $fleetsRow['fleet_start_galaxy'], 'startSystem' => $fleetsRow['fleet_start_system'], 'startPlanet' => $fleetsRow['fleet_start_planet'], @@ -249,21 +250,21 @@ class ShowFleetTablePage extends AbstractGamePage 'FleetList' => $FleetList[$fleetsRow['fleet_id']], ); ``` And conditional in template ``` php --- a/styles/templates/game/page.fleetTable.default.tpl +++ b/styles/templates/game/page.fleetTable.default.tpl @@ -39,7 +39,7 @@ {/if} <td id="fleettime_{$smarty.foreach.FlyingFleets.iteration}" class="fleets" data-fleet-end-time="{$FlyingFleetRow.returntime}" data-fleet-time="{$FlyingFleetRow.resttime}">{pretty_fly_time({$FlyingFleetRow.resttime})}</td> <td> - {if !$isVacation && $FlyingFleetRow.state != 1} + {if !$isVacation && $FlyingFleetRow.state != 1 && $FlyingFleetRow.no_returnable != 1}^M <form action="game.php?page=fleetTable&action=sendfleetback" method="post"> <input name="fleetID" value="{$FlyingFleetRow.id}" type="hidden"> <input value="{$LNG.fl_send_back}" type="submit"> @@ -115,7 +115,7 @@ {if $maxFleetSlots != $activeFleetSlots} <tr style="height:20px;"><td colspan="4"><input type="submit" value="{$LNG.fl_continue}"></td> {/if} ``` #### Market is ugly  @mys projected the new UI and I've implemented it  ``` html <table style="width:50%"> <tr> - <th colspan="2"> - Options + <th colspan="2" class="center"> + {$LNG.market_info_header} </th> </tr> + <tr> + <td colspan="2"> + {$LNG.market_info_description} + </td> + </tr> <tr> <td> - Ship type as first: + {$LNG.market_ship_as_first} </td> <td> <select id="shipT"> @@ -37,18 +42,34 @@ {/if} <table id="tradeList" style="width:50%;white-space: nowrap;" class="tablesorter"> <thead> + <tr class="no-background no-border center"> + <th></th> + <th></th> + <th><img src="./styles/theme/nova/images/metal.gif"/></th> + <th><img src="./styles/theme/nova/images/crystal.gif"/></th> + <th><img src="./styles/theme/nova/images/deuterium.gif"/></th> + <th></th> + <th></th> + <th></th> + <th></th> + <th></th> + <th class="LC" style="display: none;"></th> + <th class="HC"></th> + <th></th> + </tr> <tr> <th>ID</th> <th>{$LNG['gl_player']}</th> <th>{$LNG['tech'][901]}</th> <th>{$LNG['tech'][902]}</th> <th>{$LNG['tech'][903]}</th> <th>{$LNG.market_p_total}</th> + <th>{$LNG.market_p_end}</th> + <th class="no-background no-border center">-></th> <th>{$LNG.market_p_cost_type}</th> <th>{$LNG.market_p_cost_amount}</th> - <th>{$LNG.market_p_end}</th> <th>{$LNG.market_p_from_duration}</th> - <th class="LC">{$LNG.market_p_to_duration}</th> + <th class="LC" style="display: none;">{$LNG.market_p_to_duration}</th> <th class="HC">{$LNG.market_p_to_duration}</th> <th>{$LNG.market_p_buy}</th> </tr> @@ -59,15 +80,24 @@ <tr> <td>{$smarty.foreach.FlyingFleets.iteration}</td> <td>{$FlyingFleetRow.username}</td> - <td>{$FlyingFleetRow.fleet_resource_metal}</td> - <td>{$FlyingFleetRow.fleet_resource_crystal}</td> - <td>{$FlyingFleetRow.fleet_resource_deuterium}</td> - <td>{$FlyingFleetRow.total}</td> - <td>{$FlyingFleetRow.fleet_wanted_resource}</td> - <td>{$FlyingFleetRow.fleet_wanted_resource_amount}</td> + <td class="resource_metal">{$FlyingFleetRow.fleet_resource_metal|number}</td> + <td class="resource_crystal">{$FlyingFleetRow.fleet_resource_crystal|number}</td> + <td class="resource_deuterium">{$FlyingFleetRow.fleet_resource_deuterium|number}</td> + <td>{$FlyingFleetRow.total|number}</td> <td data-time="{$FlyingFleetRow.end}">{pretty_fly_time({$FlyingFleetRow.end})}</td> + <td class="no-background no-border"> + {if $FlyingFleetRow.fleet_wanted_resource_id == 1} + <img src="./styles/theme/nova/images/metal.gif"/> + {elseif $FlyingFleetRow.fleet_wanted_resource_id == 2} + <img src="./styles/theme/nova/images/crystal.gif"/> + {elseif $FlyingFleetRow.fleet_wanted_resource_id == 3} + <img src="./styles/theme/nova/images/deuterium.gif"/> + {/if} + </td> + <td class="wanted-resource-{$FlyingFleetRow.fleet_wanted_resource_id}">{$FlyingFleetRow.fleet_wanted_resource}</td> + <td class="wanted-resource-amount">{$FlyingFleetRow.fleet_wanted_resource_amount|number}</td> <td>{pretty_fly_time({$FlyingFleetRow.from_duration})}</td> - <td class="LC">{pretty_fly_time({$FlyingFleetRow.to_lc_duration})}</td> + <td class="LC" style="display: none;">{pretty_fly_time({$FlyingFleetRow.to_lc_duration})}</td> <td class="HC">{pretty_fly_time({$FlyingFleetRow.to_hc_duration})}</td> <td><form class="market_form" action="game.php?page=marketPlace&action=buy" method="post"> <input name="fleetID" value="{$FlyingFleetRow.id}" type="hidden"> @@ -102,7 +132,7 @@ $('#shipT').on('change', function (e) { $('#shipT').trigger("change"); $(".market_form").submit( function() { - var c = confirm("Are you sure?"); + var c = confirm({$LNG.market_confirm_are_you_sure}); if (c) { $(this).append('<input type="hidden" name="shipType" value="' + $("#shipT").val() + '">') } ``` Part of the https://github.com/steemnova/steemnova/pull/59/files #### Fleet menu: Wrong transport mission bug https://utopian.io/utopian-io/@barbarossastudio/fleet-menu-wrong-transport-mission-bug I've fixed typos in the page names. ``` php $this->printMessage($LNG['fl_error_same_planet'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } @@ -84,15 +84,23 @@ public function show() ($targetType !== 1 && $targetType !== 2 && $targetType !== 3)) { $this->printMessage($LNG['fl_invalid_target'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } if (($targetMission == 3 || $targetMission == 16)&& $TransportMetal + $TransportCrystal + $TransportDeuterium < 1) { $this->printMessage($LNG['fl_no_noresource'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet2' + 'url' => 'game.php?page=fleetStep2' + ))); + } + + if ($targetMission == 16 && $WantedResourceAmount < 1) + { + $this->printMessage($LNG['fl_no_noresource_exchange'], array(array( + 'label' => $LNG['sys_back'], + 'url' => 'game.php?page=fleetStep2' ))); } @@ -139,14 +147,14 @@ public function show() if (!empty($targetPlanetData)) { $this->printMessage($LNG['fl_target_exists'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } if ($targetType != 1) { $this->printMessage($LNG['fl_only_planets_colonizable'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } } @@ -160,14 +168,14 @@ public function show() if ($targetPlanetData["destruyed"] != 0) { $this->printMessage($LNG['fl_no_target'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } if (empty($targetPlanetData)) { $this->printMessage($LNG['fl_no_target'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } } @@ -238,7 +246,7 @@ public function show() { $this->printMessage($LNG['fl_empty_target'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } @@ -255,14 +263,14 @@ public function show() if (!in_array($targetMission, $availableMissions['MissionSelector'])) { $this->printMessage($LNG['fl_invalid_mission'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet2' + 'url' => 'game.php?page=fleetStep2' ))); } if ($targetMission != 8 && IsVacationMode($targetPlayerData)) { $this->printMessage($LNG['fl_target_exists'], array(array( 'label' => $LNG['sys_back'], - 'url' => 'game.php?page=fleet1' + 'url' => 'game.php?page=fleetStep1' ))); } ``` Part of the https://github.com/steemnova/steemnova/pull/59/files #### Translation fallback to en Many languages do not have all strings translated. Instead of english text you can see IDs  I've added including the en files before the selected. ``` php public function includeData($files) { // Fixed BOM problems. ob_start(); $LNG = array(); + //FALLBACK + $path = 'language/en/'; + foreach($files as $file) { + $filePath = $path.$file.'.php'; + if(file_exists($filePath)) + { + require $filePath; + } + } + + //LANGUAGE $path = 'language/'.$this->getLanguage().'/'; ``` https://github.com/steemnova/steemnova/pull/61/files <br /><hr/><em>Posted on <a href="https://utopian.io/utopian-io/@dotevo/steemnova-bugfixing-pack-marketplace-wrong-page">Utopian.io - Rewarding Open Source Contributors</a></em><hr/>
👍 edgarguaicara, steemnova, mys, cifer, supreme-verdict, chaostheory, mysticalword, skybreaker, alphacore, butterfly-effect, mirrorforce, paradoxofchoice, betacore, love-me, omegacore, superdavey, retrocausality, anof, monster-reborn, chain-reaction, hendragunawan, megalithic, thegrandestine, lilith, audiosiren, the-reaper, ibez, kittenpics, anadolu, sorucevap, emrebeyler, playfull, loshcat, greenorange, jaff8, faisalali734, yuxid, desteemy, ycct, grzesiekb, mwfiae, iqbaladan, azwarrangkuti, utopian-io, lrbitcoinguy, noufelk, sanya23, flameexplosion, joseda32, amigoponc, yusledaya, coolcaps, munzir588, rofilm, qadri.mag, serendip, wcw15wce, anatasya, ajlight, potplucker, raybox, atreyuserver, yasayanoluler, ipman62, darthgexe, charleswealth, skeleman420, dovetail, spbid, tucuxi, neemanbhat, steemwart, highmech, agcoeficiente10, janna.bright, everrich, reyha, ryacha21, mrbearbear, claudiop63, bikergirl, ubik, jiafui, gurmax, katteasis, passive, cnsteem, mobique, binnaclecripto, fifcior,