/// <Summary> /// Copy constructor of base parts. /// </Summary> /// <param name="baseParts">Base parts data for copying.</param> public AriadneEventParts(AriadneEventParts baseParts) { eventCategory = baseParts.eventCategory; eventTrigger = baseParts.eventTrigger; eventPos = baseParts.eventPos; startCondition = baseParts.startCondition; startFlagName = baseParts.startFlagName; startItemId = baseParts.startItemId; startNum = baseParts.startNum; comparisonOperator = baseParts.comparisonOperator; hasExecutedFlag = baseParts.hasExecutedFlag; executedFlagName = baseParts.executedFlagName; doorKeyType = baseParts.doorKeyType; destDungeon = baseParts.destDungeon; destMap = baseParts.destMap; destPos = baseParts.destPos; direction = baseParts.direction; treasureType = baseParts.treasureType; itemId = baseParts.itemId; itemNum = baseParts.itemNum; msgList = new List <string>(); foreach (string msg in baseParts.msgList) { msgList.Add(msg); } }
/// <Summary> /// Returns the result of checking condition about money. /// </Summary> /// <param name="comparison">The comparison operator of the event parts.</param> /// <param name="compareNum">The criterion number of conparing to.</param> public static bool CheckEventConditionMoney(AriadneComparison comparison, int compareNum) { bool isMatched = false; isMatched = GetComparedResult(comparison, ItemManager.money, compareNum); return(isMatched); }
/// <Summary> /// Returns the checking result of the condition by using a comparison of the event parts data. /// </Summary> /// <param name="comparison">The comparison operator of the event parts.</param> /// <param name="value">The value of player's item or money.</param> /// <param name="compareNum">The criterion number of conparing to.</param> static bool GetComparedResult(AriadneComparison comparison, int value, int compareNum) { bool isMatched = false; switch (comparison) { case AriadneComparison.Equals: if (value == compareNum) { isMatched = true; } break; case AriadneComparison.NotEqual: if (value != compareNum) { isMatched = true; } break; case AriadneComparison.GreaterThan: if (value > compareNum) { isMatched = true; } break; case AriadneComparison.GreaterOrEqual: if (value >= compareNum) { isMatched = true; } break; case AriadneComparison.LessThan: if (value < compareNum) { isMatched = true; } break; case AriadneComparison.LessOrEqual: if (value <= compareNum) { isMatched = true; } break; } return(isMatched); }
/// <Summary> /// Returns the result of checking condition about holding items. /// </Summary> /// <param name="itemId">Specify item ID.</param> /// <param name="comparison">The comparison operator of the event parts.</param> /// <param name="compareNum">The number of conparing to.</param> public static bool CheckEventConditionItem(int itemId, AriadneComparison comparison, int compareNum) { bool isMatched = false; if (holdItemDict == null) { return(isMatched); } int holdingItemNum = holdItemDict.ContainsKey(itemId) ? holdItemDict[itemId] : 0; isMatched = GetComparedResult(comparison, holdingItemNum, compareNum); return(isMatched); }