public ValueDataInfo this[RES_FUNCEFT_TYPE key] { get { return(this.mActorValue[key]); } }
public void ChangeFuncEft(RES_FUNCEFT_TYPE key, RES_VALUE_TYPE type, int val, bool bOffRatio = false) { if (this.mActorValue[key] != null) { ValueDataInfo.ChangeValueData(ref this.mActorValue[key], type, val, bOffRatio); } }
public void SetChangeEvent(RES_FUNCEFT_TYPE key, ValueChangeDelegate func) { if (this.mActorValue[key] != null) { this.mActorValue[key].ChangeEvent += func; func(); } }
public static bool OnSkillFuncHpCondition(ref SSkillFuncContext inContext) { ValueDataInfo info; int skillFuncParam = inContext.GetSkillFuncParam(1, false); if ((skillFuncParam < 0) || (skillFuncParam >= 0x24)) { return(false); } RES_FUNCEFT_TYPE res_funceft_type = (RES_FUNCEFT_TYPE)skillFuncParam; PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj == 0) { return(false); } int num2 = inContext.GetSkillFuncParam(2, false); if (inContext.inStage != ESkillFuncStage.Leave) { int actorHp = inTargetObj.handle.ValueComponent.actorHp; int totalValue = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; int num5 = 0x2710 - ((actorHp * 0x2710) / totalValue); int num6 = inContext.GetSkillFuncParam(3, true); int num7 = inContext.GetSkillFuncParam(0, false); if (num7 == 0) { return(false); } int num8 = (num5 * num6) / num7; int iParam = inContext.LocalParams[0].iParam; if (num2 == 1) { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> iParam; info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] << num8; } else { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] - iParam; info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] + num8; } inContext.LocalParams[0].iParam = num8; } else if (inContext.inStage == ESkillFuncStage.Leave) { int num10 = inContext.LocalParams[0].iParam; if (num2 == 1) { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> num10; } else { info = inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] - num10; } } return(true); }
public static bool OnSkillFuncHpCondition(ref SSkillFuncContext inContext) { int num = 0; int skillFuncParam = inContext.GetSkillFuncParam(1, false); if ((skillFuncParam < 0) || (skillFuncParam >= 0x24)) { return(false); } RES_FUNCEFT_TYPE res_funceft_type = (RES_FUNCEFT_TYPE)skillFuncParam; PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj == 0) { return(false); } int num3 = inContext.GetSkillFuncParam(2, false); if (inContext.inStage != ESkillFuncStage.Leave) { int actorHp = inTargetObj.handle.ValueComponent.actorHp; int totalValue = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; int num6 = 0x2710 - ((actorHp * 0x2710) / totalValue); int num7 = inContext.GetSkillFuncParam(3, false); int num8 = inContext.GetSkillFuncParam(0, false); if (num8 == 0) { return(false); } int num9 = (num6 * num7) / num8; int iParam = inContext.LocalParams[0].iParam; if (num3 == 1) { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> iParam); num = (int)(inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] << num9); } else { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type]) - iParam; num = ((int)inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type]) + num9; } inContext.LocalParams[0].iParam = num9; } else if (inContext.inStage == ESkillFuncStage.Leave) { int num11 = inContext.LocalParams[0].iParam; if (num3 == 1) { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type] >> num11); } else { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[res_funceft_type]) - num11; } } return(true); }
private int GetPropMaxValueLimit(RES_FUNCEFT_TYPE funcType, bool bPvpMode) { if (bPvpMode) { ResPropertyValueInfo dataByKey = GameDataMgr.propertyValInfo.GetDataByKey((uint)funcType); return((dataByKey == null) ? 0 : dataByKey.iMaxLimitValue); } return(0); }
private static void SetPropValue(PropertyHelper propVal, RES_FUNCEFT_TYPE type, int balanceVal) { propVal[type].baseValue = balanceVal; propVal[type].growValue = 0; propVal[type].addValue = 0; propVal[type].decValue = 0; propVal[type].addRatio = 0; propVal[type].decRatio = 0; }
public static bool OnSkillFuncHpCondition(ref SSkillFuncContext inContext) { int skillFuncParam = inContext.GetSkillFuncParam(1, false); if (skillFuncParam < 0 || skillFuncParam >= 37) { return(false); } RES_FUNCEFT_TYPE key = (RES_FUNCEFT_TYPE)skillFuncParam; PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (!inTargetObj) { return(false); } int skillFuncParam2 = inContext.GetSkillFuncParam(2, false); if (inContext.inStage != ESkillFuncStage.Leave) { int actorHp = inTargetObj.handle.ValueComponent.actorHp; int totalValue = inTargetObj.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MAXHP].totalValue; int num = 10000 - actorHp * 10000 / totalValue; int skillFuncParam3 = inContext.GetSkillFuncParam(3, true); int skillFuncParam4 = inContext.GetSkillFuncParam(0, false); if (skillFuncParam4 == 0) { return(false); } int num2 = num * skillFuncParam3 / skillFuncParam4; int iParam = inContext.LocalParams[0].iParam; if (skillFuncParam2 == 1) { ValueDataInfo valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[key] >> iParam; valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[key] << num2; } else { ValueDataInfo valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[key] - iParam; valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[key] + num2; } inContext.LocalParams[0].iParam = num2; } else if (inContext.inStage == ESkillFuncStage.Leave) { int iParam2 = inContext.LocalParams[0].iParam; if (skillFuncParam2 == 1) { ValueDataInfo valueDataInfo3 = inTargetObj.handle.ValueComponent.mActorValue[key] >> iParam2; } else { ValueDataInfo valueDataInfo4 = inTargetObj.handle.ValueComponent.mActorValue[key] - iParam2; } } return(true); }
private static bool ParsePlayerProperty(CHeroInfo heroInfo, string s, out int value) { value = 0; if (s[0] == 'k') { RES_FUNCEFT_TYPE res_funceft_type = (RES_FUNCEFT_TYPE)Convert.ToInt32(s.Substring(1)); value = heroInfo.mActorValue[res_funceft_type].totalValue; return(true); } return(false); }
private static bool ParsePlayerProperty(CHeroInfo heroInfo, string s, out int value) { value = 0; if (s.get_Chars(0) == 'k') { int num = Convert.ToInt32(s.Substring(1)); RES_FUNCEFT_TYPE key = (RES_FUNCEFT_TYPE)num; value = heroInfo.mActorValue[key].totalValue; return(true); } return(false); }
public ValueDataInfo(RES_FUNCEFT_TYPE type, int nValue, int nGrow, ValueCalculator calc, int dynamicCfg = 0, int nMaxLimitValue = 0) { this._type = type; this.baseValue = nValue; this.growValue = nGrow; this.addValue = 0; this.decValue = 0; this.addRatio = 0; this.decRatio = 0; this.dynamicId = dynamicCfg; this.Calculator = calc; this.maxLimitValue = nMaxLimitValue; this._TotalEftRatio = 0; this._TotalEftRatioByMgc = 0; }
public void Searcher(ActorRoot _inActor, RES_FUNCEFT_TYPE _propertyType, PropertyDelegate _delegate) { ulong num = _delegate(_inActor, _propertyType); if (num < this.maxValue) { this.targetList.Clear(); this.maxValue = num; this.targetList.Add(_inActor); } else if (num == this.maxValue) { this.targetList.Add(_inActor); } }
public static ulong GetPropertyHpRate(ActorRoot _inActor, RES_FUNCEFT_TYPE _type) { int num = _inActor.ValueComponent.actorHp * 100; int totalValue = _inActor.ValueComponent.mActorValue[_type].totalValue; if (totalValue != 0) { num /= totalValue; } else { object[] inParameters = new object[] { (_inActor.gameObject != null) ? _inActor.name : "null" }; DebugHelper.Assert(false, "Gameobj MaxHp = 0 Exception, ActorName:{0}", inParameters); } return((ulong)num); }
private static void BalancePropValue(ref PropertyHelper propVal, RES_FUNCEFT_TYPE type, float standardVal, float lowLmtVal, float translowLmtVal) { ValueDataInfo info = propVal[type]; int totalValue = info.totalValue; int num2 = 0; if (totalValue <= translowLmtVal) { num2 = (int)lowLmtVal; } else if (totalValue < standardVal) { DebugHelper.Assert((standardVal > translowLmtVal) && (standardVal > lowLmtVal)); num2 = (int)((((totalValue - translowLmtVal) / (standardVal - translowLmtVal)) * (standardVal - lowLmtVal)) + lowLmtVal); } else { num2 = (int)standardVal; } info.baseValue = num2; info.growValue = 0; info.addValue = 0; info.decValue = 0; }
private int GetAddValue(ref PoolObjHandle <ActorRoot> OrignalHost, ref PoolObjHandle <ActorRoot> Monster, ref ResCallMonster CallMonsterCfg, RES_FUNCEFT_TYPE type) { int num = 0; byte bAddType = CallMonsterCfg.bAddType; if ((CallMonsterCfg.bAddType & 1) != 0) { num += OrignalHost.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_PHYATKPT].totalValue; } if ((CallMonsterCfg.bAddType & 2) != 0) { num += OrignalHost.handle.ValueComponent.mActorValue[RES_FUNCEFT_TYPE.RES_FUNCEFT_MGCATKPT].totalValue; } if ((CallMonsterCfg.bAddType & 4) != 0) { num += OrignalHost.handle.ValueComponent.mActorValue[type].totalValue; } return(num); }
private void ApplyProperty(ref PoolObjHandle <ActorRoot> Monster, RES_FUNCEFT_TYPE InType, int InValue, int InBase) { int num = (int)(((double)(InBase * InValue)) / 10000.0); Monster.handle.ValueComponent.mActorValue[InType].addValue += num; }
private static void OnSkillFuncChangeValueProperty(ref SSkillFuncContext inContext, RES_FUNCEFT_TYPE _defType, bool _bAddValue) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj != 0) { ValueDataInfo info; int changeValueProperty = GetChangeValueProperty((ActorRoot)inTargetObj, ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); if (inContext.inStage != ESkillFuncStage.Leave) { if (_bAddValue) { if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] + changeValueProperty; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] << changeValueProperty; } inContext.LocalParams[0].iParam += changeValueProperty; } else { if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] - changeValueProperty; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] >> changeValueProperty; } inContext.LocalParams[0].iParam += changeValueProperty; } } else if (_bAddValue) { if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] - inContext.LocalParams[0].iParam; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] >> inContext.LocalParams[0].iParam; } } else if (skillFuncParam == 0) { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] + inContext.LocalParams[0].iParam; } else { info = inTargetObj.handle.ValueComponent.mActorValue[_defType] << inContext.LocalParams[0].iParam; } } }
private int GetPropMinValueLimit(RES_FUNCEFT_TYPE funcType, bool bPvpMode) { ResPropertyValueInfo dataByKey = GameDataMgr.propertyValInfo.GetDataByKey((uint)((byte)funcType)); return((dataByKey != null) ? dataByKey.iMinLimitValue : 0); }
private static void OnSkillFuncChangeValueProperty(ref SSkillFuncContext inContext, RES_FUNCEFT_TYPE _defType, bool _bAddValue) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (inTargetObj != 0) { int num = 0; int changeValueProperty = GetChangeValueProperty((ActorRoot)inTargetObj, ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); if (inContext.inStage != ESkillFuncStage.Leave) { if (_bAddValue) { if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) + changeValueProperty; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] << changeValueProperty); } ResDT_IntParamArrayNode node1 = inContext.LocalParams[0]; node1.iParam += changeValueProperty; } else { if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) - changeValueProperty; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] >> changeValueProperty); } ResDT_IntParamArrayNode node2 = inContext.LocalParams[0]; node2.iParam += changeValueProperty; } } else if (_bAddValue) { if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) - inContext.LocalParams[0].iParam; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] >> inContext.LocalParams[0].iParam); } } else if (skillFuncParam == 0) { num = ((int)inTargetObj.handle.ValueComponent.mActorValue[_defType]) + inContext.LocalParams[0].iParam; } else { num = (int)(inTargetObj.handle.ValueComponent.mActorValue[_defType] << inContext.LocalParams[0].iParam); } } }
private static void OnSkillFuncChangeValueProperty(ref SSkillFuncContext inContext, RES_FUNCEFT_TYPE _defType, bool _bAddValue) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (!inTargetObj) { return; } int changeValueProperty = SkillFuncPropertyDelegator.GetChangeValueProperty(inTargetObj, ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); if (inContext.inStage != ESkillFuncStage.Leave) { if (_bAddValue) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] + changeValueProperty; } else { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] << changeValueProperty; } SSkillFuncIntParam[] expr_8E_cp_0 = inContext.LocalParams; int expr_8E_cp_1 = 0; expr_8E_cp_0[expr_8E_cp_1].iParam = expr_8E_cp_0[expr_8E_cp_1].iParam + changeValueProperty; } else { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] - changeValueProperty; } else { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] >> changeValueProperty; } SSkillFuncIntParam[] expr_F3_cp_0 = inContext.LocalParams; int expr_F3_cp_1 = 0; expr_F3_cp_0[expr_F3_cp_1].iParam = expr_F3_cp_0[expr_F3_cp_1].iParam + changeValueProperty; } } else if (_bAddValue) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] - inContext.LocalParams[0].iParam; } else { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] >> inContext.LocalParams[0].iParam; } } else if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] + inContext.LocalParams[0].iParam; } else { ValueDataInfo valueDataInfo = inTargetObj.get_handle().ValueComponent.mActorValue[_defType] << inContext.LocalParams[0].iParam; } }
public static ulong GetPropertyValue(ActorRoot _inActor, RES_FUNCEFT_TYPE _type) { return((ulong)((long)_inActor.ValueComponent.mActorValue[_type].totalValue)); }
private static void OnSkillFuncChangeValueProperty(ref SSkillFuncContext inContext, RES_FUNCEFT_TYPE _defType, bool _bAddValue) { PoolObjHandle <ActorRoot> inTargetObj = inContext.inTargetObj; if (!inTargetObj) { return; } int changeValueProperty = SkillFuncPropertyDelegator.GetChangeValueProperty(inTargetObj, ref inContext); int skillFuncParam = inContext.GetSkillFuncParam(0, false); if (inContext.inStage != ESkillFuncStage.Leave) { if (_bAddValue) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo = inTargetObj.handle.ValueComponent.mActorValue[_defType] + changeValueProperty; } else { ValueDataInfo valueDataInfo2 = inTargetObj.handle.ValueComponent.mActorValue[_defType] << changeValueProperty; } SSkillFuncIntParam[] localParams = inContext.LocalParams; int num = 0; localParams[num].iParam = localParams[num].iParam + changeValueProperty; } else { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo3 = inTargetObj.handle.ValueComponent.mActorValue[_defType] - changeValueProperty; } else { ValueDataInfo valueDataInfo4 = inTargetObj.handle.ValueComponent.mActorValue[_defType] >> changeValueProperty; } SSkillFuncIntParam[] localParams2 = inContext.LocalParams; int num2 = 0; localParams2[num2].iParam = localParams2[num2].iParam + changeValueProperty; } } else if (_bAddValue) { if (skillFuncParam == 0) { ValueDataInfo valueDataInfo5 = inTargetObj.handle.ValueComponent.mActorValue[_defType] - inContext.LocalParams[0].iParam; } else { ValueDataInfo valueDataInfo6 = inTargetObj.handle.ValueComponent.mActorValue[_defType] >> inContext.LocalParams[0].iParam; } } else if (skillFuncParam == 0) { ValueDataInfo valueDataInfo7 = inTargetObj.handle.ValueComponent.mActorValue[_defType] + inContext.LocalParams[0].iParam; } else { ValueDataInfo valueDataInfo8 = inTargetObj.handle.ValueComponent.mActorValue[_defType] << inContext.LocalParams[0].iParam; } }