コード例 #1
0
    public void UpdateLog(SubQuest _subquest)
    {
        if (!_subquest.isTimer) // CHECKER
        {
            circle.sprite  = circleSprites[0];
            titleText.text = _subquest.title;
            timeText.gameObject.SetActive(false);
            differenceText.gameObject.SetActive(false);
        }
        else // TIMER
        {
            circle.sprite  = circleSprites[1];
            titleText.text = _subquest.title;

            timeText.gameObject.SetActive(true);
            timeText.text = ConvertTimeText(_subquest.second);

            differenceText.gameObject.SetActive(true);
            float difference = _subquest.GetCompleteTimeDifference();
            if (difference <= 0)
            {
                differenceText.color = Color.green;
                differenceText.text  = "- " + ConvertTimeText(-1 * _subquest.GetCompleteTimeDifference());
            }
            else if (difference > 0)
            {
                differenceText.color = Color.red;
                differenceText.text  = "+ " + ConvertTimeText(_subquest.GetCompleteTimeDifference());
            }
        }
    }
コード例 #2
0
    public void AddElement(SubQuestType.Q_type questType)
    {
        SubQuest Q = new SubQuest();

        Q.Subquest = questType;

        Task.Add(Q);
    }
コード例 #3
0
 void DrawTalkTo(SubQuest sub)
 {
     if (sub.Subquest == SubQuestType.Q_type.Talk)
     {
         GameObject d = Instantiate(talkToIcon, sub.Trigger.transform.position + new Vector3(0, 100, 0), Quaternion.Euler(90, 0, 0), transform);
         d.GetComponent <SpriteRenderer>().color = Color.cyan;
     }
 }
コード例 #4
0
    public void AddStep(SubQuest s)
    {
        GameObject step = Instantiate(StepGameObject, transform.GetChild(1));

        Text task() => step.transform.Find("Task").GetComponent <Text>();

        //set up the content inside the step
        switch (s.Subquest)
        {
        case SubQuestType.Q_type.Attack:
            if (s.AttackType == SubQuestType.Q_Attack.Enemies)
            {
                task().text = "Defeat the Monsters and save the citivans!";
            }
            else
            {
                task().text = s.Trigger.name + " must have done something wrong. I need to kill them!";
            }
            step.name = "Attack";
            break;

        case SubQuestType.Q_type.Goto:
            task().text = "Head over to this area!";
            step.name   = "Go To Location";
            break;

        case SubQuestType.Q_type.Talk:
            task().text = "I need to go talk to " + s.Trigger.name;
            step.name   = "Talk to";
            break;

        case SubQuestType.Q_type.Get:
            task().text = "I need to steal a " + s.Trigger.name + " off of a gaurd";
            step.name   = "Get Item";
            break;

        case SubQuestType.Q_type.Trade:
            task().text = "Talking to " + s.Trigger.name + " could provide me the item I need.";
            step.name   = "Talk to";
            break;

        case SubQuestType.Q_type.Give:
            task().text = "I need to give {item} to " + s.Trigger.name;
            step.name   = "Give Item";
            break;

        case SubQuestType.Q_type.Defend:
            task().text = s.Trigger.name + " is being attacked, they need to be defended!";
            step.name   = "Defend";
            break;

        default:
            task().text = "Yet to fill out this subquest type";
            break;
        }

        UISteps.Add(step);
    }
コード例 #5
0
    public void AddElement(SubQuestType.Q_type questType, SubQuestType.Q_Items item)
    {
        SubQuest Q = new SubQuest();

        Q.Subquest = questType;
        Q.ItemType = item;

        Task.Add(Q);
    }
コード例 #6
0
    public void AddElement(SubQuestType.Q_type questType, SubQuestType.Q_GoToLocations location)
    {
        SubQuest Q = new SubQuest();

        Q.Subquest  = questType;
        Q.GotoTypes = location;

        Task.Add(Q);
    }
