K_Area.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. <?php
  2. /**
  3. * Area type entity file.
  4. *
  5. * Creates the entity and makes it available.
  6. *
  7. * @category Entity
  8. */
  9. /**
  10. * Require dependent entities if not present.
  11. */
  12. require_once(PATH::ENTITY . "Entity.php");
  13. /**
  14. * An area.
  15. *
  16. * Represents an object from the table 'k_area'.
  17. *
  18. * @category Entity
  19. */
  20. class K_Area extends Entity{
  21. /**
  22. * @var int Area identifier (it may not be unique!).
  23. */
  24. public $id;
  25. /**
  26. * @var int Area type.
  27. */
  28. public $type;
  29. /**
  30. * @var string Area name.
  31. */
  32. public $name;
  33. /**
  34. * Constructor.
  35. *
  36. * Searches the database and retrieves the information about the
  37. * run, populating it and it's items.
  38. *
  39. * @param int $id Area identifier.
  40. * @param int $type Area type (required).
  41. * @global resource Database connection.
  42. */
  43. public function __construct($id, $type){
  44. global $db;
  45. $this->id = $id;
  46. $this->type = $type;
  47. $s = "
  48. SELECT
  49. id,
  50. type,
  51. name
  52. FROM k_area
  53. WHERE
  54. id = '$id' AND
  55. type = '$type'
  56. ORDER BY type = '$type' DESC;
  57. ";
  58. $q = $db->query($s);
  59. $r = $q->fetchArray(SQLITE3_ASSOC);
  60. if ($r){
  61. $this->name = HTML::e($r["name"]);
  62. }
  63. elseif($this->id > 1000){
  64. $this->type = AREA_TYPE_ID::CAIROS_DUNGEON;
  65. $this->name = "Hall of Heroes";
  66. }
  67. }
  68. /**
  69. * Gets the path to the area image. The image must be in the
  70. * img/area/ directory, and its name must be the area type id,
  71. * padded with '0' to 9 digites, and the extension must be '.png'.
  72. *
  73. * @param string $stage Stage number, for a better image in Cairos.
  74. * @return string Image URL, or a fixed unknown image.
  75. */
  76. public function get_image($stage = null){
  77. if ($this->id > 10000){
  78. // Hall of Heroes
  79. return APPLICATION::img("AREA", "HOH");
  80. }
  81. elseif (
  82. $this->type == AREA_TYPE_ID::SCENARIO ||
  83. $this->type == AREA_TYPE_ID::ARENA ||
  84. $this->type == AREA_TYPE_ID::GUILD_WAR ||
  85. $this->type == AREA_TYPE_ID::GUILD_SIEGE ||
  86. $this->type == AREA_TYPE_ID::WORLD_BOSS ||
  87. $this->type == AREA_TYPE_ID::DIMENSIONAL_RIFT
  88. ){
  89. return APPLICATION::img("AREA", $this->id);
  90. }
  91. elseif ($this->type == AREA_TYPE_ID::CAIROS_DUNGEON && APPLICATION::valid_id("DUNGEON_ID", $this->id)){
  92. switch ($this->id){
  93. case DUNGEON_ID::GIANTS_KEEP:
  94. return APPLICATION::img("UNIT", 60201);
  95. break;
  96. case DUNGEON_ID::DRAGONS_LAIR:
  97. return APPLICATION::img("UNIT", 60302);
  98. break;
  99. case DUNGEON_ID::NECROPOLIS:
  100. return APPLICATION::img("UNIT", 62105);
  101. break;
  102. case DUNGEON_ID::STEEL_FORTRESS:
  103. return APPLICATION::img("UNIT", 62105); // TODO: Correct image.
  104. break;
  105. case DUNGEON_ID::PUNISHERS_CRYPT:
  106. return APPLICATION::img("UNIT", 62105); // TODO: Correct image.
  107. break;
  108. case DUNGEON_ID::HALL_OF_WATER:
  109. return APPLICATION::img("UNIT", 60101);
  110. break;
  111. case DUNGEON_ID::HALL_OF_FIRE:
  112. return APPLICATION::img("UNIT", 60102);
  113. break;
  114. case DUNGEON_ID::HALL_OF_WIND:
  115. return APPLICATION::img("UNIT", 60103);
  116. break;
  117. case DUNGEON_ID::HALL_OF_LIGHT:
  118. return APPLICATION::img("UNIT", 60104);
  119. break;
  120. case DUNGEON_ID::HALL_OF_DARK:
  121. return APPLICATION::img("UNIT", 60105);
  122. break;
  123. case DUNGEON_ID::HALL_OF_MAGIC:
  124. return APPLICATION::img("UNIT", 62004);
  125. break;
  126. default:
  127. return APPLICATION::img("AREA", $this->id);
  128. }
  129. }
  130. elseif ($this->type == AREA_TYPE_ID::RIFT_DUNGEON && APPLICATION::valid_id("ELEMENTAL_RIFT_DUNGEON_ID", $this->id)){
  131. switch ($this->id){
  132. case ELEMENTAL_RIFT_DUNGEON_ID::ICE_BEAST:
  133. return APPLICATION::img("UNIT", 43001);
  134. break;
  135. case ELEMENTAL_RIFT_DUNGEON_ID::FIRE_BEAST:
  136. return APPLICATION::img("UNIT", 43002);
  137. break;
  138. case ELEMENTAL_RIFT_DUNGEON_ID::WIND_BEAST:
  139. return APPLICATION::img("UNIT", 43003);
  140. break;
  141. case ELEMENTAL_RIFT_DUNGEON_ID::LIGHT_BEAST:
  142. return APPLICATION::img("UNIT", 43004);
  143. break;
  144. case ELEMENTAL_RIFT_DUNGEON_ID::DARK_BEAST:
  145. return APPLICATION::img("UNIT", 43005);
  146. break;
  147. default:
  148. return APPLICATION::img("AREA", $this->id);
  149. break;
  150. }
  151. }
  152. elseif ($this->type == AREA_TYPE_ID::RIFT_RAID){
  153. return APPLICATION::img("UNIT", 44007);
  154. }
  155. elseif ($this->type == AREA_TYPE_ID::DIMENSIONAL_HOLE){
  156. switch ($this->id){
  157. case DUNGEON_ID::FOREST_OF_ROARING_BEASTS:
  158. return APPLICATION::img("UNIT", 47002);
  159. break;
  160. case DUNGEON_ID::SANCTUARY_OF_DREAMING_FAIRIES:
  161. return APPLICATION::img("UNIT", 47001);
  162. break;
  163. case DUNGEON_ID::CLIFF_OF_TOUGH_BEASTS_MEN:
  164. return APPLICATION::img("UNIT", 47002);
  165. break;
  166. case DUNGEON_ID::KARZHAN_REMAINS_WARBEAR:
  167. switch ($stage){
  168. case 1:
  169. return APPLICATION::img("UNIT", 10734);
  170. break;
  171. case 2:
  172. return APPLICATION::img("UNIT", 10733);
  173. break;
  174. case 3:
  175. return APPLICATION::img("UNIT", 10731);
  176. break;
  177. case 4:
  178. return APPLICATION::img("UNIT", 10735);
  179. break;
  180. case 5:
  181. return APPLICATION::img("UNIT", 10732);
  182. break;
  183. default:
  184. return APPLICATION::img("AREA", $this->id);
  185. break;
  186. }
  187. break;
  188. case DUNGEON_ID::KARZHAN_REMAINS_INUGAMI:
  189. switch ($stage){
  190. case 1:
  191. return APPLICATION::img("UNIT", 11031);
  192. break;
  193. case 2:
  194. return APPLICATION::img("UNIT", 11033);
  195. break;
  196. case 3:
  197. return APPLICATION::img("UNIT", 11032);
  198. break;
  199. case 4:
  200. return APPLICATION::img("UNIT", 11034);
  201. break;
  202. case 5:
  203. return APPLICATION::img("UNIT", 11035);
  204. break;
  205. default:
  206. return APPLICATION::img("AREA", $this->id);
  207. break;
  208. }
  209. break;
  210. case DUNGEON_ID::ELLUNIA_REMAINS_FAIRY:
  211. switch ($stage){
  212. case 1:
  213. return APPLICATION::img("UNIT", 10132);
  214. break;
  215. case 2:
  216. return APPLICATION::img("UNIT", 10134);
  217. break;
  218. case 3:
  219. return APPLICATION::img("UNIT", 10131);
  220. break;
  221. case 4:
  222. return APPLICATION::img("UNIT", 10133);
  223. break;
  224. case 5:
  225. return APPLICATION::img("UNIT", 10134);
  226. break;
  227. default:
  228. return APPLICATION::img("AREA", $this->id);
  229. break;
  230. }
  231. break;
  232. case DUNGEON_ID::ELLUNIA_REMAINS_PIXIE:
  233. switch ($stage){
  234. case 1:
  235. return APPLICATION::img("UNIT", 10334);
  236. break;
  237. case 2:
  238. return APPLICATION::img("UNIT", 10332);
  239. break;
  240. case 3:
  241. return APPLICATION::img("UNIT", 10335);
  242. break;
  243. case 4:
  244. return APPLICATION::img("UNIT", 10333);
  245. break;
  246. case 5:
  247. return APPLICATION::img("UNIT", 10331);
  248. break;
  249. default:
  250. return APPLICATION::img("AREA", $this->id);
  251. break;
  252. }
  253. break;
  254. case DUNGEON_ID::LUMEL_REMAINS_WEREWOLF:
  255. switch ($stage){
  256. case 1:
  257. return APPLICATION::img("UNIT", 14035);
  258. break;
  259. case 2:
  260. return APPLICATION::img("UNIT", 14033);
  261. break;
  262. case 3:
  263. return APPLICATION::img("UNIT", 14031);
  264. break;
  265. case 4:
  266. return APPLICATION::img("UNIT", 14034);
  267. break;
  268. case 5:
  269. return APPLICATION::img("UNIT", 14032);
  270. break;
  271. default:
  272. return APPLICATION::img("AREA", $this->id);
  273. break;
  274. }
  275. break;
  276. case DUNGEON_ID::LUMEL_REMAINS_MARTIAL_CAT:
  277. switch ($stage){
  278. case 1:
  279. return APPLICATION::img("UNIT", 15032);
  280. break;
  281. case 2:
  282. return APPLICATION::img("UNIT", 15034);
  283. break;
  284. case 3:
  285. return APPLICATION::img("UNIT", 15031);
  286. break;
  287. case 4:
  288. return APPLICATION::img("UNIT", 15035);
  289. break;
  290. case 5:
  291. return APPLICATION::img("UNIT", 15033);
  292. break;
  293. default:
  294. return APPLICATION::img("AREA", $this->id);
  295. break;
  296. }
  297. break;
  298. default:
  299. return APPLICATION::img("AREA", $this->id);
  300. break;
  301. }
  302. }
  303. elseif ($this->type == AREA_TYPE_ID::TARTARUS_LABYRINTH){
  304. switch ($stage){
  305. case LABYRINTH_STAGES_ID::TARTARUS:
  306. return APPLICATION::img("UNIT", 46001);
  307. break;
  308. case LABYRINTH_STAGES_ID::LEOS:
  309. return APPLICATION::img("UNIT", 46101);
  310. break;
  311. case LABYRINTH_STAGES_ID::KOTTOS:
  312. return APPLICATION::img("UNIT", 46102);
  313. break;
  314. case LABYRINTH_STAGES_ID::AQUILES:
  315. return APPLICATION::img("UNIT", 46103);
  316. break;
  317. default:
  318. return APPLICATION::img("AREA", $this->id);
  319. }
  320. }
  321. elseif ($this->type == AREA_TYPE_ID::TRIAL_OF_ASCENSION){
  322. return APPLICATION::img("AREA", "TRIAL_OF_ASCENSION");
  323. }
  324. else{
  325. return APPLICATION::img("AREA", $this->id);
  326. }
  327. }
  328. }
  329. ?>