public void SetPanel(Quest quest, QuestHolder holder)
    {
        this.quest = quest;
        SetMainInfo(quest);
        Durationtxt.text = quest.duration.ToString() + " Days Left";
        rewardPanel.SetPanel(quest.reward);
        Descriptiontxt.text = quest.description;

        if (!quest.isActive)
        {
            Statustxt.text = "Quest Completed";
            backBtn.gameObject.SetActive(false);
            onCollectReward.gameObject.SetActive(true);
            onBonusReward.gameObject.SetActive(true);
            onCollectReward.onClick.AddListener(delegate { CollectReward(quest); });
            onCollectReward.onClick.AddListener(delegate { DeleteHolder(holder); });
            onBonusReward.onClick.AddListener(delegate { ShowAds(); });
            onBonusReward.onClick.AddListener(delegate { Hide(); });
        }
        else
        {
            Statustxt.text = "Quest in Progress";
            backBtn.gameObject.SetActive(true);
            onCollectReward.gameObject.SetActive(false);
            onBonusReward.gameObject.SetActive(false);
        }
    }
示例#2
0
    private void HandleAcceptQuestClickedPlayer()
    {
        GameObject recipient = GameManager.Instance.PlayerAvatar;

        if (recipient)
        {
            QuestHolder questHolder = recipient.GetComponent <QuestHolder>();

            GameObject newQobj  = Instantiate(QuestPrefab);
            Quest      newQuest = newQobj.GetComponent <Quest>();

            newQuest.QuestType       = QuestType;
            newQuest.Quota           = Quota;
            newQuest.RewardGoldAmt   = RewardGold;
            newQuest.RewardInfluence = RewardInfluence;
            newQuest.SourceVillage   = SourceVillage;

            newQuest.QuestInit();

            questHolder.AddQuest(newQobj);

            PlayerController pContr = recipient.GetComponent <PlayerController>();
            pContr.AcceptsInput = true;

            Destroy(gameObject);
        }
    }
    // OBJECTIVE 5
    private void CompletedFirstQuest()
    {
        if (!_currObjectiveComplete && (_objectiveCounter == 5))
        {
            _currObjectiveComplete = true;
            NextButton.gameObject.SetActive(true);
            NextClicked();

            // remove listener
            QuestHolder qHolder = GameManager.Instance.PlayerAvatar.GetComponent <QuestHolder>();
            qHolder.QuestCompletedEvent.RemoveListener(CompletedFirstQuest);

            // prepare for objective 6: kill an enemy
            GameObject enemy = Instantiate(GameManager.Instance.EnemyPrefab);

            Vector3 pos = qHolder.transform.position;

            // enemy must be slightly near the player
            float range = 30.0f;
            float angle = Random.Range(0, Mathf.PI * 2);
            pos.x += Mathf.Cos(angle) * range;
            pos.z += Mathf.Sin(angle) * range;
            pos.y += 30.0f;

            enemy.transform.position = pos;
            enemy.GetComponent <Health>().onDeath.AddListener(KilledFirstEnemy);
        }
    }
示例#4
0
 void Start()
 {
     dialog = Dialog.Load(ta);
     skin   = Resources.Load("Fonts/Skin") as GUISkin;
     UpdateAnswers();
     QH = GameObject.Find("_Holder").GetComponent <QuestHolder>();
 }
示例#5
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
         DontDestroyOnLoad(this);
     }
     else if (this != instance)
     {
         Destroy(gameObject);
     }
 }
示例#6
0
    private void PlayerTakeQuest()
    {
        PlayerController pContr = GameManager.Instance.PlayerAvatar.GetComponent <PlayerController>();

        if (pContr)
        {
            QuestHolder pQuestHolder = GameManager.Instance.PlayerAvatar.GetComponent <QuestHolder>();
            pQuestHolder.AddQuest(QuestObject);
            QuestTakenAway.Invoke();
            Destroy(gameObject);
        }
    }
