/// <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 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); }
/// <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); }