123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510 |
- using System;
- using CommonAI.Zone.Formula;
- using XmdsCommonServer.Plugin;
- using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
- using XmdsCommonSkill.Plugin.Skills;
- using XmdsCommon.Plugin;
- using CommonAI.Zone.Instance;
- using CommonLang.Log;
- namespace XmdsCommonSkill.Plugin.Buffs
- {
-
-
-
-
-
-
-
- public class XmdsBuffBase : UnitBuff
- {
- protected static Logger log = LoggerFactory.GetLogger("XmdsBuffBase");
- public enum XmdsBuffUseType : int
- {
- Times = 1,
- LifeTime = 2
- }
- public enum XmdsBuffList : int
- {
- CHAO_FENG = 100060,
-
- LIAN_JI_DIAN = 200010,
- AN_YIN_ZHI_REN = 200020,
- YIN_SHEN = 200050,
- SPEED_UP = 200060,
- DU_SHANG = 201010,
- YIN_SHEN_HUI_XUE = 201050,
- JI_PAO_MIAN_SHANG = 201060,
- YING_XI_ZHUANG_TAI = 202020,
- CHEN_MO = 202030,
- TAN_HUAN = 202040,
- MEN_GUN = 202041,
- YIN_SHEN2 = 202050,
- JI_PAO_MIAN_KONG = 202060,
-
- DIAN_RAN = 300010,
- BING_SHUANG = 300030,
- DING_SHI_ZHA_DAN = 301020,
- MIAN_SHANG_2 = 301040,
- MO_KANG_DOWN = 301050,
- ZHI_LIAO_XIAO_GUO = 301070,
- DONG_JIE = 302030,
- YUN_XUAN_LEI_BAO = 302040,
- AO_SHU_GUANG_HUI = 302070,
- HAN_BING_PING_ZHANG = 302090,
-
- FEN_LIE_JIAN = 400020,
- CHONG_NENG = 400060,
- ZHONG_SHANG = 402010,
- SHAN_BI_UP = 402040,
-
- SHEN_SHENG_FANG_HU = 501040,
- AN_YIN_XING_TAI = 501050,
- ZHENG_JIU = 501060,
- CONG_RONG = 501080,
- BIAN_TA = 502010,
- JIAN_SU = 502030,
- SHEN_SHENG_ZHI_LI = 502040,
- CHAN_HUI = 502070,
-
- SHOU_REN_ZHAN_HOU = 10060302,
- CHAN_RAO = 10760402,
- DSZD_MONSTER = 10330402,
- KUANG_NU_MONSTER = 10340502,
- MA_BI = 10480202,
- DSZD_MONSTER2 = 10530503,
- WU_SHU_ZU_ZHOU = 10540502,
- WEN_YI = 6061204,
- XSSH_MONSTER = 6050602,
- SHI_HUA = 1508003,
- JG_CANSPELL = 9140503,
- ANYINGLAOLONG = 604093,
-
- WU_DI = 1010,
- HUI_XUE_DA_DUAN = 1020,
- JJC_TIANSHEN = 1031,
- JJC_HUICHUN = 1032,
- JJC_TANLAN = 1033,
- JJC_JIASU = 1034,
- JJC_WUDI = 1035,
- PVP_FLAG_DAMAGEREDUCE = 1038,
- LIU_XUE = 1050,
- MO_KANG_DOWN2 = 1060,
- WU_FANG_DOWN = 1070,
- YUN_XUAN = 1080,
- FANG_YU_DOWN = 1090,
- ATTACK_UP = 1100,
- DIAN_RAN_TONGYONG = 1110,
- CHI_XU_DAMAGE = 1120,
- DU = 1130,
- BING_DONG = 1150,
- ZHUO_SHAO = 1160,
- WU_GONG_UP = 1210,
- FEAR = 1220,
- IRON_MAIDEN = 1230,
- SPEED_DOWN = 1240,
- INVICIBLE_CANNOTMOVE = 1241,
- SLEEP = 1270,
- IGNORE_DAMAGE = 1280,
- PROP_CHANGE_1 = 1281,
- PROP_CHANGE_2 = 1282,
- PROP_CHANGE_3 = 1283,
- COM_INGORE_CTRL = 1284,
- ADD_HP_EVERYSEC = 1285,
-
- COM_JINGU = 1286,
- COM_BRAND = 1287,
- COM_SLIENT = 1288,
-
-
-
- ATTACK_UP_ZS_1_1 = 110110,
- ZS_YUNXIAN_1_6 = 110160,
- ZS_SPEEDDOWN_2 = 110200,
- ZS_INGORE_DAMAGE = 110201,
- ZS_ADD_ATTACK = 110210,
- ZS_REDUCE_ATTACK = 110211,
- HUDUN_ZS_2_5 = 110250,
- HUDUN_ZS_2_6 = 110260,
- ZS_SPEEDDOWN_3 = 110300,
- ZS_INGOREDMG_3 = 110301,
- ZS_ATTACKUP_3_1 = 110310,
- ZHUO_SHAO_ZS_3_2 = 110320,
- ZS_YUNXUAN_3_3 = 110330,
- ZS_DEFENCEUP_3_4 = 110340,
- ZS_SPEEDUP_3_5 = 110350,
- ZS_CAOFENG = 110400,
- ZS_4_ADD_TALENT = 110401,
- ATTCK_UP_ZS_4_2 = 110420,
- LOCK_HP_ZS_4_3 = 110430,
- HitAddHp_ZS_4_5 = 110450,
- HPReduce_Damage_4_6 = 110460,
- LAUNCH_BUF_ZS_5 = 110500,
-
- TRY_LAUNCH_BUF_ZS_5 = 110502,
- IGNORCTRL_AND_SPPEDCHG = 110503,
- HUANYUAN_SZ_6 = 110600,
-
-
-
- ATTACK_SPPED_FS_1_4 = 310140,
-
- ATTACK_UP_FS_2_2 = 310220,
- ATTACK_UP_FS_2_3 = 310230,
- JINGU_FS_2_3_1 = 310231,
- FS_YAZHI_3_5 = 310350,
- FS_TAG_3_5 = 310351,
- FS_TAG_3_5Ext = 310352,
- FS_BUFF_3_6 = 310360,
- FS_YAZHI_4 = 310400,
- SkillDamageUp_FS_4_3 = 310430,
- SwordCut_FS_5_2 = 310520,
- FS_SPEEDDOWN_5_3 = 310530,
- FS_HUDUN_5_6 = 310560,
- PASSIVE_FS_6 = 310600,
- PASSIVE_FS_6_1 = 310601,
- PASSIVE_FS_6_SPEEDDOWN = 310602,
-
-
-
-
- HIT_ATTACKUP = 510150,
- REMEDY_2_0_ADDHP = 510200,
- REMEDY_2_1_DEFENCEUP = 510210,
- REMEDY_2_2_HUDUN = 510220,
- REMEDY_2_4_ATTACKUP = 510240,
- REMEDY_2_6_HEALEDDOWN = 510260,
-
- REMEDY_3_3_TAG = 510330,
- REMEDY_3_4_TAG = 510340,
- REMEDY_3_5_TAG = 510350,
- REMEDY_4_JINGU = 510400,
- REMEDY_4_JINGUEXT = 510401,
- REMEDY_4_JINGU_SPEEDDOWN = 510402,
- REMEDY_4_3_ATTACKADDHP = 510430,
- REMEDY_4_4_SPEEDDOWN = 510440,
- REMEDY_4_6_DEBUFF = 510460,
- REMEDY_4_6_JINGUEXT = 510461,
- GOLDEN_BODY_5 = 510500,
- IGNORE_DAMAGE_5 = 510501,
- AttackRoundAddHP = 510510,
- REMEDY_5_2_PROPCHG = 510520,
- REMEDY_5_3_TAG = 510530,
- REMEDY_5_3_ALLIESTAG = 510531,
-
- REMEDY_5_6_TAG = 510560,
- REMEDY_5_6_ALLIESTAG = 510561,
- NORMAL_ATTACK_STRENGTH = 510600,
- REMEDY_POISON = 510610,
-
-
-
- PET_ATK_6 = 910000,
- PET_ATK_2 = 910001,
- PET_DEFENCE_2_1 = 910002,
- PET_DEFENCE_4_1 = 910006,
- PET_DEFENCE_6_1 = 910008,
- PET_CRIT_2_1 = 910010,
- PET_CRIT_4_1 = 910012,
- PET_CONSUM_6_1 = 910003,
- PET_ASSIST_4_1 = 910021,
- PET_ASSIST_6 = 910022,
-
-
-
-
- PET_DEFENCE_MOVE = 910100,
- PET_REMEDY_MOVE = 910101,
- PET_CRIT_HPADD = 910102,
- PET_DEFENCE_ATTACK = 910103,
- PET_HUDUN = 910104,
- PET_CURSE = 910105,
- PET_AMULET = 910106,
- PET_ATTACK_REMIT = 910107,
- PET_ROUND_SPEEDDOWN = 910108,
- PET_NEXT_SCOPEATTACK = 910109,
- PET_NEXT_SPURTINGATTACK = 910110,
- PET_ATTACK_SPEEDUP = 910111,
- PET_WUDI = 910112,
-
-
-
- BOSS_HUDUN_DEFENCE = 910201,
- BOSS_SUNDERARMOR = 910202,
- BOSS_ZB_BLESS = 910203,
- TAG_WATER = 910204,
- TAG_FIRE = 910205,
- TAG_POISON = 910206,
- BOSS_ZB_TAG_SKILLLAUNCH = 910207,
- BOSS_ZB_TAG_ELEMENTS = 910208,
- BOSS_ZB_TRAP = 910209,
- BOSS_CRAZE = 910210,
- BOSS_WEAK = 920001,
-
-
-
- NEWPET_CONTINUE_DAMAGE = 910300,
- NEWPET_CRITRATE_CHG = 910301,
- NEWPET_NEXTATK_CRIT = 910302,
- NEWPET_DAMAGE_CHG = 910303,
- NEWPET_CHAOFENG = 910304,
- NEWPET_DEFENCEUP = 910305,
- NEWPET_REBOUND_DAMAGE = 910306,
- NEWPET_DAMAGEREDUCE = 910307,
- NEWPET_ATTACK_CHANGE = 910308,
- NEWPET_ADDHP = 910309,
- NEWPET_ATTACKSPEED_DOWN = 910310,
- NEWPET_DEFENCE_DOWN = 910311,
- NEWPET_INGOREDEFENCE_UP = 910312,
- NEWPET_ATTACKSPEED_UP = 910313,
- NEWPET_DAMAGE_DEEP = 910314,
- NEWPET_ATTACK_UP = 910315,
-
-
-
- PET_EQUIPSKILL_RAGE = 80200,
- PET_EQUIPSKILL_HUDUN = 80260,
- PET_EQUIPSKILL_RAGE_DEAD = 80280,
- PET_EQUIPSKILL_ADDHP = 80290,
-
-
-
- ZHANYAO_ZS_1 = 70010,
- ZHANYAO_ZS_2 = 70011,
- ZHANYAO_ZS_S_1 = 70012,
- ZHANYAO_ZS_S_2 = 70013,
- ZHANYAO_FS_1 = 70020,
- ZHANYAO_FS_2 = 70021,
- ZHANYAO_FS_S_1 = 70022,
- ZHANYAO_FS_S_2 = 70023,
- ZHANYAO_NM_1 = 70030,
- ZHANYAO_NM_2 = 70031,
- ZHANYAO_NM_S_1 = 70032,
- ZHANYAO_NM_S_2 = 70033,
-
- LINGBAO_BUFF = 100100,
- TINAHU_DAMAGE_TAG_1 = 100101,
- TINAHU_DAMAGE_TAG_2 = 100102,
- TINAHU_DAMAGE_TAG_3 = 100103,
- TINAHU_DAMAGE_TAG_4 = 100104,
- TINAHU_DAMAGE_TAG_5 = 100105,
-
-
-
- CARD_STORE_ENERGY = 1999000,
-
- CARD_QINGLONG = 1100000,
- CARD_QL_ADDHP = 1100001,
- CARD_QL_DEFENCEUP = 1100002,
-
- CARD_ZHUQUE = 1200000,
- CARD_CRATE_UP = 1200001,
-
- CARD_BAIHU = 1300000,
- CARD_DEFENCE_DOWN = 1300001,
-
- CARD_XUANWU = 1400000,
- CARD_XW_HUDUN = 1400001,
- CARD_XW_DEFENCE_UP = 1400002,
- CARD_XW_FORZEN = 1400003,
- CARD_XW_IGNORECTRL_HUDUN = 1400004,
- CARD_XW_ALLIES_SPEED_DEFENCE = 1400005,
-
-
- CARD_BOSS_DMG_DEEPER = 1999900,
- CARD_BOSS_SPEED_DMG_DOWN = 1999901,
- }
-
-
-
- public int BuffUseType = (int)XmdsBuffUseType.LifeTime;
-
-
-
- public int BuffUseTime = 0;
- public event XmdsSkillBase.ScriptHandler OnXmdsBuffHitEvent;
- public delegate void OnBuffEndEvent(XmdsCommonServer.Plugin.XmdsVirtual hitter, InstanceUnit.BuffState state);
- public event OnBuffEndEvent OnHandleBuffEndEvent;
- public delegate void OnBuffBeginEvent(XmdsVirtual hitter, XmdsVirtual attacker, InstanceUnit.BuffState state);
- public event OnBuffBeginEvent OnHandleBuffBeginEvent;
- private GameSkill mGameSkill = null;
- private bool mShowBuffTips = true;
-
- public bool ShowBuffTips { get { return mShowBuffTips; } set { mShowBuffTips = value; } }
- public override int GetAbilityID()
- {
- return (int)(XmdsBuffProperties.XmdsBuffAbility.None);
- }
-
- protected bool BuffInvaildCheck()
- {
- if (mInvalid == true)
- {
- return mInvalid;
- }
- bool ret = false;
-
- if (BuffUseType == (int)XmdsBuffBase.XmdsBuffUseType.LifeTime)
- {
- ret = false;
- }
- else
- {
- BuffUseTime--;
- if (BuffUseTime <= 0)
- {
- ret = true;
- }
- else
- {
- ret = false;
- }
- }
- if (ret == true)
- {
- mInvalid = true;
- }
- return mInvalid;
- }
- public override void BuffBegin(XmdsVirtual hitter, XmdsVirtual attacker, InstanceUnit.BuffState state)
- {
- mInvalid = false;
- if (OnHandleBuffBeginEvent != null)
- {
- OnHandleBuffBeginEvent.Invoke(hitter, attacker, state);
- }
- OnBuffBegin(hitter, attacker, state);
- }
- public override void BuffEnd(XmdsVirtual hitter, InstanceUnit.BuffState state, bool replace)
- {
- if (OnHandleBuffEndEvent != null)
- {
- OnHandleBuffEndEvent.Invoke(hitter, state);
- }
- OnBuffEnd(hitter, state, replace);
- state.Tag = null;
- Dispose();
- }
- public override int BuffHit(XmdsVirtual hitter, XmdsVirtual attacker, AttackSource source, ref XmdsVirtual.AtkResult result)
- {
- return OnBuffHit(hitter, attacker, source, ref result);
- }
- public override void BuffUpdate(XmdsVirtual unit, InstanceUnit.BuffState state) { }
- protected virtual void OnBuffBegin(XmdsVirtual hitter, XmdsVirtual attacker, InstanceUnit.BuffState state) { }
- protected virtual void OnBuffEnd(XmdsVirtual hitter, InstanceUnit.BuffState state, bool replace) { }
- protected virtual int OnBuffHit(XmdsVirtual hitter, XmdsVirtual attacker, AttackSource source, ref XmdsVirtual.AtkResult result)
- {
- if (OnXmdsBuffHitEvent != null)
- {
- BattleParams param = BattleParams.AllocAutoRelease();
- try
- {
-
- param.Attacker = attacker;
- param.Hitter = hitter;
- param.Source = source;
- param.GameSkill = mGameSkill;
- OnXmdsBuffHitEvent.Invoke(param);
- int ret = param.FinalSkillDamage;
-
- return ret;
- }
- finally
- {
- param.Dispose();
- }
- }
- return 0;
- }
- public GameSkill GetGameSkill()
- {
- return mGameSkill;
- }
- public void SetOnHitCallBack(GameSkill gs, XmdsSkillBase.ScriptHandler callBack)
- {
- mGameSkill = gs;
- OnXmdsBuffHitEvent = callBack;
- }
- protected override void OnDispose()
- {
- OnHandleBuffBeginEvent = null;
- OnHandleBuffEndEvent = null;
- OnXmdsBuffHitEvent = null;
- base.OnDispose();
- }
- public override void CopyTo(UnitBuff other)
- {
- var ret = (other as XmdsBuffBase);
- ret.mGameSkill = this.mGameSkill;
- ret.OnHandleBuffBeginEvent = this.OnHandleBuffBeginEvent;
- ret.OnHandleBuffEndEvent = this.OnHandleBuffEndEvent;
- ret.OnXmdsBuffHitEvent = this.OnXmdsBuffHitEvent;
- ret.BuffUseType = this.BuffUseType;
- ret.BuffUseTime = this.BuffUseTime;
- ret.ShowBuffTips = this.ShowBuffTips;
- this.OnHandleBuffBeginEvent = null;
- this.OnHandleBuffEndEvent = null;
- this.OnXmdsBuffHitEvent = null;
- this.mGameSkill = null;
- base.CopyTo(other);
- }
- }
- }
|