override public void cleanup() { Inventory inv = GameController.instance.GetPlayer().GetInventory(); LetterBundle lb = inv.GetItem <LetterBundle> (); if (lb != null) { if (lb.GetSize() > 1) { lb.RemoveItem(this.letter); } else { inv.RemoveItem(lb); } } this.deliveryTarget.SetInteract(null); this.deliveryTarget.SetJob(null); this.deliveryTarget.SetAvailable(true); this.indicatorPrefab = null; GameObject.Destroy(this.deliveryTarget.GetIndicator()); this.letterPrefab = null; this.letter = null; GameObject.Destroy(this.letterGO); this.deliveryTarget = null; }
override public void init() { this.deliveryTarget.SetAvailable(false); this.letterGO = GameObject.Instantiate(this.letterPrefab, this.interactableSpawnpoint.position, this.interactableSpawnpoint.rotation); this.letterGO.SetActive(true); this.letterGO.GetComponent <JobEntity>().SetJob(this); this.letterGO.GetComponent <JobEntity>().SetInteract( delegate(GameObject player) { LetterBundle lb = player.GetComponent <PlayerController>().GetInventory().GetItem <LetterBundle>(); bool added = false; if (lb == null) { lb = new LetterBundle(); lb.AddItem(this.letter); added = player.GetComponent <PlayerController>().GetInventory().AddItem(lb); } else { added = lb.AddItem(this.letter); } if (added) { GameObject.Destroy(this.letterGO); } } ); GameObject indicator = GameObject.Instantiate(indicatorPrefab, deliveryTarget.transform); indicator.SetActive(true); this.deliveryTarget.SetIndicator(indicator); this.deliveryTarget.GetIndicator().transform.localScale = new Vector3(0.5f, 0.5f, 0); this.deliveryTarget.SetJob(this); this.deliveryTarget.SetInteract( delegate(GameObject player) { Inventory inv = player.GetComponent <PlayerController>().GetInventory(); if (inv.GetItem("leftHand") != null) { if (inv.GetItem("leftHand").GetType() == typeof(LetterBundle)) { LetterBundle lb = (LetterBundle)inv.GetItem("leftHand"); if (lb.IsInInventory(this.letter)) { this.finishJob(); } } } } ); }