Quick Reply
Search this Thread
Forum Resident
Original Poster
#1 Old 17th Jul 2015 at 8:37 PM Last edited by simmythesim : 17th Jul 2015 at 9:27 PM.
Default Sim gets fired instead of demoted
My sim in my custom active career, keeps getting fired from his job when he reaches -100 instead of being demoted to the previous level, If I join the career after my sim is fired, the game demotes their level (but it's a different part of the code that does this) to the previous level.

I've tried adding in <T n="fired_performance_level">-120</T> from the high school files but that doesn't seem to do anything. Can anyone help? I've managed to get the first career up and running with the exception of this.

EDIT: I set can_be_fired to false and guess what, the sim doesn't get demoted, it just stays at the bottom. Most likely the game is thinking that the career is the first one in the career track so I'll guess I'll go check that.

EDIT 3: Never mind, the career levels are all in the correct order. Is there somewhere in the files where it states what the next level you're going to be demoted or promoted to?
Field Researcher
#2 Old 17th Jul 2015 at 11:08 PM
I think it's just a problem with the active careers system. Turbo Careers has the same problem, and it's something I've just accepted. I haven't checked if it effects the Get to Work careers or just custom ones.
Forum Resident
Original Poster
#3 Old 18th Jul 2015 at 7:39 AM Last edited by simmythesim : 18th Jul 2015 at 8:24 AM.
Quote: Originally posted by Zerbu
I think it's just a problem with the active careers system. Turbo Careers has the same problem, and it's something I've just accepted. I haven't checked if it effects the Get to Work careers or just custom ones.
Could it be fixed with python scripting?
EDIT: This is what I've found
Code:
    def _demote(self):
        current_level_tuning = self.current_level_tuning
        current_performance = self.work_performance
        if self.can_be_fired and (current_performance <= current_level_tuning.demotion_performance_level or self._level == 0):
            return self._fire()
        if self._level > 0:
            return self._demote_within_track()


also
Code:
 def _demote_within_track(self):
        self._change_level_within_track(-1)
        if self.demotion_buff is not None:
            self._sim_info.add_buff_from_op(self.demotion_buff.buff_type, buff_reason=self.demotion_buff.buff_reason)
        self.on_demoted(self._sim_info)
        self._send_telemetry(TELEMETRY_HOOK_CAREER_DEMOTION, level=self.level)
        return EvaluationResult(Evaluation.DEMOTED, self.career_messages.demote_career_notification)


EDIT: Somehow, I got it working, I don't know how, but now my sim gets properly demoted!
Back to top