public bool StartConversation(PartnerLink partner1, PartnerLink partner2)
	{
		// Find conversation and return false if not found or already in progress.
		Conversation startedConversation = FindConversation(partner1, partner2);
		if (startedConversation == null || startedConversation.inProgress)
		{
			return false;
		}

		// Start conversation and setup parameters.
		startedConversation.inProgress = true;

		partner1.SetPartner(partner2);
		partner2.SetPartner(partner1);
		if (startedConversation.partner1Leads)
		{
			startedConversation.partner1.SetLeading(true);
			startedConversation.partner2.SetLeading(false);
		}
		else
		{
			startedConversation.partner1.SetLeading(false);
			startedConversation.partner2.SetLeading(true);
		}

		return true;
	}
    public bool StartConversation(PartnerLink partner1, PartnerLink partner2)
    {
        // Find conversation and return false if not found or already in progress.
        Conversation startedConversation = FindConversation(partner1, partner2);

        if (startedConversation == null || startedConversation.inProgress)
        {
            return(false);
        }

        // Start conversation and setup parameters.
        startedConversation.inProgress = true;

        partner1.SetPartner(partner2);
        partner2.SetPartner(partner1);
        if (startedConversation.partner1Leads)
        {
            startedConversation.partner1.SetLeading(true);
            startedConversation.partner2.SetLeading(false);
        }
        else
        {
            startedConversation.partner1.SetLeading(false);
            startedConversation.partner2.SetLeading(true);
        }

        return(true);
    }
	public bool StartConversation(PartnerLink partner1, PartnerLink partner2)
	{
		// Find conversation and return false if not found or already in progress.
		Conversation startedConversation = FindConversation(partner1, partner2);
		if (startedConversation == null || startedConversation.inProgress)
		{
			return false;
		}

		// Start conversation and setup parameters.
		startedConversation.inProgress = true;
		
		partner1.SetPartner(partner2);
		partner2.SetPartner(partner1);
		if (startedConversation.partner1Leads)
		{
			startedConversation.partner1.SetLeading(true);
			startedConversation.partner2.SetLeading(false);
		}
		else
		{
			startedConversation.partner1.SetLeading(false);
			startedConversation.partner2.SetLeading(true);
		}
		startedConversation.initiateDistance = Mathf.Min(partner1.converseDistance, partner2.converseDistance);
		startedConversation.warningDistance = Mathf.Min(partner1.converseDistance * partner1.warningThreshold, partner2.converseDistance * partner2.warningThreshold);
		startedConversation.breakingDistance = Mathf.Min(partner1.converseDistance * partner1.breakingThreshold, partner2.converseDistance * partner2.breakingThreshold);

		return true;
	}
Beispiel #4
0
    public bool StartConversation(PartnerLink partner1, PartnerLink partner2)
    {
        // Find conversation and return false if not found or already in progress.
        Conversation startedConversation = FindConversation(partner1, partner2);

        if (startedConversation == null || startedConversation.inProgress)
        {
            return(false);
        }

        // Start conversation and setup parameters.
        startedConversation.inProgress = true;

        partner1.SetPartner(partner2);
        partner2.SetPartner(partner1);
        if (startedConversation.partner1Leads)
        {
            startedConversation.partner1.SetLeading(true);
            startedConversation.partner2.SetLeading(false);
        }
        else
        {
            startedConversation.partner1.SetLeading(false);
            startedConversation.partner2.SetLeading(true);
        }
        startedConversation.initiateDistance = Mathf.Min(partner1.converseDistance, partner2.converseDistance);
        startedConversation.warningDistance  = Mathf.Min(partner1.converseDistance * partner1.warningThreshold, partner2.converseDistance * partner2.warningThreshold);
        startedConversation.breakingDistance = Mathf.Min(partner1.converseDistance * partner1.breakingThreshold, partner2.converseDistance * partner2.breakingThreshold);

        return(true);
    }
    // Update is called once per frame
    void Update()
    {
        if (target != null)
        {
            if (followTarget && partnerlink.Partner == null)            // && (transform.position - target.transform.position).sqrMagnitude <= Mathf.Pow(followDistance, 2))
            {
                partnerlink.SetPartner(target);
                following = true;
            }
            else if (following)
            {
                partnerlink.SetPartner(null);
                following = false;
            }

            if (followTarget && following)
            {
                seeker.SeekPartner();
            }
        }
    }