示例#7
0
 void SetupQuest()
 {
     holder   = FindObjectOfType <QuestHolder>();
     hasGiven = holder.HasQuest(npcQuest.identifier);
     if (hasGiven)
     {
         hasCompleted = holder.HasFinishedQuest(holder.FindQuest(npcQuest.identifier));
     }
     if (holder.FindFinishedQuest(npcQuest.identifier))
     {
         hasGiven     = true;
         hasCompleted = true;
     }
 }
    // OBJECTIVE 4
    private void DoneFirstQuest()
    {
        if (!_currObjectiveComplete && (_objectiveCounter == 4))
        {
            _currObjectiveComplete = true;
            NextButton.gameObject.SetActive(true);
            NextClicked();

            // remove listener
            QuestHolder qHolder = GameManager.Instance.PlayerAvatar.GetComponent <QuestHolder>();
            qHolder.QuestDoneEvent.RemoveListener(DoneFirstQuest);

            // add listener for next quest
            qHolder.QuestCompletedEvent.AddListener(CompletedFirstQuest);
        }
    }
    void Start()
    {
        dialogueHolderIndex = myLevel;

        sign = transform.Find("Sign").gameObject;

        dialogue        = GameObject.Find("Dialogue");
        dialogueDisplay = dialogue.GetComponent <DialogueDisplay>();
        dialogueHolder  = GetComponent <DialogueHolder>();
        questHolder     = GetComponent <QuestHolder>();
        input           = GetComponent <PlayerInput>();

        DialogueDisplay.OnStartConversation += DisableInput; //Observe if the dialogue ends, enable input
        DialogueDisplay.OnEndtoNothing      += EnableInput;  //Observe if the dialogue starts, disable input
        RoomState.OnRoomLevelUp             += NpcLevelup;   //Observe if the room level up
        RoomState.OnQuesting            += QuestSetup;
        RoomState.OnQuestFail           += QuestFailState;
        RoomState.OnQuestSuccess        += QuestSuccess;
        DialogueDisplay.OnQuestCheck    += CheckQuest;
        DialogueDisplay.OnOffendedCheck += CheckOffended;
    }
示例#10
0
    private void GiveQuestsButtonClicked()
    {
        // copy all the player's quests into a new menu, wrapping every quest into a new
        // panel with an extra button

        // first: get the player's quest holder
        QuestHolder playerQuests = null;

        GameObject player = NPCsGuild.GuildLeader;

        if (player)
        {
            playerQuests = player.GetComponent <QuestHolder>();
        }

        // then put all the quests in the wrapper
        if (playerQuests)
        {
            Transform pQuestParent = playerQuests.QuestsHolder.transform;

            while (pQuestParent.childCount != 0)
            {
                GameObject qWrap = Instantiate(PlayerQuestWrapper);
                qWrap.transform.SetParent(PlayerQuestsHolder.transform);
                qWrap.transform.localScale = new Vector3(1, 1, 1);
                qWrap.GetComponent <PlayerQuestWrapper>().SetPlayerQuest(pQuestParent.GetChild(0).gameObject);
                pQuestParent.GetChild(0).SetParent(qWrap.transform);
                qWrap.GetComponent <PlayerQuestWrapper>().PlayerQuest.transform.localScale = new Vector3(1, 1, 1);
                qWrap.GetComponent <PlayerQuestWrapper>().PlayerQuest.transform.rotation   = new Quaternion(0, 0, 0, 0);
                qWrap.GetComponent <PlayerQuestWrapper>().TargetNPC = GetComponent <QuestHolderNPC>();
            }
        }


        // then change the menus
        QuestMenu.SetActive(false);
        GiveQuestsMenu.SetActive(true);
        _whichMenuActive = MenuType.GiveQuests;
    }
示例#11
0
    public void Start()
    {
        string file = "Quests/" + id.instance.saveIndex + "/" + path + id.instance.saveIndex;

        holder = (QuestHolder)Resources.Load(file);
        //buttonText.text = holder.questName;
        //   mesh.text = "<size=40>" + holder.questName + "</size";

        /*  words = holder.mytext.text.Split(
         * new[] { "\r\n", "\r", "\n" },
         * System.StringSplitOptions.None);*/

        //   splitUp();

        assignTheNpcs();

        if (finishedQuestEvent != null && holder.completed)
        {
            finishedQuestEvent.Invoke();
        }

        //     eventclass.Invoke(1);
    }
 // Start is called before the first frame update
 void Start()
 {
     qh = player.GetComponent <QuestHolder>();
     ls = qh.quests;
 }
