示例#1
0
        //

        public Buff AddBuff(uint instID, uint typeID, float remainTime, Ientity entity)
        {
            if (IsHaveBuff(instID))
            {
                return(buffDict[instID]);
            }
            if (entity == null)
            {
                return(null);
            }

            if (isHaveStopBuff(entity.GameObjGUID) == false)
            {
                BuffConfigInfo bi = ConfigReader.GetBuffInfo(typeID);
                if (null != bi)
                {
                    if (bi.effectID == (int)eBuffEffect.eBuffEffectXuanYun || bi.effectID == (int)eBuffEffect.eBuffEffectShuFu)
                    {
                        entity.OnEntityGetAstrictBuff();
                    }
                }
            }

            Buff b = new Buff();

            b.buffID     = instID;
            b.buffTypeID = typeID;
            b.buffTime   = remainTime;
            b.entity     = entity;

            //buffDict[instID] = b;
            buffDict.Add(instID, b);

            if (isSelfHaveBuffType(chenmoID) == true)
            {
                EventCenter.Broadcast <bool>(EGameEvent.eGameEvent_LocalPlayerSilence, true);
            }
            //refresh ui
            if (UIBuffUnityInterface.Instance != null)
            {
                UIBuffUnityInterface.Instance.RefreshUIItem();
            }


            return(b);
        }