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

New component: Dirty Fighting #112

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
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
10 changes: 10 additions & 0 deletions cdtweaks/languages/english/dirty_fighting.tra
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@0 = "Dirty Fighting"
@1 = "Dirty Fighting

The character knows brutal and effective fighting tactics. By sacrificing all other attacks during the round, the character can elect to perform a dirty fighting move that will deal 20% of the target's maximum health as unmitigated damage."

@2 = "Dirty Fighting Mode On"
@3 = "Dirty Fighting Mode Off"

@100 = "Dirty Fighting: the character suffers 20% of its maximum health as unmitigated damage"
@101 = "Unaffected by effects from Dirty Fighting"
10 changes: 10 additions & 0 deletions cdtweaks/languages/english/weidu.tra
Original file line number Diff line number Diff line change
Expand Up @@ -802,3 +802,13 @@ Use Baldur.lua options: a7_interval_ini
@504000 = ~Allow Yeslick to Use Axes~

@505000 = ~Ensure Shar-Teel Doesn't Die in the Original Challenge~

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
///// \\\\\
///// NWN-ish feats collection \\\\\
///// \\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\

@600190 = "Dirty Fighting class feat for Chaotic-aligned Rogues [Luke]"
10 changes: 10 additions & 0 deletions cdtweaks/languages/italian/dirty_fighting.tra
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@0 = "Combattimento Scorretto"
@1 = "Combattimento Scorretto

Il personaggio conosce tattiche di combattimento brutali ed efficaci. Sacrificando tutti gli altri attacchi durante il round, il personaggio può scegliere di giocare sporco ed infliggere il 20% della salute massima del bersaglio come danno puro."

@2 = "Modalità Combattimento Scorretto Attivata"
@3 = "Modalità Combattimento Scorretto Annullata"

@100 = "Combattimento Scorretto: il personaggio subisce il 20% della sua salute massima come danno puro"
@101 = "Non soggetto agli effetti di Combattimento Scorretto"
10 changes: 10 additions & 0 deletions cdtweaks/languages/italian/weidu.tra
Original file line number Diff line number Diff line change
Expand Up @@ -718,3 +718,13 @@ Usa opzioni di Baldur.lua: a7_interval_ini
@504000 = ~Permettere a Yeslick di usare le asce~

@505000 = ~Assicura che Shar-Teel non muoia nella sfida iniziale~

/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
///// \\\\\
///// Raccolta di talenti in stile NWN \\\\\
///// \\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\

@600190 = "Aggiungi talento di classe Combattimento Scorretto per i Ladri di allineamento Caotico [Luke]"
18 changes: 18 additions & 0 deletions cdtweaks/lib/comp_6190.tpa
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
///// /////
///// NWN-ish Dirty Fighting \\\\\
///// \\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////

WITH_SCOPE BEGIN
INCLUDE "cdtweaks\luke\misc.tph"
INCLUDE "cdtweaks\ardanis\functions.tph"
//
INCLUDE "cdtweaks\lib\dirty_fighting.tph"
//
WITH_TRA "cdtweaks\languages\english\dirty_fighting.tra" "cdtweaks\languages\%LANGUAGE%\dirty_fighting.tra" BEGIN
LAF "DIRTY_FIGHTING" END
END
END
81 changes: 81 additions & 0 deletions cdtweaks/lib/dirty_fighting.tph
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
DEFINE_ACTION_FUNCTION "DIRTY_FIGHTING"
BEGIN
LAF "GT_ADD_SPELL"
INT_VAR
"type" = 4
"level" = 4
STR_VAR
"idsName" = "DIRTY_FIGHTING"
RET
"DIRTY_FIGHTING" = "resName"
END
//
LAF "ADD_EXTENDED_STAT" INT_VAR "max" = 30 STR_VAR "identifier" = "GT_COMBAT_MODE" END
//
WITH_SCOPE BEGIN
ACTION_TO_LOWER "DIRTY_FIGHTING"
//
LAF "ADD_STATDESC_ENTRY" INT_VAR "description" = RESOLVE_STR_REF (@0) STR_VAR "bam_file" = "%DIRTY_FIGHTING%d" RET "feedback_icon" = "index" END
//
COPY "cdtweaks\luke\bam\dirty_fighting\portrait_icon.bam" "override\%DIRTY_FIGHTING%d.bam"
COPY "cdtweaks\luke\bam\dirty_fighting\spl_icon.bam" "override\%DIRTY_FIGHTING%b.bam"
//
CREATE "spl" "%DIRTY_FIGHTING%"
COPY_EXISTING "%DIRTY_FIGHTING%.spl" "override"
WRITE_LONG NAME1 RESOLVE_STR_REF (@0)
WRITE_LONG UNIDENTIFIED_DESC RESOLVE_STR_REF (@1)
WRITE_LONG DESC "-1"
WRITE_LONG NAME2 "-1"
WRITE_LONG 0x18 (BIT14 BOR BIT25) // ignore dead/wild magic, castable when silenced
WRITE_SHORT 0x1C 4 // type: innate
WRITE_LONG 0x34 1 // level
WRITE_ASCII 0x3A "%DEST_RES%B" #8 // icon
//
LPF "ADD_SPELL_HEADER" INT_VAR "target" = 5 "range" = 30 STR_VAR "icon" = "%DEST_RES%B" END
//
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 138 "target" = 1 "parameter2" = 7 END // SEQ_READY
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 321 "target" = 1 STR_VAR "resource" = "%DEST_RES%" END // remove effects by resource
//LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 172 "target" = 1 STR_VAR "resource" = "%DEST_RES%" END // remove spell
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 139 "target" = 1 "parameter1" = RESOLVE_STR_REF (@2) END // feedback string
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 142 "target" = 1 "parameter2" = "%feedback_icon%" "timing" = 1 END // feedback icon
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 248 "target" = 1 "timing" = 1 STR_VAR "resource" = "%DEST_RES%B" END // melee hit effect
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 401 "target" = 1 "timing" = 1 "parameter2" = 1 "parameter1" = 2 "special" = IDS_OF_SYMBOL ("stats" "GT_COMBAT_MODE") END // set extended stat
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 402 "target" = 1 "parameter1" = 1 STR_VAR "resource" = "%DEST_RES%" END // invoke lua
BUT_ONLY
//
CREATE "spl" "%DIRTY_FIGHTING%b"
COPY_EXISTING "%DIRTY_FIGHTING%b.spl" "override"
WRITE_LONG NAME1 RESOLVE_STR_REF (@3)
WRITE_LONG UNIDENTIFIED_DESC "-1"
WRITE_LONG DESC "-1"
WRITE_LONG NAME2 "-1"
WRITE_LONG 0x18 (BIT14 BOR BIT25) // ignore dead/wild magic, castable when silenced
WRITE_SHORT 0x1C 4 // type: innate
WRITE_LONG 0x34 1 // level
WRITE_ASCII 0x3A "%DEST_RES%" #8
//
LPF "ADD_SPELL_HEADER" INT_VAR "target" = 5 "range" = 30 STR_VAR "icon" = "%DEST_RES%" END
//
LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 402 "target" = 1 "parameter1" = 2 STR_VAR "resource" = "%DIRTY_FIGHTING%" END // invoke lua
BUT_ONLY
//
CREATE "eff" "%DIRTY_FIGHTING%b"
COPY_EXISTING "%DIRTY_FIGHTING%b.eff" "override"
WRITE_LONG 0x10 402 // invoke lua
WRITE_LONG 0x1C 3 // parameter1
WRITE_ASCII 0x30 "%DIRTY_FIGHTING%" #8 // lua func
WRITE_SHORT 0x2C 100 // probability1
BUT_ONLY
END
// lua
WITH_SCOPE BEGIN
OUTER_SET "feedback_strref_hit" = RESOLVE_STR_REF (@100)
OUTER_SET "feedback_strref_immune" = RESOLVE_STR_REF (@101)
//
LAF "APPEND_LUA_FUNCTION" STR_VAR "description" = "Class/Kit Abilities" "sourceFileSpec" = "cdtweaks\luke\lua\class\dirty_fighting.lua" "destRes" = "m_gtspcl" END
END
//
ACTION_IF !(FILE_EXISTS_IN_GAME "m_gttbls.lua") BEGIN
COPY "cdtweaks\luke\lua\m_gttbls.lua" "override"
END
END
Loading