public override void ExecuteStateAction() { myTask = _taskController.currentTask(); if (FarFromTask()) { //Calculate direction vector to following and set new destination Vector3 dirToTask = npc.transform.position - myTask.location; Vector3 newPos = npc.transform.position - dirToTask; if (npc.navAgent.destination != newPos) { npc.navAgent.SetDestination(newPos); } } else { if (!myTask.active && !myTask.done) { myTask.StartTask(); npc.animateWorking(); } else if (myTask.active) { npc.animateWorking(); } } }
void Awake() { cameraFollow = GameObject.Find("Main Camera").GetComponent <CameraFollow>(); gameManager = GameObject.Find("GameController").GetComponent <GameManager>(); npcTask = GameObject.Find("NPC").GetComponent <NPCTask>(); characterImage = characterImageObj.GetComponent <Image>(); otherImage = otherImageObj.GetComponent <Image>(); }
void SetupNPC(GameObject obj, NPCTypes type) { NPCManager manager = obj.GetComponent <NPCManager>(); NPCTask task = obj.GetComponent <NPCTask>(); manager.SetCharacterType(obj, type, manager, task); //Destroy(obj.GetComponent<NPCTask>()); }
void InitNeedList() { NPCTask task = _npcData.CurNpcTask; if (task != null) { // 生成需求道具 for (int i = 0; i < task.Require.Count; i++) { var need = GameObject.Instantiate(objNeedSlot) as GameObject; need.name = objNeedSlot.name; need.transform.SetParent(trsNeedListRoot); need.transform.localScale = Vector3.one; need.AddMissingComponent <Button> ().onClick.AddListener(() => { OnItemClicked(objNeedSlot); }); Debug.Log("NpcId = " + GameData.nCurNpcTag + " ,taskId = " + task.ID + " ,task.requireid = " + task.Require [i].strId); Item item = DataCenter.Instance.dictItem [task.Require [i].strId]; need.GetComponent <SlotMissionNeed> ().UpdataItemInfo(item, task.Require [i].nCount); // TODO::太粗暴,要改,检查需求数量是否足够 int count = 0; for (int j = 0; j < GameData.lstBagItems.Count; j++) { if (GameData.lstBagItems [j].ID == task.Require [i].strId) { count++; } } if (count < task.Require [i].nCount) { _bIsTaskOk = false; } } // 生成奖励 for (int i = 0; i < task.Reward.Count; i++) { var need = GameObject.Instantiate(objRewardItem) as GameObject; need.name = objRewardItem.name; need.transform.SetParent(trsRewardRoot); need.transform.localScale = Vector3.one; Item item = DataCenter.Instance.dictItem [task.Reward [i].strId]; Debug.Log("NpcId = " + GameData.nCurNpcTag + " ,taskId = " + task.ID + " : task.requireid : " + task.Reward [i].strId); need.GetComponent <SlotNpcTaskReward> ().imgIcon.sprite = item.IconSprite; need.GetComponent <SlotNpcTaskReward> ().txtNum.text = task.Reward [i].nCount.ToString(); } } }
// Start is called before the first frame update void Start() { task_order = Enumerable.Range(0, tasks.Count).ToArray(); task_order = shuffleArray(task_order); activeTask = tasks[task_order[TaskCounter % tasks.Count]]; if (activeTask == null) { nullTasksAssigned = true; } }
private void SetNextTask() { TaskCounter += 1; activeTask = tasks[task_order[TaskCounter % tasks.Count]]; if (TaskCounter % tasks.Count == 0) { RestTaskList(); } CancelInvoke("SetNextTask"); restingAfterDone = false; }
public void SetCharacterType(GameObject npc, NPCTypes type, NPCManager manager, NPCTask task) { switch (type) { case NPCTypes.CoalMiner: Character = new CoalMiner(npc); break; case NPCTypes.Blacksmith: Character = new Blacksmith(npc); break; case NPCTypes.WaterGatherer: Character = new WaterGatherer(npc); break; case NPCTypes.WaterPurifier: Character = new WaterPurifier(npc); break; case NPCTypes.LumberJack: Character = new LumberJack(npc); break; case NPCTypes.StoneBuilder: Character = new StoneBuilder(npc); break; case NPCTypes.Cook: Character = new Cook(npc); break; case NPCTypes.Farmer: Character = new Farmer(npc); break; case NPCTypes.Hunter: Character = new Hunter(npc); break; default: Destroy(this); return; } Type = type; manager.Character.Task = task; }
public GameObject col; //碰撞器開關 void Start() { Joystick.isMove = true; StaticObject.nowClass = 0; if (StaticObject.nowClass == 0) //目前第一關(初始) { //產生物件 currentLine = 1; endAtLine = 10; //StaticObject.whoCharacter = 1; if (StaticObject.whoCharacter == 1) { TextAsset textFile1 = Resources.Load("Text/bother") as TextAsset; textFile = textFile1; playerName = "卡特"; sister_angry = Resources.Load("characterImage/bother/bother_angry", typeof(Sprite)) as Sprite; sister_happy = Resources.Load("characterImage/bother/bother_happy", typeof(Sprite)) as Sprite; sister_normal = Resources.Load("characterImage/bother/bother_normal", typeof(Sprite)) as Sprite; sister_oops = Resources.Load("characterImage/bother/bother_oops", typeof(Sprite)) as Sprite; sister_sad = Resources.Load("characterImage/bother/bother_sad", typeof(Sprite)) as Sprite; sister_smile = Resources.Load("characterImage/bother/bother_normal", typeof(Sprite)) as Sprite; vsBother.SetActive(true); } else if (StaticObject.whoCharacter == 2) { TextAsset textFile1 = Resources.Load("Text/sister") as TextAsset; textFile = textFile1; playerName = "緹緹"; sister_angry = Resources.Load("characterImage/sister/sister_angry", typeof(Sprite)) as Sprite; sister_happy = Resources.Load("characterImage/sister/sister_happy", typeof(Sprite)) as Sprite; sister_normal = Resources.Load("characterImage/sister/sister_normal", typeof(Sprite)) as Sprite; sister_oops = Resources.Load("characterImage/sister/sister_oops", typeof(Sprite)) as Sprite; sister_sad = Resources.Load("characterImage/sister/sister_sad", typeof(Sprite)) as Sprite; sister_smile = Resources.Load("characterImage/sister/sister_smile", typeof(Sprite)) as Sprite; vsSister.SetActive(true); } cameraFollow = GameObject.Find("Main Camera").GetComponent <CameraFollow>(); gameManager = GameObject.Find("GameController").GetComponent <GameManager>(); npcTask = GameObject.Find("NPC").GetComponent <NPCTask>(); EnemyController = GameObject.Find("BossEnemy").GetComponent <DG_EnemyController>(); MonsterController = GameObject.Find("MonsterEnemy").GetComponent <DG_EnemyController>(); characterImage = characterImageObj.GetComponent <Image>(); otherImage = otherImageObj.GetComponent <Image>(); markAni = markObj.GetComponent <Animator>(); markCollider = markObj.GetComponent <BoxCollider2D>(); attackColliderCol = attackCollider.GetComponent <BoxCollider2D>(); monsterColliderCol = monsterCollider.GetComponent <BoxCollider2D>(); statueCollider = statueObj.GetComponent <BoxCollider2D>(); vine3Collider = vine3.GetComponent <BoxCollider2D>(); mark2Collider = mark2Obj.GetComponent <BoxCollider2D>(); mark2Ani = mark2Obj.GetComponent <Animator>(); if (currentLine > endAtLine) { isActive = false; textBox.SetActive(false); GameEnd = false; } if (textFile != null) { textLines = (textFile.text.Split('\n')); } if (endAtLine == 0) { endAtLine = textLines.Length - 1; } if (isActive) { EnableTextBox(); } else { DisableTextBox(); } StaticObject.nowClass = 1f; PlayerPrefs.SetFloat("StaticObject.nowClass", StaticObject.nowClass); } StaticObject.chichi = 1; PlayerPrefs.SetInt("StaticObject.chichi", StaticObject.chichi); //usually.TransitionTo(10f); fadeOut = FadeOut.GetComponent <Animator>(); StartCoroutine("fadeIn"); }