コード例 #1
0
    private void StartGame()
    {
        myTileController      = new TileController(tiles, tileWidth, tileHeight);
        myInitativeController = new InitativeController(player, enemies, myTileController);

        qManager          = new QuestManager();
        trigger           = new QuestTrigger();
        qManager.qObjects = Quests;

        foreach (Transform qo in Quests.transform)
        {
            GameObject qpar = qo.gameObject;
            qManager.SetQuests(qpar);
        }

        // Acquire our quest to hand to the trigger
        QuestTemplate q = quest.GetComponent <KillEnemiesStage1> ();

        Debug.Log("Test: " + q.getDescription());
        if (q == null)
        {
            Debug.Log("ebin fugg :DDDDD");
        }
        trigger.quest = q;
        trigger.activate();
        q.start();


        allCharacters.Add(player);
        foreach (Transform enemy in enemies.transform)
        {
            allCharacters.Add(enemy.gameObject);
        }
    }
コード例 #2
0
 // Use this for initialization
 void Start()
 {
     thePlayer = FindObjectOfType <PlayerController>();
     //joystick = FindObjectOfType<Joystick>();
     joybutton = FindObjectOfType <JoyButton>();
     endQuest  = FindObjectOfType <QuestTrigger>();
 }
コード例 #3
0
    // I decided that i didn't want to support the drag and drop on chests to create new items.

    /*
     * public void OnDrop (PointerEventData eventData) {
     *  if (DragHandler.itemBeingDragged == null) {
     *      return;
     *  }
     *
     *  GameObject containerSlot = null;
     *  if (DragHandler.itemBeingDragged.transform.parent.GetComponent<ContainerSlot>()) {
     *      containerSlot = DragHandler.startParent.gameObject;
     *  }
     *
     *  CreateSlotWithItem (DragHandler.itemBeingDragged.GetComponent<SlotObjectContainer>().obj);
     *
     *  if (containerSlot) {
     *      Destroy (containerSlot);
     *  }
     *  DestroyImmediate (DragHandler.itemBeingDragged.transform.gameObject);
     *
     *  DragHandler.itemBeingDragged = null;
     * }
     */

    public void CreateSlotWithItem(GameObject Item)
    {
        GameObject slot     = Instantiate(Slot, transform.GetChild(0).transform.GetChild(0), false);
        GameObject slotItem = Instantiate(ContainerSlotItem, slot.transform, false);

        slotItem.GetComponent <SlotObjectContainer> ().obj = Item;

        GameObject  item       = slotItem.GetComponent <SlotObjectContainer> ().obj;
        Component   objectData = item.GetComponent(typeof(IObjectData));
        IObjectData data       = objectData as IObjectData;

        slotItem.GetComponent <Text> ().text = data.objectName();

        if (data.count() != 1)
        {
            slotItem.GetComponent <Text> ().text += " x" + data.count();
        }

        // Process Quest UnTrigger.
        QuestTriggerWrapper questTriggerWrapper = item.GetComponent <QuestTriggerWrapper> ();

        if (questTriggerWrapper != null)
        {
            QuestTrigger trigger = questTriggerWrapper.questTrigger;
            if (trigger != null)
            {
                GameObject.Find("QuestManager").GetComponent <QuestManager> ().ProcessQuestUnTrigger(trigger);
            }
        }
    }
コード例 #4
0
ファイル: Quest.cs プロジェクト: Hehfay/Codename-Galvins
    public void ProcessQuestUnTrigger(QuestTrigger questTrigger)
    {
        if (complete)
        {
            return;
        }

        if (questTrigger.questNode == currentObjective)
        {
            currentObjective.MarkTaskIncomplete(questTrigger.task);
            currentObjective.ShowCurrentTasks();
        }
        else
        {
            questTrigger.questNode.MarkTaskIncomplete(questTrigger.task);
            if (questTrigger.questNode == currentObjective.previous)
            {
                currentObjective = questTrigger.questNode;
                currentObjective.ShowCurrentTasks();
                // When you go to the previous node, make the quest giver say
                // the repeated dialog.
                dialog = currentObjective.repeatedDialog;
            }
        }
    }
コード例 #5
0
    void Update()
    {
        if (Input.GetMouseButtonUp(0))
        {
            int            triggersLayerIdx = LayerMask.NameToLayer(triggersLayer);
            QuestTrigger[] hitTriggers      = Physics2D.RaycastAll(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector3.zero)
                                              .Where(x => x.transform.gameObject.layer == triggersLayerIdx).Select(x => x.transform.GetComponent <QuestTrigger>()).ToArray();

            if (hitTriggers.Count() == 0)
            {
                return;
            }

            QuestTrigger topTrigger = hitTriggers.First();
            foreach (var trigger in hitTriggers)
            {
                if (topTrigger.sortingOrder < trigger.sortingOrder)
                {
                    topTrigger = trigger;
                }
            }

            topTrigger.Action();
        }
    }
