示例#1
0
 public void ShuffleMoveAnimate(Transform Deck)
 {
     DeckTransform        = Deck;
     transform.parent     = S.GameControlInst.handObj.transform;
     AnimationStartTime   = Time.time;
     currentAnimatingType = AnimatingType.shuffleanimating;
 }
示例#2
0
 public void DiscardAnimate()
 {
     DiscardMoveUpStartTime = Time.time;
     currentAnimatingType   = AnimatingType.discardanimating;
     StartPosition          = transform.localPosition;
     HighestPoint           = StartPosition;
     HighestPoint.y         = StartPosition.y + 2f;
 }
示例#3
0
 public void DiscardAnimate()
 {
     DiscardMoveUpStartTime = Time.time;
     currentAnimatingType = AnimatingType.discardanimating;
     StartPosition = transform.localPosition;
     HighestPoint = StartPosition;
     HighestPoint.y = StartPosition.y + 2f;
 }
 public CustomActivityIndicator(
     Key key = null,
     AnimatingType animating   = AnimatingType.repeat,
     LoadingColor loadingColor = LoadingColor.black,
     LoadingSize size          = LoadingSize.normal
     ) : base(key: key)
 {
     this.animating    = animating;
     this.loadingColor = loadingColor;
     this.size         = size;
 }
 public FrameAnimationImage(
     List <string> images,
     float duration     = 17,
     AnimatingType type = AnimatingType.repeat,
     Key key            = null
     ) : base(key: key)
 {
     D.assert(images != null && images.Count > 0);
     this.images   = images;
     this.duration = duration;
     this.type     = type;
 }
示例#6
0
 public void MoveAnimateWhileDiscarded(int position, bool expand)
 {
     if (expand)
     {
         AnimationEndPosition = new Vector3(0f, (position) * -.2f + -.5f, 0);
     }
     else
     {
         AnimationEndPosition = new Vector3(0f, (position) * -.5f + -.5f, 0);
     }
     currentAnimatingType = AnimatingType.otheranimating;
     AnimationStartTime   = Time.time;
 }
示例#7
0
    public void FinishDiscardAnimate(bool ActuallyDiscarding)
    {
        currentAnimatingType = AnimatingType.none;
        if (ActuallyDiscarding)
        {
            int index = S.GameControlInst.Discard.IndexOf(gameObject);

            transform.parent        = discardPileObj.transform;
            transform.localPosition = new Vector3(0, (index + 1) * -.5f, 0);

            reorder(index, true);
        }
    }
示例#8
0
    public void MoveAnimate(int position)
    {
        reorder(card.HandIndex(), false);

        transform.localScale = normalLocalScale;

        AnimationEndPosition = new Vector3((position) * 1.55f - 1f, .1f, 0);
        if (currentAnimatingType != AnimatingType.drawanimating)
        {
            currentAnimatingType = AnimatingType.otheranimating;
        }
        AnimationStartTime = Time.time;
    }
示例#9
0
 public RotationAnimation(
     Key key                 = null,
     Widget child            = null,
     float?degrees           = null,
     TimeSpan?duration       = null,
     AnimatingType animating = AnimatingType.repeat
     ) : base(key: key)
 {
     D.assert(child != null);
     this.child     = child;
     this.degrees   = degrees;
     this.duration  = duration ?? TimeSpan.FromMilliseconds(600);
     this.animating = animating;
 }
 public FrameAnimationImage(
     List <string> images,
     float size           = 56,
     float duration       = 17,
     AnimatingType type   = AnimatingType.repeat,
     Widget defaultWidget = null,
     Key key = null
     ) : base(key: key)
 {
     D.assert(images != null && images.Count > 0);
     this.images        = images;
     this.size          = size;
     this.duration      = duration;
     this.type          = type;
     this.defaultWidget = defaultWidget;
 }
示例#11
0
    //////////////////////////////////////
    /// Animation start methods (+ finishdiscardanimate)
    //////////////////////////////////////
    public void DrawAnimate(int position)
    {
        gameObject.transform.parent = S.GameControlInst.handObj.transform;
        gameObject.transform.localPosition = new Vector3(-2.7f, .5f, 0);

        currentAnimatingType = AnimatingType.drawanimating;

        CardBackObject =(GameObject)GameObject.Instantiate(Resources.Load("prefabs/Drawn card prefab"));
        CardBackObject.transform.parent = gameObject.transform;
        CardBackObject.transform.localPosition = new Vector3(0, 0, 0);
        CardBackObject.transform.localScale = new Vector3(2.9f, 2.8f, 2f);
        SpriteRenderer CardBackSR = CardBackObject.GetComponent<SpriteRenderer>();
        CardBackSR.sortingLayerID = 0;
        CardBackSR.sortingOrder = 4;

        MoveAnimate(position);
    }
