/// Set Damage Event Data /// <param name="data">A NWNX_Damage_DamageEventData struct.</param> /// @note To use only in the Damage Event Script. public static void SetDamageEventData(DamageEventData data) { const string sFunc = "SetDamageEventData"; VM.NWNX.SetFunction(NWNX_Damage, sFunc); VM.NWNX.StackPush(data.iBase); VM.NWNX.StackPush(data.iSonic); VM.NWNX.StackPush(data.iPositive); VM.NWNX.StackPush(data.iNegative); VM.NWNX.StackPush(data.iFire); VM.NWNX.StackPush(data.iElectrical); VM.NWNX.StackPush(data.iDivine); VM.NWNX.StackPush(data.iCold); VM.NWNX.StackPush(data.iAcid); VM.NWNX.StackPush(data.iMagical); VM.NWNX.StackPush(data.iSlash); VM.NWNX.StackPush(data.iPierce); VM.NWNX.StackPush(data.iBludgeoning); VM.NWNX.Call(); }
/// Get Damage Event Data /// <returns>A NWNX_Damage_DamageEventData struct.</returns> /// @note To use only in the Damage Event Script. public static DamageEventData GetDamageEventData() { const string sFunc = "GetDamageEventData"; VM.NWNX.SetFunction(NWNX_Damage, sFunc); DamageEventData data = default; VM.NWNX.Call(); data.oDamager = VM.NWNX.StackPopObject(); data.iBludgeoning = VM.NWNX.StackPopInt(); data.iPierce = VM.NWNX.StackPopInt(); data.iSlash = VM.NWNX.StackPopInt(); data.iMagical = VM.NWNX.StackPopInt(); data.iAcid = VM.NWNX.StackPopInt(); data.iCold = VM.NWNX.StackPopInt(); data.iDivine = VM.NWNX.StackPopInt(); data.iElectrical = VM.NWNX.StackPopInt(); data.iFire = VM.NWNX.StackPopInt(); data.iNegative = VM.NWNX.StackPopInt(); data.iPositive = VM.NWNX.StackPopInt(); data.iSonic = VM.NWNX.StackPopInt(); data.iBase = VM.NWNX.StackPopInt(); return(data); }