Last active
May 24, 2021 13:57
-
-
Save dominicmicheletto/68e6436e4306c0a50ebccd6f44c97c56 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import services | |
from buffs.tunable import BuffReference | |
from sims4.localization import _create_localized_string | |
from sims4.collections import _ImmutableSlotsBase | |
from sims4.collections import make_immutable_slots_class as make_immutable_slots | |
from sims4.resources import Types | |
NEED_COFFEE_STRING_ID = 0xB6BE4C25 | |
TRAIT_YOUNG_ADULT = 34318 | |
NEED_COFFEE_IN_MORNING_BUFF = 12624494500918649532 | |
def get_tuning(tuning_id: int, tuning_type: Types): | |
manager = services.get_instance_manager(tuning_type) | |
return manager.get(tuning_id) | |
def make_buff_reference(buff, reason_id: int = 0) -> BuffReference: | |
reason = None | |
if reason_id: | |
reason = _create_localized_string(reason_id) | |
return BuffReference(buff, reason) | |
def make_immutable_slots_class(**kwargs) -> _ImmutableSlotsBase: | |
return make_immutable_slots(kwargs.keys())(kwargs) | |
def make_default_day_night_tracking() -> _ImmutableSlotsBase: | |
keys = ('day_buffs', 'night_buffs', 'shade_buffs', 'sunlight_buffs', 'force_refresh_buffs', ) | |
values = {key: frozenset() for key in keys} | |
return make_immutable_slots_class(**values) | |
def inject_into_ya_trait(manager) -> None: | |
try: | |
loaded_buff = get_tuning(NEED_COFFEE_IN_MORNING_BUFF, Types.BUFF) | |
loaded_trait = manager.get(TRAIT_YOUNG_ADULT) | |
if not all([loaded_buff, loaded_trait]): | |
return | |
buffs_to_add = {make_buff_reference(loaded_buff, NEED_COFFEE_STRING_ID), } | |
day_night_tracking = loaded_trait.day_night_tracking or make_default_day_night_tracking() | |
day_buffs = set(day_night_tracking.day_buffs) | |
day_buffs.union(buffs_to_add) | |
loaded_trait.day_night_tracking = day_night_tracking.clone_with_overrides(day_buffs=frozenset(day_buffs)) | |
except: | |
pass | |
def do_injection() -> None: | |
trait_manager = services.get_instance_manager(Types.TRAIT) | |
trait_manager.add_on_load_complete(inject_into_ya_trait) | |
do_injection() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment