Exemple #1
0
 private static string Luck(IMacroContextProvider mcp)
 {   // %luc
     return(mcp.GetMacroDataSource().Luck());
 }
Exemple #2
0
 public static string PlayerPronoun3(IMacroContextProvider mcp)
 {   // %pg3
     return((GameManager.Instance.PlayerEntity.Gender == Genders.Female) ? HardStrings.pronounHers : HardStrings.pronounHis);
 }
Exemple #3
0
 private static string EncumbranceMax(IMacroContextProvider mcp)
 {   // %enc
     return(GameManager.Instance.PlayerEntity.MaxEncumbrance.ToString());
 }
Exemple #4
0
 private static string CurrentRegion(IMacroContextProvider mcp)
 {   // %crn
     return(GameManager.Instance.PlayerGPS.CurrentRegion.Name);
 }
Exemple #5
0
 private static string Date(IMacroContextProvider mcp)
 {   // %dat
     return(DaggerfallUnity.Instance.WorldTime.Now.DateString());
 }
 public void SetTextTokens(TextFile.Token[] tokens, IMacroContextProvider mcp = null)
 {
     MacroHelper.ExpandMacros(ref tokens, mcp);
     multiLineLabel.SetText(tokens);
 }
Exemple #7
0
        /// <summary>
        /// Expands any macros in the textfile tokens.
        /// </summary>
        /// <param name="tokens">a reference to textfile tokens to have macros expanded.</param>
        /// <param name="mcp">an object instance to provide context for macro expansion. (optional)</param>
        public static void ExpandMacros(ref TextFile.Token[] tokens, IMacroContextProvider mcp = null)
        {
            // Iterate message tokens
            string tokenText;
            int    multilineIdx = 0;

            TextFile.Token[] multilineTokens = null;

            for (int tokenIdx = 0; tokenIdx < tokens.Length; tokenIdx++)
            {
                tokenText = tokens[tokenIdx].text;
                if (tokenText != null && tokenText.IndexOf('%') >= 0)
                {
                    // Handle multiline macros. (only handles the last one & must be only thing in this token)
                    if (multilineMacroHandlers.ContainsKey(tokenText.Trim()))
                    {
                        multilineTokens = GetMultilineValue(tokenText.Trim(), mcp, tokens[tokenIdx + 1].formatting);
                        multilineIdx    = tokenIdx;
                    }
                    else
                    {
                        // Split token text into individual words
                        string[] words = tokenText.Split(' ');

                        // Iterate words to find macros
                        for (int wordIdx = 0; wordIdx < words.Length; wordIdx++)
                        {
                            int pos = words[wordIdx].IndexOf('%');
                            if (pos >= 0)
                            {
                                string prefix = words[wordIdx].Substring(0, pos);
                                string macro  = words[wordIdx].Substring(pos);
                                if (macro.StartsWith("%"))
                                {
                                    int macroLen;
                                    if ((macroLen = macro.IndexOfAny(PUNCTUATION)) > 0)
                                    {
                                        string symbolStr = macro.Substring(0, macroLen);
                                        words[wordIdx] = prefix + GetValue(symbolStr, mcp) + macro.Substring(macroLen);
                                    }
                                    else
                                    {
                                        words[wordIdx] = prefix + GetValue(macro, mcp);
                                    }
                                }
                            }
                        }
                        // Re-assemble words and update token.
                        tokenText = string.Empty;
                        for (int wordIdx = 0; wordIdx < words.Length; wordIdx++)
                        {
                            tokenText += words[wordIdx];
                            if (wordIdx != words.Length - 1)
                            {
                                tokenText += " ";
                            }
                        }
                        tokens[tokenIdx].text = tokenText;
                    }
                }
            }
            // Insert multiline tokens if generated.
            if (multilineTokens != null && multilineTokens.Length > 0)
            {
                TextFile.Token[] newTokens = new TextFile.Token[tokens.Length + multilineTokens.Length - 1];
                Array.Copy(tokens, newTokens, multilineIdx);
                Array.Copy(multilineTokens, 0, newTokens, multilineIdx, multilineTokens.Length);
                Array.Copy(tokens, multilineIdx + 1, newTokens, multilineIdx + multilineTokens.Length, tokens.Length - multilineIdx - 1);
                tokens = newTokens;
            }
        }
Exemple #8
0
 public static string Weight(IMacroContextProvider mcp)
 {   // %kg
     return(mcp.GetMacroDataSource().Weight());
 }