示例#13
0
	public bool Open( AsBaseEntity target , bool _callFromQuestClear = false)
	{
		AsChatFullPanel.Instance.Close();

		if( target == null)
			return false;

		targetObject = target.gameObject;
		
		Clear();
	
		if( eNPCType.NPC == target.GetProperty<eNPCType>( eComponentProperty.NPC_TYPE))
		{
			m_NpcEntity = target as AsNpcEntity;
			m_NpcRec = AsTableManager.Instance.GetTbl_NormalNpc_Record( m_NpcEntity.TableIdx);
			
			//npc name
			Tbl_Npc_Record record = AsTableManager.Instance.GetTbl_Npc_Record( m_NpcEntity.TableIdx);
			npcName = m_NpcName.Text = record.NpcName;
			m_NpcTableID = m_NpcEntity.TableIdx;
		}
	
		if( null == m_NpcRec)
		{
			Debug.LogError( "null == m_NpcRec");
			return false;
		}
		
		if( m_NpcRec.FaceId != int.MaxValue)//none
		{
			int textNum = 1 + ( m_NpcRec.FaceId / ( m_TextureCount*m_TextureCount));

			string strImageFileName = "UI/Optimization/Texture/img_NPC_" + textNum;
			Texture2D npcImage = ResourceLoad.Loadtexture( strImageFileName) as Texture2D;
			Set_Tex( m_Npc_Image, npcImage, m_NpcRec.FaceId, m_TextureSize, m_TextureCount);
		}

		questHolder = QuestHolderManager.instance.GetQuestHolder( m_NpcTableID);
		
		//Pc Image Setting
		AsUserEntity entity = AsEntityManager.Instance.UserEntity;

		if( null != entity)
		{
			int faceImageId = 0;
			eCLASS __class = entity.GetProperty<eCLASS>( eComponentProperty.CLASS);
			eGENDER gender = entity.GetProperty<eGENDER>( eComponentProperty.GENDER);
			eRACE tribe = entity.GetProperty<eRACE>( eComponentProperty.RACE);
			Tbl_Class_Record record = AsTableManager.Instance.GetTbl_Class_Record( tribe, __class);

			switch( gender)
			{
			case eGENDER.eGENDER_MALE:
				faceImageId = record.Portrait_Male;
				break;
			case eGENDER.eGENDER_FEMALE:
				faceImageId = record.Portrait_Female;
				break;
			}	

			int textureNum = 1 + ( faceImageId / ( m_TextureCount*m_TextureCount));
			string strPcImageFileName = "UI/Optimization/Texture/img_PC_" + textureNum;
			Texture2D pcImage = ResourceLoad.Loadtexture( strPcImageFileName) as Texture2D;
			
			Set_Tex( m_Pc_Image, pcImage, faceImageId, m_TextureSize, m_TextureCount);
		}

		// for talk clear
		if( ( false == _callFromQuestClear) && ( true == CheckTalkComplete()))
			return true;
	
		gameObject.SetActiveRecursively( true);
		gameObject.active = true;
		
	
		if(0 !=  m_NpcRec.VoiceCount)
		{
			int VoiceIndex = UnityEngine.Random.Range( 0, m_NpcRec.VoiceCount);
			AsSoundManager.Instance.PlaySound( m_NpcRec.Voice(VoiceIndex), Vector3.zero, false);////npc Voice
		}
		
		int SpeechIndex = UnityEngine.Random.Range( 0, m_NpcRec.SpeechCount);
		SetTalk( m_NpcRec.Speech( SpeechIndex));////npc Speech
		
		if( m_NpcRec.FaceId == int.MaxValue)//none
			SetVisible( m_Npc_Image.gameObject, false);

		SetVisible( m_Pc_Image.gameObject, false);
		
		UpdateMenuButton();

		// check clear quest
		m_Questlist.FindQuestFromObject( m_NpcEntity.gameObject);

		ArkSphereQuestTool.QuestData questData = m_Questlist.GetClearQuest();
		
		if( questData != null)
	        AsHudDlgMgr.Instance.OpenQuestAcceptUI(questData, true);
		
		m_Questlist.Visible = false;
		
		AsHudDlgMgr.dlgPresentState |= AsHudDlgMgr.eDlgPresentState.NpcMenu;

		if (questHolder != null)
			QuestTutorialMgr.Instance.ProcessQuestTutorialMsg(new QuestTutorialMsgInfo(QuestTutorialMsg.OPEN_NPC_TALK));
		//{
		//    QuestTutorialMgr.Instance.ProcessQuestTutorialMsg(new QuestTutorialMsgInfo(QuestTutorialMsg.OPEN_NPC_TALK));

		//    if (questHolder.NowMarkType == QuestMarkType.HAVE_EVENT  || questHolder.nowQuetMarkType == QuestMarkType.HAVE_EVENT_AND_PROGRESS)
		//        if (m_NpcEntity != null)
		//            questHolder.UpdateQuestMark(m_NpcEntity.TableIdx);
		//}
		
		return true;
	}
 public void GiveMyQuestTo(QuestHolder target)
 {
     target.AddQuest(PlayerQuest);
     Destroy(gameObject);
 }
