Пример #1
0
    RandomEventController GetRootRandomEventControllerLink(Transform storyTransform, GeneralEvent generalEvent)
    {
        if (storyTransform == generalEvent.transform)
        {
            return(null);
        }

        RandomEventController randomEventController = storyTransform.GetComponent <RandomEventController>();

        if (randomEventController != null)
        {
            if (randomEventController.randomEventList.Exists(x => x == generalEvent))
            {
                //print(randomEventController.name);
                return(randomEventController);
            }
        }

        foreach (Transform transform in storyTransform)
        {
            RandomEventController foundRandomEventController = GetRootRandomEventControllerLink(transform, generalEvent);
            if (foundRandomEventController != null)
            {
                return(foundRandomEventController);
            }
        }

        return(null);
    }
Пример #2
0
    public void DrawLine()
    {
        if (linesEventPanel.ContainsKey(this))
        {
            linesStep.Remove(linesEventPanel[this]);
            linesEventPanel.Remove(this);
        }

        foreach (EditorAction eItem in this.GetChildrenComponents <EditorAction>())
        {
            RandomEventController randomEvent = eItem.storyTransform.GetComponent <RandomEventController>();
            if (randomEvent != null)
            {
                for (uint i = 0; i < randomEvent.Count; i++)
                {
                    DrawLineEvent(eItem, randomEvent.GetEvent(i), i > 0);
                }
            }
            else
            {
                ActionMGController actionMGController = eItem.storyTransform.GetComponent <ActionMGController>();
                if (actionMGController != null)
                {
                    DrawLineEvent(eItem, actionMGController.MgComplite);
                    DrawLineEvent(eItem, actionMGController.MgNotComplite, true);
                }
            }
        }
    }
Пример #3
0
 void Awake()
 {
     Instance        = this;
     eventController = GetComponent <RandomEventController>();
     loseScreen.SetActive(false);
     winScreen.SetActive(false);
 }
Пример #4
0
    public override void Draw(Transform trans)
    {
        textName.text = name;
        foreach (Transform transform in trans)
        {
            GeneralEvent generalEvent = transform.GetComponent <GeneralEvent>();
            if (generalEvent == null)
            {
                EditorAction eItem = (EditorBaseItem.CreatEditorChangeItem(transform.gameObject, actionPrefab, this.transform, transform.name) as EditorAction);

                Action action = transform.GetComponent <Action>();
                if (action != null)
                {
                    eItem.textName.text = action.text;
                    if (action.GetFirstComponentInChildren <Outcome>() != null)
                    {
                        eItem.SetStartColor(Color.green);
                        RandomEventController randomEvent = transform.GetComponent <RandomEventController>();
                        eItem.arrow_out.gameObject.SetActive(randomEvent != null && randomEvent.Count > 0);
                    }
                }
                else
                {
                    eItem.SetStartColor(Color.green);
                    eItem.arrow_out.gameObject.SetActive(false);
                }
            }
        }
    }
Пример #5
0
 void ReAttachRandomEventControllerLinks(Transform storyTransform)
 {
     foreach (GeneralEvent generalEvent in storyTransform.GetComponentsInChildren <GeneralEvent>())
     {
         RandomEventController randomEventController = GetRootRandomEventControllerLink(container2.currentEditorBaseItem.storyTransform, generalEvent);
         if (randomEventController != null)
         {
             //print(randomEventController.name);
             generalEvent.transform.SetParent(randomEventController.transform, false);
         }
     }
 }
Пример #6
0
    void DrawChanceGeneralEvent()
    {
        RandomEventController randomEventController = action.GetComponent <RandomEventController>();
        GeneralEvent          revent = (randomEventController != null) ? randomEventController.GetEvent(0) : null;

        if (revent != null && randomEventController.Count == 1)
        {
            float chance = 0f;
            statImage.sprite = revent.GetIcon(ref chance);
            if (statImage.sprite != null)
            {
                DrawChance(chance);
            }
        }
    }
