public static void RemoveBuffEx <T>(this IBuffManager <T> self, IEntity entity, T buff) where T : IBuffDataComponent
        {
            if (self.RemoveBuff(entity, buff))
            {
                _buffPool.Recede(buff);
            }
#if UNITY_EDITOR
            else
            {
                UnityEngine.Debug.LogWarning($"{entity} Remove {buff} Buff failure!");
            }
#endif
        }
        public static void DestroyEntityEx(this IBuffManager <IBuffDataComponent> self, IEntity entity)
        {
            List <IBuffDataComponent> _buffs = new List <IBuffDataComponent>();

            self.GetBuffs(entity, _buffs);

            for (var i = 0; i < _buffs.Count; i++)
            {
                _buffPool.Recede(_buffs[i]);
            }

            self.DestroyEntity(entity);
        }
        public static IBuffDataComponent CreateAndAddBuff(this IBuffManager <IBuffDataComponent> self, Type buffType, IEntity entity, Action <IBuffDataComponent> buffSetting, params object[] args)
        {
            IBuffDataComponent buff = self.CreateBuff(buffType, args);

            if (buff == null)
            {
                return(null);
            }

            buffSetting?.Invoke(buff);

            self.AddBuff(entity, buff);

            return(buff);
        }
示例#4
0
        private bool _execute()
        {
            _buffManagerValue = GetInputValue(nameof(_buffManagerValue), _buffManagerValue);
            Target            = GetInputValue(nameof(Target), Target);;

            var conditionType = Type.GetType(_conditionAQName);

            if (conditionType == null)
            {
                return(false);
            }

            _condition = (ACondition <IIcSkSEntity>) this.DynamicInputCreateInstance(conditionType, _buffManagerValue);

            return(_condition.Check(Target));
        }
        protected override Func <bool> GetOutValue()
        {
            _buffManagerValue = GetInputValue(nameof(_buffManagerValue), _buffManagerValue);
            Target            = GetInputValue(nameof(Target), Target);;

            var conditionType = Type.GetType(_conditionAQName);

            if (conditionType == null)
            {
                return(null);
            }

            _condition = (ACondition)this.DynamicInputCreateInstance(conditionType, _buffManagerValue);

            return(_execute);
        }
示例#6
0
        private void Awake()
        {
            Manager = this;

            BuffManager = new BuffManager();

            SkillManager = new SkillManager();


            BuffManager
            .AddBuffSystem(new BuffTimeSystem(BuffManager))
            .AddBuffSystem(new DamageReduceFixedSystem(BuffManager))
            .AddBuffSystem(new DamageReducePercentageSystem(BuffManager))
            .AddBuffSystem(new LifestealFixedSystem(BuffManager))
            .AddBuffSystem(new LifestealPercentageSystem(BuffManager))
            .AddBuffSystem(new DamageSystem(BuffManager))
            .AddBuffSystem(new DeathSystem(BuffManager));
        }
        private void Awake()
        {
            Manager = this;

            var blackboard = UnityContext.GetSharedBlackboard(SharedBlackboardKey);

            BuffManager = new BuffManager();

            SkillManager = new SkillManager();

            blackboard.Set(BuffManagerKey, BuffManager);

            blackboard.Set(SkillManagerKey, SkillManager);

            BuffManager
            .AddBuffSystem(new BuffTimeSystem <IBuffDataComponent>(BuffManager))
            .AddBuffSystem(new AttackSpeedPercentageSystem(BuffManager))
            .AddBuffSystem(new DamageReduceFixedSystem(BuffManager))
            .AddBuffSystem(new DamageReducePercentageSystem(BuffManager))
            .AddBuffSystem(new LifestealFixedSystem(BuffManager))
            .AddBuffSystem(new LifestealPercentageSystem(BuffManager))
            .AddBuffSystem(new DamageSystem(BuffManager))
            .AddBuffSystem(new DeathSystem(BuffManager));
        }
 public IcSkSEntityManager(IBuffManager <IIcSkSEntity> buffManager)
 {
     this.BuffManager = buffManager;
     _entitys         = new FasterList <IIcSkSEntity>();
 }
示例#9
0
 protected ACondition(IBuffManager <TEntity> buffManager)
 {
     this._buffManager = buffManager;
 }
示例#10
0
 public ManaCheck(IBuffManager <IBuffDataComponent> buffManager) : base(buffManager)
 {
     _buffs = new List <IMechanicBuff>();
 }
 public AttackSpeedPercentageSystem(IBuffManager <IBuffDataComponent> buffManager) : base(buffManager)
 {
     _buffs = new List <IMechanicBuff>();
 }
示例#12
0
 protected ABuffDestroySystem(IBuffManager <T> buffManager)
 {
     BuffManager = buffManager;
 }
 public static T CreateBuff <T>(this IBuffManager <IBuffDataComponent> self, params object[] args) where T : IBuffDataComponent
 {
     return((T)self.CreateBuff(typeof(T), args));
 }
 public LifestealPercentageSystem(IBuffManager <IBuffDataComponent> buffManager) : base(buffManager)
 {
     _damageReducePercentageBuffs = new List <IPercentageLifesteal>();
     _hps = new List <IMechanicBuff>();
 }
示例#15
0
 protected ACondition(IBuffManager <IBuffDataComponent> buffManager)
 {
     this._buffManager = buffManager;
 }
示例#16
0
 public void Init(IBuffManager <IBuffDataComponent> buffManager, IEntity entity)
 {
     BuffManager = buffManager;
     Link(entity);
 }
示例#17
0
 public DeathSystem(IBuffManager <IBuffDataComponent> buffManager) : base(buffManager)
 {
     _buffs = new List <IMechanicBuff>();
 }
示例#18
0
 public DamageReducePercentageSystem(IBuffManager <IBuffDataComponent> buffManager) : base(buffManager)
 {
     _damageReducePercentageBuffs = new List <IDamageReducePercentageBuff>();
 }
 public ContinuousDamageSystem(IBuffManager <IBuffDataComponent> buffManager) : base(buffManager)
 {
     _continuousBuffs = new List <IContinuousDamageBuff>();
 }
 public LifestealFixedSystem(IBuffManager <IBuffDataComponent> buffManager) : base(buffManager)
 {
     _fixedLifesteals = new List <IFixedLifesteal>();
     _mechanicBuffs   = new List <IMechanicBuff>();
 }
示例#21
0
 protected ABuffCreateSystem(IBuffManager <T> buffManager)
 {
     BuffManager = buffManager;
 }
示例#22
0
 public BuffTimeSystem(IBuffManager <T> buffManager) : base(buffManager)
 {
     _buffs = new List <T>();
 }
 public DeathSystem(IBuffManager buffManager) : base(buffManager)
 {
 }
 public void Init(IBuffManager <IIcSkSEntity> entityManager, IIcSkSEntity icSkSEntity)
 {
     EntityManager = entityManager;
     Link(icSkSEntity);
 }