コード例 #6
0
ファイル: Quest.cs プロジェクト: Hehfay/Codename-Galvins
    public void ProcessQuestTrigger(QuestTrigger questTrigger)
    {
        if (complete)
        {
            return;
        }

        if (questTrigger.questNode == currentObjective)
        {
            currentObjective.MarkTaskComplete(questTrigger.task);
        }
        else
        {
            if (questTrigger.questNode.taskType != TaskType.TALK)
            {
                questTrigger.questNode.MarkTaskComplete(questTrigger.task);
            }
        }

        while (canIAdvance())
        {
            AdvanceQuestAndDisplayObjectives();
            dialog = currentObjective.dialog;
        }
    }
コード例 #7
0
ファイル: GridForm.cs プロジェクト: Adosorken/queststudio
        public void SelectTrigger(int triggerno)
        {
            if (gridTriggers.DataSource == null)
            {
                return;
            }

            Console.WriteLine("SelectTrigger :: reload to trigger grid");

            List <QuestTrigger> triggerList = (List <QuestTrigger>)gridTriggers.DataSource;

            if (triggerList.Count > triggerno)
            {
                QuestTrigger trigger = triggerList[triggerno];

                gridConditions.ColumnCount           = 1;
                gridConditions.Columns[0].HeaderText = "Conditions";
                gridConditions.Rows.Clear();

                for (int row = 0; row < trigger.Conditions.Count; row++)
                {
                    gridConditions.Rows.Add();
                    Condition c = trigger.Conditions[row];

                    AddConditionToGrid(c, row);
                }

                gridConditions.Refresh();
            }
        }
コード例 #8
0
    public void CreateSlotItemAsChildOfExistingSlot(GameObject item)
    {
        GameObject  newSlotItem = Instantiate(slotItem, transform, false);
        Component   comp        = item.GetComponent <SlotObjectContainer>().obj.GetComponent(typeof(IObjectData));
        IObjectData objectData  = comp as IObjectData;
        string      uiText;

        if (objectData.count() == 1)
        {
            uiText = objectData.objectName();
        }
        else
        {
            uiText = objectData.objectName() + " x" + objectData.count();
        }
        newSlotItem.GetComponent <SlotObjectContainer> ().obj = item.GetComponent <SlotObjectContainer>().obj;
        newSlotItem.GetComponent <Text> ().text = uiText;

        QuestTriggerWrapper questTriggerWrapper = newSlotItem.GetComponent <SlotObjectContainer> ().obj.GetComponent <QuestTriggerWrapper>();

        if (questTriggerWrapper != null)
        {
            QuestTrigger trigger = questTriggerWrapper.questTrigger;
            if (trigger != null)
            {
                Debug.Log("Process Quest Trigger.");
                GameObject.Find("QuestManager").GetComponent <QuestManager> ().ProcessQuestTrigger(trigger);
            }
        }

        Destroy(item);
    }
コード例 #9
0
 private void Start()
 {
     buttonAnimator = buttonObj.GetComponent <Animator>();
     button         = buttonObj.GetComponent <Button>();
     qt             = GetComponent <QuestTrigger>();
     qct            = GetComponent <QuestCollectTrigger>();
     bs             = GetComponent <BagScript>();
 }
コード例 #10
0
ファイル: Node.cs プロジェクト: moipaslui/fouleck
    public void ChangeGameObject(GameObject gameObject)
    {
        QuestEditor.selectedQuest.questTriggers.Remove(trigger);
        QuestTrigger temp = (QuestTrigger)gameObject.AddComponent(trigger.GetType());

        Object.DestroyImmediate(trigger);
        trigger = temp;
        QuestEditor.selectedQuest.questTriggers.Add(trigger);
    }
コード例 #11
0
ファイル: QuestManager.cs プロジェクト: moipaslui/fouleck
 public Quest FindQuest(QuestTrigger trigger)
 {
     foreach (Quest quest in quests)
     {
         if (quest.questTriggers.Contains(trigger))
         {
             return(quest);
         }
     }
     return(null);
 }
コード例 #12
0
ファイル: Node.cs プロジェクト: moipaslui/fouleck
 public static Node FindNode(QuestTrigger trigger)
 {
     foreach (Node node in QuestEditor.nodes)
     {
         if (node.trigger == trigger)
         {
             return(node);
         }
     }
     return(null);
 }
