/// <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}]"); }
public static void ToIntTest(int value) { var instance = new MapCharacterId(value); var intValue = instance.ToInt(); // セットした値と取得した値が一致すること Assert.AreEqual(intValue, value); }