コード例 #7
0
    public void AddElement(SubQuestType.Q_type questType, SubQuestType.Q_Attack attack)
    {
        SubQuest Q = new SubQuest();

        Q.Subquest   = questType;
        Q.AttackType = attack;

        Task.Add(Q);
    }
コード例 #8
0
    public void SetCurrentSubquestCompleteTimeDiffrence(int _currentSubquestIndex)
    {
        Timer    timer           = FindObjectOfType <Timer>();
        SubQuest currentSubquest = currentQuest.subQuestList[_currentSubquestIndex];

        float deltaTime = currentSubquest.second - timer.GetLeftTime();
        float completeTimeDifference = (deltaTime - currentSubquest.second);

        currentQuest.subQuestList[_currentSubquestIndex].SetCompleteTimeDifference(completeTimeDifference);
    }
コード例 #9
0
    void DrawGoTo(SubQuest sub)
    {
        Location location = sub.Trigger.GetComponent <Location>();

        if (location != null)
        {
            GameObject d = Instantiate(togoIcon, location.transform.position + new Vector3(0, 100, 0), Quaternion.Euler(90, 0, 0), transform);
            d.GetComponent <SpriteRenderer>().color = Color.blue;
        }
    }
コード例 #10
0
 public void UpdateEditInfo(SubQuest _subquest)
 {
     inputField_title.text = _subquest.title;
     if (_subquest.isTimer)
     {
         inputField_time.text = (_subquest.second / 60f).ToString();
     }
     else
     {
         inputField_time.text = 0.ToString();
     }
 }
コード例 #11
0
    private void CheckSubQuests()
    {
        if (IsCompleted)
        {
            return;
        }

        for (int i = 0; i < subQuests_.Count; i++)
        {
            SubQuest quest = subQuests_[i];

            if (quest && quest.IsCompleted)
            {
                if (i + 1 < subQuests_.Count && !subQuests_[i + 1].IsUnlocked)
                {
                    subQuests_[i + 1].UnlockQuest(true);

                    return;
                }


                continue;
            }
            return;
        }

        GameObject player = GameObject.FindGameObjectWithTag("Player");

        if (player)
        {
            Character c = player.GetComponent <Character>();
            if (c)
            {
                c.Xp = c.Xp + xpWhenCompleted;
            }
        }

        questCompleted_ = true;

        CallOnTriggered();
        questCompleted_ = true;

        if (NotifcationManager.Instance)
        {
            NotifcationManager.Instance.AddNotification("Quest Complete!");
        }

        if (OnQuestCompleted != null)
        {
            OnQuestCompleted.Invoke(this);
        }
    }
コード例 #12
0
    public SubQuest GetSubquestInfo()
    {
        SubQuest subQuest = new SubQuest();

        subQuest.isTimer = this.isTimer;
        subQuest.title   = inputField_title.text;
        if (isTimer)
        {
            subQuest.second = float.Parse(inputField_time.text) * 60f;
        }
        else
        {
            subQuest.second = 0f;
        }

        return(subQuest);
    }
コード例 #13
0
    public Text NewSubQuest(SubQuest subQuest)
    {
        GameObject subQuestGO = Instantiate(subQuestPrefab, subQuestContent.transform);
        Text       text       = subQuestGO.GetComponent <Text>();

        if (text)
        {
            text.text = subQuest.Name;
        }
        else
        {
            Debug.LogError("SubQuest UI Element Prefab does not have a text component.");
        }

        subquestTexts.Add(subQuest, text);

        return(text);
    }
