Beispiel #1
0
        public void TryExecTmp(ISkAttribs dst, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para, int idxToMod, int times = 1)
        {
            int n = _tmpOpsIdxs.Count;

            for (int i = 0; i < n; i++)
            {
                if (_tmpOpsIdxs[i] == idxToMod)
                {
                    for (int j = 0; j < times; j++)
                    {
                        _tmpOps[i].Exec(dst, paraCaster, paraTarget, para);

                        SkAttribsOpMAT op = _tmpOps[i] as SkAttribsOpMAT;
                        if (op != null)
                        {
                            dst.buffMul     += op._mul;
                            dst.buffPreAdd  += op._preAdd;
                            dst.buffPostAdd += op._postAdd;
                        }
                    }
                }
            }
        }
Beispiel #2
0
 public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para)
 {
     if (_idxParaMul < 0 && _idxParaPreAdd < 0 && _idxParaPostAdd < 0)
     {
         return;
     }
     // Do nothing but set paras
     if (_idxParaMul == 0)
     {
         _mul = paraCaster.sums[_idxMul];
     }
     if (_idxParaMul == 1)
     {
         _mul = paraTarget.sums[_idxMul];
     }
     _idxParaMul = -1;
     if (_idxParaPreAdd == 0)
     {
         _preAdd = paraCaster.sums[_idxPreAdd];
     }
     if (_idxParaPreAdd == 1)
     {
         _preAdd = paraTarget.sums[_idxPreAdd];
     }
     _idxParaPreAdd = -1;
     if (_idxParaPostAdd == 0)
     {
         _postAdd = paraCaster.sums[_idxPostAdd];
     }
     if (_idxParaPostAdd == 1)
     {
         _postAdd = paraTarget.sums[_idxPostAdd];
     }
     _idxParaPostAdd = -1;
 }
Beispiel #3
0
        public void Exec(ISkAttribs dst, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para)
        {
            int n = _ops.Count;

            for (int i = 0; i < n; i++)
            {
                _ops[i].Exec(dst, paraCaster, paraTarget, para);
            }
            ReqExecTmp(dst);
        }
Beispiel #4
0
        public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para)
        {
            int cnt  = SkInst.s_rand.Next(_cntMin, _cntMax + 1);
            int nIds = _ids.Length;

            int[] cnts = new int[nIds];
            for (int n = 0; n < cnt; n++)
            {
                float rate = (float)SkInst.s_rand.NextDouble();
                for (int i = 0; i < nIds; i++)
                {
                    if (rate <= _odds[i])
                    {
                        cnts[i]++;
                        break;
                    }
                }
            }
            List <int> items = new List <int>(nIds * 2);

            for (int i = 0; i < nIds; i++)
            {
                if (cnts[i] > 0)
                {
                    items.Add(_ids[i]);
                    items.Add(cnts[i]);
                }
            }
            dstAttribs.pack += items.ToArray();
        }
Beispiel #5
0
 public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para)
 {
     dstAttribs.pack += _ids;
 }
Beispiel #6
0
 public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para)
 {
     _deleOpExp(paraCaster, paraTarget, para);
 }
Beispiel #7
0
        public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para)
        {
            float var = dstAttribs.raws[_idx];

            var = var * _mul + _add;
            dstAttribs.raws[_idx] = var;
        }