コード例 #13
0
 public string getDialog(QuestTrigger questTrigger)
 {
     // TODO A better way to lookup the quests.
     for (int i = 0; i < quests.Count; ++i)
     {
         if (questTrigger.quest == quests[i])
         {
             return(quests[i].getDialog());
         }
     }
     return("");
 }
コード例 #14
0
ファイル: Dialogue.cs プロジェクト: moipaslui/fouleck
 public QuestDialogueData(QuestTrigger triggerA, QuestTrigger triggerD, int line)
 {
     if (triggerA != null)
     {
         triggersToActiveToAdd.Add(triggerA);
     }
     if (triggerD != null)
     {
         triggersToDesactiveToAdd.Add(triggerD);
     }
     this.line = line;
 }
コード例 #15
0
ファイル: Node.cs プロジェクト: moipaslui/fouleck
 public void ChangeScript(System.Type type)
 {
     if (type != QuestEditor.TranslateType(TRIGGER_TYPES.START) && type != QuestEditor.TranslateType(TRIGGER_TYPES.END) &&
         trigger.GetType() != QuestEditor.TranslateType(TRIGGER_TYPES.START) && trigger.GetType() != QuestEditor.TranslateType(TRIGGER_TYPES.END))
     {
         QuestEditor.selectedQuest.questTriggers.Remove(trigger);
         QuestTrigger temp = (QuestTrigger)trigger.gameObject.AddComponent(type);
         Object.DestroyImmediate(trigger);
         trigger = temp;
         ChangeTitle(type);
         QuestEditor.selectedQuest.questTriggers.Add(trigger);
     }
 }
コード例 #16
0
 public void ProcessQuestUnTrigger(QuestTrigger questTrigger)
 {
     Debug.Log("Processing Quest UnTrigger");
     // TODO A better way to lookup the quests.
     for (int i = 0; i < quests.Count; ++i)
     {
         if (questTrigger.quest == quests[i])
         {
             quests[i].ProcessQuestUnTrigger(questTrigger);
             break;
         }
     }
 }
コード例 #17
0
 public void ProcessQuestTrigger(Quest quest, QuestTrigger trigger)
 {
     if (!quest.active)
     {
         quest.active = true;
         quest.SetCurrentObjectiveToFirstObjective();
         quest.InitDialog();
     }
     else
     {
         quest.ProcessQuestTrigger(trigger);
     }
 }
コード例 #18
0
ファイル: Node.cs プロジェクト: moipaslui/fouleck
    private void Constructor(QuestTrigger trigger)
    {
        ChangeTitle(trigger.GetType());
        id   = lastId++;
        rect = new Rect(100, 100, 120, 50);
        QuestEditor.nodes.Add(this);
        QuestEditor.selectedNode = id;
        connectActive            = new List <Connector>();
        connectDesactive         = new List <Connector>();

        if (trigger.GetType() == typeof(EndQuestAT))
        {
            ((EndQuestAT)trigger).quest = QuestEditor.selectedQuest;
        }
    }
コード例 #19
0
    public int activeNum; //number of active quests

    private void Start()
    {
        allQuests = new Dictionary <int, QuestData>();
        activeNum = 0;
        foreach (GameObject quest in questObjects)
        {
            QuestTrigger q = quest.GetComponent <QuestTrigger>();
            allQuests.Add(q.quest.questNumber, q.quest);
            if (q.quest.hasStarted == true)
            {
                activeNum += 1;
                FindObjectOfType <QuestManager>().StartQuest(q.quest);
            }
        }
    }
