Open j-gynn opened 3 weeks ago
/assign-me
👋 Hey @j-gynn, thanks for your interest in this issue! 🎉
⚠ Note that this issue will become unassigned if it isn't closed within 7 days.
🔧 A maintainer can also add the 📌 Pinned label to prevent it from being unassigned automatically.
Description This involves a rework of
Cat
. At present, related data is entirely disparate,str
is pretty much the de-facto variable type, there are so, so many interconnected dependencies that it kind of hurts my soul, testing the cat itself is really difficult...Scope of Project Please choose from following list, feel free to give further details:
This is huge. I will be doing this in separate PRs, because I'm not a madman. Ideally, I'd like to have
__init__
have a MAXIMUM of 5-7 inputs, but I think that's a pipe dream. The current proposal would have 11, for perspective. I don't need help with this project, I just need to put it somewhere so that everyone can keep track of the proposed changes, what's already implemented and the future ofCat
.What this is NOT:
Checkmark: merged into
development
.Major Changes Summarised
Personality
to a different file to deal with some other time #2466Cat
by moving them to the appropriate/related classesClan
class, why is that not what we use for who belongs to the clan?!Existing variable changes
DELETIONS
exiled
outside
(convert to property)driven_out
also_got
Type changes
age
to Enum #2407status
to Enum #2417gender
to a Class with helper functions (discuss)ID
to Int (DANGER ZONE)Name changes
gender
->sex
(to remove confusion around what this is)ID
->cat_id
(should be lowercase andid
is taken by a Python builtin)favourite
->favorite
(Murica) #2437mate
->current_mates
(in line withcurrent_apprentices
and the poly update)previous_mates
->former_mates
(in line withformer_apprentices
andformer_mentor
)Classes (grouping similar information together for clarity - and getting it out of
cats.py
!)_age
moons
is_baby
(currently a function, make it a property)gender
->sex
(rename)genderalign
->gender
(rename)pronouns
g_tag
name
status
dead
dead_for
df
faded
birth_cooldown
illnesses
injuries
healed_condition
permanent_condition
nutrition
is_ill
(currently a function, should be a property)is_injured
(currently a function, should be a property)is_disabled
(currently a function, should be a property)not_working
(currently a function, should be a property)not_work_because_hunger
(currently a function, should be a property - may not even need to exist at all.)_sprite
pelt
placement
thought
personality
skills
_experience
experience_level
parent1
parent2
adoptive_parents
faded_offspring
mate
->current_mates
previous_mates
->former_mates
_mentor
former_mentor
->former_mentors
patrol_with_mentor
apprentice
->current_apprentices
former_apprentices
no_kits
no_mates
no_retire
prevent_fading
favourite
->favorite
(rename)[ ] Utilities
generate_events
Functions
(Tracking, moving & removing things from
Cat
that shouldn't be there)Keep
fetch_cat
(for now - I'm looking at changing how the cat object list is stored, so this might also go bye-bye)add_to_clan()
(likewise)insert_cat
(likewise)sort_cats
(likewise)rank_order
(likewise)get_save_dict()
(finally, a function that genuinely belongs here!)get_adjusted_age
set_faded
Move out of
Cat
CatSkills
rank_change_traits_skill(mentor)
(belongs to CatSkills)manage_outside_trait()
(belongs to CatSkills) Peltdescribe_cat()
(belongs to Pelt)describe_eyes()
(belongs to Pelt) Historyconvert_history()
(belongs to History)load_history()
(belongs to History)save_history()
(belongs to History) Conditionsmoon_skip_illness(illness)
(belongs to Conditions)moon_skip_injury(injury)
(belongs to Conditions)congenital_condition
(belongs to Conditions)moon_skip_permanent_condition(condition)
(belongs to Conditions)retire_cat
(belongs to Conditions)contact_with_ill_cat
(belongs to Conditions)save_conditions
(belongs to Conditions)load_conditions
(belongs to Conditions) Inheritancecreate_inheritance_new_cat
(belongs to Inheritance)get_parents()
(belongs to Inheritance)get_siblings()
(belongs to Inheritance)get_children()
(belongs to Inheritance)is_grandparent(other_cat)
(belongs to Inheritance)is_sibling(other_cat)
(belongs to Inheritance)is_littermate(other_cat)
(belongs to Inheritance)is_uncle_aunt(other_cat)
(belongs to Inheritance)is_cousin(other_cat)
(belongs to Inheritance)is_related(other_cat)
(belongs to Inheritance)get_relatives(cousin_allowed)
(belongs to Inheritance) Relationshipis_potential_mate
(belongs to Relationship)save_relationship_of_cat
(belongs to Relationship)load_relationship_of_cat
(belongs to Relationship)mediate_relationship
(belongs to Relationship)effect_relation
(belongs to Relationship, should beaffect_relation
)relationship_interaction
(belongs to Relationship) Thoughtsthoughts()
(belongs to Thoughts)Not sure about
generate_lead_ceremony()
(only refers to at most one cat in the game, would like this to be in its own class? discuss.)get_ill
(should also be renamed, as "get" generally means retrieve in coding. Perhaps "add_illness"?)get_injured
(as above, perhaps "add_injury")get_permanent_condition
(as above, perhaps "add_permanent_condition")unset_mate
set_mate
create_one_relationship
(belongs to Relationship?)create_relationships_new_cat
(belongs to Relationship?)init_all_relationships
Delete entirely
additional_injury
(this is just a wrapper forget_injured
withevent_triggered
locked to True)update_mentor()
(should just be the@mentor.setter
function & combine the following two functions)__remove_mentor()
(unneeded, see update_mentor)__add_mentor()
(unneeded, see update_mentor) Relevant Links Link to Discord chat