Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleave class feat for Fighters #87

Merged
merged 7 commits into from
Aug 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cdtweaks/languages/english/cleave.tra
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@0 = "Cleave"
2 changes: 2 additions & 0 deletions cdtweaks/languages/english/weidu.tra
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,8 @@ The uninstall messages above are normal and expected.

@272000 = "Good Aim racial feat for Halflings [Luke]"

@273000 = "Cleave Feat for Fighters [Luke]"

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
///// \\\\\
Expand Down
1 change: 1 addition & 0 deletions cdtweaks/languages/italian/cleave.tra
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@0 = "Incalzare"
2 changes: 2 additions & 0 deletions cdtweaks/languages/italian/weidu.tra
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,8 @@ o rimpiazzata da - un'altra facente parte di uno dei mods installati.~

@272000 = "Aggiungi talento razziale Buona Mira per gli Halfling [Luke]"

@273000 = "Aggiungi talento di classe Incalzare per i Guerrieri [Luke]"

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
///// \\\\\
Expand Down
30 changes: 30 additions & 0 deletions cdtweaks/lib/cleave.tph
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
DEFINE_ACTION_FUNCTION "CLEAVE"
BEGIN
CREATE "eff" "cdcleave"
COPY_EXISTING "cdcleave.eff" "override"
WRITE_LONG 0x10 402 // invoke lua
WRITE_SHORT 0x2C 100 // prob1
WRITE_ASCII 0x30 "GTCLV01" #8 // lua function
BUT_ONLY
//
CREATE "spl" "cdcleave"
COPY_EXISTING "cdcleave.spl" "override"
WRITE_LONG NAME1 RESOLVE_STR_REF (@0)
WRITE_LONG 0x18 BIT14 // flags: ignore dead/wild magic
WRITE_SHORT 0x1C 4 // type: innate
WRITE_LONG 0x34 1 // level
//
LPF "ADD_SPELL_HEADER" INT_VAR "range" = 30 END
//
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 138 "target" = 1 "timing" = 1 END // Set animation sequence (ATTACK) -- probably not needed...?
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 402 "target" = 2 STR_VAR "resource" = "GTCLV02" END // invoke lua
BUT_ONLY_IF_IT_CHANGES
// Listener: run 'func' each time a sprite has finished evaluating its effects
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Listeners" "sourceFileSpec" = "cdtweaks\luke\lua\cleave_grant.lua" "destRes" = "m_gtlstn" END
//
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Functions to be invoked via op402" "sourceFileSpec" = "cdtweaks\luke\lua\cleave.lua" "destRes" = "m_gt#402" END
//
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gttbls.lua") BEGIN
COPY "cdtweaks\luke\lua\m_gttbls.lua" "override"
END
END
16 changes: 16 additions & 0 deletions cdtweaks/lib/comp_2730.tpa
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
///// /////
///// Cleave feat for Fighters \\\\\
///// \\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

WITH_SCOPE BEGIN
INCLUDE "cdtweaks\luke\misc.tph"
INCLUDE "cdtweaks\ardanis\functions.tph"
INCLUDE "cdtweaks\lib\cleave.tph"
WITH_TRA "cdtweaks\languages\english\cleave.tra" "cdtweaks\languages\%LANGUAGE%\cleave.tra" BEGIN
LAF "CLEAVE" END
END
END
31 changes: 4 additions & 27 deletions cdtweaks/lib/defensive_roll.tph
Original file line number Diff line number Diff line change
@@ -1,32 +1,9 @@
DEFINE_ACTION_FUNCTION "DEFENSIVE_ROLL"
BEGIN
<<<<<<<< .../cdtweaks-inlined/empty
>>>>>>>>
//
WITH_SCOPE BEGIN
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gt#403.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gt#403.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Functions to be invoked via op403 --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Functions to be invoked via op403 --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gt#403.lua" "override"
SET "feedback_strref" = RESOLVE_STR_REF (@0)
APPEND_FILE_EVALUATE TEXT "cdtweaks\luke\lua\defensive_roll.lua"
BUT_ONLY UNLESS "^function GTDEFRLL"
// Listener: run 'func' each time a sprite has finished evaluating its effects
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gtlstn.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gtlstn.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Listeners --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Listeners --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gtlstn.lua" "override"
APPEND_FILE TEXT "cdtweaks\luke\lua\defensive_roll_apply.lua"
BUT_ONLY UNLESS "cdtweaksDefensiveRoll"
OUTER_SET "feedback_strref" = RESOLVE_STR_REF (@0)
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Functions to be invoked via op403" "sourceFileSpec" = "cdtweaks\luke\lua\defensive_roll.lua" "destRes" = "m_gt#403" END
END
//
LAF "ADD_EXTENDED_STAT" STR_VAR "identifier" = "CDTWEAKS_DEFENSIVE_ROLL" END
// Listener: run 'func' each time a sprite has finished evaluating its effects
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Listeners" "sourceFileSpec" = "cdtweaks\luke\lua\defensive_roll_apply.lua" "destRes" = "m_gtlstn" END
END
16 changes: 2 additions & 14 deletions cdtweaks/lib/divine_grace_dark_blessing.tph
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
DEFINE_ACTION_FUNCTION "DIVINE_GRACE_DARK_BLESSING"
BEGIN
<<<<<<<< .../cdtweaks-inlined/empty
>>>>>>>>
//
ACTION_IF !(FILE_EXISTS_IN_GAME "gtdvngrc.bam") BEGIN
COPY "cdtweaks\bam\gtdvngrc.bam" "override"
END
Expand All @@ -14,17 +11,8 @@ BEGIN
LAF "ADD_STATDESC_ENTRY" INT_VAR "description" = RESOLVE_STR_REF (@0) STR_VAR "bam_file" = "gtdvngrc" RET "feedback_icon_paladin" = "index" END
LAF "ADD_STATDESC_ENTRY" INT_VAR "description" = RESOLVE_STR_REF (@1) STR_VAR "bam_file" = "gtdrkbls" RET "feedback_icon_blackguard" = "index" END
// Listener: run 'func' each time a sprite has finished evaluating its effects
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gtlstn.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gtlstn.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Listeners --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Listeners --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gtlstn.lua" "override"
APPEND_FILE_EVALUATE TEXT "cdtweaks\luke\lua\divine_grace.lua"
APPEND_FILE_EVALUATE TEXT "cdtweaks\luke\lua\dark_blessing.lua"
BUT_ONLY UNLESS "cdtweaksDivineGrace"
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Listeners" "sourceFileSpec" = "cdtweaks\luke\lua\divine_grace.lua" "destRes" = "m_gtlstn" END
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Listeners" "sourceFileSpec" = "cdtweaks\luke\lua\dark_blessing.lua" "destRes" = "m_gtlstn" END
//
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gttbls.lua") BEGIN
COPY "cdtweaks\luke\lua\m_gttbls.lua" "override"
Expand Down
49 changes: 20 additions & 29 deletions cdtweaks/lib/dorns_sword.tph
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
DEFINE_ACTION_FUNCTION "DORNS_SWORD"
BEGIN
<<<<<<<< .../cdtweaks-inlined/empty
>>>>>>>>
// update weapon
COPY_EXISTING "sw2hd1.itm" "override" // Rancor +1
LPF "DELETE_EFFECT" INT_VAR "match_opcode" = 232 STR_VAR "match_resource" = "ohdsw2" END // not needed
Expand All @@ -12,30 +10,32 @@ BEGIN
LPF "ALTER_EFFECT" INT_VAR "silent" = 1 "match_opcode" = 221 "opcode" = 321 "parameter1" = 0 "parameter2" = 0 STR_VAR "resource" = "%DEST_RES%" END // Remove effects by resource
BUT_ONLY
// update scripts
COPY_EXISTING "dorn.bcs" "override"
"dorn25.bcs" "override"
DECOMPILE_AND_PATCH BEGIN
SET "found" = INDEX_BUFFER (CASE_INSENSITIVE EXACT_MATCH ~!HasItemEquipedReal("sw2hd1",Myself)~)
PATCH_IF ("%found%" >= 0) BEGIN
SET "start" = RINDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^IF$" "%found%")
SET "end" = INDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^END$" "%found%") + STRING_LENGTH "END"
DELETE_BYTES "%start%" ("%end%" - "%start%")
WITH_SCOPE BEGIN
COPY_EXISTING "dorn.bcs" "override"
"dorn25.bcs" "override"
DECOMPILE_AND_PATCH BEGIN
SET "found" = INDEX_BUFFER (CASE_INSENSITIVE EXACT_MATCH ~!HasItemEquipedReal("sw2hd1",Myself)~)
PATCH_IF ("%found%" >= 0) BEGIN
SET "start" = RINDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^IF$" "%found%")
SET "end" = INDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^END$" "%found%") + STRING_LENGTH "END"
DELETE_BYTES "%start%" ("%end%" - "%start%")
END
SET "found" = INDEX_BUFFER (CASE_INSENSITIVE EXACT_MATCH ~ApplySpellRES("ohdsw3",Myself)~)
PATCH_IF ("%found%" >= 0) BEGIN
SET "start" = RINDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^IF$" "%found%")
SET "end" = INDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^END$" "%found%") + STRING_LENGTH "END"
DELETE_BYTES "%start%" ("%end%" - "%start%")
END
END
SET "found" = INDEX_BUFFER (CASE_INSENSITIVE EXACT_MATCH ~ApplySpellRES("ohdsw3",Myself)~)
PATCH_IF ("%found%" >= 0) BEGIN
SET "start" = RINDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^IF$" "%found%")
SET "end" = INDEX_BUFFER (CASE_SENSITIVE EVALUATE_REGEXP "^END$" "%found%") + STRING_LENGTH "END"
DELETE_BYTES "%start%" ("%end%" - "%start%")
END
END
BUT_ONLY IF_EXISTS
BUT_ONLY IF_EXISTS
END
// update CREs
COPY_EXISTING "dorn.cre" "override"
"dorn2.cre" "override"
"dorn4.cre" "override"
"dorn6.cre" "override"
"dorn7.cre" "override"
//
// bg2
"dorn8.cre" "override"
"dorn9.cre" "override"
"dorn10.cre" "override"
Expand All @@ -46,14 +46,5 @@ BEGIN
LPF "ADD_CRE_EFFECT" INT_VAR "opcode" = 402 "target" = 1 "timing" = 9 STR_VAR "resource" = "GTDRNSW1" END // Invoke lua
BUT_ONLY IF_EXISTS
// lua magic
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gt#402.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gt#402.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Functions to be invoked via op402 --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Functions to be invoked via op402 --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gt#402.lua" "override"
APPEND_FILE TEXT "cdtweaks\luke\lua\dorns_sword.lua"
BUT_ONLY UNLESS "^function GTDRNSW[1-2]"
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Functions to be invoked via op402" "sourceFileSpec" = "cdtweaks\luke\lua\dorns_sword.lua" "destRes" = "m_gt#402" END
END
14 changes: 1 addition & 13 deletions cdtweaks/lib/dual_wield.tph
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,10 @@ BEGIN
END
END
//
<<<<<<<< .../cdtweaks-inlined/empty
>>>>>>>>
//
WITH_SCOPE BEGIN
LAF "ADD_STATDESC_ENTRY" INT_VAR "description" = RESOLVE_STR_REF (@0) STR_VAR "bam_file" = "gtmharmr" RET "feedback_icon" = "index" END
// Listener: run 'func' each time a sprite has finished evaluating its effects
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gtlstn.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gtlstn.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Listeners --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Listeners --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gtlstn.lua" "override"
APPEND_FILE_EVALUATE TEXT "cdtweaks\luke\lua\dual_wield.lua"
BUT_ONLY UNLESS "cdtweaksDualWield"
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Listeners" "sourceFileSpec" = "cdtweaks\luke\lua\dual_wield.lua" "destRes" = "m_gtlstn" END
//
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gttbls.lua") BEGIN
COPY "cdtweaks\luke\lua\m_gttbls.lua" "override"
Expand Down
24 changes: 2 additions & 22 deletions cdtweaks/lib/revised_archer.tph
Original file line number Diff line number Diff line change
@@ -1,29 +1,9 @@
DEFINE_ACTION_FUNCTION "REVISED_ARCHER"
BEGIN
WITH_SCOPE BEGIN
<<<<<<<< .../cdtweaks-inlined/empty
>>>>>>>>
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gt#402.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gt#402.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Functions to be invoked via op402 --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Functions to be invoked via op402 --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gt#402.lua" "override"
APPEND_FILE TEXT "cdtweaks\luke\lua\revised_archer_402.lua"
BUT_ONLY UNLESS "^function GTCLDSHT"
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Functions to be invoked via op402" "sourceFileSpec" = "cdtweaks\luke\lua\revised_archer_402.lua" "destRes" = "m_gt#402" END
// Listener: run 'func' each time a sprite has finished evaluating its effects
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gtlstn.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gtlstn.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Listeners --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Listeners --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gtlstn.lua" "override"
APPEND_FILE TEXT "cdtweaks\luke\lua\revised_archer_listener.lua"
BUT_ONLY UNLESS "cdtweaksRevisedArcher"
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Listeners" "sourceFileSpec" = "cdtweaks\luke\lua\revised_archer_listener.lua" "destRes" = "m_gtlstn" END
//
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gttbls.lua") BEGIN
COPY "cdtweaks\luke\lua\m_gttbls.lua" "override"
Expand Down
14 changes: 1 addition & 13 deletions cdtweaks/lib/weapon_finesse.tph
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,10 @@ BEGIN
COPY "cdtweaks\bam\gtwpnfin.bam" "override"
END
//
<<<<<<<< .../cdtweaks-inlined/empty
>>>>>>>>
//
WITH_SCOPE BEGIN
LAF "ADD_STATDESC_ENTRY" INT_VAR "description" = RESOLVE_STR_REF (@0) STR_VAR "bam_file" = "gtwpnfin" RET "feedback_icon" = "index" END
// Listener: run 'func' each time a sprite has finished evaluating its effects
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gtlstn.lua") BEGIN
COPY ".../cdtweaks-inlined/empty" "override\m_gtlstn.lua"
DELETE_BYTES 0x0 BUFFER_LENGTH
INSERT_BYTES 0x0 STRING_LENGTH "-- Listeners --%WNL%%WNL%"
WRITE_ASCII 0x0 "-- Listeners --%WNL%%WNL%"
BUT_ONLY_IF_IT_CHANGES
END
COPY_EXISTING "m_gtlstn.lua" "override"
APPEND_FILE_EVALUATE TEXT "cdtweaks\luke\lua\weapon_finesse.lua"
BUT_ONLY UNLESS "cdtweaksWeaponFinesse"
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Listeners" "sourceFileSpec" = "cdtweaks\luke\lua\weapon_finesse.lua" "destRes" = "m_gtlstn" END
//
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gttbls.lua") BEGIN
COPY "cdtweaks\luke\lua\m_gttbls.lua" "override"
Expand Down
66 changes: 66 additions & 0 deletions cdtweaks/luke/lua/cleave.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
-- cdtweaks, NWN-ish Cleave feat for Fighters --