コード例 #20
0
    public void OnPointerClick(PointerEventData eventData)
    {
        if (selectCountButtonCreated)
        {
            return;
        }

        Component   comp    = GetComponent <SlotObjectContainer>().obj.GetComponent(typeof(IObjectData));
        IObjectData objData = comp as IObjectData;

        if (objData.count() > 1)
        {
            selectCountButtonCreated = true;
            GameObject selectCountButtonReference = Instantiate(selectCountButton, Canvas.transform);
            selectCountButtonReference.GetComponent <RectTransform> ().localPosition          = new Vector3(0, 0, 0);
            selectCountButtonReference.GetComponentInChildren <Text> ().text                  = "1";
            selectCountButtonReference.GetComponentInChildren <PlusButtonOnClick> ().maxCount = objData.count();
            selectCountButtonReference.SetActive(true);

            // Give the count button reference the gameobject and a reference to the character position.
            selectCountButtonReference.GetComponent <PlayerReferenceAndItemContainer>().Player =
                transform.root.GetComponent <PlayerReferenceContainer> ().Player;

            selectCountButtonReference.GetComponent <PlayerReferenceAndItemContainer> ().Item = GetComponent <SlotObjectContainer> ().obj;
            selectCountButtonReference.GetComponent <PlayerReferenceAndItemContainer> ().SlotObjectContainer = GetComponent <SlotObjectContainer> ();
            return;
        }

        DropItem();

        // TODO Wrap this nicely so other drop logic can use it.

        // See if the item has a quest trigger.
        QuestTriggerWrapper questTriggerWrapper = GetComponent <SlotObjectContainer> ().obj.GetComponent <QuestTriggerWrapper> ();

        if (questTriggerWrapper != null)
        {
            QuestTrigger pickupQuestTrigger = questTriggerWrapper.questTrigger;
            if (pickupQuestTrigger != null)
            {
                GameObject.Find("QuestManager").GetComponent <QuestManager> ().ProcessQuestUnTrigger(pickupQuestTrigger);
            }
        }
        gameObject.transform.SetParent(null);
        Destroy(gameObject);
    }
コード例 #21
0
    void Start()
    {
        if (completeQuestEventObj != null) {
            cqe = completeQuestEventObj.GetComponent<CompleteQuestEvent> ();
        }
        trigger = questTriggerObj.GetComponent<QuestTrigger> ();
        sQstring = startQuestText.text;
        fAQstring = failedQuestText.text;
        fQstring = finishQuestText.text;
        char[] delimitingChars = {'\n'};
        sQLines = sQstring.Split (delimitingChars);
        fQLines = fQstring.Split (delimitingChars);
        fAQLines = fAQstring.Split (delimitingChars);
        npcb = this.GetComponent<NPCBehaviour> ();

        r = new Reward (0, rewardLevels);
        q = new Quest (this.gameObject, r, quest_name, quest_description);
        ch = chatHandlerObj.GetComponent<ChatHandler> ();
    }
コード例 #22
0
 public void QuestPostProcessing(Quest quest, QuestTrigger trigger)
 {
     quest.PostProcessing();
 }
