Beispiel #1
0
 private void Deliver(Pickable box)
 {
     Debug.Log("GIANT ENEMY GOAL GOT");
     onDelivered.Invoke(box);
     Destroy(box.gameObject);
     currentOrder = null;
 }
Beispiel #2
0
 public void SetHeld(Pickable held)
 {
     if (releasing)
     {
         return;
     }
     Debug.Log("Holding");
     held.rigid.isKinematic = true;
     becomingHeld           = true;
     this.held = held;
     held.GetComponent <Rigidbody>().isKinematic = true;
     onHeld.Invoke(held);
 }
Beispiel #3
0
 private void Update()
 {
     releasing = false;
     if (held == null)
     {
         return;
     }
     if (Input.GetKeyDown(KeyCode.E) && !becomingHeld)
     {
         Debug.Log("Releasing");
         onRelease.Invoke(held);
         held.GetComponent <Rigidbody>().isKinematic = false;
         held      = null;
         releasing = true;
     }
     becomingHeld = false;
 }
Beispiel #4
0
    public override void OnInteract()
    {
        if (state.spawned.Count >= state.spawnLimit || countdown > 0)
        {
            return;
        }

        countdown = secondsCooldown;
        var created = Instantiate(box);

        onSpawned.Invoke(created);

        if (randomSize)
        {
            created.SetSize(randomEnum <SizeType>());
        }
        else
        {
            created.SetSize(defaultSize);
        }
        if (randomColor)
        {
            created.SetColor(randomEnum <ColorType>());
        }
        else
        {
            created.SetColor(defaultColor);
        }
        if (randomMaterial)
        {
            created.SetMaterial(randomEnum <MaterialType>());
        }
        else
        {
            created.SetMaterial(defaultMaterial);
        }
        if (randomShape)
        {
            created.SetShape(randomEnum <ShapeType>());
        }
        else
        {
            created.SetShape(defaultShape);
        }
        created.transform.position = spawnPosition;
    }
Beispiel #5
0
    private void OnTriggerStay(Collider other)
    {
        Triggerable toTrash = other.GetComponent <Triggerable>();

        if (toTrash == null)
        {
            return;
        }
        Pickable pick = toTrash.asPickable();

        if (pick.holder.held != pick)
        {
            var p = Instantiate(particle);
            p.transform.position = pick.transform.position;
            p.Play();
            onTrashed.Invoke(pick);
            Destroy(pick.gameObject);
        }
    }