Feature: expand PMC response system to include different message suffixes (!64)

Co-authored-by: Dev <dev@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/64
This commit is contained in:
chomp 2023-03-13 14:02:39 +00:00
parent c81633ac38
commit 08b760cf4c
3 changed files with 41 additions and 7 deletions

View File

@ -251,12 +251,15 @@
"pmcresponse-victim_positive_32": "I didn't even see you coming, nice", "pmcresponse-victim_positive_32": "I didn't even see you coming, nice",
"pmcresponse-victim_positive_33": "Those were some solid-snake moves right there", "pmcresponse-victim_positive_33": "Those were some solid-snake moves right there",
"pmcresponse-victim_positive_34": "That was a good kill, we should team up", "pmcresponse-victim_positive_34": "That was a good kill, we should team up",
"pmcresponse-victim_positive_35": "That was a great kill, lets team up", "pmcresponse-victim_positive_35": "That was a great kill, lets team up some time",
"pmcresponse-victim_positive_36": "Those reactions of yours are unreal, nice", "pmcresponse-victim_positive_36": "Those reactions of yours are unreal, nice",
"pmcresponse-victim_positive_37": "I was in cover but you found an angle, nice", "pmcresponse-victim_positive_37": "I was in cover but you found an angle, nice",
"pmcresponse-victim_positive_38": "You were pulling some serious chad moves that raid", "pmcresponse-victim_positive_38": "You were pulling some serious chad moves that raid",
"pmcresponse-victim_positive_39": "Absolute chad sharpshooter over here, good kill", "pmcresponse-victim_positive_39": "Absolute chad sharpshooter over here, good kill",
"pmcresponse-victim_positive_40": "Clean kill", "pmcresponse-victim_positive_40": "Clean kill",
"pmcresponse-victim_positive_41": "Stone cold kill",
"pmcresponse-victim_positive_42": "You clowned me real good",
"pmcresponse-victim_positive_43": "I'm a little rusty but that was a decent kill",
"pmcresponse-victim_negative_1": "Nice aimbot", "pmcresponse-victim_negative_1": "Nice aimbot",
"pmcresponse-victim_negative_2": "Cheap shot", "pmcresponse-victim_negative_2": "Cheap shot",
"pmcresponse-victim_negative_3": "Wow esp much", "pmcresponse-victim_negative_3": "Wow esp much",
@ -298,6 +301,9 @@
"pmcresponse-victim_negative_39": "I bet you look like you were drawn with my left hand", "pmcresponse-victim_negative_39": "I bet you look like you were drawn with my left hand",
"pmcresponse-victim_negative_40": "Tell your mom to make your mac n cheese, I'll be home soon", "pmcresponse-victim_negative_40": "Tell your mom to make your mac n cheese, I'll be home soon",
"pmcresponse-victim_negative_41": "If you were any more inbred you would be a sandwich", "pmcresponse-victim_negative_41": "If you were any more inbred you would be a sandwich",
"pmcresponse-victim_negative_42": "You are such a stinky little goblin",
"pmcresponse-victim_negative_43": "There was no need for violence",
"pmcresponse-victim_negative_44": "1 v 1 me in dorms any time any place",
"pmcresponse-victim_plead_1": "I was questing", "pmcresponse-victim_plead_1": "I was questing",
"pmcresponse-victim_plead_2": "I just wanted to do a quest, why'd you kill me :(", "pmcresponse-victim_plead_2": "I just wanted to do a quest, why'd you kill me :(",
"pmcresponse-victim_plead_3": "Hope ur happy i can't even afford a new kit", "pmcresponse-victim_plead_3": "Hope ur happy i can't even afford a new kit",
@ -315,5 +321,20 @@
"pmcresponse-victim_plead_15": "Does the wiggle mean nothing smh smh fr", "pmcresponse-victim_plead_15": "Does the wiggle mean nothing smh smh fr",
"pmcresponse-victim_plead_16": "I cant stand this game, I'm going back to roblox", "pmcresponse-victim_plead_16": "I cant stand this game, I'm going back to roblox",
"pmcresponse-victim_plead_17": "The wiggle is clearly a sign I'm friendly", "pmcresponse-victim_plead_17": "The wiggle is clearly a sign I'm friendly",
"pmcresponse-victim_plead_18": "BRO WHY" "pmcresponse-victim_plead_18": "BRO WHY",
"pmcresponse-victim_plead_19": "I go and make myself a ham and cheese sandwich and you kill me, incredible",
"pmcresponse-suffix_1": "bro",
"pmcresponse-suffix_2": "bruh",
"pmcresponse-suffix_3": "lil bro",
"pmcresponse-suffix_4": "buddy",
"pmcresponse-suffix_5": "pal",
"pmcresponse-suffix_6": "chief",
"pmcresponse-suffix_7": "dude",
"pmcresponse-suffix_8": "my g",
"pmcresponse-suffix_9": "brother",
"pmcresponse-suffix_10": "broski",
"pmcresponse-suffix_11": "my guy",
"pmcresponse-suffix_12": "smh",
"pmcresponse-suffix_13": "man",
"pmcresponse-suffix_14": "king"
} }

