Пример #1
0
    public void RevSpeech(MaxJob speaker, Vector3 standingPostion)
    {
        _speaker = speaker;

        if (_state == State.SeekingSocial)
        {
            StopSocialSeeking();
        }

        ChangeState(State.RevSpeach);

        agent.SetDestination(standingPostion);

        transform.LookAt(speaker.agent.transform);

        _line = Factory.Instance.GetTalkingLine();

        var lat = _line.GetComponent <LineAttachTo>();

        lat.targetA = transform;
        lat.targetB = speaker.agent.transform;

        var lr = _line.GetComponent <LineRenderer>();

        lr.material.color = Color.green;

        _changeCD = 0f;
    }
Пример #2
0
 public void StopRevSpeech()
 {
     _speaker = null;
     _needs.SocialNeed.Value += SPEECH_SOCIAL_BENFIT;
     Factory.Instance.ReleaseTalkingLine(ref _line);
     ChangeState(State.Wandering);
 }
Пример #3
0
    void FindJob()
    {
        if (beliefControler.PassionLevel == BeliefControler.EPassionLevel.Max)
        {
            var newJob = new MaxJob()
            {
                agent           = agent,
                beliefControler = beliefControler,
                Camera          = camera,
                FactionCom      = _factionCom
            };

            _worker.GiveJob(newJob);
        }
        else if (beliefControler.PassionLevel == BeliefControler.EPassionLevel.High)
        {
            GiveFollowerJob();
        }
        else
        {
            CityInfo.Instance.FindJobForWorker(_worker, agent, camera);
        }
    }