PageRenderTime 55ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/nacridan/conquest/inbuilding/cqshop.inc.php

https://gitlab.com/nacridan/Nacridan
PHP | 263 lines | 233 code | 18 blank | 12 comment | 7 complexity | 44da53cfa3a70a976e25647a7b3a3449 MD5 | raw file
  1. <?php
  2. /**
  3. *Définit la classe CQHostel
  4. *
  5. * La <b>fonction toString</b> affiche la partie du menu qui gère <b>l'auberge</b>.
  6. *
  7. *
  8. *@author Aé Li
  9. *@version 1.1
  10. *@package NacridanV1
  11. *@subpackage Conquest
  12. */
  13. require_once (HOMEPATH . "/factory/EquipFactory.inc.php");
  14. require_once (HOMEPATH . "/factory/CityFactory.inc.php");
  15. class CQShop extends HTMLObject
  16. {
  17. public $db;
  18. public $curplayer;
  19. public $nacridan;
  20. public $err;
  21. public function CQShop($nacridan, $db)
  22. {
  23. $this->db = $db;
  24. $this->nacridan = $nacridan;
  25. $this->curplayer = $this->nacridan->loadCurSessPlayer($db);
  26. $this->err = "";
  27. }
  28. public function toString()
  29. {
  30. $curplayer = $this->curplayer;
  31. $db = $this->db;
  32. $id = $curplayer->get("id");
  33. $str = "";
  34. $str .= "<table class='maintable insidebuildingleftwidth'>\n";
  35. $str .= "<tr>\n";
  36. $str .= "<td class='mainbgtitle'><b>" . localize('B O U T I Q U E') . "</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \n";
  37. $str .= "</td>\n";
  38. $str .= "</tr>\n";
  39. if (isset($_GET["type"]))
  40. $type = quote_smart($_GET["type"]);
  41. elseif (isset($_POST["type"]))
  42. $type = $_POST["type"];
  43. else
  44. $type = 1;
  45. if (isset($_POST["Buy"]) && isset($_POST["idequip"])) {
  46. require_once (HOMEPATH . "/factory/PlayerFactory.inc.php");
  47. $dbe = new DBCollection("SELECT id,id_EquipmentType, name,extraname FROM Equipment WHERE id=" . quote_smart($_POST["idequip"]), $db);
  48. // $dbpe=new DBCollection("SELECT id FROM Equipment WHERE id_Equipment\$bag=0 AND state='Carried' AND weared='No' AND id_Player=".$id,$db);
  49. if ($curplayer->get("money") < EquipFactory::getPriceEquipment($dbe->get("id"), $db))
  50. $str .= "<tr><td class='mainbgtitle'> Vous n'avez pas assez d'or pour acheter cet objet.</td></tr>";
  51. elseif (PlayerFactory::checkingInvFullForObject($curplayer, $dbe->get("id_EquipmentType"), $param, $db) == - 1)
  52. $str .= "<tr><td class='mainbgtitle'> Vous n'avez pas assez de place dans vos sacs.</td></tr>";
  53. else {
  54. $price = EquipFactory::getPriceEquipment($dbe->get("id"), $db);
  55. $price += floor(
  56. EquipFactory::getPriceEquipment($dbe->get("id"), $db) * (CityFactory::getBuildingActionProfit($curplayer->get("inbuilding"), MAIN_SHOP_BUY, $db) - 10) / 100);
  57. $str .= "<form name='form' method='POST' action='" . CONFIG_HOST . "/conquest/conquest.php?action=act" . "' target='_self'>";
  58. $str .= "<table class='maintable insidebuildingleftwidth' >\n";
  59. $str .= "<tr><td class='mainbglabel'>Vous allez acheter un(e) <b> " . $dbe->get("name") . " " . $dbe->get("extraname") . " </b>pour " . $price . " PO.";
  60. $str .= "<input id='submitbt' type='submit' name='submitbt' value='Continuer' /> </td></tr>";
  61. $str .= "<input name='action' type='hidden' value='" . MAIN_SHOP_BUY . "' />";
  62. $str .= "<input name='ID_EQUIP' type='hidden' value='" . $dbe->get("id") . "' />";
  63. $str .= "<input name='type' type='hidden' value='" . $type . "' />";
  64. $str .= "<input name='idform' type='hidden' value='" . getCurrentPageId() . "' />\n";
  65. $str .= "</table></form>";
  66. }
  67. } else {
  68. // Affichage des objets en vente
  69. switch ($type) {
  70. case 1:
  71. $cond = "(EquipmentType.id<8 OR EquipmentType.id in (28,21,22))";
  72. break;
  73. case 2:
  74. $cond = "(EquipmentType.id>7 AND EquipmentType.id<28 AND EquipmentType.id not in (21,22))";
  75. break;
  76. case 3:
  77. $cond = "(EquipmentType.id>39)";
  78. break;
  79. case 4:
  80. $cond = "(EquipmentType.id=29)";
  81. break;
  82. case 5:
  83. $cond = "(EquipmentType.id=30 OR EquipmentType.id=31 OR EquipmentType.id=32)";
  84. break;
  85. }
  86. $eq = new Equipment();
  87. $eqmodifier = new Modifier();
  88. $template = new Template();
  89. $tmodifier = new Modifier();
  90. $mission = new Mission();
  91. $dbe = new DBCollection(
  92. "SELECT " . $eq->getASRenamer("Equipment", "EQ") . "," . $eqmodifier->getASRenamer("Modifier_BasicEquipment", "EQM") . "," .
  93. $mission->getASRenamer("Mission", "MISS") .
  94. ",mask,wearable,frequency,BasicEquipment.durability AS dur FROM Equipment LEFT JOIN BasicEquipment ON Equipment.id_BasicEquipment=BasicEquipment.id LEFT JOIN Modifier_BasicEquipment ON id_Modifier_BasicEquipment=Modifier_BasicEquipment.id LEFT JOIN EquipmentType ON Equipment.id_EquipmentType=EquipmentType.id LEFT JOIN Mission ON Equipment.id_Mission=Mission.id WHERE " .
  95. $cond . " AND id_Shop=" . $curplayer->get("inbuilding") . " order by EQname", $db);
  96. $array = array();
  97. while (! $dbe->eof()) {
  98. $eq->DBLoad($dbe, "EQ");
  99. if ($dbe->get("EQMid") != 0) {
  100. $eqmodifier->DBLoad($dbe, "EQM");
  101. $eqmodifier->updateFromEquipmentLevel($eq->get("level"));
  102. $checkbox = "<input type='radio' name='idequip' value='" . $eq->get("id") . "'>";
  103. $name = "<b><span class='" . ($eq->get("maudit") == 1 ? "maudit" : "") . "'>" . localize($eq->get("name")) . "</span></b>";
  104. if ($eq->get("extraname") != "") {
  105. $i = 0;
  106. $tmodifier = new Modifier();
  107. $template = new Template();
  108. $dbt = new DBCollection(
  109. "SELECT BasicTemplate.name AS name1, BasicTemplate.name2 as name2, " . $template->getASRenamer("Template", "TP") . "," .
  110. $tmodifier->getASRenamer("Modifier_BasicTemplate", "MD") .
  111. " FROM Template LEFT JOIN BasicTemplate ON BasicTemplate.id=Template.id_BasicTemplate LEFT JOIN Modifier_BasicTemplate ON BasicTemplate.id_Modifier_BasicTemplate=Modifier_BasicTemplate.id WHERE id_Equipment=" .
  112. $eq->get("id") . " order by Template.pos asc", $db);
  113. while (! $dbt->eof()) {
  114. $i ++;
  115. $template->DBLoad($dbt, "TP");
  116. $tmodifier->DBLoad($dbt, "MD");
  117. $tmodifier->updateFromTemplateLevel($template->get("level"));
  118. $eqmodifier->addModifObj($tmodifier);
  119. if ($i == 1)
  120. $extraname = $dbt->get("name1") . "(" . $template->get("level") . ") ";
  121. if ($i == 2)
  122. $extraname .= $dbt->get("name2") . "(" . $template->get("level") . ")";
  123. $dbt->next();
  124. }
  125. $name .= " " . "<span class='template'>" . $extraname . "</span>";
  126. }
  127. $eqmodifier->initCharacStr();
  128. }
  129. $name .= "<br/>";
  130. $name .= localize("Niveau") . " " . $eq->get("level") . " (" . $eq->get("id") . ") <br/>";
  131. // Affichages des bonus de caractéristique pour les équipements
  132. if ($eq->get("id_EquipmentType") < 30) {
  133. $modstr = "";
  134. foreach ($eqmodifier->m_characLabel as $key) {
  135. $tmp = $eqmodifier->getModifStr($key);
  136. if ($tmp != "0")
  137. $modstr .= translateAttShort($key) . " : " . $tmp . " | ";
  138. }
  139. $name .= "(" . substr($modstr, 0, - 3) . ")";
  140. }
  141. $price = EquipFactory::getPriceEquipment($eq->get("id"), $db);
  142. $price += floor(
  143. EquipFactory::getPriceEquipment($eq->get("id"), $db) * (CityFactory::getBuildingActionProfit($curplayer->get("inbuilding"), MAIN_SHOP_BUY, $db) - 10) / 100);
  144. $array[] = array(
  145. "0" => array(
  146. $checkbox,
  147. "class='mainbgbody' align='center'"
  148. ),
  149. "1" => array(
  150. $name,
  151. "class='mainbgbody' align='left'"
  152. ),
  153. "2" => array(
  154. $price,
  155. "class='mainbgbody' align='right'"
  156. )
  157. );
  158. $dbe->next();
  159. }
  160. // ------------- Affichage -------------------
  161. $target = "/conquest/conquest.php?center=view2d&type=" . $type;
  162. $str .= "<form id='formid' name='form' method='POST' action='" . CONFIG_HOST . $target . "' target='_self'>\n";
  163. $str .= "<tr>\n";
  164. $str .= "<td class='mainbgtitle'>\n";
  165. $str .= "Nous rappelons à notre aimable clientèle que les listes de ventes privées de tous les aventuriers de l'île sont affichées dans toutes les auberges.";
  166. $str .= "</td>\n";
  167. $str .= "</tr>\n";
  168. $str .= "<tr>\n";
  169. $str .= "<td class='mainbgtitle'>\n";
  170. $str .= "<a href='../conquest/conquest.php?center=view2d&type=1' class='tabmenu'>" . localize('Armes') . "</a> |\n";
  171. $str .= "<a href='../conquest/conquest.php?center=view2d&type=2' class='tabmenu'>" . localize('Armures') . "</a> |\n";
  172. $str .= "<a href='../conquest/conquest.php?center=view2d&type=3' class='tabmenu'>" . localize('Outils') . "</a> |\n";
  173. $str .= "<a href='../conquest/conquest.php?center=view2d&type=4' class='tabmenu'>" . localize('Potions') . "</a> |\n";
  174. $str .= "<a href='../conquest/conquest.php?center=view2d&type=5' class='tabmenu'>" . localize('Matières Premières') . "</a> \n";
  175. $str .= "</td>\n";
  176. $str .= "</tr>\n";
  177. $str .= "<tr><td class='mainbgtitle'>\n";
  178. switch ($type) {
  179. case 1:
  180. $str .= localize("Les Armes ");
  181. break;
  182. case 2:
  183. $str .= localize("Les Armures ");
  184. break;
  185. case 3:
  186. $str .= localize("Les Outils ");
  187. break;
  188. case 4:
  189. $str .= localize("Objets Divers ");
  190. break;
  191. case 5:
  192. $str .= localize("Matières Premières");
  193. break;
  194. }
  195. $str .= "</td>\n";
  196. $str .= "</tr>\n";
  197. $str .= createTable(3, $array, array(),
  198. array(
  199. array(
  200. "",
  201. "class='mainbglabel' width='5%' align='center'"
  202. ),
  203. array(
  204. localize("Nom et caractéristiques"),
  205. "class='mainbglabel' width='60%' align='left'",
  206. "EQ.name",
  207. "mainbglabelhover",
  208. "mainbglabel"
  209. ),
  210. array(
  211. localize("Prix"),
  212. "class='mainbglabel' width='15%' align='right'",
  213. "price",
  214. "mainbglabelhover",
  215. "mainbglabel"
  216. )
  217. ), "class='maintable insidebuildingleftwidth'", "formid", "order");
  218. $str .= "<tr><td class='mainbgtitle'><input id='Buy' type='submit' name='Buy' value='" . localize("Acheter") . "' /></td></tr>";
  219. $str .= "<input name='idform' type='hidden' value='" . getCurrentPageId() . "' />\n";
  220. $str .= "</form>\n";
  221. }
  222. $str .= "</table>\n";
  223. return $str;
  224. }
  225. }
  226. ?>