コード例 #1
0
    public void Buy(int index, int price)
    {
        // TODO: do it with strategy pattern
        if (hasController && coins >= price)
        {
            coins -= price;
            SetCoins();

            if (goods[index].isHandheld)
            {
                if (controller.rightHandFull)
                {
                    controller.Throw();
                }

                QQObject obj = Instantiate(goods[index].prefab).GetComponent <QQObject>();
                if (!controller.facingRight)
                {
                    obj.gameObject.transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
                }
                if (!controller.facingRight)
                {
                    obj.gameObject.transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
                }
                controller.PickUp(obj);
            }
            else
            {
                goods[index].Consume(controller);
            }

            Close();
        }
    }
コード例 #2
0
ファイル: Burnable.cs プロジェクト: mz000/QQ
 private void SetObj()
 {
     _obj = GetComponent <QQObject>();
     if (_obj == null)
     {
         Debug.LogWarning("there's a burnable component on something that's not an object");
     }
 }
コード例 #3
0
ファイル: Person.cs プロジェクト: mz000/QQ
    public virtual void PickUp()
    {
        if (!rightHandFull)
        {
            Collider2D[] nearbyObjs = Physics2D.OverlapCircleAll(transform.position, handsReach);
            foreach (Collider2D c in nearbyObjs)
            {
                if (c.gameObject == gameObject)
                {
                    continue;
                }

                QQObject o = c.GetComponent <QQObject>();
                if (o == null || o.hasHolder || o.isStatic)
                {
                    continue;
                }

                o.GetPickedUp(this);

                break;
            }
        }
    }
コード例 #4
0
 public override void PickUp(QQObject obj)
 {
     obj.GetPickedUp(this);
 }
コード例 #5
0
ファイル: Person.cs プロジェクト: mz000/QQ
 public virtual void Throw()
 {
     rightHand.GetThrown(facingRight?Vector2.right:Vector2.left);
     rightHand     = null;
     rightHandFull = false;
 }
コード例 #6
0
ファイル: Person.cs プロジェクト: mz000/QQ
 public virtual void PickUp(QQObject obj)
 {
     obj.GetPickedUp(this);
 }