示例#1
0
 public override void Init(EBalloonType pType)
 {
     base.Init(pType);
     ChangeColor(Color.red);
     AddBehavior<LifeBehavior>();
     AddBehavior<CharacterPullBehavior>();
     m_MaxRopeDistance = LIFE_ROPE_DISTANCE;
 }
示例#2
0
 public override void Init(EBalloonType pType)
 {
     base.Init(pType);
     ChangeColor(new Color(1f, 0.53f, 1f));
     AddBehavior<DetachBehavior>();
     AddBehavior<AttachBehavior>();
     AddBehavior<TriggerableBehavior> ();
     m_MaxRopeDistance = GUM_ROPE_DISTANCE;
 }
示例#3
0
 public override void Init(EBalloonType pType)
 {
     base.Init(pType);
     ChangeColor(Color.yellow);
     AddBehavior<DetachBehavior>();
     AddBehavior<AttachBehavior>();
     AddBehavior<TriggerableBehavior> ();
     m_MaxRopeDistance = STUN_ROPE_DISTANCE;
 }
示例#4
0
 public override void Init(EBalloonType pType)
 {
     base.Init(pType);
     ChangeColor(Color.green);
     AddBehavior<DetachBehavior>();
     AddBehavior<AttachBehavior>();
     GetComponent<TrailBehavior> ().enabled = true;
     m_MaxRopeDistance = TOXIC_ROPE_DISTANCE;
 }
示例#5
0
 public override void Init(EBalloonType pType)
 {
     base.Init(pType);
     ChangeColor(Color.white);
     AddBehavior<FlyingBehavior>();
     AddBehavior<DetachBehavior>();
     AddBehavior<AttachBehavior>();
     AddBehavior<TriggerableBehavior> ();
     m_MaxRopeDistance = FLYING_ROPE_DISTANCE;
 }
示例#6
0
 public override void CreateBalloon(EBalloonType pType)
 {
     if (pType.Equals (EBalloonType.LIFE) && !HoldsMaximumLifeBalloons()) {
         mNumberOfLifeBalloons++;
         base.CreateBalloon (pType);
     } else if (!pType.Equals (EBalloonType.LIFE) && !pType.Equals (EBalloonType.GUM) && !HoldsMaximumSpecialBalloons()) {
         mNumberOfSpecialBalloons++;
         base.CreateBalloon(pType);
     }
 }
示例#7
0
    public static Balloon CreateBalloon(EBalloonType pType, Vector2 pPosition)
    {
        Assert.CheckNull(mBalloonPrefab);
        Assert.CheckNull(mTack);

        Balloon balloon = null;
        GameObject balloonObject = null;
        //TODO: Do it in a better way
        switch(pType)
        {
            case EBalloonType.LIFE :
            {
                balloonObject = InstantiateAtDistance(pPosition, LifeBalloon.LIFE_ROPE_DISTANCE);
                balloon  = balloonObject.AddComponent<LifeBalloon>();
                break;
            }
            case EBalloonType.TOXIC:
            {
                balloonObject = InstantiateAtDistance(pPosition, ToxicBalloon.TOXIC_ROPE_DISTANCE);
                balloon = balloonObject.AddComponent<ToxicBalloon>();
                break;
            }
            case EBalloonType.FLYING:
            {
                balloonObject = InstantiateAtDistance(pPosition, FlyingBalloon.FLYING_ROPE_DISTANCE);
                balloon = balloonObject.AddComponent<FlyingBalloon>();
                break;
            }
            case EBalloonType.STUN:
            {
                balloonObject = InstantiateAtDistance(pPosition, StunBalloon.STUN_ROPE_DISTANCE);
                balloon = balloonObject.AddComponent<StunBalloon>();
                break;
            }
            case EBalloonType.WATER:
            {
                balloonObject = InstantiateAtDistance(pPosition, WaterBalloon.WATER_ROPE_DISTANCE);
                balloon = balloonObject.AddComponent<WaterBalloon>();
                break;
            }
            case EBalloonType.GUM:
            {
                balloonObject = InstantiateAtDistance(pPosition, GumBalloon.GUM_ROPE_DISTANCE);
                balloon = balloonObject.AddComponent<GumBalloon>();
                break;
            }
        }

        balloon.Init(pType);

        return balloon;
    }
示例#8
0
    public virtual void CreateBalloon(EBalloonType pType)
    {
        if(mBalloons.Count < m_MaxBalloonCount)
        {
            RopeManager ropeManager = new RopeManager (m_RopePrefab, m_Tack);

            Vector2 baseBalloonPosition = GetPositionXOffset(m_Tack.transform.position);
            Balloon balloon = BalloonFactory.CreateBalloon (pType, baseBalloonPosition);

            GameObject balloonObject = balloon.GameObject;

            var physics = balloonObject.GetComponent<BalloonPhysics>();
            SetBalloonProperties(balloon, physics, mBalloons.Count);

            LineRenderer balloonLineRenderer = balloonObject.GetComponent<LineRenderer>();
            Rope rope = ropeManager.CreateRopeForBalloon(balloonLineRenderer, balloonObject);
            ropeManager.AttachRope(balloonObject, rope, m_Tack);
            balloonObject.transform.parent = this.gameObject.transform;

            mBalloons.Add(balloon);
            mBalloons [mBalloons.Count - 1].InstantDeflate ();
            mBalloons [mBalloons.Count - 1].SetInflate (true);
        }
    }
示例#9
0
 private void OnStopTutoEvent(EBalloonType pType)
 {
     DestroyObject (mTuto);
     //mTuto.GetComponent<Animator> ().CrossFade ("New Animation3", 0f);
 }
示例#10
0
 private void OnInflateBalloon(EBalloonType pType)
 {
     CreateBalloon(pType);
 }