Example #1
0
    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;
    }
Example #2
0
 void Bystander_OnThiefSpotted(Bystander bystander, Thief thief)
 {
     if (CurrentTarget == bystander)
     {
         CurrentTarget = null;
         ChooseTarget();
     }
 }
Example #3
0
    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!");
                }
            }
        }
    }
Example #4
0
    // 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);
    }
Example #5
0
    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();
        }
    }
Example #6
0
 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;
 }
Example #7
0
 void Bystander_OnThiefUnspotted(Bystander bystander, Thief thief)
 {
     ChooseTarget();
 }
Example #8
0
 public BystanderCard(Bystander bystander) : this()
 {
     Bystander = bystander;
     UpdateLabels();
 }