Exemple #1
0
        private void SetStatusSprite(StatusSprite statSpr, PermStatus?permStat = null, TempStatus?tempStat = null)
        {
            // Don't bother displaying more than three sprites
            if (statSprites.Count >= 3)
            {
                return;
            }

            dynamic stat;

            if (permStat != null)
            {
                stat = permStat;
            }
            else if (tempStat != null)
            {
                stat = tempStat;
            }
            else
            {
                return;
            }

            float xPos = Position.X + (26 * (statSprites.Count % 3));
            float yPos = Position.Y - 20; // 20 for bubble

            statSpr.SetPosition(new Vector2(xPos, yPos));
            statSpr.SetAnimation(StatSpritAnimMap[stat]);
            statSpr.Visible = true;

            statSprites.Add(stat, statSpr);
        }
Exemple #2
0
        public override bool AddTempStatus(TempStatus tempStatus)
        {
            bool ret = base.AddTempStatus(tempStatus);

            // If the status is not an instant kill, add the status sprite
            if (ret)
            {
                if (tempStatus != TempStatus.Mini)
                {
                    StatusSprite statSpr = StatusSpriteManager.GetStatusSprite();
                    SetStatusSprite(statSpr, tempStat: tempStatus);
                }
            }
            return(ret);
        }
Exemple #3
0
        public override bool AddPermStatus(PermStatus permStatus)
        {
            bool ret = base.AddPermStatus(permStatus);

            if (ret)
            {
                // If the status is not an instant kill, add the status sprite
                PermStatus[] killStatuses = new PermStatus[] { PermStatus.KO, PermStatus.Stone, PermStatus.Toad };
                if (!killStatuses.Contains(permStatus))
                {
                    StatusSprite statSpr = StatusSpriteManager.GetStatusSprite();
                    SetStatusSprite(statSpr, permStat: permStatus);
                }
            }


            return(ret);
        }
        /////////////
        // Publics //
        /////////////

        public static StatusSprite GetStatusSprite()
        {
            // Check for an available status sprite. If none are available,
            // make and return a new one
            for (int i = 0; i < statusSprites.Count; i++)
            {
                StatusSprite statSpr = statusSprites[i];
                if (!statSpr.Visible)
                {
                    return(statSpr);
                }
            }

            StatusSprite newStatSpr = new StatusSprite();

            newStatSpr.LoadContent(Content); // Revisit
            statusSprites.Add(newStatSpr);
            return(newStatSpr);
        }