Home > notes > Banters

Banter flicks

A banter is a talk flick that is triggered when a comment is needed on the state of the game, or to build hireables' characters. Typically, two of the party will discuss something that just happened in the game, giving you some insight into their outlook on events like that. "That was scary!" or "That was easy!" or "I wish I was a Combat Mage".

A cmd_run_flick gizmo is needed to operate the banter and a "Party member in box" trigger is usually placed to start the process. This can be the cmd_run_flick gizmo itself, with a trigger attached, in which case it will have to send itself an activation message. You also need to place an actor known as "invisible talker" to own the conversation, as you will not be clicking on a character to start it.

The cmd_run_flick gizmo needs roles assigned for the conversation. One will be the "invisible talker" as speaker, and the other can be the trigger itself. These are used because they are placed on the map in advance and it then does not matter what party member triggers the flick. Copy the scid values into the slots for the first two roles, and make them "speaker" and "listener".

The cmd_run_flick gizmo has a slot for the flick name, and the invisible speaker will have a talk_flick assigned. I'm not certain which is used, so make then the same and you won't have to know! The flick selects among the available parties for the conversation and then issues a StartConversation for the conversation that uses the ones it can find. If none of the party members are available, it may do nothing!

[a1_leaving_jngtown_banter]
{ 
    // set the roles for this sequence
    role (actor) speaker, listener;
    external role (actor) pm_deru, pm_lothar;
    role trigger;
    entry main; 
    thread main
	{
	speaker:
		Capture;
		if WhenWithinDistance ( speaker, pm_deru, 15) 
		AND WhenWithinDistance ( speaker, pm_lothar, 15)
		{
			StartConversation deru_lothar_banter, wait;
			PostMessage trigger WE_REQ_DELETE; 
		}
		else if WhenWithinDistance ( speaker, pm_deru, 15)
		{
			StartConversation deru_early_banter, wait;
			PostMessage trigger WE_REQ_DELETE; 	
		}	
		else if WhenWithinDistance ( speaker, pm_lothar, 15)
		{
			StartConversation lothar_early_banter, wait;
			PostMessage trigger WE_REQ_DELETE; 	
		}				
	}
}

In this example from DS2, if Deru and Lothar are both with you, they talk to each other, otherwise either will talk to the main hero. If you are alone, no conversation. The trigger is deleted if any conversation takes place, so when you retrace your steps, it doesn't repeat.

In the conversation itself, the speaker and portrait_icon elements are used to indicate who is having the conversation. The main character's role may be restricted to just [more] to let the others continue, or the conversation may include him/her. Also, although you only needed to define two roles for the cmd_run_flick gizmo, more than two parties can talk.

Lara 3