public void AddBuff(Buff buffInfo) { int buffId = buffInfo.BuffId; int assetId = -1; if (!_buffListDic.ContainsKey(buffId)) { _buffListDic.Add(buffId, new List <Buff>()); if (null != buffInfo.BuffEffectInfo && null != _chara) { _chara.AddEffect(buffInfo.BuffEffectInfo); assetId = buffInfo.BuffEffectInfo.AssetKey; } } //叠加buff if (_buffListDic[buffId].Count > 0) { assetId = _buffListDic[buffId][0].BuffEffectInfo.AssetKey; while (_buffListDic[buffId].Count >= buffInfo.MixMax) { Buff tmp = _buffListDic[buffId][0]; tmp.Destroy(); _buffListDic[buffId].RemoveAt(0); } } buffInfo.BuffEffectInfo.AssetKey = assetId; _buffListDic[buffId].Add(buffInfo); }
protected override void DoAction() { if (EffectData.Id != "" && null != _skillPlayer) { ICharaActor chara = _skillPlayer as ICharaActor; if (null != chara) { chara.AddEffect(EffectData); } } Complete(); }