Add choreo sentence scripts

This commit is contained in:
ALLEN-PC\acj30 2025-06-02 13:33:49 -05:00
parent a941fcbdbb
commit 6ff08f5b0d
4 changed files with 700 additions and 0 deletions

View File

@ -0,0 +1,29 @@
//=================================================================
//
// Choreo Sentences
// Mapbase's modern replacement for sentences.txt
//
//=================================================================
"ChoreoSentences"
{
//---------------------------------------------------------------------------
// Contexts to add to speakers when they have a virtual word that uses one and they don't have it.
// These stand in for hardcoded sentences.txt names, such as soldier unit callsigns.
"SentenceContextPrerequisites"
{
}
//---------------------------------------------------------------------------
"VirtualWords"
{
}
//---------------------------------------------------------------------------
"Sentences"
{
}
}

View File

@ -0,0 +1,264 @@
//=================================================================
//
// Choreo Sentences
// Mapbase's modern replacement for sentences.txt
//
// (This file is a WIP and does not contain every soldier sentence)
//
//=================================================================
"ChoreoSentences"
{
//---------------------------------------------------------------------------
"SentenceContextPrerequisites"
{
"soldier_codename"
{
vscript "RandomInt(0, 18)"
}
"soldier_codenum"
{
vscript "RandomInt(0, 9)"
}
}
//---------------------------------------------------------------------------
"VirtualWords"
{
//-------------------------------------------------------
// Combine Soldier names, remembered by speaker
//-------------------------------------------------------
V_MYNAMES
{
condition "context:soldier_codename"
words
{
0 "leader"
1 "flash"
2 "ranger"
3 "hunter"
4 "blade"
5 "scar"
6 "hammer"
7 "sweeper"
8 "swift"
9 "fist"
10 "sword"
11 "savage"
12 "tracker"
13 "slash"
14 "razor"
15 "stab"
16 "spear"
17 "striker"
18 "dagger"
}
}
V_MYNUMS
{
condition "context:soldier_codenum"
words
{
0 "zero"
1 "one"
2 "two"
3 "three"
4 "four"
5 "five"
6 "six"
7 "seven"
8 "eight"
9 "niner"
}
}
//-------------------------------------------------------
// Random Combine codes
//-------------------------------------------------------
// Phonetic alphabet
V_RNDCODES
{
words
{
0 "apex"
1 "ion"
2 "jet"
3 "kilo"
4 "mace"
5 "nova"
6 "payback"
7 "sundown"
8 "uniform"
9 "boomer"
10 "echo"
11 "flatline"
12 "helix"
13 "ice"
14 "quicksand"
15 "payback"
16 "ripcord"
}
}
V_RNDNAMES
{
words
{
0 "apex"
1 "ion"
2 "jet"
3 "kilo"
4 "mace"
5 "nova"
6 "payback"
7 "sundown"
8 "uniform"
9 "boomer"
10 "echo"
11 "flatline"
12 "helix"
13 "ice"
14 "quicksand"
15 "payback"
16 "ripcord"
}
}
V_RNDNUMS
{
words
{
0 "zero"
1 "one"
2 "two"
3 "three"
4 "four"
5 "five"
6 "six"
7 "seven"
8 "eight"
9 "niner"
}
}
//-------------------------------------------------------
// Generic Combine numbers
//-------------------------------------------------------
V_NUMBERSS
{
words
{
0 "zero"
1 "one"
2 "two"
3 "three"
4 "four"
5 "five"
6 "six"
7 "seven"
8 "eight"
9 "niner"
10 "ten"
11 "eleven"
12 "twelve"
13 "thirteen"
14 "fourteen"
15 "fifteen"
16 "sixteen"
17 "seventeen"
18 "eighteen"
19 "nineteen"
20 "twenty"
30 "thirty"
40 "fourty"
50 "fifty"
60 "sixty"
70 "seventy"
80 "eighty"
90 "ninety"
100 "onehundred"
200 "twohundred"
300 "threehundred"
}
}
V_DISTS
{
condition "dist_to:!enemy"
words_from "V_NUMBERSS"
}
V_DIRS
{
condition "dir_to:!enemy"
words_from "V_NUMBERSS"
}
V_GRIDXS
{
condition "gridx:!enemy"
words_from "V_NUMBERSS"
}
V_GRIDYS
{
condition "gridy:!enemy"
words_from "V_NUMBERSS"
}
V_SEQGLOBNBRS
{
condition "context:enemies_killed"
words_from "V_NUMBERSS"
}
V_WHODIEDS
{
condition "context:speechtarget_soldier_codename"
words_from "V_MYNAMES"
}
//-------------------------------------------------------
// Combine global player
//-------------------------------------------------------
V_G0_PLAYERS
{
words
{
0 "freeman3"
1 "anticitizenone"
2 "targetone"
3 "priority1objective"
4 "phantom"
5 "ghost2"
}
}
}
//---------------------------------------------------------------------------
"Sentences"
{
"npc/combine_soldier/vo/"
{
COMBINE_REFIND_ENEMY_PATH "on1 V_WHODIEDS onedown onedown off1; NPC_Combine.Alert"
COMBINE_PATH_TEST_PLAYERS "on1 V_G0_PLAYERS onedown onedown off1; NPC_Combine.Alert"
COMBINE_PATH_TEST_MYCODE_1 "on2 V_MYNAMES V_MYNUMS onedown onedown off3; NPC_Combine.Alert"
COMBINE_PATH_TEST_MYCODE_2 "on1 overwatch V_MYNAMES V_MYNUMS isatcode V_RNDNUMS off2; NPC_Combine.Alert"
COMBINE_PATH_TEST_MYCODE_3 "on2 overwatch, V_MYNAMES V_MYNUMS lostcontact, hardenthatposition off2; NPC_Combine.Alert"
COMBINE_PATH_TEST_PITCH "on1 ripcord (p110) ripcord (p120) ripcord (p130) ripcord (p140) ripcord (p100) off2; NPC_Combine.Alert"
COMBINE_PATH_TEST_PITCH2 "on1 ripcord (p90) ripcord (p80) ripcord (p70) ripcord (p60) ripcord (p100) off2; NPC_Combine.Alert"
COMBINE_PATH_TEST_PITCH_BLANK "on1 ripcord ripcord ripcord ripcord ripcord off2; NPC_Combine.Alert"
}
}
}