Exemple #9
0
 public static string WeaponDamage(IMacroContextProvider mcp)
 {   // %wdm
     return(mcp.GetMacroDataSource().WeaponDamage());
 }
Exemple #10
0
 public static string Material(IMacroContextProvider mcp)
 {   // %mat
     return(mcp.GetMacroDataSource().Material());
 }
Exemple #11
0
 public static string Condition(IMacroContextProvider mcp)
 {   // %qua
     return(mcp.GetMacroDataSource().Condition());
 }
Exemple #12
0
 public static string Worth(IMacroContextProvider mcp)
 {   // %wth
     return(mcp.GetMacroDataSource().Worth());
 }
Exemple #13
0
 public static string ItemName(IMacroContextProvider mcp)
 {   // %wep, %arm, %it
     return(mcp.GetMacroDataSource().ItemName());
 }
Exemple #14
0
 private static string AttributeRating(IMacroContextProvider mcp)
 {   // %ark
     return(mcp.GetMacroDataSource().AttributeRating());
 }
Exemple #15
0
 void SetupBox(int textId, CommonMessageBoxButtons buttons, IMacroContextProvider mcp = null)
 {
     SetTextTokens(textId, mcp);
     AddCommonButtons(buttons);
 }
Exemple #16
0
 public static string ArmourMod(IMacroContextProvider mcp)
 {   // %mod
     return(mcp.GetMacroDataSource().ArmourMod());
 }
 public DaggerfallDaedraSummonedWindow(IUserInterfaceManager uiManager, DaggerfallQuestPopupWindow.DaedraData daedraSummoned, int textId, IMacroContextProvider mcp)
     : base(uiManager)
 {
     this.daedraSummoned = daedraSummoned;
     this.textId         = textId;
     this.mcp            = mcp;
     answerGiven         = true;
 }
Exemple #18
0
 public static string BookAuthor(IMacroContextProvider mcp)
 {   // %ba
     return(mcp.GetMacroDataSource().BookAuthor());
 }
 public void SetTextTokens(int id, IMacroContextProvider mcp = null)
 {
     TextFile.Token[] tokens = DaggerfallUnity.Instance.TextProvider.GetRSCTokens(id);
     SetTextTokens(tokens, mcp);
 }
Exemple #20
0
 public static string HeldSoul(IMacroContextProvider mcp)
 {   // %hs
     return(mcp.GetMacroDataSource().HeldSoul());
 }
Exemple #21
0
 private static string CityName2(IMacroContextProvider mcp)
 {   // %cn2 (only used in msg #200)
     throw new NotImplementedException();
 }
Exemple #22
0
 public static string Potion(IMacroContextProvider mcp)
 {   // %po
     return(mcp.GetMacroDataSource().Potion());
 }
Exemple #23
0
 private static string Time(IMacroContextProvider mcp)
 {   // %tim
     return(DaggerfallUnity.Instance.WorldTime.Now.MinTimeString());
 }
Exemple #24
0
 public DaggerfallMessageBox(IUserInterfaceManager uiManager, CommonMessageBoxButtons buttons, int textId, IUserInterfaceWindow previous = null, IMacroContextProvider mcp = null)
     : base(uiManager, previous)
 {
     SetupBox(textId, buttons, mcp);
 }
Exemple #25
0
 private static string PlayerName(IMacroContextProvider mcp)
 {   // %pcn
     return(GameManager.Instance.PlayerEntity.Name);
 }
Exemple #26
0
 public void SetText(string text, IMacroContextProvider mcp = null)
 {
     SetText(new string[] { text }, mcp);
 }
Exemple #27
0
 private static string DmgMod(IMacroContextProvider mcp)
 {   // %dam
     return(GameManager.Instance.PlayerEntity.DamageModifier.ToString("+0;-0;0"));
 }
Exemple #28
0
 void SetupBox(TextFile.Token[] tokens, CommonMessageBoxButtons buttons, IMacroContextProvider mcp = null)
 {
     SetTextTokens(tokens, mcp);
     AddCommonButtons(buttons);
 }
Exemple #29
0
 private static string Magicka(IMacroContextProvider mcp)
 {   // %spt
     return(GameManager.Instance.PlayerEntity.MaxMagicka.ToString());
 }
Exemple #30
0
 private static string Spd(IMacroContextProvider mcp)
 {   // %spd
     return(mcp.GetMacroDataSource().Spd());
 }