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; }
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(); } } }