Involved Cat Dictionaries¶
General information on the formatting and constraints within an involved cat dictionary. Event format documentation will link to this page if these dictionaries can be used within them.
This dictionary holds all constraints for the cats whom we wish to reference in the event.
Each entry is an individual cat, with the key being their event designation (r_c0, p_l, etc.) and the value being their personal constraints. Event documentation will include a list of valid designations for that event type.
"designation": {
"prior_abbreviation": [],
"can_create_new_cat": {},
"status": [],
"past_status": [],
"age": [],
"name": {
"has_suffix": true
}
"gender": [],
"group": [],
"standing": {
"group": [],
"currently": [],
"past": []
},
"stat": {
"skill": [],
"trait": [],
"must_have_both": false
},
"current_exp": [],
"health": {
"working": true,
"condition": [],
"must_be_congenital": false,
"must_be_acquired": false
},
"backstory": [],
"has_mentor": {
"current": false,
"former": false
},
"has_apprentice": {
"current": false,
"former": false
},
}
When To Use¶
If you want to be able to reference the cat designation within the text or within other constraint/consequence lists (cats who die, cats who must abide by relationship constraints, etc.), then you must declare them within an involved_cats dict for that event (there are some exceptions to this which may be specified by the format documentation for specific event types.) This can be an empty dict if no constraints are needed:
Tip
You do not need to "repeat" constraints! If a patrol can only have apprentices on it via the required_cat_types then you don't need to specify that r_c0 is an apprentice.
Specifying an outsider or other Clan cat¶
If you would like to include an outsider or other Clan cat, you can specify them using the n_c# designation and some additional parameters.
If the outsider/other_clan cat can be newly generated rather than having to utilize an existing cat, you can add the can_create_new_cat parameter.
"can_create_new_cat": {
"become_litter": false,
"assign_blood_parent": [],
"assign_adoptive_parent": [],
"assign_mate": []
}
can_create_new_cat: {} to simply mark it as a new cat creation without any additional specifications.
become_litter- True will generate a 2-5 litter of kittens rather than a single cat. This means the abbreviation for this litter should not be used within the text of the event, since they have no singular name or pronoun.
assign_blood_parent- List of designations for cats who will become this cat's blood parents. These cats must have already been specified prior ininvolved_cats.
assign_adoptive_parent- List of designations for cats who will become this cat's adoptive parents. These cats must have already been specified prior ininvolved_cats.
assign_mate- List of designations for cats who will become this cat's mates. These cats must have already been specified prior ininvolved_cats.
Prior Abbreviation¶
For patrols, it's possible to "reuse" a cat under a new designation for an outcome, but with tighter constraints. You can utilize the s_c designations for this use. You will need to add the prior_abbreviation parameter to the dictionary for the s_c cat:
For example:
In this example,s_c can be either p_l or r_c1, but only if those cats are also warrior rank.
You can utilize any prior declared cat designation or to allow any cat in the patrol to be s_c, you can use any.
These can also be exclusionary tags such as: -p_l to allow any cat except p_l to take this role.
Tip
s_c used to be used only for trait and skill constrained cats. Now it's for any sort of constraint. This could be a health constraint, group constraint, literally any constraint.
General Constraints¶
status: list[str]¶
Constrains the event to only happen if the cat holds a certain role. You can utilize exclusionary tags.
You can also remove the parameter to allow the event to occur for all roles except "newborns", who are only allowed if specifically tagged as such.
past_status: list[str]¶
Constrains the event to only happen if the cat held a certain role in the past. You can utilize exclusionary tags.
age: list[str]¶
Constrains the event to only occur if the cat is within a certain age group. You can utilize exclusionary tags.
You can also remove the parameter to allow the event to occur for all ages except "newborns", who are only allowed if specifically tagged as such.
name: dict[str, bool]¶
Constrains the event to only occur if the cat matches the name constraints.
"has_suffix"- iftrue, cat must have a suffix as part of their name. iffalse, cat must have no suffix as part of their name. this only applies to the base suffix of the cat, special suffixes (i.e. "paw", "kit") are not counted for this constraint.
gender: str¶
Constrains the event to only occur if the cat has a certain birth gender. Valid entries are:
male,female,can_birth.can_birthwill allow either female or male cats dependant upon the player's settings.
group:list[str]¶
Constraints the thought to only happen if the cat is a member of a listed group or a member of no group. This should only be used to dictate what group a new cat is originally part of. you can use tags in: possible group tags and you can utilize exclusionary tags.
standing: dict[str: var]¶
Constrains the event to only happen if the cat matches with the dictated group standings. A group standing is the relationship between a cat and a group, for example: if they are an exile or lost.
"group"- the group we are checking the cat's standing with. you can utilize exclusionary tags. tags can be mixed and matched as necessary. if multiple tags are used, the cat will only need to qualify against one of the groups. possible group tags.. You should not try to tagno_group.
"currently"- the standing the cat should currently possess with this group. tags can be mixed and matched as necessary. if multiple tags are used, the cat will only need to have one of the standings. possible standing tags.
"past"- standings the cat used to have with this group. tags can be mixed and matched as necessary. if multiple tags are used, the cat will only need to have had one of the standings. possible standing tags.
Warning
Keep in mind that currently the only cats who receive and are included in relationship events are player Clan cats. Cats currently outside the Clan cannot be part of an event. standing can still be constrained for in the context of a cat who used to be lost, exiled, etc.
stat: dict[str: list]¶
Constrains the event to only occur if the cat holds specific skills or traits. You can utilize exclusionary tags.
"skill"- list of allowed skills from Skill Tag List
"trait"- list of allowed traits from Trait Tag List
"must_have_both"- defaults tofalse. if set totrue, the cat's trait and skills must qualify. iffalse, the cat must have either a listed trait or a listed skill.
current_exp: list[str]¶
Constrains the event to only occur if the cat's exp level is part of the constraints
Possible levels:
untrainedlearningpreparedcapableproficientadeptmasterful
Tip
Cats are generally untrained until they become adolescents. Cats will graduate when they are prepared or when they reach a "maximum" age (typically a few moons into adulthood.)
health: dict[str: var]¶
Constrains the event to only occur if the cat's health matches the constraints.
"health": {
"working": true,
"condition": [],
"must_be_congenital": false,
"must_be_acquired": false
}
"working"- by default, this is always set totrue. if set tofalse, the cat can't be a working cat (aka, they are currently disabled by a condition of some kind). In the case of patrols, it is impossible for a non-working cat to be patrolling, so this will not be used.
"condition- a list of conditions that the cat must have at least one of. if any condition is allowed, use"any". supports exclusionary tags. check illness, injury, and permanent condition references for lists of current condition possibilities.
"must_be_congenital"- by default, this is always set tofalse. if set totrue, the cat must have been born with a permanent condition listed in thecondition.
"must_be_acquired"- by default, this is always set tofalse. if set totrue, the cat must have acquired a permanent condition listed inconditionlater in life.
Warning
must_be_congenital and must_be_acquired naturally conflict with each other. Be careful not to set both of them to true, else they won't behave correctly.
Note
Be careful when specifying must_be_congenital. If you force a condition to be congenital when it can never generate as such, the event will never trigger! The same also applies for forcing a condition to be non-congenital when it is always generated as such.
backstory:list¶
Constrains the event to only occur if the cat has a listed backstory. To find what each backstory describes, you can find more by going to
resources/lang/en/cat/backstories.en.json. You can utilize exclusionary tags.
has_mentor:dict[str, bool]¶
Set specific mentorship circumstances.
"current"- iftrue, cat must currently have a mentor. iffalse, cat must have no current mentor.
"former"- iftrue, cat must have a former mentor. iffalse, cat must have no former mentor.
has_apprentice:dict[str, bool]¶
Set specific apprentice circumstances.
"current"- iftrue, cat must currently have an apprentice. iffalse, cat must have no current apprentice.
"former"- iftrue, cat must have a former apprentice. iffalse, cat must have no former apprentice.