Ejemplo 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);
            }
        }
Ejemplo n.º 2
0
        /// <Summary>
        /// Returns the flag that the event is executed.
        /// This method is called after the player has moved.
        /// </Summary>
        /// <param name="eventData">Event data of the position.</param>
        /// <param name="targetPos">Target position.</param>
        /// <param name="eventStartPos">Starting position of the event defined in the event parts.</param>
        bool ExecuteEventOnPostMove(EventMasterData eventData, Vector2Int targetPos, AriadneEventPosition eventStartPos)
        {
            bool isEventExecute = false;

            if (eventData == null)
            {
                return(isEventExecute);
            }

            AriadneEventParts parts = eventProcessor.GetExecutionEventParts(eventData);

            if (parts == null)
            {
                return(isEventExecute);
            }

            if (parts.eventPos != eventStartPos)
            {
                return(isEventExecute);
            }

            if (parts.eventTrigger == AriadneEventTrigger.Auto)
            {
                // Execute event immediately.
                isEventExecute = true;
                SetEventTraverse(targetPos);
                this.isExecutingEvent = true;
                InitializeButtonPressedState();
                SetArrowButtonState(false);
                eventProcessor.EventExecuter(parts, targetPos);
            }
            else
            {
                // Set key wait flag.
                this.isEventReady = true;
                fadeManager.FadeInKeyWait();
            }
            return(isEventExecute);
        }
Ejemplo n.º 3
0
        /// <Summary>
        /// Returns the flag that the event is executed.
        /// This method is called when the key is pressed.
        /// </Summary>
        /// <param name="eventData">Event data of the position.</param>
        /// <param name="targetPos">Target position.</param>
        /// <param name="eventStartPos">Starting position of the event defined in the event parts.</param>
        bool ExecuteEventOnKeyPressed(EventMasterData eventData, Vector2Int targetPos, AriadneEventPosition eventStartPos)
        {
            bool isEventExecute = false;

            fadeManager.FadeOutKeyWait();
            if (eventData == null)
            {
                return(isEventExecute);
            }

            AriadneEventParts parts = eventProcessor.GetExecutionEventParts(eventData);

            if (parts == null)
            {
                return(isEventExecute);
            }

            if (parts.eventPos != eventStartPos)
            {
                return(isEventExecute);
            }

            if (parts.eventTrigger == AriadneEventTrigger.KeyPress)
            {
                // Execute event.
                isEventExecute = true;
                SetEventTraverse(targetPos);
                this.isExecutingEvent = true;
                SetArrowButtonState(false);
                eventProcessor.EventExecuter(parts, targetPos);
            }
            return(isEventExecute);
        }