public void QuitGame() { if (SceneManager.GetActiveScene().name == "DungeonMultiplayer") { RaidSceneManager.Instanse.OnSceneLeave(); PhotonGameManager.Instanse.LeaveRoom(); WindowClosed(); return; } else if (SceneManager.GetActiveScene().name == "EstateManagement") { EstateSceneManager.Instanse.OnSceneLeave(); DarkestDungeonManager.SaveData.UpdateFromEstate(); DarkestDungeonManager.Instanse.SaveGame(); } else if (SceneManager.GetActiveScene().name == "Dungeon") { if (!RaidSceneManager.HasAnyEvents) { DarkestDungeonManager.SaveData.UpdateFromRaid(); DarkestDungeonManager.Instanse.SaveGame(); } RaidSceneManager.Instanse.OnSceneLeave(); } DarkestSoundManager.SilenceNarrator(); Application.Quit(); }
public void ReturnToCampaignSelection() { if (SceneManager.GetActiveScene().name == "DungeonMultiplayer") { WindowClosed(); RaidSceneManager.Instanse.AbandonButtonClicked(); return; } else if (SceneManager.GetActiveScene().name == "EstateManagement") { EstateSceneManager.Instanse.OnSceneLeave(); DarkestDungeonManager.SaveData.UpdateFromEstate(); DarkestDungeonManager.Instanse.SaveGame(); } else if (SceneManager.GetActiveScene().name == "Dungeon") { if (!RaidSceneManager.HasAnyEvents) { DarkestDungeonManager.SaveData.UpdateFromRaid(); DarkestDungeonManager.Instanse.SaveGame(); } RaidSceneManager.Instanse.OnSceneLeave(); } DarkestSoundManager.SilenceNarrator(); SceneManager.LoadScene("CampaignSelection"); WindowClosed(); }
public HeroSlot CreateSlot(RecruitSlot recruitSlot, HeroSlot heroSlot) { if (DarkestDungeonManager.Campaign.Heroes.Count >= DarkestDungeonManager.Campaign.Estate.StageCoach.RosterSlots) { DarkestSoundManager.PlayOneShot("event:/ui/town/character_add_full"); return(null); } var newSlot = CreateSlot(recruitSlot.Hero); DarkestDungeonManager.Campaign.Heroes.Add(recruitSlot.Hero); var deathRecord = DarkestDungeonManager.Campaign.Estate.RecruitHero(recruitSlot.Hero); DarkestSoundManager.ExecuteNarration("recruit_hero", NarrationPlace.Town, recruitSlot.Hero.Class); if (deathRecord != null && onHeroResurrection != null) { onHeroResurrection(deathRecord); } else { DarkestSoundManager.PlayOneShot("event:/town/stage_coach_purchase"); } if (heroSlot != null) { newSlot.RectTransform.SetSiblingIndex(heroSlot.RectTransform.GetSiblingIndex()); } else { newSlot.RectTransform.SetAsLastSibling(); } UpdateCapacity(); return(newSlot); }
public void CheckBoxClicked() { IsChecked = !IsChecked; PhotonGameManager.SkipMessagesOnClick = IsChecked; checkBoxImage.enabled = IsChecked; DarkestSoundManager.PlayOneShot("event:/ui/town/button_click"); }
public void SaveNamingStart(MultiplayerRoomSlot namingSaveSlot) { DarkestSoundManager.PlayOneShot("event:/general/title_screen/letter_open"); namingSaveSlot.TitleInput.text = GenerateRoomName(); selectedRoomSlot = namingSaveSlot; DisableInteraction(); }
private void ProvisionAppearEnded() { DarkestDungeonManager.ScreenFader.EventFadeEnded -= ProvisionFadeEnded; DarkestDungeonManager.ScreenFader.EventAppearEnded -= ProvisionAppearEnded; DarkestSoundManager.ExecuteNarration("enter_provision_select", NarrationPlace.Town); transitionsEnabled = true; }
void SanitariumQuirkWindow_onNegativeDeselect(QuirkTreatmentSlot slot) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_click"); SelectedSlot.TreatmentSlot.TargetNegativeQuirk = null; RecalculateCost(); }
public void OnPointerEnter(PointerEventData eventData) { if (SelectedHero != null) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_mouse_over"); } }
public void SortByRestriction() { DarkestSoundManager.PlayOneShot("event:/ui/town/sort_by"); RealmInventory.Trinkets.Sort((x, y) => { if (x.ClassRequirements.Count > 0) { if (y.ClassRequirements.Count > 0) { int result = string.Compare(x.ClassRequirements[0], y.ClassRequirements[0], StringComparison.Ordinal); return(result == 0 ? string.Compare(x.Id, y.Id, StringComparison.Ordinal) : result); } return(-1); } return(y.ClassRequirements.Count > 0 ? 1 : string.Compare(x.Id, y.Id, StringComparison.Ordinal)); }); int trinketCount = RealmInventory.Trinkets.Count; int trinketsLoaded = Mathf.Min(trinketCount, InventorySlots.Count); for (int i = 0; i < trinketsLoaded; i++) { InventorySlots[i].CreateItem(RealmInventory.Trinkets[i]); } for (int i = trinketsLoaded; i < InventorySlots.Count; i++) { InventorySlots[i].DeleteItem(); } }
public void ActivityLogClick() { activityLogOpened = !activityLogOpened; if (activityLogOpened) { DarkestSoundManager.PlayOneShot("event:/ui/town/page_open"); bottomPanel.ActivityLogAnimator.state.SetAnimation(0, "selected", false); } else { DarkestSoundManager.PlayOneShot("event:/ui/town/page_close"); bottomPanel.ActivityLogAnimator.state.SetAnimation(0, "idle", false); } activityLogWindow.gameObject.SetActive(activityLogOpened); if (activityLogOpened) { if (realmInventoryOpened) { RealmInventoryClose(); } if (characterWindowOpened) { RosterCharacterInfoClose(); } } }
private IEnumerator SceneSlider() { DarkestSoundManager.PlayOneShot("event:/general/title_screen/campaign_button"); ProgressLabel.text = PhotonNetwork.connected ? "Connected!" : "Disconnected!"; DisableInteraction(); while (true) { if (470 < SceneryRect.offsetMax.y) { break; } Vector2 offsetMax = SceneryRect.offsetMax; offsetMax.y += Time.deltaTime * 800; SceneryRect.offsetMax = offsetMax; Vector2 offsetMin = SceneryRect.offsetMin; offsetMin.y += Time.deltaTime * 800; SceneryRect.offsetMin = offsetMin; yield return(null); } DarkestPhotonLauncher.Instanse.ConnectToMaster(); yield return(new WaitForSeconds(1f)); isSelecting = true; RefreshRoomList(); EnableInteraction(); }
private void SkillUpgradeSlotClicked(SkillUpgradeSlot slot) { var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(slot.Tree.Id, slot.Hero, slot.Upgrade); if (status == UpgradeStatus.Available) { bool isFree = false; for (int i = 0; i < slot.Tree.Tags.Count; i++) { if (DarkestDungeonManager.Campaign.EventModifiers.HasFreeUpgrade(slot.Tree.Tags[i])) { isFree = true; DarkestDungeonManager.Campaign.EventModifiers.RemoveUpgradeTag(slot.Tree.Tags[i]); break; } } float discount = 1 - DarkestDungeonManager.Campaign.Estate.Guild.Discount; if (DarkestDungeonManager.Campaign.Estate.BuyUpgrade(slot.Tree.Id, slot.Hero, slot.Upgrade, discount, isFree)) { EstateSceneManager.Instanse.CurrencyPanel.CurrencyDecreased("gold"); EstateSceneManager.Instanse.CurrencyPanel.UpdateCurrency(); DarkestDungeonManager.Campaign.Estate.ReskillCombatHero(slot.Hero); UpdateHeroOverview(); } } else if (status == UpgradeStatus.Locked) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_click_locked"); } }
public void TreatmentButtonClicked() { int cost = 0; if (SelectedSlot.TreatmentSlot.TargetDiseaseQuirk != null) { cost += SelectedSlot.TreatmentSlot.BaseDiseaseCost; } if (cost != 0 || DarkestDungeonManager.Campaign.EventModifiers.IsActivityFree(SelectedSlot.activityName)) { if (SelectedSlot.TreatmentSlot.Status == ActivitySlotStatus.Checkout) { if (DarkestDungeonManager.Campaign.Estate.CanPayGold(cost)) { DarkestDungeonManager.Campaign.Estate.RemoveGold(cost); TownManager.EstateSceneManager.currencyPanel.UpdateCurrency(); TownManager.EstateSceneManager.currencyPanel.CurrencyDecreased("gold"); TownManager.GetHeroSlot(SelectedSlot.TreatmentSlot.Hero).SetStatus(HeroStatus.Sanitarium); SelectedSlot.PayoutSlot(); DarkestSoundManager.PlayOneShot("event:/town/sanitarium_disease_treatment"); ResetWindow(); } } } else { treatmentButton.gameObject.SetActive(false); costLabel.gameObject.SetActive(false); } }
private void QuirkTreatmentSlotPositiveDeselected(QuirkTreatmentSlot slot) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_click"); SelectedSlot.TreatmentSlot.TargetPositiveQuirk = null; RecalculateCost(); }
IEnumerator StartSceneSlider() { float distance = rect.offsetMax.y / 2; while (true) { Vector2 offsetMax = rect.offsetMax; offsetMax.y += Time.deltaTime * 1500; rect.offsetMax = offsetMax; Vector2 offsetMin = rect.offsetMin; offsetMin.y += Time.deltaTime * 1500; rect.offsetMin = offsetMin; if (distance < 0) { if (offsetMax.y > distance) { distance = 1; DarkestSoundManager.PlayTitleMusic(false); } } if (rect.offsetMax.y >= 0 || rect.offsetMin.y >= 0) { rect.offsetMax = Vector2.zero; rect.offsetMin = Vector2.zero; break; } yield return(0); } CampaignSelectionManager.Instanse.titleRect.SetParent(CampaignSelectionManager.Instanse.overlayTitleRect, false); yield break; }
public bool BuyUpgrade(CampingSkill skill, Hero hero, float discount) { if (!CanPayPrice(skill.CurrencyCost, discount)) { return(false); } if (!HeroPurchases.ContainsKey(hero.RosterId)) { return(false); } if (!HeroPurchases[hero.RosterId].ContainsKey(skill.Id)) { return(false); } if (HeroPurchases[hero.RosterId][skill.Id].PurchasedUpgrades.Contains("0")) { return(false); } HeroPurchases[hero.RosterId][skill.Id].PurchasedUpgrades.Add("0"); RemoveCurrency(skill.CurrencyCost, discount); DarkestSoundManager.PlayOneShot("event:/ui/town/buy"); return(true); }
public bool BuyUpgrade(string treeId, Hero hero, TownUpgrade upgrade, float discount, bool isFree) { if (!isFree && !CanPayPrice(upgrade.Cost, discount)) { return(false); } if (!HeroPurchases.ContainsKey(hero.RosterId)) { HeroPurchases.Add(hero.RosterId, new Dictionary <string, UpgradePurchases>()); } if (!HeroPurchases[hero.RosterId].ContainsKey(treeId)) { HeroPurchases[hero.RosterId].Add(treeId, new UpgradePurchases(treeId, upgrade.Code)); } else { if (HeroPurchases[hero.RosterId][treeId].PurchasedUpgrades.Contains(upgrade.Code)) { return(false); } HeroPurchases[hero.RosterId][treeId].PurchasedUpgrades.Add(upgrade.Code); } if (!isFree) { RemoveCurrency(upgrade.Cost, discount); } DarkestSoundManager.PlayOneShot("event:/ui/town/buy"); return(true); }
public override void WindowClosed() { if (upgradeSwitch.IsOpened) { upgradeSwitch.SwitchUpgrades(); upgradeWindow.gameObject.SetActive(false); } TownManager.EstateSceneManager.rosterPanel.onHeroSlotBeginDragging -= rosterPanel_onHeroSlotBeginDragging; TownManager.EstateSceneManager.rosterPanel.onHeroSlotEndDragging -= rosterPanel_onHeroSlotEndDragging; gameObject.SetActive(false); for (int i = 0; i < 3; i++) { if (quirkSlots[i].TreatmentSlot.Status == ActivitySlotStatus.Checkout) { quirkSlots[i].SetStatus(ActivitySlotStatus.Available); quirkWindow.ResetWindow(); } if (diseaseSlots[i].TreatmentSlot.Status == ActivitySlotStatus.Checkout) { diseaseSlots[i].SetStatus(ActivitySlotStatus.Available); diseaseWindow.ResetWindow(); } } TownManager.BuildingWindowActive = false; DarkestSoundManager.PlayOneShot("event:/ui/town/building_zoomout"); }
private IEnumerator SceneSlider() { DarkestSoundManager.PlayOneShot("event:/general/title_screen/campaign_button"); while (true) { if (470 < sceneryRect.offsetMax.y) { break; } Vector2 offsetMax = sceneryRect.offsetMax; offsetMax.y += Time.deltaTime * 1200; sceneryRect.offsetMax = offsetMax; Vector2 offsetMin = sceneryRect.offsetMin; offsetMin.y += Time.deltaTime * 1200; sceneryRect.offsetMin = offsetMin; yield return(null); } isSelecting = true; for (int i = 0; i < SlotNumber; i++) { saveSlots[i].LoadSaveFrame(); } }
public void ActivityLogClose() { activityLogOpened = false; bottomPanel.ActivityLogAnimator.state.SetAnimation(0, "idle", false); activityLogWindow.gameObject.SetActive(activityLogOpened); DarkestSoundManager.PlayOneShot("event:/ui/town/page_close"); }
public void UpdateComposition(List <string> partyClasses) { var compEntry = DarkestDungeonManager.Data.PartyNames.Find(entry => { if (entry.ClassIds.Count != partyClasses.Count) { return(false); } for (int i = 0; i < entry.ClassIds.Count; i++) { if (entry.ClassIds[i] != partyClasses[i]) { return(false); } } return(true); }); if (compEntry != null) { partyName.text = LocalizationManager.GetString("party_name_" + compEntry.Id); partyAnimator.SetBool("IsValid", true); DarkestSoundManager.PlayOneShot("event:/ui/town/party_comp"); } else { partyAnimator.SetBool("IsValid", false); } }
public virtual void OnPointerClick(PointerEventData eventData) { if (!Interactable || Locked) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_invalid"); return; } if (Selected) { if (!CurrentHero.SelectedCombatSkills.Remove(Skill)) { Debug.LogError("Deselected skill not found."); } Deselect(); DarkestSoundManager.PlayOneShot("event:/ui/town/character_unequip"); } else { if (CurrentHero.SelectedCombatSkills.Count == 4) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_invalid"); } else { CurrentHero.SelectedCombatSkills.Add(Skill); Select(); DarkestSoundManager.PlayOneShot("event:/ui/town/character_equip"); } } }
public override void UpdateUpgradeTrees(bool afterPurchase = false) { Building.UpdateBuilding(DarkestDungeonManager.Campaign.Estate.TownPurchases); float ratio = DarkestDungeonManager.Campaign.Estate.GetBuildingUpgradeRatio(Building.Type); upgradeWindow.UpgradedValue.text = Mathf.RoundToInt(ratio * 100) + "%"; if (afterPurchase && Mathf.Approximately(ratio, 1)) { DarkestSoundManager.PlayOneShot("event:/town/purchase_upgrade_last"); } foreach (var tree in upgradeWindow.UpgradeTrees) { var currentUpgrades = DarkestDungeonManager.Data.UpgradeTrees[tree.TreeId].Upgrades; int lastPurchaseIndex = -1; for (int i = 0; i < tree.Upgrades.Count; i++) { var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(tree.TreeId, currentUpgrades[i]); EstateSceneManager.Instanse.TownManager.UpdateUpgradeSlot(status, tree.Upgrades[i]); if (status == UpgradeStatus.Purchased) { lastPurchaseIndex = i; } } tree.UpdateConnector(lastPurchaseIndex); } }
private void BuildingUpgradeSlotClicked(BuildingUpgradeSlot slot) { var status = DarkestDungeonManager.Campaign.Estate.GetUpgradeStatus(slot.Tree.Id, slot.UpgradeInfo); if (status == UpgradeStatus.Available) { bool isFree = false; for (int i = 0; i < slot.Tree.Tags.Count; i++) { if (DarkestDungeonManager.Campaign.EventModifiers.HasFreeUpgrade(slot.Tree.Tags[i])) { isFree = true; DarkestDungeonManager.Campaign.EventModifiers.RemoveUpgradeTag(slot.Tree.Tags[i]); break; } } if (DarkestDungeonManager.Campaign.Estate.BuyUpgrade(slot.Tree.Id, slot.UpgradeInfo, isFree)) { EstateSceneManager.Instanse.CurrencyPanel.UpdateCurrency(); UpdateUpgradeTrees(true); } } else if (status == UpgradeStatus.Locked) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_click_locked"); } }
private void EmbarkTransitionAppearEnded() { DarkestDungeonManager.ScreenFader.EventFadeEnded -= EmbarkTransitionFadeEnded; DarkestDungeonManager.ScreenFader.EventAppearEnded -= EmbarkTransitionAppearEnded; DarkestSoundManager.ExecuteNarration("enter_quest_select", NarrationPlace.Town); transitionsEnabled = true; raidPartyPanel.CheckComposition(); }
public void OnPointerEnter(PointerEventData eventData) { if (Item != null) { DarkestSoundManager.PlayOneShot("event:/ui/town/button_mouse_over"); ToolTipManager.Instanse.Show(Item.ToolTip, eventData, RectTransform, ToolTipStyle.FromRight, ToolTipSize.Normal); } }
public void QuestButtonClicked() { DarkestSoundManager.PlayOneShot("event:/ui/town/dungeon_select"); if (EventQuestSelected != null) { EventQuestSelected(this); } }
public void WindowClosed() { DarkestSoundManager.PlayOneShot("event:/ui/town/trinket_close"); if (onWindowClose != null) { onWindowClose(); } }
public override void WindowOpened() { if (!TownManager.AnyWindowsOpened) { gameObject.SetActive(true); TownManager.BuildingWindowActive = true; DarkestSoundManager.ExecuteNarration("enter_building", NarrationPlace.Town, "graveyard"); DarkestSoundManager.PlayOneShot("event:/town/enter_graveyard"); } }
public override void WindowOpened() { if (!EstateSceneManager.Instanse.TownManager.AnyWindowsOpened) { gameObject.SetActive(true); EstateSceneManager.Instanse.TownManager.BuildingWindowActive = true; DarkestSoundManager.ExecuteNarration("enter_building", NarrationPlace.Town, Building.Name); DarkestSoundManager.PlayOneShot("event:/town/enter_" + Building.Name); } }