private static void AddPregIcon(Transform pregIconTransform, SaveData.Heroine heroine) { var image = pregIconTransform.GetComponent <Image>(); _currentHeroine.Add(new KeyValuePair <SaveData.Heroine, RectTransform>(heroine, image.GetComponent <RectTransform>())); switch (heroine.GetHeroineStatus(heroine.GetPregnancyData())) { case HeroineStatus.Unknown: image.sprite = _unknownSprite; break; case HeroineStatus.OnLeave: image.sprite = _leaveSprite; break; case HeroineStatus.Safe: image.sprite = _safeSprite; break; case HeroineStatus.Risky: image.sprite = _riskySprite; break; case HeroineStatus.Pregnant: image.sprite = _pregSprite; break; default: throw new ArgumentOutOfRangeException(); } }
public static HeroineStatus GetHeroineStatus(this SaveData.Heroine heroine, PregnancyData pregData = null) { if (heroine == null) { return(HeroineStatus.Unknown); } if (pregData == null) { pregData = heroine.GetPregnancyData(); } // Check if she wants to tell if (heroine.intimacy >= 80 || heroine.hCount >= 5 || heroine.parameter.attribute.bitch && heroine.favor > 50 || (heroine.isGirlfriend || heroine.favor >= 90) && (!heroine.isVirgin || heroine.hCount >= 2 || heroine.intimacy >= 40)) { var pregnancyWeek = pregData.Week; if (pregnancyWeek > 0) { if (pregnancyWeek >= PregnancyData.LeaveSchoolWeek) { return(HeroineStatus.OnLeave); } if (PregnancyPlugin.ShowPregnancyIconEarly.Value) { return(HeroineStatus.Pregnant); } // Different personalities notice at different times if (_earlyDetectPersonalities.Contains(heroine.personality)) { if (pregnancyWeek > 1) { return(HeroineStatus.Pregnant); } } else if (_lateDetectPersonalities.Contains(heroine.personality)) { if (pregnancyWeek > 11) { return(HeroineStatus.Pregnant); } } else { if (pregnancyWeek > 5) { return(HeroineStatus.Pregnant); } } } return(HFlag.GetMenstruation(heroine.MenstruationDay) == HFlag.MenstruationType.安全日 ? HeroineStatus.Safe : HeroineStatus.Risky); } return(HeroineStatus.Unknown); }