function GTCLV01(CGameEffect, CGameSprite)
local sourceSprite = EEex_GameObject_Get(CGameEffect.m_sourceId)
--
local sourceSeeInvisible = sourceSprite.m_derivedStats.m_bSeeInvisible + sourceSprite.m_bonusStats.m_bSeeInvisible
--
local inWeaponRange = EEex_Trigger_ParseConditionalString("InWeaponRange(EEex_LuaObject)")
local reallyForceSpell = EEex_Action_ParseResponseString('ReallyForceSpellRES("CDCLEAVE",EEex_LuaObject)')
--
local targetGeneralState = CGameSprite.m_derivedStats.m_generalState + CGameSprite.m_bonusStats.m_generalState
--
if EEex_IsBitSet(targetGeneralState, 11) then -- STATE_DEAD (BIT11)
local spriteArray = {}
if sourceSprite.m_typeAI.m_EnemyAlly > 200 then -- EVILCUTOFF
spriteArray = EEex_Sprite_GetAllOfTypeStringInRange(sourceSprite, "[GOODCUTOFF]", sourceSprite:virtual_GetVisualRange(), nil, nil, nil)
elseif sourceSprite.m_typeAI.m_EnemyAlly < 30 then -- GOODCUTOFF
spriteArray = EEex_Sprite_GetAllOfTypeStringInRange(sourceSprite, "[EVILCUTOFF]", sourceSprite:virtual_GetVisualRange(), nil, nil, nil)
end
--
for _, itrSprite in ipairs(spriteArray) do
EEex_LuaObject = itrSprite -- must be global
local spriteGeneralState = itrSprite.m_derivedStats.m_generalState + itrSprite.m_bonusStats.m_generalState
--
if inWeaponRange:evalConditionalAsAIBase(sourceSprite) and EEex_IsBitUnset(spriteGeneralState, 11) then
if EEex_IsBitUnset(spriteGeneralState, 0x4) or sourceSeeInvisible > 0 then
reallyForceSpell:executeResponseAsAIBaseInstantly(sourceSprite)
break
end
end
end
end
--
inWeaponRange:free()
reallyForceSpell:free()
end

