2
0

L2NpcAIData.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. /*
  2. * This program is free software; you can redistribute it and/or modify
  3. * it under the terms of the GNU General Public License as published by
  4. * the Free Software Foundation; either version 2, or (at your option)
  5. * any later version.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. *
  12. * You should have received a copy of the GNU General Public License
  13. * along with this program; if not, write to the Free Software
  14. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  15. * 02111-1307, USA.
  16. *
  17. * http://www.gnu.org/copyleft/gpl.html
  18. */
  19. package com.l2jserver.gameserver.model;
  20. import com.l2jserver.gameserver.templates.chars.L2NpcTemplate.AIType;
  21. import javolution.util.FastList;
  22. /**
  23. *
  24. *
  25. *
  26. * Author: ShanSoft
  27. * By L2JTW
  28. *
  29. *
  30. */
  31. // This Data is for NPC Attributes and AI relate stuffs...
  32. // Still need to finish...Update later...
  33. public class L2NpcAIData
  34. {
  35. //Basic AI
  36. private int _primary_attack;
  37. private int _skill_chance;
  38. private int _canMove;
  39. private int _soulshot;
  40. private int _spiritshot;
  41. private int _soulshotchance;
  42. private int _spiritshotchance;
  43. private int _ischaos;
  44. private String _clan;
  45. private int _clanRange;
  46. private String _enemyClan;
  47. private int _enemyRange;
  48. //private int _baseShldRate;
  49. //private int _baseShldDef;
  50. private int _dodge;
  51. private int _longrangeskill;
  52. private int _shortrangeskill;
  53. private int _longrangechance;
  54. private int _shortrangechance;
  55. private int _switchrangechance;
  56. private AIType _aiType = AIType.FIGHTER;
  57. //Skill AI
  58. public FastList<L2Skill> _buffskills;
  59. public FastList<L2Skill> _negativeskills;
  60. public FastList<L2Skill> _debuffskills;
  61. public FastList<L2Skill> _atkskills;
  62. public FastList<L2Skill> _rootskills;
  63. public FastList<L2Skill> _stunskills;
  64. public FastList<L2Skill> _sleepskills;
  65. public FastList<L2Skill> _paralyzeskills;
  66. public FastList<L2Skill> _fossilskills;
  67. public FastList<L2Skill> _floatskills;
  68. public FastList<L2Skill> _immobiliseskills;
  69. public FastList<L2Skill> _healskills;
  70. public FastList<L2Skill> _resskills;
  71. public FastList<L2Skill> _dotskills;
  72. public FastList<L2Skill> _cotskills;
  73. public FastList<L2Skill> _universalskills;
  74. public FastList<L2Skill> _manaskills;
  75. //--------------------------------------------------------------------------------------------------------------
  76. //Setting....
  77. //--------------------------------------------------------------------------------------------------------------
  78. public void setPrimaryAttack(int primaryattack)
  79. {
  80. _primary_attack = primaryattack;
  81. }
  82. public void setSkillChance(int skill_chance)
  83. {
  84. _skill_chance = skill_chance;
  85. }
  86. public void setCanMove(int canMove)
  87. {
  88. _canMove = canMove;
  89. }
  90. public void setSoulShot(int soulshot)
  91. {
  92. _soulshot = soulshot;
  93. }
  94. public void setSpiritShot(int spiritshot)
  95. {
  96. _spiritshot = spiritshot;
  97. }
  98. public void setSoulShotChance(int soulshotchance)
  99. {
  100. _soulshotchance = soulshotchance;
  101. }
  102. public void setSpiritShotChance(int spiritshotchance)
  103. {
  104. _spiritshotchance = spiritshotchance;
  105. }
  106. public void setShortRangeSkill(int shortrangeskill)
  107. {
  108. _shortrangeskill = shortrangeskill;
  109. }
  110. public void setShortRangeChance(int shortrangechance)
  111. {
  112. _shortrangechance = shortrangechance;
  113. }
  114. public void setLongRangeSkill(int longrangeskill)
  115. {
  116. _longrangeskill = longrangeskill;
  117. }
  118. public void setLongRangeChance(int longrangechance)
  119. {
  120. _shortrangechance = longrangechance;
  121. }
  122. public void setSwitchRangeChance(int switchrangechance)
  123. {
  124. _switchrangechance = switchrangechance;
  125. }
  126. public void setIsChaos(int ischaos)
  127. {
  128. _ischaos = ischaos;
  129. }
  130. public void setClan(String clan)
  131. {
  132. if (clan != null && !clan.equals("") && !clan.equalsIgnoreCase("null"))
  133. _clan = clan;
  134. }
  135. public void setClanRange(int clanRange)
  136. {
  137. _clanRange = clanRange;
  138. }
  139. public void setEnemyClan(String enemyClan)
  140. {
  141. if (enemyClan != null && !enemyClan.equals("") && !enemyClan.equalsIgnoreCase("null"))
  142. _enemyClan = enemyClan;
  143. }
  144. public void setEnemyRange(int enemyRange)
  145. {
  146. _enemyRange = enemyRange;
  147. }
  148. public void setDodge(int dodge)
  149. {
  150. _dodge = dodge;
  151. }
  152. public void setAi(String ai)
  153. {
  154. if (ai.equalsIgnoreCase("archer"))
  155. _aiType = AIType.ARCHER;
  156. else if (ai.equalsIgnoreCase("balanced"))
  157. _aiType = AIType.BALANCED;
  158. else if (ai.equalsIgnoreCase("mage"))
  159. _aiType = AIType.MAGE;
  160. else if (ai.equalsIgnoreCase("healer"))
  161. _aiType = AIType.HEALER;
  162. else if (ai.equalsIgnoreCase("corpse"))
  163. _aiType = AIType.CORPSE;
  164. else
  165. _aiType = AIType.FIGHTER;
  166. }
  167. /*
  168. public void setBaseShldRate (int baseShldRate)
  169. {
  170. _baseShldRate = baseShldRate;
  171. }
  172. public void setBaseShldDef (int baseShldDef)
  173. {
  174. _baseShldDef = baseShldDef;
  175. }
  176. */
  177. //--------------------------------------------------------------------------------------------------------------
  178. //Data Recall....
  179. //--------------------------------------------------------------------------------------------------------------
  180. public int getPrimaryAttack()
  181. {
  182. return _primary_attack;
  183. }
  184. public int getSkillChance()
  185. {
  186. return _skill_chance;
  187. }
  188. public int getCanMove()
  189. {
  190. return _canMove;
  191. }
  192. public int getSoulShot()
  193. {
  194. return _soulshot;
  195. }
  196. public int getSpiritShot()
  197. {
  198. return _spiritshot;
  199. }
  200. public int getSoulShotChance()
  201. {
  202. return _soulshotchance;
  203. }
  204. public int getSpiritShotChance()
  205. {
  206. return _spiritshotchance;
  207. }
  208. public int getShortRangeSkill()
  209. {
  210. return _shortrangeskill;
  211. }
  212. public int getShortRangeChance()
  213. {
  214. return _shortrangechance;
  215. }
  216. public int getLongRangeSkill()
  217. {
  218. return _longrangeskill;
  219. }
  220. public int getLongRangeChance()
  221. {
  222. return _longrangechance;
  223. }
  224. public int getSwitchRangeChance()
  225. {
  226. return _switchrangechance;
  227. }
  228. public int getIsChaos()
  229. {
  230. return _ischaos;
  231. }
  232. public String getClan()
  233. {
  234. return _clan;
  235. }
  236. public int getClanRange()
  237. {
  238. return _clanRange;
  239. }
  240. public String getEnemyClan()
  241. {
  242. return _enemyClan;
  243. }
  244. public int getEnemyRange()
  245. {
  246. return _enemyRange;
  247. }
  248. public int getDodge()
  249. {
  250. return _dodge;
  251. }
  252. public AIType getAiType()
  253. {
  254. return _aiType;
  255. }
  256. /*
  257. public int getBaseShldRate ()
  258. {
  259. return _baseShldRate;
  260. }
  261. public int getBaseShldDef ()
  262. {
  263. return _baseShldDef;
  264. }
  265. */
  266. public void addBuffSkill(L2Skill skill)
  267. {
  268. if (_buffskills == null)
  269. _buffskills = new FastList<L2Skill>();
  270. _buffskills.add(skill);
  271. }
  272. public void addHealSkill(L2Skill skill)
  273. {
  274. if (_healskills == null)
  275. _healskills = new FastList<L2Skill>();
  276. _healskills.add(skill);
  277. }
  278. public void addResSkill(L2Skill skill)
  279. {
  280. if (_resskills == null)
  281. _resskills = new FastList<L2Skill>();
  282. _resskills.add(skill);
  283. }
  284. public void addAtkSkill(L2Skill skill)
  285. {
  286. if (_atkskills == null)
  287. _atkskills = new FastList<L2Skill>();
  288. _atkskills.add(skill);
  289. }
  290. public void addDebuffSkill(L2Skill skill)
  291. {
  292. if (_debuffskills == null)
  293. _debuffskills = new FastList<L2Skill>();
  294. _debuffskills.add(skill);
  295. }
  296. public void addRootSkill(L2Skill skill)
  297. {
  298. if (_rootskills == null)
  299. _rootskills = new FastList<L2Skill>();
  300. _rootskills.add(skill);
  301. }
  302. public void addSleepSkill(L2Skill skill)
  303. {
  304. if (_sleepskills == null)
  305. _sleepskills = new FastList<L2Skill>();
  306. _sleepskills.add(skill);
  307. }
  308. public void addStunSkill(L2Skill skill)
  309. {
  310. if (_stunskills == null)
  311. _stunskills = new FastList<L2Skill>();
  312. _stunskills.add(skill);
  313. }
  314. public void addParalyzeSkill(L2Skill skill)
  315. {
  316. if (_paralyzeskills == null)
  317. _paralyzeskills = new FastList<L2Skill>();
  318. _paralyzeskills.add(skill);
  319. }
  320. public void addFloatSkill(L2Skill skill)
  321. {
  322. if (_floatskills == null)
  323. _floatskills = new FastList<L2Skill>();
  324. _floatskills.add(skill);
  325. }
  326. public void addFossilSkill(L2Skill skill)
  327. {
  328. if (_fossilskills == null)
  329. _fossilskills = new FastList<L2Skill>();
  330. _fossilskills.add(skill);
  331. }
  332. public void addNegativeSkill(L2Skill skill)
  333. {
  334. if (_negativeskills == null)
  335. _negativeskills = new FastList<L2Skill>();
  336. _negativeskills.add(skill);
  337. }
  338. public void addImmobiliseSkill(L2Skill skill)
  339. {
  340. if (_immobiliseskills == null)
  341. _immobiliseskills = new FastList<L2Skill>();
  342. _immobiliseskills.add(skill);
  343. }
  344. public void addDOTSkill(L2Skill skill)
  345. {
  346. if (_dotskills == null)
  347. _dotskills = new FastList<L2Skill>();
  348. _dotskills.add(skill);
  349. }
  350. public void addUniversalSkill(L2Skill skill)
  351. {
  352. if (_universalskills == null)
  353. _universalskills = new FastList<L2Skill>();
  354. _universalskills.add(skill);
  355. }
  356. public void addCOTSkill(L2Skill skill)
  357. {
  358. if (_cotskills == null)
  359. _cotskills = new FastList<L2Skill>();
  360. _cotskills.add(skill);
  361. }
  362. public void addManaHealSkill(L2Skill skill)
  363. {
  364. if (_manaskills == null)
  365. _manaskills = new FastList<L2Skill>();
  366. _manaskills.add(skill);
  367. }
  368. //--------------------------------------------------------------------
  369. public boolean hasBuffSkill()
  370. {
  371. if (_buffskills != null && _buffskills.size() > 0)
  372. return true;
  373. else
  374. return false;
  375. }
  376. public boolean hasHealSkill()
  377. {
  378. if (_healskills != null && _healskills.size() > 0)
  379. return true;
  380. else
  381. return false;
  382. }
  383. public boolean hasResSkill()
  384. {
  385. if (_resskills != null && _resskills.size() > 0)
  386. return true;
  387. else
  388. return false;
  389. }
  390. public boolean hasAtkSkill()
  391. {
  392. if (_atkskills != null && _atkskills.size() > 0)
  393. return true;
  394. else
  395. return false;
  396. }
  397. public boolean hasDebuffSkill()
  398. {
  399. if (_debuffskills != null && _debuffskills.size() > 0)
  400. return true;
  401. else
  402. return false;
  403. }
  404. public boolean hasRootSkill()
  405. {
  406. if (_rootskills != null && _rootskills.size() > 0)
  407. return true;
  408. else
  409. return false;
  410. }
  411. public boolean hasSleepSkill()
  412. {
  413. if (_sleepskills != null && _sleepskills.size() > 0)
  414. return true;
  415. else
  416. return false;
  417. }
  418. public boolean hasStunSkill()
  419. {
  420. if (_stunskills != null && _stunskills.size() > 0)
  421. return true;
  422. else
  423. return false;
  424. }
  425. public boolean hasParalyzeSkill()
  426. {
  427. if (_paralyzeskills != null && _paralyzeskills.size() > 0)
  428. return true;
  429. else
  430. return false;
  431. }
  432. public boolean hasFloatSkill()
  433. {
  434. if (_floatskills != null && _floatskills.size() > 0)
  435. return true;
  436. else
  437. return false;
  438. }
  439. public boolean hasFossilSkill()
  440. {
  441. if (_fossilskills != null && _fossilskills.size() > 0)
  442. return true;
  443. else
  444. return false;
  445. }
  446. public boolean hasNegativeSkill()
  447. {
  448. if (_negativeskills != null && _negativeskills.size() > 0)
  449. return true;
  450. else
  451. return false;
  452. }
  453. public boolean hasImmobiliseSkill()
  454. {
  455. if (_immobiliseskills != null && _immobiliseskills.size() > 0)
  456. return true;
  457. else
  458. return false;
  459. }
  460. public boolean hasDOTSkill()
  461. {
  462. if (_dotskills != null && _dotskills.size() > 0)
  463. return true;
  464. else
  465. return false;
  466. }
  467. public boolean hasUniversalSkill()
  468. {
  469. if (_universalskills != null && _universalskills.size() > 0)
  470. return true;
  471. else
  472. return false;
  473. }
  474. public boolean hasCOTSkill()
  475. {
  476. if (_cotskills != null && _cotskills.size() > 0)
  477. return true;
  478. else
  479. return false;
  480. }
  481. public boolean hasManaHealSkill()
  482. {
  483. if (_manaskills != null && _manaskills.size() > 0)
  484. return true;
  485. else
  486. return false;
  487. }
  488. }