コード例 #14
0
    private void ReadQuestsFromNode(XmlNode node)
    {
        if (node == null)
        {
            return;
        }
        foreach (XmlNode childNode in node.ChildNodes)
        {
            if (childNode.LocalName != "quest")
            {
                continue;
            }
            Quest newQuest = new Quest();
            newQuest.id           = uint.Parse(childNode.Attributes[IDATTR_NAME].Value);
            newQuest.status       = (QuestStatus)int.Parse(SafeGetNodeValue(FindFirstChildNode(childNode, "state"), "0"));
            newQuest.questGroupId = uint.Parse(SafeGetNodeValue(FindFirstChildNode(childNode, "questgroup_id"), "0"));;
            newQuest.daysToFail   = int.Parse(SafeGetNodeValue(FindFirstChildNode(childNode, "daystofail"), "0"));

            ReadLangStringFromNode(childNode, new LangStringPair(newQuest.name, NAMENODE_NAME),
                                   new LangStringPair(newQuest.description, DESCNODE_NAME));

            foreach (XmlNode subQuestNode in childNode.ChildNodes)
            {
                if (childNode.LocalName != "subquest")
                {
                    continue;
                }
                SubQuest newSubQuest = new SubQuest();
                newSubQuest.id           = uint.Parse(subQuestNode.Attributes[IDATTR_NAME].Value);
                newSubQuest.currentValue = 0;
                newSubQuest.totalValue   = int.Parse(SafeGetNodeValue(FindFirstChildNode(childNode, "total"), "0"));

                ReadLangStringFromNode(childNode, new LangStringPair(newSubQuest.name, NAMENODE_NAME));

                newQuest.subQuests.Add(newSubQuest.id, newSubQuest);
            }
            quests.Add(newQuest.id, newQuest);
        }
    }
コード例 #15
0
 private void Subquest_OnSubQuestUnlocked(SubQuest subQuest)
 {
     NewSubQuest(subQuest);
 }
コード例 #16
0
        public void RandomQuest()
        {
            int      typetest = (int)UnityEngine.Random.Range((int)0, (int)5);
            SubQuest temp     = new SubQuest();

            switch (typetest)
            {
            case 0:
                QT      = QuestType.type;
                gettype = Types.Int2Type((int)UnityEngine.Random.Range((int)1, (int)22));
                desc    = "Oi! I need you to get a young " + Types.TypePrinter(gettype) + " type m0nst3r for me!";
                if (gettype != Types.Type.spooky && gettype != Types.Type.amyschumer)
                {
                    pay = (int)UnityEngine.Random.Range((int)100, (int)301);
                }
                else
                {
                    pay = (int)UnityEngine.Random.Range((int)250, (int)501);
                }
                break;

            case 1:
                QT      = QuestType.move;
                getmove = Lists.RandMove();
                desc    = "Oi oi! I need a young m0nst3r that knows the move " + getmove.Name + "!";
                pay     = (int)UnityEngine.Random.Range((int)100, (int)301);
                break;

            case 2:
                QT   = QuestType.ATK;
                num  = (double)UnityEngine.Random.Range(50f, 95f);
                num  = System.Math.Round(num, 2);
                desc = "Hey-o oi oi! I'm gonna need a m0nst3r with an ATK rating of over " + num + "!";
                if (num < 90)
                {
                    pay = (int)(2 * ((num * num) / 50));
                }
                else
                {
                    pay = 1000;
                }
                break;

            case 3:
                QT   = QuestType.SPD;
                num  = (double)UnityEngine.Random.Range(50f, 95f);
                num  = System.Math.Round(num, 2);
                desc = "Hey-o oi! I'm gonna need a m0nst3r with an SPD rating of over " + num + "!";
                if (num < 90)
                {
                    pay = (int)(2 * ((num * num) / 50));
                }
                else
                {
                    pay = 1000;
                }
                break;

            case 4:
                QT   = QuestType.HP;
                num  = (double)UnityEngine.Random.Range(45f, 70f);
                num  = System.Math.Round(num, 2);
                desc = "Hoi! I'm gonna need a m0nst3r with over " + num + " health!";
                if (num < 60)
                {
                    pay = (int)(4 * ((num * num) / 45));
                }
                else
                {
                    pay = 2000;
                }
                break;
            }
        }
