public void SetWorker(TaskWorkerAI worker) { if (currentWorker != null && worker != currentWorker) { return; } currentWorker = worker; currentWorker.worker.Desk = this; TaskSystem.Task StartWorking = new TaskSystem.Task { moveToPosition = new TaskSystem.Task.MoveTo(chair.position, 0, () => { currentWorker = worker; worker.currentThought = DialogueSys.GetWorkPhrase(); }), executeActionRecurring = () => { Clicked(); if (Time.frameCount % 300 == 1) { worker.currentThought = DialogueSys.GetRandomPhrase(); } } }; worker.taskManager.tasks.Enqueue(StartWorking); }
public Sprite[] GetWorkerSprites(out SaveManager.SavableObject.Worker worker) { Sprite[] toReturn = new Sprite[5]; string name = DialogueSys.GetName(); int headIndex; GameObject head = CreateNewPart($"{name}.head", Heads, 1, out headIndex); toReturn[0] = head.GetComponent <SpriteRenderer>().sprite; Destroy(head); int eyeIndex; GameObject eyes = CreateNewPart($"{name}.eyes", Eyes, 2, out eyeIndex); toReturn[1] = eyes.GetComponent <SpriteRenderer>().sprite; Destroy(eyes); int noseIndex; GameObject nose = CreateNewPart($"{name}.nose", Noses, 3, out noseIndex); toReturn[2] = nose.GetComponent <SpriteRenderer>().sprite; Destroy(nose); int mouthIndex; GameObject mouth = CreateNewPart($"{name}.mouth", Mouths, 2, out mouthIndex); toReturn[3] = mouth.GetComponent <SpriteRenderer>().sprite; Destroy(mouth); bool hasHairLoss = Random.Range(0, 1f) > 0.85f;// Taken from a real statistic! int hairIndex = -1; Color hairColor = Color.black; if (hasHairLoss) { GameObject hair = CreateNewPart($"{name}.hair", Hairs, 3, out hairIndex); toReturn[4] = hair.GetComponent <SpriteRenderer>().sprite; hairColor = hair.GetComponent <SpriteRenderer>().color; Destroy(hair); } int day = TimeManagement.TimeScale.days % 7; float skill = Random.Range(30 * day, 50 * day) % 70; float income = Random.Range(5f, 500); income = (float)System.Math.Round(income, 2); worker = new SaveManager.SavableObject.Worker(name, headIndex, eyeIndex, noseIndex, mouthIndex, hairIndex, hairColor, skill, income, income + skill, 0, new float[] { 100, 100 }); return(toReturn); }