public void LoadActivityButton(NPCActivity activity, int i)
	{
		switch (activity.activityType)
		{
		case NPCActivityType.Arena:
			break;
		case NPCActivityType.Minigame:
			break;
		case NPCActivityType.Default:
			break;
		case NPCActivityType.Shop:
			break;
		case NPCActivityType.Service:
			break;
		case NPCActivityType.Quest:
			break;
		case NPCActivityType.Teleporter:
			//display teleporter UI
			break;
		}
		GameObject atlas = Resources.Load(activity.npcIconAtlas) as GameObject;
		icon.atlas = atlas.GetComponent<UIAtlas>();
		icon.spriteName = activity.npcIconSprite;
		textLabel.text = activity.npcButtonText;
		index = i;
	}
	public static void DisplayActivityComponents(NPCActivity activity, MainWindowEditor Data)
	{
		EditorGUILayout.Separator();
		EditorGUILayout.BeginHorizontal();
		EditorGUILayout.PrefixLabel("Button Text");
		activity.npcButtonText = EditorGUILayout.TextField(activity.npcButtonText, GUILayout.Width(500));
		EditorGUILayout.EndHorizontal();
		EditorGUILayout.BeginHorizontal();
		EditorGUILayout.PrefixLabel("NPC Button Atlas Path");
		activity.npcIconAtlas = EditorGUILayout.TextField(activity.npcIconAtlas, GUILayout.Width(500));
		EditorGUILayout.EndHorizontal();
		EditorGUILayout.BeginHorizontal();
		EditorGUILayout.PrefixLabel("NPC Button Sprite Name");
		activity.npcIconSprite = EditorGUILayout.TextField(activity.npcIconSprite, GUILayout.Width(500));
		EditorGUILayout.EndHorizontal();
		EditorGUILayout.Separator();
		activity.conversationID = EditorUtils.IntPopup(activity.conversationID, Data.conversationEditor.items, "conversationID: ", FieldTypeEnum.Middle);
		/*for (int i = 0; i < activity.conversationIDs.Count; i++) {
			EditorGUILayout.BeginHorizontal();
			activity.conversationIDs[i] = EditorUtils.IntPopup(activity.conversationIDs[i], Data.conversationEditor.items, "conversationID: " + i, 90, FieldTypeEnum.Middle);
			if(GUILayout.Button("Remove conversation id", GUILayout.Width(400)))
			{
				activity.conversationIDs.Remove(activity.conversationIDs[i]);
				break;
			}
			EditorGUILayout.EndHorizontal();
		}
		
		if(GUILayout.Button("Add Conversation ID", GUILayout.Width(400)))
		{
			activity.conversationIDs.Add(1);
		}*/
		ConditionsUtils.Conditions(activity.Conditions, Data);
		EditorUtils.Separator();
	}
	public void OnActivityButtonPressed(int index)
	{
		activeActivity = activities[index];
		PlayerManager.Instance.activeActivity = activeActivity;
		switch(activeActivity.activityType)
		{
		case NPCActivityType.Shop:
			DisplayShop((Shop)activeActivity);
			break;
		case NPCActivityType.Arena:
			DisplayArena((NPCArena)activeActivity);
			break;
		case NPCActivityType.Quest:
			DisplayQuest((NPCQuest)activeActivity);
			break;
		case NPCActivityType.Construction:
			DisplayConstruction((RPGConstruction)activeActivity);
			break;

		case NPCActivityType.Minigame:
			DisplayMinigame(PlayerManager.Instance.ActiveWorld.MinigameByID(activeActivity.ID));
			break;
		case NPCActivityType.Service:
			if(activeActivity.ID == 1)
			{
				DisplayBank();
			}
			if(activeActivity.ID == 2)
			{
				DisplayCombobulator();
			}
			if(activeActivity.ID == 3)
			{
				DisplayTeleporter();
			}
			break;
		}
		/*if(activeActivity.conversation != null)
			conversationGUI.DisplayConversation(activeActivity.conversation);*/
		//load activity's conversation
	}
Exemple #4
0
	//public PhotonView myPhotonView;

    void Start()
    {
		if(trigger)
		{
			triggerCollider = trigger.GetComponent<Collider>();
			triggerCollider.enabled = false;
			trigger.transform.localScale = startScale;
		}
		character = GeneralData.GetNPCByID(ID);
		foreach(NPCActivityData ad in character.activities)
		{
			if(ad.activityType == NPCActivityType.Minigame)
			{
				NPCMinigame minigame = Storage.LoadById<NPCMinigame>(ad.activityID, new NPCMinigame());
				Debug.Log(minigame.activityType.ToString());
				activities.Add(minigame);
				GameObject.FindGameObjectWithTag("WorldManager").GetComponent<WorldManager>().AddMinigame(minigame);
				Debug.Log("added minigame");
			}
			else if(ad.activityType == NPCActivityType.Quest)
			{
				NPCQuest quest = Storage.LoadById<NPCQuest>(ad.activityID, new NPCQuest());
				activities.Add(quest);
			}
			else if(ad.activityType == NPCActivityType.Shop)
			{
				Shop shop = Storage.LoadById<Shop>(ad.activityID, new Shop());
				shop.PopulateItems();
				activities.Add(shop);
			}
			else if(ad.activityType == NPCActivityType.Service)
			{
				NPCService service = Storage.LoadById<NPCService>(ad.activityID, new NPCService());
				activities.Add(service);
			}
			else if(ad.activityType == NPCActivityType.Arena)
			{
				NPCArena arena = Storage.LoadById<NPCArena>(ad.activityID, new NPCArena());
				arena.LoadArena();
				arena.activityType = NPCActivityType.Arena;
				activities.Add(arena);
			}
			else if(ad.activityType == NPCActivityType.Teleporter)
			{
				NPCActivity teleporter = new NPCActivity();
				teleporter.activityType = NPCActivityType.Teleporter;
				teleporter.Name = "Teleporter";
				activities.Add(teleporter);
			}
			else if(ad.activityType == NPCActivityType.Construction)
			{
				RPGConstruction construction = Storage.LoadById<RPGConstruction>(ad.activityID, new RPGConstruction());
				activities.Add(construction);
			}
		}

		for (int i = 0; i < activities.Count; i++) {
			activities[i].LoadConversation();
				}

		GameObject.FindGameObjectWithTag("WorldManager").GetComponent<WorldManager>().AddNPC(this);
    }