示例#1
0
 virtual public void Blow(Vector2 vel, BlowType blowType = BlowType.Normal)
 {
     if (blowType == BlowType.Normal)
     {
         state = PetalState.Fly;
     }
     else if (blowType == BlowType.FlyAway)
     {
         state = PetalState.FlyAway;
     }
 }
示例#2
0
        public BlowEffectBox GetBlowByType(BlowType blowType)
        {
            BlowEffectBox result = null;

            foreach (var b in BlowCache)
            {
                if (b.BlowType == blowType)
                {
                    result = b;
                    break;
                }
            }

            return result;
        }
示例#3
0
    public override void Blow(Vector2 vel, BlowType blowType = BlowType.Normal)
    {
        base.Blow(vel, blowType);

//		Vector3 blowDirection = move;
//        float blowVelocity = vel * Random.Range(0.75f , 1.25f);
//		Vector3 blowImpulse = ( blowDirection * blowVelocity * blowIntense * 0.001f  );
//		blowImpulse = Vector3.ClampMagnitude(blowImpulse, BlowImpulseRange.max);
//
//
//        if ( blowImpulse.magnitude < BlowImpulseRange.min )
//            blowImpulse = blowImpulse.normalized * BlowImpulseRange.min;
//		AddImpluse( blowImpulse );


        if (blowType.Equals(BlowType.Normal))
        {
            SetColliderTrigger(false);
        }
        else if (blowType.Equals(BlowType.FlyAway))
        {
            float fadeTime = Random.Range(flyAwayFadeTime.min, flyAwayFadeTime.max);
            // set different animation for flower petal/ non-flower petal
            // flower petal should have a longer animation
            if (isFlowerPetal)
            {
                petalModel.transform.DOScale(0, fadeTime).OnComplete(SelfDestory).SetEase(Ease.InExpo);
            }
            else
            {
                petalModel.transform.DOScale(0, fadeTime).OnComplete(SelfDestory).SetEase(Ease.OutCubic);
            }
//			if ( isFlowerPetal )
//			{
//				SpriteRenderer render = petalModel.GetComponentInChildren<SpriteRenderer>();
//				render.DOFade( 0 , fadeTime );
            //			}
        }

        // set parent to level
        transform.SetParent(LogicManager.LevelManager.GetLevelObject().transform);

        // update the velocity
        LinkVelocity(vel * blowIntense);

        // link to the wind
        follow.windSensablParameter.shouldUpdate = true;
    }
示例#4
0
        public BlowEffectBox GetWithRemoveBlowByType(BlowType blowType)
        {
            BlowEffectBox result = null;

            foreach (var b in BlowCache)
            {
                if (b.BlowType == blowType)
                {
                    result = b;
                    break;
                }
            }

            if (result != null)
            {
                BlowCache.Remove(result);
            }

            return result;
        }
示例#5
0
    public override void Blow (Vector2 vel , BlowType blowType = BlowType.Normal) {
		base.Blow(vel , blowType );

//		Vector3 blowDirection = move;
//        float blowVelocity = vel * Random.Range(0.75f , 1.25f);
//		Vector3 blowImpulse = ( blowDirection * blowVelocity * blowIntense * 0.001f  );
//		blowImpulse = Vector3.ClampMagnitude(blowImpulse, BlowImpulseRange.max);
//
//
//        if ( blowImpulse.magnitude < BlowImpulseRange.min )
//            blowImpulse = blowImpulse.normalized * BlowImpulseRange.min;
//		AddImpluse( blowImpulse );

        
        if ( blowType.Equals(BlowType.Normal) )
        {
			SetColliderTrigger( false );

        }
        else if (blowType.Equals(BlowType.FlyAway))
        {
            float fadeTime = Random.Range( flyAwayFadeTime.min , flyAwayFadeTime.max);
			// set different animation for flower petal/ non-flower petal
			// flower petal should have a longer animation
			if ( isFlowerPetal )
				petalModel.transform.DOScale(0, fadeTime).OnComplete( SelfDestory ).SetEase(Ease.InExpo );
			else
				petalModel.transform.DOScale(0, fadeTime).OnComplete( SelfDestory ).SetEase(Ease.OutCubic );
//			if ( isFlowerPetal )
//			{
//				SpriteRenderer render = petalModel.GetComponentInChildren<SpriteRenderer>();
//				render.DOFade( 0 , fadeTime );
			//			}
        }

		// set parent to level
		transform.SetParent( LogicManager.LevelManager.GetLevelObject().transform );

		// update the velocity
		LinkVelocity( vel * blowIntense );

		// link to the wind 
        follow.windSensablParameter.shouldUpdate = true;

    }
示例#6
0
 override public void Blow(Vector2 vel, BlowType blowType = BlowType.Normal)
 {
     base.Blow(vel);
     RemoveConnectBody();
     top2D.AddForce((vel.normalized + Global.GetRandomDirection() * 0.1f).normalized * vel.magnitude * blowIntense, ForceMode2D.Impulse);
 }
示例#7
0
 public void AddBlow(BlowType blowType, BlowEffect blow)
 {
     BlowCache.Add(new BlowEffectBox() { BlowType = blowType, BlowEffect = blow });
 }
示例#8
0
 public override void Blow(Vector2 vel, BlowType blowType = BlowType.Normal)
 {
     base.Blow(vel);
     AddForce((vel.normalized + 0.4f * Global.GetRandomDirection()).normalized * vel.magnitude * blowIntense);
 }
示例#9
0
	override public void Blow(Vector2 vel, BlowType blowType = BlowType.Normal)
	{
		base.Blow(vel);
		RemoveConnectBody();
		top2D.AddForce( ( vel.normalized + Global.GetRandomDirection() * 0.1f ).normalized * vel.magnitude * blowIntense, ForceMode2D.Impulse);
	}
示例#10
0
	virtual public void Blow(Vector2 vel, BlowType blowType = BlowType.Normal)
	{
		if (blowType == BlowType.Normal )
			state = PetalState.Fly;
		else if (blowType == BlowType.FlyAway)
			state = PetalState.FlyAway;
	}
示例#11
0
	// Called by Flower.cs 
	// Call when player blow the dendalion
	public void Blow(Vector2 move, float vel, BlowType blowType = BlowType.Normal)
	{
		Blow( move.normalized * vel , blowType );
	}
示例#12
0
 // Called by Flower.cs
 // Call when player blow the dendalion
 public void Blow(Vector2 move, float vel, BlowType blowType = BlowType.Normal)
 {
     Blow(move.normalized * vel, blowType);
 }
示例#13
0
    public override void Blow (Vector2 vel, BlowType blowType = BlowType.Normal) {
        base.Blow( vel);
		AddForce((vel.normalized + 0.4f * Global.GetRandomDirection()).normalized * vel.magnitude * blowIntense );
    }