コード例 #17
0
    void Update()
    {
        inRange();

        if (Input.GetKeyDown(KeyCode.R))
        {
            Application.LoadLevel(0);
        }

        if (PlayerContl.getFuel() < 10.0f)
        {
            tutContrl.AddFuel();
        }

        if (Camera.main.transform.position.y - _player.transform.position.y < -6.5f && Camera.main.transform.position.y - _player.transform.position.y > -10)
        {
            if (!endBeforeFinish)
            {
                Scoring _endScore = Instantiate(endScore, transform.position, Quaternion.identity) as Scoring;
                _endScore.setScore(totalPoints, false);
                cam.disable();
                _hud.count      = false;
                endBeforeFinish = true;
            }
        }

        Timer         += Time.deltaTime;
        TimerCoolDown += Time.deltaTime;

        if (Mathf.Ceil((mapGenerator.mapHeight - _player.transform.position.y) / (mapGenerator.mapHeight / maxLayers)) != lastLayer)
        {
            {
                if (lastLayer < 4)
                {
                    SubQuest _subQuest = Instantiate(subQuest, transform.position, Quaternion.identity) as SubQuest;
                    currentLayer = Mathf.Ceil((mapGenerator.mapHeight - _player.transform.position.y) / (mapGenerator.mapHeight / maxLayers));
                    lastLayer    = currentLayer;

                    _subQuest.setInfo(_player.transform, (int)currentLayer, maxLayers, mapGenerator.mapHeight);

                    currentSubquest = _subQuest;

                    //start running camera
                    if (lastLayer == 1)
                    {
                        cam.enable();
                    }

                    if (lastLayer == 3)
                    {
                        tutContrl.BombUsedCheck();
                    }
                    if (lastLayer == 2)
                    {
                        tutContrl.MisiionUsedCheck();
                    }
                }
                else
                {
                    if (!endStarted)
                    {
                        //flipping around
                        _player.GetComponent <PlayerController> ().negativeGravity();

                        //rotate the camera
                        endAnimation = true;

                        _hud.count = false;
                        endStarted = true;
                        //gameOver();
                    }
                }
            }
        }

        if (endAnimation)
        {
            if (cam.transform.eulerAngles.z > 180 || Camera.main.transform.eulerAngles.z == 0)
            {
                cam.transform.Rotate(Vector3.back * 100 * Time.deltaTime);
            }
            else
            {
                cam.GetComponent <GameCamera>().disable();

                TileScore bonusScore = Instantiate(tileScore, _player.transform.position, Quaternion.identity) as TileScore;
                bonusScore.setScore(20000);

                Scoring _endScore = Instantiate(endScore, transform.position, Quaternion.identity) as Scoring;
                _endScore.setScore(totalPoints, true);

                endAnimation = false;
            }
        }


        if (multiplierTimer < 0)
        {
            multiplierTimer = 0;
            scoreMultiplier = 1;

            buttonStateUpdate();
        }
        else if (multiplierTimer > 0)
        {
            multiplierTimer -= Time.deltaTime;
        }



        if (shake_intensity > 0)
        {
            Camera.main.transform.position = originPosition + Random.insideUnitSphere * shake_intensity;
            Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, cam.transform.position.y, Camera.main.transform.position.z);
            Camera.main.transform.rotation = new Quaternion(
                originRotation.x + Random.Range(-shake_intensity, shake_intensity) * .2f,
                originRotation.y + Random.Range(-shake_intensity, shake_intensity) * .2f,
                originRotation.z + Random.Range(-shake_intensity, shake_intensity) * .2f,
                originRotation.w + Random.Range(-shake_intensity, shake_intensity) * .2f);
            shake_intensity -= shake_decay;
        }
        else if (!endAnimation)
        {
            Camera.main.transform.rotation = cam.transform.rotation;
        }
        //Debug.Log ("camPos : " + Camera.main.transform.position);
        //Debug.Log ("camObj : " + cam.transform.position);
    }