示例#15
0
    void PressedUICancelWithMenuOpen()
    {
        // close things depending on where in the menu we are

        switch (_whichMenuActive)
        {
        case MenuType.Main:
            // close things and give control back to the player
            _isMenuOpen = false;
            MainMenu.SetActive(_isMenuOpen);
            GameManager.Instance.PlayerAvatar.GetComponent <PlayerController>().AcceptsInput = true;
            break;

        case MenuType.Name:
            NewNameMenu.SetActive(false);
            MainMenu.SetActive(true);
            _whichMenuActive = MenuType.Main;

            break;

        case MenuType.Quest:
            QuestMenu.SetActive(false);
            MainMenu.SetActive(true);
            _whichMenuActive = MenuType.Main;
            break;

        case MenuType.GiveQuests:

            // give the quests back to the player
            QuestHolder playerQuests = null;

            GameObject player = NPCsGuild.GuildLeader;
            if (player)
            {
                playerQuests = player.GetComponent <QuestHolder>();
            }

            // get all the quests back out of the wrapper and give them back to the player
            if (playerQuests)
            {
                Transform pQuestParent = playerQuests.QuestsHolder.transform;
                // Transform thisQuestParent = PlayerQuestsHolder.transform;

                int test = PlayerQuestsHolder.transform.childCount;
                while (test > 0)
                {
                    GameObject pQuestWrapper = PlayerQuestsHolder.transform.GetChild(test - 1).gameObject;
                    pQuestWrapper.GetComponent <PlayerQuestWrapper>().GiveMyQuestTo(player.GetComponent <QuestHolder>());

                    --test;
                }
            }

            // set menus
            GiveQuestsMenu.SetActive(false);
            QuestMenu.SetActive(true);
            _whichMenuActive = MenuType.Quest;
            break;

        case MenuType.Inventory:

            InventoryNPC inv = GetComponent <InventoryNPC>();
            if (inv)
            {
                if (inv.GiveItemsMenuUp)     // the inv handles this itself
                {
                    break;
                }
            }

            InventoryMenu.SetActive(false);
            MainMenu.SetActive(true);
            _whichMenuActive = MenuType.Main;
            break;

        case MenuType.Status:
            ChangeStatusMenu.SetActive(false);
            MainMenu.SetActive(true);
            _whichMenuActive = MenuType.Main;
            break;

        case MenuType.Gear:

            // remove all listeners
            for (int i = 0; i < NPCItemHolder.transform.GetChild(0).childCount; ++i)
            {
                NPCItemHolder.transform.GetChild(0).GetChild(i).GetComponent <InvItem>().PlayerClicked.RemoveAllListeners();
            }
            for (int i = 0; i < PlayerItemHolder.transform.GetChild(0).childCount; ++i)
            {
                PlayerItemHolder.transform.GetChild(0).GetChild(i).GetComponent <InvItem>().PlayerClicked.RemoveAllListeners();
            }

            // give back the items
            NPCItemHolder.transform.GetChild(0).SetParent(_originalNPCItemParent);
            NPCItemHolder.GetComponent <ScrollRect>().content          = null;
            _originalNPCItemParent.GetComponent <ScrollRect>().content =
                _originalNPCItemParent.GetChild(0).GetComponent <Image>().rectTransform;
            _originalNPCItemParent.GetChild(0).localPosition = new Vector3(0, 0, 0);
            _originalNPCItemParent.GetChild(0).localScale    = new Vector3(1, 1, 1);
            _originalNPCItemParent.GetChild(0).localRotation = new Quaternion(0, 0, 0, 0);



            GearMenu.SetActive(false);
            MainMenu.SetActive(true);
            _whichMenuActive = MenuType.Main;
            break;

        case MenuType.EnemyStrategy:
            EnemyStrategyMenu.SetActive(false);
            MainMenu.SetActive(true);
            _whichMenuActive = MenuType.Main;
            break;

        case MenuType.PickVillageToDefend:

            VillageToDefendMenu.SetActive(false);
            EnemyStrategyMenu.SetActive(true);
            _whichMenuActive = MenuType.EnemyStrategy;

            break;
        }
    }
 private void Awake()
 {
     qh = player.GetComponent <QuestHolder>();
     ls = qh.quests;
 }
