Ejemplo n.º 1
0
 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]);
     }
 }
Ejemplo n.º 2
0
        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));
        }