-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
Add Illeism as a speech trait #32643
base: master
Are you sure you want to change the base?
Conversation
Hell yes. |
Does this unpack the first name, or does it go "Jonathan Verylongname heard you." every time? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make sure you made all possible strings localizable
maybe I'll -> NAME'll should just break the contraction because I don't think anyone will understand what John'll means. I'll -> NAME will |
Currently, it does the full name, but I easily could split the name at the first space or dash |
The trait now only replaces the phrases with the first part of the name. This split occurs on spaces, not dashes. I wanted to preserve lizard names, ie "eats-the-paper" not becoming "eats", but long names including spaces, ie "Jonathan Verylongname" would become just "Jonathan" It also does not maintain the contraction I'll, instead replacing it with NAME will |
Also, for the traits description, I currently have: "You seem to only be able to refer to yourself by name." |
"You are so full of yourself you feel your actions deserve a narrator, and have taken that task upon yourself. You only refer to yourself in third person" Or something like that? |
Awesome PR. I would definitely use it on my Vox, which however leads to the question of how very long names and nicknames are handled. |
It currently takes up until the first space, so if you have multiple words in your name, it takes the first. ie "Jonathan Verylongname" would become just "Jonathan".
I do really like that! |
I like this idea, but it's quite long and extends beyond the boundary of the trait menu, making it seem out of place. Maybe we can shorten it a bit somehow, but keep the general theme? |
Cleaned up leftover code fragment mentioned by @Fildrance and changed the regex string for |
Things have gone very wrong |
1781e04
to
f231c4c
Compare
OK! Major update 🎉
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks good.
I would really prefer this doesn't have a placeholder icon for the action, but I'm not sure what the icon could be.
I don't see the point in not adding this. We definitely need it. |
About the PR
Added a new speech trait, "illeism", IE: referring to yourself in third person.
Why / Balance
This added trait makes roleplaying as an illeist much easier, automatically changing references of I, me, my, and some corresponding phrases, to their correct form, rather than having to do it manually. This saves time and makes roleplaying as an illeist much more appealing to a wider audience. Illeism is compatible with other speech traits, including racial speech patterns.
Technical details
This PR adds multiple new files,
IlleismAccentSystem.cs
,IlleismAccentComponent.cs
, &/Actions/speech.yml
, as well as modifiestraits.ftl
&/traits/speech.yml
.IlleismAccentSystem.cs
includes the regex functions to search for and replace the correct phrases.Phrases include:
I am -> NAME is
I have -> NAME has
I do -> NAME does
I don't -> NAME doesn't
Me -> NAME
My/mine -> NAME's
I'll -> NAME will
This includes fully capitalized versions
I/myself -> NAME
"I" is a special capitalization case, which is not shared by myself. As 'I' is automatically capitalized in the chat, my code can not tell if the user wants their name to be fully capitalized or not. This can result in phrases such as "I SAID" becoming "Name SAID". My code counteracts this by checking if over 50% of the sentence is capitalized, making it possible for 'I' to result in the name being fully capitalized in context.
IlleismAccentComponent.cs
is the corresponding component.traits.ftl
was modified to include a trait name and description.traits/speech.yml
was modified to include illeism as a selectable trait worth 1 speech point, as this trait is compatible with others.actions/speech.yml
was modified to add a new action, allowing the type of illeism to be adjusted.This trait incudes an action, allowing the type of illeism to be adjusted throughout the game, although most people will use it roundstart, then remove it.
Multiple types of illeism are available, including splitting the name at the first space, hyphen, or not splitting at all.
IE, If you have a name using hyphens, you can now break the name at the first hyphen -> Bean-Kamax = Bean
IE, If you have a name using spaces, you can now break the name at the first space -> Bean Kamax = Bean
IE, If you have a name using spaces AND hyphens, you can now prevent it from splitting -> Bean Kamax-Testing = Bean Kamax-Testing
Requirements
Changelog
🆑