コード例 #23
0
    public void OnDrop(PointerEventData eventData)
    {
        if (DragHandler.itemBeingDragged == null)
        {
            return;
        }

        if (DragHandler.startParent.GetComponent <PlayerInventorySlot> ())
        {
            // This is the easiest case. The Player is swapping items around in the inventory.
            // No need to process a quest trigger or anything like that.
            if (item)
            {
                item.transform.SetParent(DragHandler.startParent);
            }
            DragHandler.itemBeingDragged.transform.SetParent(transform);
            DragHandler.itemBeingDragged = null;
            transform.root.GetComponent <PlayerReferenceContainer> ().Player.GetComponent <UICharacterInventoryFactory> ().RefreshCharacterInventory();
        }
        else if (DragHandler.startParent.GetComponent <EquipmentSlot> ())
        {
            // The Player is trying to drag an item from an equipment slot to an inventory slot.
            // If there is no item in this slot, no big deal. Else they are trying to swap and we
            // need to be a little careful.

            if (item)
            {
                GameObject uiObject           = DragHandler.itemBeingDragged.GetComponent <SlotObjectContainer> ().obj;
                Equipment  equipmentComponent = uiObject.GetComponent <Equipment> ();
                if (equipmentComponent == null ||
                    item.GetComponent <SlotObjectContainer> ().obj.GetComponent <Equipment> () == null ||
                    !equipmentComponent.equipmentType.Equals(item.GetComponent <SlotObjectContainer> ().obj.GetComponent <Equipment> ().equipmentType))
                {
                    DragHandler.itemBeingDragged.transform.SetParent(DragHandler.startParent);
                    return;
                }
                item.transform.SetParent(DragHandler.startParent);
            }
            DragHandler.itemBeingDragged.transform.SetParent(transform);
            DragHandler.itemBeingDragged = null;
            transform.root.GetComponent <PlayerReferenceContainer> ().Player.GetComponent <UICharacterInventoryFactory> ().RefreshCharacterInventory();
        }
        else if (DragHandler.startParent.GetComponent <ContainerSlot>())
        {
            // The Player is trying to move an item from a container to an inventory slot.
            // It may be a swap or it may not be.
            if (item)
            {
                GameObject itemCopy = item;
                itemCopy.transform.SetParent(null);

                DragHandler.itemBeingDragged.transform.SetParent(transform);
                transform.root.GetComponent <PlayerReferenceContainer> ().Player.GetComponent <UICharacterInventoryFactory> ().RefreshCharacterInventory();
                DragHandler.itemBeingDragged.transform.SetParent(null);

                // Create a slot item.
                GameObject  newSlotItem = Instantiate(slotItemInteractingWithContainer, transform, false);
                Component   comp        = DragHandler.itemBeingDragged.GetComponent <SlotObjectContainer>().obj.GetComponent(typeof(IObjectData));
                IObjectData objectData  = comp as IObjectData;

                string uiText;
                if (objectData.count() == 1)
                {
                    uiText = objectData.objectName();
                }
                else
                {
                    uiText = objectData.objectName() + " x" + objectData.count();
                }
                newSlotItem.GetComponent <Text> ().text = uiText;
                newSlotItem.GetComponent <SlotObjectContainer> ().obj = DragHandler.itemBeingDragged.GetComponent <SlotObjectContainer>().obj;

                // Tell the container to create its slot item.
                Destroy(DragHandler.itemBeingDragged);
                DragHandler.startParent.GetComponent <ContainerSlot> ().CreateSlotItemAsChildOfExistingSlot(itemCopy);

                QuestTriggerWrapper questTriggerWrapper = newSlotItem.GetComponent <SlotObjectContainer> ().obj.GetComponent <QuestTriggerWrapper>();
                if (questTriggerWrapper != null)
                {
                    QuestTrigger trigger = questTriggerWrapper.questTrigger;
                    if (trigger != null)
                    {
                        Debug.Log("Process Quest Trigger.");
                        GameObject.Find("QuestManager").GetComponent <QuestManager> ().ProcessQuestTrigger(trigger);
                    }
                }
            }
            else
            {
                // Not a swap.
                GameObject itemCopy = item;
                Destroy(item);
                DragHandler.itemBeingDragged.transform.SetParent(transform);
                transform.root.GetComponent <PlayerReferenceContainer> ().Player.GetComponent <UICharacterInventoryFactory> ().RefreshCharacterInventory();

                // Create a slot item.
                itemCopy = item;
                Destroy(item);

                GameObject  newSlotItem = Instantiate(slotItemInteractingWithContainer, transform, false);
                Component   comp        = itemCopy.GetComponent <SlotObjectContainer>().obj.GetComponent(typeof(IObjectData));
                IObjectData objectData  = comp as IObjectData;

                string uiText;
                if (objectData.count() == 1)
                {
                    uiText = objectData.objectName();
                }
                else
                {
                    uiText = objectData.objectName() + " x" + objectData.count();
                }
                newSlotItem.GetComponent <Text> ().text = uiText;
                newSlotItem.GetComponent <SlotObjectContainer> ().obj = DragHandler.itemBeingDragged.GetComponent <SlotObjectContainer>().obj;

                QuestTriggerWrapper questTriggerWrapper = newSlotItem.GetComponent <SlotObjectContainer> ().obj.GetComponent <QuestTriggerWrapper>();
                if (questTriggerWrapper != null)
                {
                    QuestTrigger trigger = questTriggerWrapper.questTrigger;
                    if (trigger != null)
                    {
                        Debug.Log("Process Quest Trigger.");
                        GameObject.Find("QuestManager").GetComponent <QuestManager> ().ProcessQuestTrigger(trigger);
                    }
                }

                Destroy(DragHandler.startParent.gameObject);
            }
        }
    }
コード例 #24
0
 // Use this for initialization
 void Start()
 {
     theQM = FindObjectOfType <QuestManager>();
     theQT = FindObjectOfType <QuestTrigger>();
 }
コード例 #25
0
    //private int skipper = 1;

    // Use this for initialization
    void Start()
    {
        dMan  = FindObjectOfType <DialogueManager>();
        qTrig = FindObjectOfType <QuestTrigger> ();
        theQM = FindObjectOfType <QuestManager> ();
    }
コード例 #26
0
 private void Awake()
 {
     questTrigger = FindObjectOfType <QuestTrigger>();
     playerModel  = FindObjectOfType <Player>();
 }
コード例 #27
0
ファイル: Node.cs プロジェクト: moipaslui/fouleck
 public Node(QuestTrigger questTrigger)
 {
     trigger = questTrigger;
     Constructor(questTrigger);
 }
コード例 #28
0
ファイル: Node.cs プロジェクト: moipaslui/fouleck
 public Node(GameObject gameObject, System.Type type)
 {
     trigger = (QuestTrigger)gameObject.AddComponent(type);
     QuestEditor.selectedQuest.questTriggers.Add(trigger);
     Constructor(trigger);
 }