示例#12
0
    //////////////////////////////////////
    /// Animation start methods (+ finishdiscardanimate)
    //////////////////////////////////////

    public void DrawAnimate(int position)
    {
        gameObject.transform.parent        = S.GameControlInst.handObj.transform;
        gameObject.transform.localPosition = new Vector3(-2.7f, .5f, 0);

        currentAnimatingType = AnimatingType.drawanimating;

        CardBackObject = (GameObject)GameObject.Instantiate(Resources.Load("prefabs/Drawn card prefab"));
        CardBackObject.transform.parent        = gameObject.transform;
        CardBackObject.transform.localPosition = new Vector3(0, 0, 0);
        CardBackObject.transform.localScale    = new Vector3(2.9f, 2.8f, 2f);
        SpriteRenderer CardBackSR = CardBackObject.GetComponent <SpriteRenderer>();

        CardBackSR.sortingLayerID = 0;
        CardBackSR.sortingOrder   = 4;

        MoveAnimate(position);
    }
示例#13
0
    //////////////////////////////////////
    /// Update
    //////////////////////////////////////
    public virtual void Update()
    {
        if (currentAnimatingType == AnimatingType.shuffleanimating)
        {
            if (Time.time > AnimationStartTime + .48f)
            {
                currentAnimatingType = AnimatingType.none;

                gameObject.GetComponent <SpriteRenderer>().enabled = false;
                return;
            }
            else
            {
                float time = Time.time - AnimationStartTime;
                transform.position = Vector3.Lerp(transform.position, DeckTransform.position, time);
            }
        }
        else if (currentAnimatingType == AnimatingType.discardanimating)
        {
            // Card is moving upwards
            if (DiscardMoveUpStartTime + .25f > Time.time)
            {
                float time = ((Time.time - DiscardMoveUpStartTime));
                transform.localPosition = Vector3.Lerp(transform.localPosition, HighestPoint, time * 4);
                return;
            }
            // Card switches to moving downwards
            else if ((DiscardMoveUpStartTime + .5f > Time.time) && (Time.time > DiscardMoveUpStartTime + .25f))
            {
                if (!BehindPlayBoard && (card.DiscardWhenPlayed | card.ForcingDiscardOfThis))
                {
                    SpriteRenderer[] spriterenderererers = GetComponentsInChildren <SpriteRenderer>();
                    foreach (SpriteRenderer sr in spriterenderererers)
                    {
                        sr.sortingLayerName = "Field background";
                        if (sr.gameObject.name != "rarity" &&
                            sr.gameObject.name != "glow" &&
                            sr.gameObject.name != "god icon" &&
                            sr.gameObject.name != "picture" &&
                            sr.gameObject.name != "aoe icon" &&
                            sr.gameObject.name != "range icon")
                        {
                            sr.sortingOrder = 0;
                        }
                        else
                        {
                            sr.sortingOrder = 1;
                        }
                    }
                    MeshRenderer[] meshrenderers = GetComponentsInChildren <MeshRenderer>();
                    foreach (MeshRenderer meshrenderer in meshrenderers)
                    {
                        meshrenderer.sortingLayerName = "Field background";
                        meshrenderer.sortingOrder     = 1;
                    }

                    BehindPlayBoard = true;
                    StartPosition   = new Vector3(StartPosition.x, StartPosition.y, StartPosition.z);
                    return;
                }
                float time = ((Time.time - DiscardMoveUpStartTime - .25f));
                transform.localPosition = Vector3.Lerp(transform.localPosition, StartPosition, time * 4);
                return;
            }
            else if (Time.time > DiscardMoveUpStartTime + .5f)
            {
                FinishDiscardAnimate(card.DiscardWhenPlayed | card.ForcingDiscardOfThis);
                card.FinishDiscard();
            }
        }
        else if (currentAnimatingType == AnimatingType.drawanimating)
        {
            if (CardBackObject != null)
            {
                // Card distorts towards x scale of zero ("turns around" to become less visible to camera)
                gameObject.transform.localScale = Vector3.Lerp(new Vector3(gameObject.transform.localScale.x, .85f, 1f), new Vector3(0, .85f, 1f), Time.time - AnimationStartTime);

                if (Time.time >= AnimationStartTime + (drawAnimationLength / 2))
                {
                    // Halfway through the animation, the back of the card gets destroyed as the card "flips around"
                    Destroy(CardBackObject);
                }
            }
            else
            {
                // Card distorts back to the full x scale ("turns back to face camera")
                gameObject.transform.localScale = Vector3.Lerp(gameObject.transform.localScale, normalLocalScale, Time.time - AnimationStartTime);
            }

            if (Time.time > AnimationStartTime + drawAnimationLength)
            {
                //this ends the animation
                currentAnimatingType = AnimatingType.none;
                //transform.localScale = normalLocalScale;

                transform.localPosition = AnimationEndPosition;
                return;
            }
            else
            {
                float time = Time.time - AnimationStartTime;

                transform.localPosition = Vector3.Lerp(transform.localPosition, AnimationEndPosition, time);
            }
        }
        else if (currentAnimatingType == AnimatingType.burnanimating)
        {
            float fade = Time.time - AnimationStartTime;
            foreach (SpriteRenderer SRenderer in SRenderers)
            {
                SRenderer.color = new Color(1f, 1f, 1f, 1 - fade * 2);
            }
            if (AnimationStartTime + .5f < Time.time)
            {
                card.DestroyThisGameObject();
            }
        }
        else if (currentAnimatingType == AnimatingType.otheranimating)
        {
            if (Time.time > AnimationStartTime + .48f)
            {
                //this ends the animation
                currentAnimatingType    = AnimatingType.none;
                transform.localPosition = AnimationEndPosition;
                if (!card.Discarded)
                {
                    transform.localScale = normalLocalScale;
                }

                return;
            }
            else if (Time.time > AnimationStartTime + .25f)
            {
                //midpoint of animation
                float time = Time.time - AnimationStartTime;
                transform.localPosition = Vector3.Lerp(transform.localPosition, AnimationEndPosition, time);
            }
            else
            {
                float time = Time.time - AnimationStartTime;
                transform.localPosition = Vector3.Lerp(transform.localPosition, AnimationEndPosition, time);
            }
        }
    }
