public Dialog(NpcConversationStaticData.Dialog p_dialogData) { if (p_dialogData.m_texts == null || p_dialogData.m_texts.Length == 0) { throw new InvalidDataException("No DialogTexts defined in dialog " + p_dialogData.m_id); } m_randomList = new List <DialogText>(); m_id = p_dialogData.m_id; m_randomText = p_dialogData.m_randomText; m_feature = p_dialogData.m_feature; m_fakeNpcID = p_dialogData.m_fakeNpcID; m_hideBackButton = p_dialogData.m_hideBackButton; m_hideNpcsAndCloseButton = p_dialogData.m_hideNpcsAndCloseButton; m_hideNpcAndPortrait = p_dialogData.m_hideNpcAndPortrait; m_backToDialogId = p_dialogData.m_backToDialodId; if (p_dialogData.m_entries != null && p_dialogData.m_entries.Length > 0) { m_entries = new DialogEntry[p_dialogData.m_entries.Length]; for (Int32 i = 0; i < p_dialogData.m_entries.Length; i++) { SaveNeededTokens(p_dialogData.m_entries[i]); m_entries[i] = new DialogEntry(p_dialogData.m_entries[i]); } } else { m_entries = new DialogEntry[0]; } m_texts = new DialogText[p_dialogData.m_texts.Length]; for (Int32 j = 0; j < p_dialogData.m_texts.Length; j++) { SaveNeededTokens(p_dialogData.m_texts[j]); m_texts[j] = new DialogText(p_dialogData.m_texts[j]); } }
public String ReplacementWithFeature(NpcConversationStaticData.DialogFeature p_feature) { Int32 num = p_feature.m_price; if (num == -1) { if (p_feature.m_type == EDialogFeature.IDENTIFY) { num = ConfigManager.Instance.Game.CostIdentify; } else if (p_feature.m_type == EDialogFeature.REPAIR) { num = ConfigManager.Instance.Game.CostRepair; } else if (p_feature.m_type == EDialogFeature.RESTORE) { num = ConfigManager.Instance.Game.CostRestoration; } else if (p_feature.m_type == EDialogFeature.CAST) { num = ConfigManager.Instance.Game.CostCast; } else if (p_feature.m_type == EDialogFeature.RESURRECT) { num = ConfigManager.Instance.Game.CostResurrect; } else if (p_feature.m_type == EDialogFeature.CURE) { num = ConfigManager.Instance.Game.CostCure; } else if (p_feature.m_type == EDialogFeature.SUPPLIES) { num = ConfigManager.Instance.Game.CostSupplies; } else if (p_feature.m_type == EDialogFeature.REST) { num = ConfigManager.Instance.Game.CostRest; } else if (p_feature.m_type == EDialogFeature.TRAVEL) { num = ConfigManager.Instance.Game.CostTravel; } else if (p_feature.m_type == EDialogFeature.TRAINING) { if (p_feature.m_skillRank == ETier.EXPERT) { num = ConfigManager.Instance.Game.SkillExpertPrice; } else if (p_feature.m_skillRank == ETier.MASTER) { num = ConfigManager.Instance.Game.SkillMasterPrice; } else { num = ConfigManager.Instance.Game.SkillGrandmasterPrice; } } } Int32 num2 = 0; if (p_feature.m_type == EDialogFeature.IDENTIFY) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcItemIdentifyFactor); } else if (p_feature.m_type == EDialogFeature.REPAIR) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcItemRepairFactor); } else if (p_feature.m_type == EDialogFeature.RESTORE) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcRestoreFactor); } else if (p_feature.m_type == EDialogFeature.CAST) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcRestoreFactor); } else if (p_feature.m_type == EDialogFeature.RESURRECT) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcResurrectFactor); } else if (p_feature.m_type == EDialogFeature.CURE) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcCureFactor); } else if (p_feature.m_type == EDialogFeature.SUPPLIES) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcSuppliesFactor); } else if (p_feature.m_type == EDialogFeature.REST) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcRestFactor); } else if (p_feature.m_type == EDialogFeature.TRAINING) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcSkillTrainingFactor); } else if (p_feature.m_type == EDialogFeature.TRAVEL) { num2 = CalculatePriceForDifficulty(num, ConfigManager.Instance.Game.NpcTravelFactor); } else if (p_feature.m_type == EDialogFeature.BUY_TOKEN) { num2 = num; } return(Localization.Instance.GetText(LocaKey, num2)); }