123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- using CommonAI.data;
- using CommonAI.Zone;
- using CommonAI.Zone.Instance;
- using CommonLang;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using XmdsCommonServer.Plugin;
- using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
- using XmdsCommonServer.XLS.Data;
- using XmdsCommonSkill.Plugin.PassiveSkills.Remedy;
- using static CommonAI.Zone.Instance.InstanceUnit;
- namespace XmdsCommonSkill.Plugin.Skills
- {
-
- public class PoisonPlayers
- {
- public long buffValidTime;
- public XmdsVirtual player;
- }
-
- public class PlayerCache_Remedy : PlayerCacheBase
- {
-
- private HashMap<int, IntIntData> mPoisonRate = new HashMap<int, IntIntData>();
-
-
-
- private int mPoisonValidTime;
- private int mPosionTotals;
-
- private long mRecordPosionEndTime;
- private HashSet<uint> mRecordPosionExt = new HashSet<uint>();
-
- public int mPoisonBreakDmgAdd;
- public int mPoisonBreakFullDmgAdd;
-
- private long mPoisonRateVaildTime;
- private int mPoisonAddRate;
- public PlayerCache_Remedy(InstanceUnit unit, int recordTime, int poisionTotal) : base(unit, null)
- {
- this.mPoisonValidTime = recordTime;
- this.mPosionTotals = poisionTotal;
- }
-
- public void SetSkillPoisonRate(IntIntData data, int skillID)
- {
- this.mPoisonRate.Put(skillID, data);
- }
-
- public IntIntData GePoisonRateInfo(int skillID)
- {
- return mPoisonRate.Get(skillID);
- }
-
- public void SetStrong4_4(int poisonDmgAdd, int poisonFullDmgAdd)
- {
- this.mPoisonBreakDmgAdd = poisonDmgAdd;
- this.mPoisonBreakFullDmgAdd = poisonFullDmgAdd;
- }
-
- public void SetStrong5_4(int validTime, int addRate)
- {
- this.mPoisonRateVaildTime = CommonLang.CUtils.localTimeMS + validTime;
- this.mPoisonAddRate = addRate;
- }
-
- public int GetRateAddition()
- {
- if(this.mPoisonRateVaildTime >= CommonLang.CUtils.localTimeMS)
- {
- return this.mPoisonAddRate;
- }
- return 0;
- }
- public override void MarkValid(bool isValid)
- {
- base.MarkValid(isValid);
-
-
-
-
- this.mPoisonBreakDmgAdd = 0;
- this.mPoisonBreakFullDmgAdd = 0;
- this.mPoisonRateVaildTime = 0;
- this.mPoisonAddRate = 0;
- }
-
- public bool IsCanAddPosion(XmdsVirtual hitted)
- {
- if (!hitted.IsBoss())
- {
- if (this.mRecordPosionEndTime > CommonLang.CUtils.localTimeMS)
- {
-
- if (mRecordPosionExt.Count >= mPosionTotals)
- {
- return false;
- }
- else
- {
- mRecordPosionExt.Add(hitted.mUnit.ID);
- }
- }
- else
- {
- this.mRecordPosionEndTime = CommonLang.CUtils.localTimeMS + mPoisonValidTime;
- mRecordPosionExt.Clear();
-
- mRecordPosionExt.Add(hitted.mUnit.ID);
- }
- }
- return true;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- public void RefreshConfig(int recordTime, int poisionTotal)
- {
- this.mPoisonValidTime = recordTime;
- this.mPosionTotals = poisionTotal;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
- }
|