View File

@ -0,0 +1,398 @@
//=================================================================
//
// Choreo Sentences
// Mapbase's modern replacement for sentences.txt
//
// (This file is a WIP and does not contain every metrocop sentence)
//
//=================================================================
"ChoreoSentences"
{
//---------------------------------------------------------------------------
"SentenceContextPrerequisites"
{
"police_codename"
{
vscript "RandomInt(0, 14)"
}
"police_codenum"
{
vscript "RandomInt(1, 9)"
}
}
//---------------------------------------------------------------------------
"VirtualWords"
{
//-------------------------------------------------------
// Metropolice map names
//-------------------------------------------------------
V_G1_LOCATION_MAP__P
{
criterion "map"
matches
{
// map 0
default
{
words
{
0 "block"
1 "zone"
2 "sector"
}
}
// map 1
*trainstation*
{
words
{
0 "stationblock"
1 "transitblock"
2 "workforceintake"
}
}
// map 2
*canals*
{
words
{
0 "canalblock"
1 "stormsystem"
2 "wasteriver"
3 "deservicedarea"
}
}
// map 3
*eli*
{
words
{
0 "industrialzone"
1 "restrictedblock"
2 "repurposedarea"
}
}
// map 4
*town*
{
words
{
0 "condemnedzone"
1 "infestedzone"
2 "nonpatrolregion"
}
}
// map 5
*coast*
{
words
{
0 "externaljurisdiction"
1 "stabilizationjurisdiction"
2 "outlandzone"
}
}
// map 6
*prison*
{
words
{
0 "externaljurisdiction"
1 "stabilizationjurisdiction"
}
}
// map 7
*c17*
{
words
{
0 "residentialblock"
1 "404zone"
2 "distributionblock"
3 "productionblock"
}
}
// map 8
*citadel*
{
words
{
0 "highpriorityregion"
1 "terminalrestrictionzone"
2 "controlsection"
}
}
}
}
V_G2_SUSPECT_MAP__P
{
criterion "map"
matches
{
// map 0
default
{
words
{
0 "subject"
}
}
// map 1
*trainstation*
{
words
{
0 "citizen"
1 "UPI"
2 "subject"
}
}
// map 2
*canals*
{
words
{
0 "subject"
1 "noncitizen"
2 "sociocide"
3 "anticitizen"
}
}
// map 3
*eli*
{
words
{
0 "anticitizen"
1 "subject"
}
}
// map 4
*town*
{
words
{
0 "freeman"
1 "subject"
2 "anticitizen"
}
}
// map 5
*coast*
{
words
{
0 "freeman"
1 "sociocide"
}
}
// map 6
*prison*
{
words
{
0 "freeman"
1 "infection"
}
}
// map 7
*c17*
{
words
{
0 "freeman"
}
}
// map 8
*citadel*
{
words
{
0 "freeman"
}
}
}
}
//-------------------------------------------------------
// Generic metrocop/overwatch numbers
//-------------------------------------------------------
V_NUMBERSP
{
words
{
0 "zero"
1 "one"
2 "two"
3 "three"
4 "four"
5 "five"
6 "six"
7 "seven"
8 "eight"
9 "nine"
10 "ten"
11 "eleven"
12 "twelve"
13 "thirteen"
14 "fourteen"
15 "fifteen"
16 "sixteen"
17 "seventeen"
18 "eighteen"
19 "nineteen"
20 "twenty"
30 "thirty"
40 "fourty"
50 "fifty"
60 "sixty"
70 "seventy"
80 "eighty"
90 "ninety"
100 "onehundred"
200 "twohundred"
300 "threehundred"
}
}
V_SEQG0_NBRP
{
// Note that this used its own definitions before
condition "context:enemies_killed"
words_from "V_NUMBERSP"
}
//-------------------------------------------------------
// Random metrocop/overwatch codes
//-------------------------------------------------------
V_RNDCODECRIM_P
{
words
{
0 "criminaltrespass63"
1 "nonsanctionedarson51"
2 "posession69"
3 "publicnoncompliance507"
4 "recklessoperation99"
5 "resistingpacification148"
6 "riot404"
7 "fugitive17f"
8 "weapon94"
9 "alarms62"
10 "assault243"
11 "illegalcarrying95"
12 "unlawfulentry603"
}
}
V_RNDCODEPLR_P
{
words
{
0 "attemptedcrime27"
1 "disengaged647e"
2 "disturbingunity415"
3 "disturbancemental10-103m"
4 "illegalinoperation63s"
5 "threattoproperty51b"
}
}
V_RNDNUMP
{
words
{
0 "zero"
1 "one"
2 "two"
3 "three"
4 "four"
5 "five"
6 "six"
7 "seven"
8 "eight"
9 "nine"
}
}
//-------------------------------------------------------
// Metropolice names, remembered by speaker
//-------------------------------------------------------
V_MYNAMEP
{
condition "context:police_codename"
words
{
0 "defender"
1 "hero"
2 "jury"
3 "king"
4 "line"
5 "patrol"
6 "quick"
7 "roller"
8 "stick"
9 "tap"
10 "union"
11 "victor"
12 "xray"
13 "yellow"
14 "vice"
}
}
V_MYNUMP
{
condition "context:police_codenum"
words
{
0 "zero"
1 "one"
2 "two"
3 "three"
4 "four"
5 "five"
6 "six"
7 "seven"
8 "eight"
9 "nine"
}
}
}
//---------------------------------------------------------------------------
"Sentences"
{
"npc/metropolice/vo/"
{
METROPOLICE_GO_ALERT_PATH "on1 designatesuspectas V_G2_SUSPECT_MAP__P allunitscode2 off1; NPC_Combine.Alert"
}
}
}

View File

@ -0,0 +1,9 @@
choreosentences_manifest
{
"precache_file" "scripts/choreosentences_base.txt"
"precache_file" "scripts/choreosentences_hl2_combine_s.txt"
"precache_file" "scripts/choreosentences_hl2_metropolice.txt"
// Add new files here
}