Beispiel #1
0
 void OnComponentValueChange(GValueType type, float old, float cur)
 {
     if (type == GValueType.move_speed)
     {
         gameObject.GetOrAdd <NavArrivePosition>().mNavMeshAgent.speed = cur;
     }
 }
        public float GetValue(GValueType type)
        {
            if (mDicTypeToValue.TryGetValue(type, out var value))
            {
                return(value);
            }

            return(0);
        }
        public void SetValue(GValueType type, float value)
        {
            var old = GetValue(type);

            mDicTypeToValue[type] = value;
            if (null != OnValueChange)
            {
                OnValueChange(type, old, value);
            }
        }
        public float GetBuffedValue(GValueType type, BuffCmpt cmpt)
        {
            var buffList = cmpt.GetBuffList();
            var srcValue = GetValue(type);
            var dstValue = srcValue;

            foreach (var buff in buffList)
            {
                var valueEffectCfg = buff.mBuffCfg.mValueEffectCfg;
                if (valueEffectCfg.mId > 0)
                {
                    var process = valueEffectCfg.Process(srcValue);
                    var delta   = process - srcValue;
                    srcValue += delta;
                }
            }

            return(0);
        }
 public float this[GValueType type]
 {
     get { return(GetValue(type)); }
     set { SetValue(type, value); }
 }