Okay, I've put together a range of example interactions. Some interesting things I've learned:
- Only the CONTACT and HIDE interaction effects offer descriptions that end in periods ("You wave at the dwarf."). Everything else ends in an exclamation mark ("You wave at the dwarf!").
- CONTACT requires two targets, a subject and an object, for its descriptions. You can have sentences like "You head-bump the human.", or even "You hum to yourself." but not "You dance."
- HIDE only needs one target (so you can have sentences without an object), but it also, y'know, hides you.
- Basically, there's no good way to do non-dramatic targetless interactions.
- Also, BP_REQUIRED only ever applies to a single target, so you can't, say, get two people to shake hands correctly.
Anyway.
A file with a bunch of new base interactions:
interaction_flavour
[OBJECT:INTERACTION]
[INTERACTION:BP_BUMP_SENTIENT] only targets capable of speech
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_LOCATION:CONTEXT_BP]
[I_TARGET:B:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[IT_REQUIRES:CAN_SPEAK]
[IT_MANUAL_INPUT:person]
[I_EFFECT:CONTACT]
[IE_TARGET:A]
[IE_TARGET:B]
[IE_IMMEDIATE]
[INTERACTION:BP_BUMP_NONSENTIENT] only targets incapable of speech
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_LOCATION:CONTEXT_BP]
[I_TARGET:B:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[IT_FORBIDDEN:CAN_SPEAK]
[IT_MANUAL_INPUT:person]
[I_EFFECT:CONTACT]
[IE_TARGET:A]
[IE_TARGET:B]
[IE_IMMEDIATE]
[INTERACTION:SPEECH]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[IT_REQUIRES:CAN_SPEAK]
[I_TARGET:B:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[IT_REQUIRES:CAN_SPEAK]
[IT_MANUAL_INPUT:person]
[I_EFFECT:CONTACT]
[IE_TARGET:A]
[IE_TARGET:B]
[IE_IMMEDIATE]
[INTERACTION:DRAMATIC_EVENT]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:ADD_SYNDROME]
[IE_TARGET:A]
[IE_IMMEDIATE]
[SYNDROME]
[INTERACTION:HIDE_EFFECT]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:HIDE]
[IE_TARGET:A]
[IE_IMMEDIATE]
Wagging one's tail, for dogs:
[CAN_DO_INTERACTION:BP_BUMP]
[CDI:ADV_NAME:Wag tail]
[CDI:USAGE_HINT:GREETING]
[CDI:BP_REQUIRED:BY_CATEGORY:TAIL]
[CDI:VERB:wag your tail at:wags its tail at:wag their tails at each other]
[CDI:CAN_BE_MUTUAL]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:1]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:100]
Vanishing into the undergrowth, for foxes and other stealthy animals:
[CAN_DO_INTERACTION:HIDE_EFFECT]
[CDI:ADV_NAME:Vanish into underbrush]
[CDI:USAGE_HINT:FLEEING]
[CDI:VERB:vanish into the underbrush:vanishes into the underbrush:NA]
[CDI:TARGET:A:SELF_ONLY]
[CDI:WAIT_PERIOD:1000]
Beating ones' chest, for male gorillas (which for some reason are quadrupeds instead of humanoids in the raws?)
[CAN_DO_INTERACTION:BP_BUMP]
[CDI:ADV_NAME:Beat chest]
[CDI:USAGE_HINT:GREETING]
[CDI:BP_REQUIRED:BY_CATEGORY:LEG_FRONT]
[CDI:VERB:beat your chest at:beats his chest at:NA]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:5]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:500]
Chattering at people, for squirrels, monkeys, and other rude creatures (you might replace the chattering with hooting/scolding/etc.):
[CAN_DO_INTERACTION:BP_BUMP]
[CDI:ADV_NAME:Chatter at]
[CDI:USAGE_HINT:GREETING]
[CDI:BP_REQUIRED:BY_CATEGORY:MOUTH]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:5]
[CDI:VERB:chatter at:chatters at:N/A]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:500]
Various social interactions for civilized creatures:
[CAN_DO_INTERACTION:BP_BUMP]
[CDI:ADV_NAME:Smile at creature]
[CDI:USAGE_HINT:GREETING]
[CDI:BP_REQUIRED:BY_CATEGORY:MOUTH]
[CDI:VERB:smile at:smiles at:smile at each other
[CDI:CAN_BE_MUTUAL]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:1]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:5000]
[CAN_DO_INTERACTION:BP_BUMP_SENTIENT]
[CDI:ADV_NAME:Wave at person]
[CDI:USAGE_HINT:GREETING]
[CDI:BP_REQUIRED:BY_CATEGORY:HAND]
[CDI:VERB:wave at:waves at:wave at each other]
[CDI:CAN_BE_MUTUAL]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:5]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:10000]
[CAN_DO_INTERACTION:BP_BUMP_SENTIENT]
[CDI:ADV_NAME:Nod to person]
[CDI:USAGE_HINT:GREETING]
[CDI:BP_REQUIRED:BY_CATEGORY:HEAD]
[CDI:VERB:nod to:nods to:nod to each other]
[CDI:CAN_BE_MUTUAL]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:2]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:5000]
[CAN_DO_INTERACTION:BP_BUMP_NONSENTIENT]
[CDI:ADV_NAME:Pet animal]
[CDI:USAGE_HINT:GREETING]
[CDI:BP_REQUIRED:BY_CATEGORY:HAND]
[CDI:VERB:pet:pets:N/A]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:TOUCHABLE]
[CDI:TARGET_RANGE:B:1]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:200]
[CAN_DO_INTERACTION:SPEECH]
[CDI:ADV_NAME:Hail person]
[CDI:USAGE_HINT:GREETING]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:5]
[CDI:VERBAL]
[CDI:VERBAL_SPEECH:conversation_greeting.txt]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:5000]
[CAN_DO_INTERACTION:SPEECH]
[CDI:ADV_NAME:Talk to person]
[CDI:USAGE_HINT:GREETING]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:1]
[CDI:VERBAL]
[CDI:VERBAL_SPEECH:conversation_statement.txt]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:30]
[CAN_DO_INTERACTION:SPEECH]
[CDI:ADV_NAME:Reply to person]
[CDI:USAGE_HINT:CLEAN_FRIEND]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:1
[CDI:VERBAL]
[CDI:VERBAL_SPEECH:conversation_response.txt]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:20]
[CAN_DO_INTERACTION:SPEECH]
[CDI:ADV_NAME:Whisper to person]
[CDI:USAGE_HINT:CLEAN_FRIEND]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:B:1]
[CDI:VERB:whisper to:whispers to:N/A]
[CDI:VERBAL]
[CDI:VERBAL_SPEECH:conversation_statement.txt]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:1000]
[CAN_DO_INTERACTION:SPEECH]
[CDI:ADV_NAME:Hum]
[CDI:USAGE_HINT:CLEAN_SELF]
[CDI:TARGET:A:SELF_ONLY]
[CDI:TARGET:B:SELF_ONLY]
[CDI:TARGET_RANGE:B:1]
[CDI:VERB:hum to:hums to:N/A]
[CDI:MAX_TARGET_NUMBER:B:1]
[CDI:WAIT_PERIOD:10000]
[CAN_DO_INTERACTION:DRAMATIC_EVENT]
[CDI:ADV_NAME:Shout a battle cry]
[CDI:USAGE_HINT:ATTACK]
[CDI:TARGET:A:LINE_OF_SIGHT]
[CDI:TARGET_RANGE:A:2]
[CDI:VERBAL]
[CDI:VERBAL_SPEECH:threat.txt]
[CDI:MAX_TARGET_NUMBER:A:1]
[CDI:WAIT_PERIOD:200]
[CDI:FREE_ACTION]
The social interactions refer to three new speech files, which should be placed in data/speech:
Hello there!
Hello!
Greetings!
Hey, you!
Is that so?
You don't say.
Hmm.
Wow.
That's just what I heard.
Well, maybe.
Okay.
Ugh, that's terrible.
No, don't tell me. I don't want to hear.
Aw, not again.
Oh, sure.
Uh...
And that's not all!
Really? Because that's not what I heard.
There goes the neighbourhood.
There goes my investment.
Did he really?
No.
Please?
I already told you, no.
Say, have you heard the news?
What's new?
How are you doing?
How's life?
How about that new fellow down the road, eh?
How about that new lady down the road, eh?
I need to tell you something.
Sigh... I don't even know what to think any more.
Have you seen my brother anywhere?
Have you seen my sister anywhere?
A guy the other day said something about a vampire...
A guy the other day said something about a werewolf...
Apparently it came from some old tomb.
I barely escaped with my life.
Just between you and me, I'm not so sure about that priest.
I hear the lord has been acting odd lately.
So I hear there's a rumour going around.
I know what you did.
Oh gods, you have to help me.
Go away!
You might also consider making use of the
Speech Expansion mod. It adds a ton of new content to all of the speech files. It's a little different from what you're doing, but its purpose is similar.