Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.68 KB | None | 0 0
  1. package l2ft.gameserver.skills;
  2. import l2ft.gameserver.model.Effect;
  3. import l2ft.gameserver.skills.effects.*;
  4. import l2ft.gameserver.stats.Env;
  5. import l2ft.gameserver.stats.Stats;
  6.  
  7. import java.lang.reflect.Constructor;
  8. import java.lang.reflect.InvocationTargetException;
  9.  
  10. public enum EffectType
  11. {
  12. // Основные эффекты
  13. AddSkills(EffectAddSkills.class, null, false),
  14. AgathionResurrect(EffectAgathionRes.class, null, true),
  15. Aggression(EffectAggression.class, null, Stats.AGGRO_RESIST, Stats.AGGRO_POWER, true),
  16. Betray(EffectBetray.class, null, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  17. BlessNoblesse(EffectBlessNoblesse.class, null, true),
  18. BlockStat(EffectBlockStat.class, null, true),
  19. Buff(EffectBuff.class, null, false),
  20. BonusDmg(EffectBonusDmg.class, null, false),
  21. BuffCount(EffectBuffCount.class, null, false),
  22. Skill8648(Effect8648.class, null, false),
  23. Skill8652(Effect8652.class, null, false),
  24. Bluff(EffectBluff.class, AbnormalEffect.NULL, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  25. DebuffImmunity(EffectDebuffImmunity.class, null, true),
  26. DispelEffects(EffectDispelEffects.class, null, Stats.CANCEL_RESIST, Stats.CANCEL_POWER, true),
  27. CallSkills(EffectCallSkills.class, null, false),
  28. ConsumeHP(EffectConsumeHP.class, null, true),
  29. CombatPointHealOverTime(EffectCombatPointHealOverTime.class, null, true),
  30. ConsumeSoulsOverTime(EffectConsumeSoulsOverTime.class, null, true),
  31. ConsumeRageOverTime(EffectConsumeRageOverTime.class, null, true),
  32. Charge(EffectCharge.class, null, false),
  33. CharmOfCourage(EffectCharmOfCourage.class, null, true),
  34. CPDamPercent(EffectCPDamPercent.class, null, true),
  35. Cubic(EffectCubic.class, null, true),
  36. DecreaseSkill(EffectDecreaseSkill.class, null, false),
  37. DamOverTime(EffectDamOverTime.class, null, false),
  38. DamOverTimeLethal(EffectDamOverTimeLethal.class, null, false),
  39. DestroySummon(EffectDestroySummon.class, null, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  40. Disarm(EffectDisarm.class, null, true),
  41. Discord(EffectDiscord.class, AbnormalEffect.CONFUSED, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  42. Enervation(EffectEnervation.class, null, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, false),
  43. SummonNpc(EffectSummonNpc.class, null, false),
  44. EffectImmunity(EffectEffectsImmunity.class, null, false),
  45. FakeDeath(EffectFakeDeath.class, null, true),
  46. Fear(EffectFear.class, AbnormalEffect.AFFRAID, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  47. Grow(EffectGrow.class, AbnormalEffect.GROW, false),
  48. Hate(EffectHate.class, null, false),
  49. Heal(EffectHeal.class, null, false),
  50. HealMana(EffectHealMana.class, null, false),
  51. HealBlock(EffectHealBlock.class, null, true),
  52. HealCPPercent(EffectHealCPPercent.class, null, true),
  53. HealOverTime(EffectHealOverTime.class, null, false),
  54. HealPercent(EffectHealPercent.class, null, false),
  55. HealAttackTarget(EffectHealAttackTarget.class, null, false),
  56. HPDamPercent(EffectHPDamPercent.class, null, true),
  57. IgnoreSkill(EffectBuff.class, null, false),
  58. FlyToLocation(EffectFlyToLocation.class, null, false),
  59. Immobilize(EffectImmobilize.class, null, true),
  60. Interrupt(EffectInterrupt.class, null, true),
  61. Invulnerable(EffectInvulnerable.class, null, false),
  62. Invisible(EffectInvisible.class, null, false),
  63. Invis(EffectInvis.class, null, false),
  64. isInSiege(EffectisInSiege.class, null, false),
  65. LockInventory(EffectLockInventory.class, null, false),
  66. CurseOfLifeFlow(EffectCurseOfLifeFlow.class, null, true),
  67. LDManaDamOverTime(EffectLDManaDamOverTime.class, null, true),
  68. DamageZone(EffectDamageZone.class, null, true),
  69. Madness(EffectMadness.class, null, false),
  70. TransferDamage(EffectTransferDamage.class, null, false),
  71. ManaDamOverTime(EffectManaDamOverTime.class, null, true),
  72. ManaHeal(EffectManaHeal.class, null, false),
  73. ManaHealOverTime(EffectManaHealOverTime.class, null, false),
  74. ManaHPHealOverTime(EffectManaHPHealOverTime.class, null, false),
  75. ManaHealPercent(EffectManaHealPercent.class, null, false),
  76. Meditation(EffectMeditation.class, null, false),
  77. MPDamPercent(EffectMPDamPercent.class, null, true),
  78. Mute(EffectMute.class, AbnormalEffect.MUTED, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  79. MuteAll(EffectMuteAll.class, AbnormalEffect.MUTED, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  80. MuteAttack(EffectMuteAttack.class, AbnormalEffect.MUTED, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  81. MutePhisycal(EffectMutePhisycal.class, AbnormalEffect.MUTED, Stats.MENTAL_RESIST, Stats.MENTAL_POWER, true),
  82. NegateEffects(EffectNegateEffects.class, null, false),
  83. NegateMusic(EffectNegateMusic.class, null, false),
  84. Paralyze(EffectParalyze.class, AbnormalEffect.HOLD_1, Stats.PARALYZE_RESIST, Stats.PARALYZE_POWER, true),
  85. Petrification(EffectPetrification.class, AbnormalEffect.HOLD_2, Stats.PARALYZE_RESIST, Stats.PARALYZE_POWER, true),
  86. RandomHate(EffectRandomHate.class, null, true),
  87. Relax(EffectRelax.class, null, true),
  88. RemoveTarget(EffectRemoveTarget.class, null, true),
  89. Root(EffectRoot.class, AbnormalEffect.ROOT, Stats.ROOT_RESIST, Stats.ROOT_POWER, true),
  90. Hourglass(EffectHourglass.class, null, true),
  91. Salvation(EffectSalvation.class, null, true),
  92. Savan(EffectSavan.class, null, true),
  93. ServitorShare(EffectServitorShare.class, null, true),
  94. SilentMove(EffectSilentMove.class, AbnormalEffect.STEALTH, true),
  95. Tranquility(EffectTranquility.class, AbnormalEffect.VITALITY, true),
  96. Sleep(EffectSleep.class, AbnormalEffect.SLEEP, Stats.SLEEP_RESIST, Stats.SLEEP_POWER, true),
  97. Stun(EffectStun.class, AbnormalEffect.STUN, Stats.STUN_RESIST, Stats.STUN_POWER, true),
  98. Symbol(EffectSymbol.class, null, false),
  99. Transformation(EffectTransformation.class, null, true),
  100. UnAggro(EffectUnAggro.class, null, true),
  101. Vitality(EffectBuff.class, AbnormalEffect.VITALITY, true),
  102. SpawnNpc(EffectSpawnNpc.class, null, true),
  103. TeleToLocation(EffectTeleToLocation.class, null, true),
  104.  
  105. Die(EffectDie.class, null, false),
  106. SelfDmg(EffectSelfDmg.class, null, false),
  107. UnKillAble(EffectUnKillAble.class, null, false),
  108. invul20(Effect20invul.class, null, false),
  109. DelayDmg(EffectDelayDmg.class, null, false),
  110. BlockActions(EffectBlockActions.class, null, false),
  111. BuffImmunity(EffectBuffImmunity.class, null, false),
  112.  
  113. // Производные от основных эффектов
  114. Poison(EffectDamOverTime.class, null, Stats.POISON_RESIST, Stats.POISON_POWER, false),
  115. PoisonLethal(EffectDamOverTimeLethal.class, null, Stats.POISON_RESIST, Stats.POISON_POWER, false),
  116. Bleed(EffectDamOverTime.class, null, Stats.BLEED_RESIST, Stats.BLEED_POWER, false),
  117. Debuff(EffectBuff.class, null, false),
  118. WatcherGaze(EffectBuff.class, null, false),
  119. DamageTime(EffectDamageTime.class, null, false),
  120. DamOverTimePercent(EffectDamOverTimePercent.class, null, false),
  121.  
  122. AbsorbDamageToEffector(EffectBuff.class, null, false), // абсорбирует часть дамага к еффектора еффекта
  123. AbsorbDamageToMp(EffectBuff.class, AbnormalEffect.S_ARCANE_SHIELD, false), // абсорбирует часть дамага в мп
  124. AbsorbDamageToSummon(EffectLDManaDamOverTime.class, null, true), // абсорбирует часть дамага к сумону
  125.  
  126. AbsorbDamageToBarrier(EffectDmgBarrier.class, null, true), // абсорбирует часть дамага v barrier
  127. AbsorbDamageToBarrier250(EffectDmgBarrier250.class, null, true), // абсорбирует >250 дамаг v barrier
  128.  
  129. DmgOnExit(EffectDmgOnExit.class, null, false),
  130. Plague(EffectPlague.class, null, true),
  131. Madman(EffectMadman.class, null, true),
  132.  
  133. Zombie(EffectZombie.class, null, true),
  134. ZombieMaster(EffectZombieMaster.class, null, true),
  135.  
  136. Polymorph(EffectPolymorph.class, null, true), // абсорбирует часть дамага v barrier
  137.  
  138. q12feed(Effectq12feed.class, null, true),
  139. MobBlockDebuff(EffectMobBlockDebuff.class, null, true),
  140. MobBlockSkills(EffectMobBlockSkills.class, null, true),
  141. BlockBExp(EffectBlockBExp.class, null, true),
  142. SaveInDamage(EffectSaveInDamage.class, null, true),
  143. RestingHPHealOverTime(EffectRestingHPHealOverTime.class, null, false),
  144. RestingMPHealOverTime(EffectRestingMPHealOverTime.class, null, false),
  145. RestingHealOverTime(EffectRestingHealOverTime.class, null, false),
  146. ChangeTargetYourRace(EffectChangeTargetYourRace.class, null, false),
  147. ChargeForceDamageHp(EffectChargeForceDamageHp.class, null, false),
  148. Cleanse(EffectCleanse.class, null, false),
  149. SkillImmunity(EffectSkillImmunity.class, null, false),
  150. ShieldGeomancer(EffectShieldGeomancer.class, null, false),
  151. StopEffectFromType(EffectStopEffectFromType.class, null, false),
  152. RemoveBuff(EffectRemoveBuff.class, null, false),
  153. Junkie(EffectJunkie.class, null, false),
  154. BuffCharger(EffectBuffCharger.class, null, false),
  155. FlyImmunity(EffectFlyImmunity.class, null, false),
  156. StopSkillFromUseCount(EffectStopSkillFromUseCount.class, null, false),
  157. HealManaPercent(EffectHealManaPercent.class, null, false),
  158. HpBurn(EffectHpBurnPercent.class, null, false),
  159. LowerOrImproveTheBuffLevel(EffectLowerOrImproveTheBuffLevel.class, null, false),
  160. RemoveReuse(EffectRemoveReuse.class, null, false),
  161. StopSkillFromCrit(EffectStopSkillFromCrit.class, null, false),
  162. ManaDamPercentOverTime(EffectManaDamPercentOverTime.class, null, false),
  163. StopSkillFromMoving(EffectStopSkillFromMoving.class, null, false),
  164. BuffIfYouStand(EffectBuffIfYouStand.class, null ,false),
  165. TrapDestroyBuff(EffectTrapDestroyBuff.class, null, false),
  166. StopSkillFromEffect(EffectStopSkillFromEffect.class, null, false),
  167. Charges(EffectCharges.class, null, false),
  168. CallEffectFromCharge(EffectCallEffectFromCharge.class, null, false),
  169. SkillAbort(EffectSkillAbort.class, null, false),
  170. ConsumeDamageFromHpPercent(EffectConsumeDamageFromHpPercent.class, null, false),
  171. AccumulateHpMpDamage(EffectAccumulateHpMpDamage.class, null, false),
  172. ConsumeChargeOverTime(EffectConsumeChargeOverTime.class, null, false),
  173. DamageEndTime(EffectDamageEndTime.class, null, false),
  174. TeleToEffector(EffectTeleToEffector.class, null, false),
  175. DogFallowCharacterForAttack(EffectDogFallowCharacterForAttack.class, null,false);
  176.  
  177. private final Constructor<? extends Effect> _constructor;
  178. private final AbnormalEffect _abnormal;
  179. private final Stats _resistType;
  180. private final Stats _attributeType;
  181. private final boolean _isRaidImmune;
  182.  
  183. public boolean isControl()
  184. {
  185. switch(this)
  186. {
  187. case Disarm:
  188. case Discord:
  189. case Fear:
  190. case Immobilize:
  191. case Interrupt:
  192. case Madness:
  193. case Mute:
  194. case MuteAll:
  195. case MuteAttack:
  196. case MutePhisycal:
  197. case Paralyze:
  198. case Petrification:
  199. case RandomHate:
  200. case Root:
  201. case Sleep:
  202. case Stun:
  203. return true;
  204. default:
  205. return false;
  206. }
  207. }
  208.  
  209. private EffectType(final Class<? extends Effect> clazz, final AbnormalEffect abnormal, final boolean isRaidImmune)
  210. {
  211. this(clazz, abnormal, null, null, isRaidImmune);
  212. }
  213.  
  214. private EffectType(final Class<? extends Effect> clazz, final AbnormalEffect abnormal, final Stats resistType, final Stats attributeType, final boolean isRaidImmune)
  215. {
  216. try
  217. {
  218. _constructor = clazz.getConstructor(Env.class, EffectTemplate.class);
  219. } catch (final NoSuchMethodException e)
  220. {
  221. throw new Error(e);
  222. }
  223. _abnormal = abnormal;
  224. _resistType = resistType;
  225. _attributeType = attributeType;
  226. _isRaidImmune = isRaidImmune;
  227. }
  228.  
  229. public AbnormalEffect getAbnormal()
  230. {
  231. return _abnormal;
  232. }
  233.  
  234. public Stats getResistType()
  235. {
  236. return _resistType;
  237. }
  238.  
  239. public Stats getAttributeType()
  240. {
  241. return _attributeType;
  242. }
  243.  
  244. public boolean isRaidImmune()
  245. {
  246. return _isRaidImmune;
  247. }
  248.  
  249. public Effect makeEffect(final Env env, final EffectTemplate template) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
  250. {
  251. return _constructor.newInstance(env, template);
  252. }
  253. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement