private float CalculatePrefferedLogHeight(WeekActivityLog log) { float height = 100; if (log.ReturnRecord != null) { height += 190 + Mathf.Max(30, TextGenerator.GetPreferredHeight(log.ReturnRecord.Description, PartySettings)); } if (log.HeroRecords.Count > 0) { height += log.HeroRecords.Sum(t => Mathf.Max(130, TextGenerator.GetPreferredHeight(t.Description, RecordSettings)) * 1.0056f); if (log.HeroRecords.Count > 1) { height += 20 * (log.HeroRecords.Count - 1); } } if (log.EmbarkRecord != null) { height += 160 + Mathf.Max(30, TextGenerator.GetPreferredHeight(log.EmbarkRecord.Description, PartySettings)); } return(height); }
public void UpdateWeekLog(WeekActivityLog weekLog) { gameObject.SetActive(true); WeekLog = weekLog; weekTitle.text = string.Format(LocalizationManager.GetString("str_week"), WeekLog.WeekNumber); if (weekLog.ReturnRecord != null) { raidBanner.rectTransform.parent.gameObject.SetActive(true); if (weekLog.ReturnRecord.IsSuccessfull) { raidBanner.sprite = DarkestDungeonManager.Data.Sprites["raid_success_banner"]; } else { raidBanner.sprite = DarkestDungeonManager.Data.Sprites["raid_failure_banner"]; } ReturnSlot.UpdatePartyActivity(weekLog.ReturnRecord); } else { raidBanner.gameObject.SetActive(false); ReturnSlot.ResetPartyActivity(); } int lastRecordIndex = Mathf.Min(SimpleSlots.Count, weekLog.HeroRecords.Count); for (int i = 0; i < lastRecordIndex; i++) { SimpleSlots[i].UpdateActivityRecord(weekLog.HeroRecords[i]); } for (int i = lastRecordIndex; i < weekLog.HeroRecords.Count; i++) { var heroSlot = Instantiate(Window.heroActivitySlot).GetComponent <ActivityRecordSlot>(); heroSlot.rectTransform.SetParent(eventsTransform, false); heroSlot.rectTransform.SetAsLastSibling(); heroSlot.UpdateActivityRecord(weekLog.HeroRecords[i]); SimpleSlots.Add(heroSlot); } for (int i = weekLog.HeroRecords.Count; i < SimpleSlots.Count; i++) { SimpleSlots[i].ResetActivityRecord(); } if (weekLog.EmbarkRecord != null) { EmbarkSlot.UpdatePartyActivity(weekLog.EmbarkRecord); } else { EmbarkSlot.ResetPartyActivity(); } }