示例#1
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Constructor
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="width">
        ///     [Range(0, 255)]
        ///     [SafetyRange(0, 250)]
        ///     幅
        /// </param>
        /// <param name="height">
        ///     [Range(0, 255)]
        ///     [SafetyRange(0, 250)]
        ///     高さ
        /// </param>
        /// <exception cref="ArgumentOutOfRangeException">width、heightが指定範囲外の場合</exception>
        public HitExtendRange(byte width, byte height)
        {
            if (width < MinValue_Width || MaxValue_Width < width)
            {
                throw new ArgumentOutOfRangeException(
                          ErrorMessage.OutOfRange(nameof(width), MinValue_Width, MaxValue_Width, width));
            }
            if (height < MinValue_Height || MaxValue_Height < height)
            {
                throw new ArgumentOutOfRangeException(
                          ErrorMessage.OutOfRange(nameof(height), MinValue_Height, MaxValue_Height, height));
            }

            if (width < SafetyMinValue_Width || SafetyMaxValue_Width < width)
            {
                WodiLibLogger.GetInstance().Warning(
                    WarningMessage.OutOfRange(nameof(width), SafetyMinValue_Width,
                                              SafetyMaxValue_Width, width));
            }
            if (height < SafetyMinValue_Height || SafetyMaxValue_Height < height)
            {
                WodiLibLogger.GetInstance().Warning(
                    WarningMessage.OutOfRange(nameof(height), SafetyMinValue_Height,
                                              SafetyMaxValue_Height, height));
            }

            Width  = width;
            Height = height;
        }
示例#2
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Private Static Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// バージョンによる定義チェックを行い、警告メッセージを出力する
        /// </summary>
        /// <param name="value">変数アドレス値</param>
        private static void VersionCheck(int value)
        {
            var infoCode = value % 10;

            if (infoCode == 7 || infoCode == 8)
            {
                WodiLibLogger.GetInstance().Warning(VersionWarningMessage.NotUsingVariableAddress(value));
            }
        }
示例#3
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Constructor
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="value">
        ///     [Range(int.MinValue, int.MaxValue)]
        ///     [SafetyRange(0, 999999999)]
        ///     キャラ動作指定コマンド設定値
        /// </param>
        /// <exception cref="ArgumentOutOfRangeException">valueがキャラ動作指定コマンド設定値として不適切な場合</exception>
        public CharaMoveCommandValue(int value)
        {
            if (value < MinValue || MaxValue < value)
            {
                throw new ArgumentOutOfRangeException(
                          ErrorMessage.OutOfRange(nameof(value), MinValue, MaxValue, value));
            }

            if (value < SafetyMinValue || SafetyMaxValue < value)
            {
                WodiLibLogger.GetInstance().Warning(
                    WarningMessage.OutOfRange(nameof(value), SafetyMinValue, SafetyMaxValue, value));
            }

            Value = value;
        }
示例#4
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Constructor
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <remarks>
        ///     ファイル名が "XXX.common" ではない場合、警告ログを出力する。
        /// </remarks>
        /// <param name="value">[NotNull][NotNewLine] ファイルパス</param>
        /// <exception cref="ArgumentNullException">valueがnullの場合</exception>
        /// <exception cref="ArgumentNewLineException">
        ///     valueに改行が含まれる場合、
        ///     または255byteを超える場合
        /// </exception>
        /// <exception cref="ArgumentException">
        ///     valueがファイルパスとして不適切な場合
        /// </exception>
        public CommonFilePath(string value) : base(value)
        {
            if (value is null)
            {
                throw new ArgumentNullException(
                          ErrorMessage.NotNull(nameof(value)));
            }

            var fileName = Path.GetFileName(value);

            if (!FilePathRegex.IsMatch(fileName))
            {
                WodiLibLogger.GetInstance().Warning(
                    WarningMessage.UnsuitableFileName(value, FilePathRegex));
            }
        }
示例#5
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Constructor
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="value">
        ///     [Range(_MinValue, _MaxValue)]
        ///     [SafetyRange(_SafetyMinValue, _SafetyMaxValue)]
        ///     変数アドレス値
        /// </param>
        /// <exception cref="ArgumentOutOfRangeException">value変数アドレス値として不適切な場合</exception>
        protected VariableAddress(int value)
        {
            if (value < _MinValue || _MaxValue < value)
            {
                throw new ArgumentOutOfRangeException(
                          ErrorMessage.OutOfRange(nameof(value), _MinValue, _MaxValue, value));
            }

            if (value < _SafetyMinValue || _SafetyMaxValue < value)
            {
                WodiLibLogger.GetInstance().Warning(
                    WarningMessage.OutOfRange(nameof(value), _SafetyMinValue, _SafetyMaxValue, value));
            }

            Value = value;
        }
示例#6
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Private Static Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// バージョンによる定義チェックを行い、警告メッセージを出力する
        /// </summary>
        /// <param name="value">変数アドレス値</param>
        private static void VersionCheck(int value)
        {
            var infoCode = value % 10;

            if (VersionConfig.IsUnderVersion(WoditorVersion.Ver2_01))
            {
                // 「イベントの座標」のうち、10の位が5または6のアドレスは
                // ウディタVer2.01未満では非対応
                if (infoCode == 5 || infoCode == 6)
                {
                    WodiLibLogger.GetInstance().Warning(VersionWarningMessage.NotUnderInVariableAddress(
                                                            value,
                                                            VersionConfig.GetConfigWoditorVersion(),
                                                            WoditorVersion.Ver2_01));
                }
            }

            if (infoCode == 7 || infoCode == 8)
            {
                WodiLibLogger.GetInstance().Warning(VersionWarningMessage.NotUsingVariableAddress(value));
            }
        }
示例#7
0
        private CommonEventSpecialNumberArgDesc UpdateSpecialNumberArgDesc_MakeDescForElse(
            CommonEventArgType type,
            string argName, int initValue, List <int> numberArgList, List <string> stringArgList)
        {
            var stringArgListCount = stringArgList.Count;
            var numberArgListCount = numberArgList.Count;

            // 旧バージョンで作られたデータ限定?で文字列と数値の数が一致しないことがある。
            //   基本システムVer2のコモンイベント14などで確認。
            if (stringArgListCount != numberArgListCount)
            {
                WodiLibLogger.GetInstance().Warning(
                    $"[Warning] 文字列引数リストと数値引数リストの長さが一致しません。(文字列数:{stringArgListCount}, 数値数:{numberArgListCount})");
            }

            var loopTimes = stringArgListCount <= numberArgListCount
                ? stringArgListCount
                : numberArgListCount;

            var caseList = new List <CommonEventSpecialArgCase>();

            for (var j = 0; j < loopTimes; j++)
            {
                var argCase = new CommonEventSpecialArgCase(numberArgList[j], stringArgList[j]);
                caseList.Add(argCase);
            }

            var desc = new CommonEventSpecialNumberArgDesc
            {
                ArgName   = argName,
                InitValue = initValue
            };

            desc.ChangeArgType(type, caseList);

            return(desc);
        }