Esempio n. 1
0
        /// Get Attack Event Data
        /// <returns>A NWNX_Damage_AttackEventData struct.</returns>
        /// @note To use only in the Attack Event Script.
        public static AttackEventData GetAttackEventData()
        {
            const string sFunc = "GetAttackEventData";

            VM.NWNX.SetFunction(NWNX_Damage, sFunc);
            AttackEventData data = default;

            VM.NWNX.Call();
            data.oTarget           = 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();
            data.iAttackNumber     = VM.NWNX.StackPopInt();
            data.iAttackResult     = VM.NWNX.StackPopInt();
            data.iWeaponAttackType = VM.NWNX.StackPopInt();
            data.iSneakAttack      = VM.NWNX.StackPopInt();
            data.bKillingBlow      = VM.NWNX.StackPopInt();
            data.iAttackType       = VM.NWNX.StackPopInt();
            data.iToHitRoll        = VM.NWNX.StackPopInt();
            data.iToHitModifier    = VM.NWNX.StackPopInt();
            return(data);
        }
Esempio n. 2
0
        /// Set Attack Event Data
        /// <param name="data">A NWNX_Damage_AttackEventData struct.</param>
        /// @note To use only in the Attack Event Script.
        public static void SetAttackEventData(AttackEventData data)
        {
            const string sFunc = "SetAttackEventData";

            VM.NWNX.SetFunction(NWNX_Damage, sFunc);
            VM.NWNX.StackPush(data.iAttackResult);
            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();
        }