Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }