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; } } } } }
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; }
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); }
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(); }
public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para) { dstAttribs.pack += _ids; }
public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para) { _deleOpExp(paraCaster, paraTarget, para); }
public void Exec(ISkAttribs dstAttribs, ISkAttribs paraCaster, ISkAttribs paraTarget, ISkAttribsModPara para) { float var = dstAttribs.raws[_idx]; var = var * _mul + _add; dstAttribs.raws[_idx] = var; }