-- cdtweaks, NWN-ish Cleave feat for Fighters --

function GTCLV02(CGameEffect, CGameSprite)
local sourceSprite = EEex_GameObject_Get(CGameEffect.m_sourceId)
--
local equipment = sourceSprite.m_equipment
local selectedWeapon = equipment.m_items:get(equipment.m_selectedWeapon)
local itemHeader = selectedWeapon.pRes.pHeader -- Item_Header_st
--
local itemAbility = EEex_Resource_GetItemAbility(itemHeader, equipment.m_selectedWeaponAbility) -- Item_ability_st
--
local randomValue = math.random(0, 1)
local damageType = {16, 0, 256, 128, 2048, 16 * randomValue, randomValue == 0 and 16 or 256, 256 * randomValue} -- piercing, crushing, slashing, missile, non-lethal, piercing/crushing, piercing/slashing, slashing/crushing
if damageType[itemAbility.damageType] then
EEex_GameObject_ApplyEffect(CGameSprite,
{
["effectID"] = 12, -- Damage
["dwFlags"] = damageType[itemAbility.damageType] * 0x10000, -- Normal
["durationType"] = 1,
["numDice"] = itemAbility.damageDiceCount,
["diceSize"] = itemAbility.damageDice,
["effectAmount"] = itemAbility.damageDiceBonus,
["m_sourceRes"] = CGameEffect.m_sourceRes:get(),
["m_sourceType"] = CGameEffect.m_sourceType,
["sourceID"] = CGameEffect.m_sourceId,
["sourceTarget"] = CGameEffect.m_sourceTarget,
})
end
end
Loading