View File

@ -1,4 +1,3 @@
import { Item } from "@spt-aki/models/eft/common/tables/IItem";
import { inject, injectable } from "tsyringe"; import { inject, injectable } from "tsyringe";
import { DialogueHelper } from "../helpers/DialogueHelper"; import { DialogueHelper } from "../helpers/DialogueHelper";
@ -8,6 +7,7 @@ import { QuestConditionHelper } from "../helpers/QuestConditionHelper";
import { QuestHelper } from "../helpers/QuestHelper"; import { QuestHelper } from "../helpers/QuestHelper";
import { IPmcData } from "../models/eft/common/IPmcData"; import { IPmcData } from "../models/eft/common/IPmcData";
import { Quest } from "../models/eft/common/tables/IBotBase"; import { Quest } from "../models/eft/common/tables/IBotBase";
import { Item } from "../models/eft/common/tables/IItem";
import { AvailableForConditions, IQuest, Reward } from "../models/eft/common/tables/IQuest"; import { AvailableForConditions, IQuest, Reward } from "../models/eft/common/tables/IQuest";
import { IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests"; import { IRepeatableQuest } from "../models/eft/common/tables/IRepeatableQuests";
import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse"; import { IItemEventRouterResponse } from "../models/eft/itemEvent/IItemEventRouterResponse";

View File

@ -77,9 +77,11 @@ export class PmcChatResponseService
// Choose random response from above list and request it from localisation service // Choose random response from above list and request it from localisation service
let responseText = this.localisationService.getText(this.randomUtil.getArrayValue(possibleResponseLocaleKeys)); let responseText = this.localisationService.getText(this.randomUtil.getArrayValue(possibleResponseLocaleKeys));
if (this.appendBroToMessageEnd(isVictim))
if (this.appendSuffixToMessageEnd(isVictim))
{ {
responseText += " bro"; const suffixText = this.localisationService.getText(this.randomUtil.getArrayValue(this.getResponseSuffixLocaleKeys()));
responseText += ` ${suffixText}`;
} }
if (this.stripCapitalistion(isVictim)) if (this.stripCapitalistion(isVictim))
@ -124,11 +126,11 @@ export class PmcChatResponseService
} }
/** /**
* Should the word 'bro' be appended to the message being sent to player * Should a suffix be appended to the end of the message being sent to player
* @param isVictim Was responder a victim of player * @param isVictim Was responder a victim of player
* @returns true = should be stripped * @returns true = should be stripped
*/ */
appendBroToMessageEnd(isVictim: boolean): boolean appendSuffixToMessageEnd(isVictim: boolean): boolean
{ {
const chance = isVictim const chance = isVictim
? this.pmcResponsesConfig.victim.appendBroToMessageEndChancePercent ? this.pmcResponsesConfig.victim.appendBroToMessageEndChancePercent
@ -165,6 +167,17 @@ export class PmcChatResponseService
return keys.filter(x => x.startsWith(`${keyBase}${keyType}`)); return keys.filter(x => x.startsWith(`${keyBase}${keyType}`));
} }
/**
* Get all locale keys that start with `pmcresponse-suffix`
* @returns array of keys
*/
protected getResponseSuffixLocaleKeys(): string[]
{
const keys = this.localisationService.getKeys();
return keys.filter(x => x.startsWith("pmcresponse-suffix"));
}
/** /**
* Randomly draw a victim of the the array and return thier details * Randomly draw a victim of the the array and return thier details
* @param pmcVictims Possible victims to choose from * @param pmcVictims Possible victims to choose from