示例#17
0
/*	
	public void ShowNpcSelectEffect( AsBaseEntity target)
	{
		GameObject goTarget = target.gameObject;
		
		if( null != AsEffectManager.Instance.GetEffectEntity( m_nNpcSelectEff))
			RemoveNpcSelectEffect();

		m_nNpcSelectEff = AsEffectManager.Instance.PlayEffect( m_strNpcSelectEffPath, goTarget.transform, true, 0.0f);
		
		int nNpcID = target.GetProperty<int>( eComponentProperty.NPC_ID);
		Tbl_Npc_Record npcRec = AsTableManager.Instance.GetTbl_Npc_Record( nNpcID);
		float fScale = 1.0f;
		if( 1 == npcRec.PointScale) fScale = 1.0f;
		else if( 2 == npcRec.PointScale) fScale = 1.2f;
		else if( 3 == npcRec.PointScale) fScale = 1.5f;
		else if( 4 == npcRec.PointScale) fScale = 2.0f;
		else if( 5 == npcRec.PointScale) fScale = 2.5f;
		AsEffectManager.Instance.SetSize( m_nNpcSelectEff, fScale);
	}
	
	public void RemoveNpcSelectEffect()
	{
		if( null == AsEffectManager.Instance)
			return;
		
		AsEffectManager.Instance.RemoveEffectEntity( m_nNpcSelectEff);
	}
*/
	public void Close()
	{
		Clear();
		
		gameObject.SetActive( false);
		
		if( m_NpcEntity != null)
		{
			AsNpcFsm objFsm = m_NpcEntity.GetComponent( eComponentType.FSM_NPC) as AsNpcFsm;
			if( null == objFsm)
				return;
			
			objFsm.SetNpcFsmState( AsNpcFsm.eNpcFsmStateType.IDLE);
		}

		targetObject = null;
		
		questHolder = null;
		
		AsHudDlgMgr.dlgPresentState &= ~AsHudDlgMgr.eDlgPresentState.NpcMenu;

		if( m_Questlist != null)
			m_Questlist.gameObject.SetActive( false);

		AsLoadingIndigator.Instance.HideIndigator();
		
		m_bInputLock = false;
		
		if( AsGameMain.s_gameState == GAME_STATE.STATE_INGAME)
			QuestTutorialMgr.Instance.ProcessQuestTutorialMsg( new QuestTutorialMsgInfo( QuestTutorialMsg.CLOSE_NPC_COMMUNITY, 0));
	}
 private void DeleteHolder(QuestHolder holder)
 {
     Destroy(holder.gameObject);
 }