/// <summary>
        /// マップキャラID文字列を取得する。
        /// </summary>
        /// <param name="characterId">キャラID</param>
        /// <param name="type">[NotNull] イベントコマンド種別</param>
        /// <param name="desc">[Nullable] 付加情報</param>
        /// <returns>
        ///     マップイベントID文字列。
        ///     該当マップがプロジェクト内に読み込まれていない場合、空文字。
        /// </returns>
        public (bool, MapEventName) GetMapEventIdStr(MapCharacterId characterId,
                                                     EventCommandSentenceType type, EventCommandSentenceResolveDesc desc)
        {
            const string notFound = "";

            if (characterId == -1)
            {
                return(true, "このマップイベント");
            }
            if (characterId == -2)
            {
                return(true, "主人公");
            }
            if (characterId < -2)
            {
                var memberId = characterId * -1 - 2;
                return(true, $"仲間{memberId}");
            }

            if (characterId.ToInt().IsNumericVariableAddressSimpleCheck())
            {
                var varName = Master.GetNumericVariableAddressString(characterId, type, desc);
                return(true, $"キャラ[{varName}]");
            }

            var targetEvent = Master.MapData?.MapEvents.FirstOrDefault(x => x.MapEventId == characterId);

            if (targetEvent is null)
            {
                return(false, notFound);
            }

            return(true, $"Ev{characterId}");
        }
        /// <summary>
        /// キャラクター名を取得する。
        /// </summary>
        /// <param name="characterId">キャラクターID</param>
        /// <param name="type">[NotNull] イベントコマンド種別</param>
        /// <param name="desc">[Nullable] 付加情報</param>
        /// <returns>
        ///     マップイベント名。
        ///     該当マップがプロジェクト内に読み込まれていない場合、空文字。
        /// </returns>
        public MapEventName GetCharacterName(MapCharacterId characterId,
                                             EventCommandSentenceType type, EventCommandSentenceResolveDesc desc)
        {
            if (characterId == -1)
            {
                return("このイベント");
            }
            if (characterId == -2)
            {
                return("主人公");
            }
            if (characterId < -2)
            {
                return($"仲間{(characterId + 2) * -1}");
            }

            if (!characterId.ToInt().IsVariableAddressSimpleCheck())
            {
                return($"Ev{characterId}");
            }

            var varAddressSentence = Master.GetNumericVariableAddressString(characterId, type, desc);

            return($"キャラ[{varAddressSentence}]");
        }
Example #3
0
        public static void ToIntTest(int value)
        {
            var instance = new MapCharacterId(value);

            var intValue = instance.ToInt();

            // セットした値と取得した値が一致すること
            Assert.AreEqual(intValue, value);
        }