示例#14
0
 public void BurnAnimate()
 {
     AnimationStartTime   = Time.time;
     currentAnimatingType = AnimatingType.burnanimating;
 }
示例#15
0
 public void TuckAnimate()
 {
     AnimationEndPosition = new Vector3(-2.7f, 3f, 0);
     currentAnimatingType = AnimatingType.otheranimating;
     AnimationStartTime   = Time.time;
 }
示例#16
0
    public void FinishDiscardAnimate(bool ActuallyDiscarding)
    {
        currentAnimatingType = AnimatingType.none;
        if(ActuallyDiscarding) {

            int index = S.GameControlInst.Discard.IndexOf(gameObject);

            transform.parent = discardPileObj.transform;
            transform.localPosition = new Vector3(0,(index+1) * -.5f, 0);

            reorder(index, true);
        }
    }
示例#17
0
    public void MoveAnimate(int position)
    {
        reorder(card.HandIndex(), false);

        transform.localScale = normalLocalScale;

        AnimationEndPosition = new Vector3((position)*1.55f - 1f, .1f, 0);
        if (currentAnimatingType != AnimatingType.drawanimating) {
            currentAnimatingType = AnimatingType.otheranimating;
        }
        AnimationStartTime = Time.time;
    }
示例#18
0
 public void BurnAnimate()
 {
     AnimationStartTime = Time.time;
     currentAnimatingType = AnimatingType.burnanimating;
 }