Пример #7
0
    public virtual List <EventPanel> CreateEventPanel(Transform transform)
    {
        List <EventPanel>     EventPanelList = new List <EventPanel>();
        RandomEventController randomEvent    = transform.GetComponent <RandomEventController>();

        if (randomEvent != null)
        {
            randomEvent.randomEventList.RemoveAll(x => x == null);
            foreach (GeneralEvent generalEvent in randomEvent.randomEventList)
            {
                if (!EventPanels.Exists(x => x.generalEvent == generalEvent))
                {
                    EventPanel eventPanel = CreatePanel(generalEvent);
                    EventPanelList.Add(eventPanel);
                    eventPanel.Draw(generalEvent.transform);
                }
            }
        }
        else
        {
            ActionMGController actionMGController = transform.GetComponent <ActionMGController>();
            if (actionMGController != null)
            {
                GeneralEvent generalEvent = actionMGController.MgComplite;
                if (!EventPanels.Exists(x => x.generalEvent == generalEvent))
                {
                    EventPanel eventPanel = CreatePanel(generalEvent);
                    EventPanelList.Add(eventPanel);
                    eventPanel.Draw(generalEvent.transform);
                }

                generalEvent = actionMGController.MgNotComplite;
                if (!EventPanels.Exists(x => x.generalEvent == generalEvent))
                {
                    EventPanel eventPanel = CreatePanel(generalEvent);
                    EventPanelList.Add(eventPanel);
                    eventPanel.Draw(generalEvent.transform);
                }
            }
        }
        EventPanels.AddRange(EventPanelList);
        return(EventPanelList);
    }
Пример #8
0
    public override void OnPointerClick(PointerEventData eventData)
    {
        if (action.type == "continue")
        {
            return;
        }

        List <Outcome>        outcomList            = action.GetChildrenComponents <Outcome>();
        RandomEventController randomEventController = action.GetComponent <RandomEventController>();

        if (randomEventController != null)
        {
            if (randomEventController.Count == 0 && outcomList.Count == 0)
            {
                return;
            }

            if (randomEventController.Count == 1 && outcomList.Count == 0)
            {
                SendMessageUpwards("DrawPreview", randomEventController.randomEventList[0]);
            }
            else if (randomEventController.Count == 0 && outcomList.Count == 1)
            {
                SendMessageUpwards("DrawPreview", outcomList[0]);
            }
            else
            {
                SendMessageUpwards("DrawPreview", randomEventController.randomEventList);
                SendMessageUpwards("AddDrawPreview", outcomList);
            }
        }
        else
        {
            if (outcomList.Count > 1)
            {
                SendMessageUpwards("DrawPreview", outcomList);
            }
            else if (outcomList.Count == 1)
            {
                SendMessageUpwards("DrawPreview", outcomList[0]);
            }
        }
    }
Пример #9
0
    public void OnEndDrag(PointerEventData eventData)
    {
        if (isDrag)
        {
            isDrag = false;
            EventPanel eventPanel = eventData.pointerEnter.GetComponent <EventPanel>();
            if (eventPanel != null)
            {
                RandomEventController randomEventController = storyTransform.GetComponent <RandomEventController>();
                if (randomEventController == null)
                {
                    randomEventController = storyTransform.gameObject.AddComponent <RandomEventController>();
                }

                randomEventController.randomEventList.Add(eventPanel.generalEvent);
                //ContainerController.current.Draw();
                EditorEventManager.TriggerEvent("Draw_" + ContainerControllerBase.currentContainerController.name);
            }
        }
    }
Пример #10
0
    public void OnCreateEvent(GameObject EventEmptyPrefab)
    {
        Transform storyTransform = ContainerControllerBase.GetStoryTransform();

        if (storyTransform != null)
        {
            GameObject go = Instantiate(EventEmptyPrefab, storyTransform) as GameObject;
            SetEventPrefabName(go);

            if (storyTransform.GetComponent <Action>() != null)
            {
                RandomEventController randomEventController = storyTransform.GetComponent <RandomEventController>();
                if (randomEventController == null)
                {
                    randomEventController = storyTransform.gameObject.AddComponent <RandomEventController>();
                }

                randomEventController.randomEventList.Add(go.GetComponent <GeneralEvent>());
            }
            //ContainerController.current.Draw();
            EditorEventManager.TriggerEvent("Draw_" + ContainerControllerBase.currentContainerController.name);
        }
    }
Пример #11
0
    public void Perform_Action()
    {
        if (type == "skip" && statChange.Count != 0)
        {
            foreach (Parameter param in statChange)
            {
                param.ChangeStat();
            }
        }

        RandomEventController randomEventController = GetComponent <RandomEventController>();

        if (randomEventController != null)
        {
            GeneralEvent generalEvent = randomEventController.GetRandomEvent();
            if (generalEvent != null && generalEvent.Launch())
            {
                return;
            }
        }

        gameObject.SendMessage("action_" + type);
    }