Problem Statement
When using tokens in strings to automatically conjugate verbs, there is a case where a verb will "reset" the context of the sentence, causing following verbs to conjugate according to a default "it" noun.
The following demonstrates this behavior:
"{I} {hold} onto the ledge, drop{s/?ed},
and land{s/ed} on the floor below.";
creates:
I hold onto the ledge, drops, and lands on the floor below.
Solution
To fix this, the following code provides a new conjugation token (written as {aac}
). Simply add or include this code before the rest of your project to make use of it:
/*
* Actor Action Continuer (AAC)
* Joseph Cramsey
*/
actorActionContinuer_: dummy_ {
person = (gActor == nil ? 3 : gActor.person)
plural = (gActor == nil ? nil : gActor.plural)
}
// A modified englishMessageParams will have our new token.
modify englishMessageParams {
construct() {
// Add the simplified message token
params = params.append(['aac', { ctx, params:
cmdInfo(ctx, actorActionContinuer_, &dummyName, vSubject)
}]);
inherited();
}
}
With this, we now have the following behavior for all strings:
"{I} {hold} onto the ledge,{aac} drop{s/?ed},{aac}
and land{s/ed} on the floor below.";
creates:
I hold onto the ledge, drop, and land on the floor below.
As long as the {aac}
token precedes a verb, the verb will be conjugated according to the gActor
of the current action.