示例#19
0
    //////////////////////////////////////
    /// Update
    //////////////////////////////////////
    public virtual void Update()
    {
        if(currentAnimatingType == AnimatingType.shuffleanimating) {
            if(Time.time > AnimationStartTime + .48f) {
                currentAnimatingType = AnimatingType.none;

                gameObject.GetComponent<SpriteRenderer>().enabled = false;
                return;
            }
            else {
                float time = Time.time - AnimationStartTime;
                transform.position = Vector3.Lerp(transform.position, DeckTransform.position, time);
            }
        }
        else if(currentAnimatingType == AnimatingType.discardanimating) {
            // Card is moving upwards
            if(DiscardMoveUpStartTime + .25f > Time.time) {
                float time =((Time.time-DiscardMoveUpStartTime));
                transform.localPosition = Vector3.Lerp(transform.localPosition, HighestPoint, time*4);
                return;
            }
            // Card switches to moving downwards
            else if(( DiscardMoveUpStartTime + .5f > Time.time ) &&(Time.time > DiscardMoveUpStartTime + .25f)) {
                if(!BehindPlayBoard &&(card.DiscardWhenPlayed | card.ForcingDiscardOfThis)){
                    SpriteRenderer[] spriterenderererers = GetComponentsInChildren<SpriteRenderer>();
                    foreach(SpriteRenderer sr in spriterenderererers) {
                        sr.sortingLayerName = "Field background";
                        if (sr.gameObject.name != "rarity"
                            && sr.gameObject.name != "glow"
                            && sr.gameObject.name != "god icon"
                            && sr.gameObject.name != "picture"
                            && sr.gameObject.name != "aoe icon"
                            && sr.gameObject.name != "range icon" )
                        {
                            sr.sortingOrder = 0;
                        }
                        else
                        {
                            sr.sortingOrder = 1;
                        }
                    }
                    MeshRenderer[] meshrenderers = GetComponentsInChildren<MeshRenderer>();
                    foreach(MeshRenderer meshrenderer in meshrenderers){
                        meshrenderer.sortingLayerName = "Field background";
                        meshrenderer.sortingOrder = 1;
                    }

                    BehindPlayBoard = true;
                    StartPosition = new Vector3(StartPosition.x, StartPosition.y, StartPosition.z);
                    return;
                }
                float time =((Time.time-DiscardMoveUpStartTime - .25f));
                transform.localPosition = Vector3.Lerp(transform.localPosition, StartPosition, time*4);
                return;
            }
            else if( Time.time > DiscardMoveUpStartTime + .5f ) {
                FinishDiscardAnimate(card.DiscardWhenPlayed | card.ForcingDiscardOfThis);
                card.FinishDiscard();
            }
        } else if(currentAnimatingType == AnimatingType.drawanimating) {
            if(CardBackObject != null) {
                // Card distorts towards x scale of zero ("turns around" to become less visible to camera)
                gameObject.transform.localScale = Vector3.Lerp(new Vector3(gameObject.transform.localScale.x, .85f, 1f), new Vector3(0, .85f, 1f), Time.time-AnimationStartTime);

                if(Time.time >= AnimationStartTime + (drawAnimationLength/2)) {
                    // Halfway through the animation, the back of the card gets destroyed as the card "flips around"
                    Destroy(CardBackObject);
                }
            }
            else {
                // Card distorts back to the full x scale ("turns back to face camera")
                gameObject.transform.localScale = Vector3.Lerp(gameObject.transform.localScale, normalLocalScale, Time.time-AnimationStartTime);
            }

            if(Time.time > AnimationStartTime + drawAnimationLength) {
                //this ends the animation
                currentAnimatingType = AnimatingType.none;
                //transform.localScale = normalLocalScale;

                transform.localPosition = AnimationEndPosition;
                return;
            }
            else {
                float time = Time.time - AnimationStartTime;

                transform.localPosition = Vector3.Lerp(transform.localPosition, AnimationEndPosition, time);
            }
        }
        else if(currentAnimatingType == AnimatingType.burnanimating) {
            float fade = Time.time - AnimationStartTime;
            foreach(SpriteRenderer SRenderer in SRenderers) {
                SRenderer.color = new Color(1f, 1f, 1f, 1-fade*2);
            }
            if(AnimationStartTime + .5f < Time.time) {
                card.DestroyThisGameObject();
            }
        }
        else if(currentAnimatingType == AnimatingType.otheranimating) {

            if(Time.time > AnimationStartTime + .48f) {
                //this ends the animation
                currentAnimatingType = AnimatingType.none;
                transform.localPosition = AnimationEndPosition;
                if(!card.Discarded) {
                    transform.localScale = normalLocalScale;
                }

                return;
            }
            else if(Time.time > AnimationStartTime + .25f) {
                //midpoint of animation
                float time = Time.time - AnimationStartTime;
                transform.localPosition = Vector3.Lerp(transform.localPosition, AnimationEndPosition, time);
            }
            else {
                float time = Time.time - AnimationStartTime;
                transform.localPosition = Vector3.Lerp(transform.localPosition, AnimationEndPosition, time);
            }
        }
    }
示例#20
0
 public void TuckAnimate()
 {
     AnimationEndPosition = new Vector3(-2.7f, 3f, 0);
     currentAnimatingType = AnimatingType.otheranimating;
     AnimationStartTime = Time.time;
 }
示例#21
0
 public void ShuffleMoveAnimate(Transform Deck)
 {
     DeckTransform = Deck;
     transform.parent = S.GameControlInst.handObj.transform;
     AnimationStartTime = Time.time;
     currentAnimatingType = AnimatingType.shuffleanimating;
 }
示例#22
0
 public void MoveAnimateWhileDiscarded(int position, bool expand )
 {
     if(expand) {
         AnimationEndPosition = new Vector3(0f,(position) * -.2f + -.5f, 0);
     } else {
         AnimationEndPosition = new Vector3(0f,(position) * -.5f + -.5f, 0);
     }
     currentAnimatingType = AnimatingType.otheranimating;
     AnimationStartTime = Time.time;
 }