public void Initialize(int id, Vector3 from, Vector3 to, GameObject bridge) { if (visual != null) { Destroy(visual.gameObject); } visual = Instantiate( manager.bystanderPrefabs[id], transform.position, Quaternion.identity, transform ).GetComponent <Bystander>(); baseSpeed = Random.Range(0.5f, 1.5f); currentSpeed = baseSpeed; available = false; visual.gameObject.SetActive(true); transform.position = from; destination = to; visual.transform.LookAt(destination); visual.animator.Play("Running"); cBridge = bridge; bridgePosition = cBridge.transform.position; }
void Bystander_OnThiefSpotted(Bystander bystander, Thief thief) { if (CurrentTarget == bystander) { CurrentTarget = null; ChooseTarget(); } }
void Thief_OnThiefSteals(Bystander bystander, Thief thief) { RaycastHit2D hit = Physics2D.Raycast(transform.position, bystander.transform.position, 10.0f /*, LayerMask.GetMask ("Ignore Raycast")*/); Debug.Log(hit.collider); if (hit.collider != null && hit.collider.gameObject.GetComponent <Thief> () != null) { if (bystander != this && ThievesInVision.Contains(thief)) { if (Attention > 50) { Debug.Log("Thief! Thief!"); } } } }
// Use this for initialization void Start() { for (int i = 0; i < bypasserAmount; i++) { Vector2 position = new Vector2(); float angle = Random.Range(0, 359); position.x = Mathf.Cos(angle) * bypasserRange * Random.value + transform.position.x; position.y = Mathf.Sin(angle) * bypasserRange * Random.value + transform.position.z; GameObject bystander = GameObject.Instantiate(bystanderPrefab); bystander.GetComponent <Transform>().position = new Vector3(position.x, transform.position.y, position.y); // random position within circle Bystander choice = personalities[(int)Mathf.Floor(Random.value * personalities.Length)]; bystander.GetComponent <BystanderBehavior>().personality = choice; // Random personality Debug.Log(bystander.GetComponent <BystanderBehavior>().personality); bystander.GetComponent <BystanderBehavior>().mode = modes[(int)Mathf.Floor(Random.value * modes.Length)]; // Random mode } // Killing the spawner Destroy(gameObject); }
public void Steal() { if (BullseyeImage.transform.localScale.x > 0.35) { Debug.Log("fail!"); return; } int goldToSteal = Mathf.Min(CurrentTarget.Gold, (WalletCapacity - WalletGold)); CurrentTarget.Gold -= goldToSteal; WalletGold += goldToSteal; OnThiefSteals(CurrentTarget, this); if (CurrentTarget.Gold <= 0) { CurrentTarget.WalletObject.SetActive(false); BystandersWhoISee.Remove(CurrentTarget); CurrentTarget = null; ChooseTarget(); } }
void ChooseTarget() { if (BystandersWhoISee.Count > 0) { foreach (var bystander in BystandersWhoISee) { if (bystander.Gold > 0 && !bystander.ThievesInVision.Contains(this)) { CurrentTarget = bystander; CanvasObject.SetActive(true); followingTarget = true; BullseyeImage.transform.localScale = Vector3.one; t = 0.0f; return; } } } CanvasObject.SetActive(false); followingTarget = false; CurrentTarget = null; }
void Bystander_OnThiefUnspotted(Bystander bystander, Thief thief) { ChooseTarget(); }
public BystanderCard(Bystander bystander) : this() { Bystander = bystander; UpdateLabels(); }