private IEnumerator DisableSprite(CharacterSprite charSprite)
    {
        yield return(new WaitForSeconds(SpriteTime));

        charSprite.Face.enabled   = false;
        charSprite.Outfit.enabled = false;
    }
Ejemplo n.º 2
0
        //----------------------//------------------------//

        public CharacterBase(Texture2D texture)
        {
            CharacterSprite = new CharacterSprite(texture);

            // Physics variables init
            _knockbackAcceleration = 0f;
            _dyingAcceleration     = 0f;
            IgnoreGravity          = false;

            // Battle system init
            _hp                   = 1;
            _requestAttack        = false;
            _isAttacking          = false;
            _attackType           = -1;
            _attackCooldownTick   = 0f;
            AttackCooldown        = 0f;
            _shot                 = false;
            _dying                = false;
            _canReceiveAttacks    = true;
            _contactDamageEnabled = true;

            // Rand init
            _rand = new Random();

            _firstGroudLand = false;
        }
Ejemplo n.º 3
0
    private void CreateText(double x, double y, double maxWidth)
    {
        _bitmapText.Clear();
        double currentX = 0;
        double currentY = 0;

        string[] words = _text.Split(' ');
        foreach (string word in words)
        {
            Vector nextWordLength = _font.MeasureFont(word);
            if (maxWidth != -1 && (currentX + nextWordLength.X) > maxWidth)
            {
                currentX  = 0;
                currentY += nextWordLength.Y;
            }
            string wordWithSpace = word + " "; // add the space character that was removed
            foreach (char c in wordWithSpace)
            {
                CharacterSprite sprite  = _font.CreateSprite(c);
                float           xOffset = (((float)sprite.Data.Width) * 0.5f) + ((float)sprite.Data.XOffset);
                float           yOffset = (((float)sprite.Data.Height) * 0.5f) + ((float)sprite.Data.YOffset);
                sprite.Sprite.SetPosition(x + currentX + xOffset, y - currentY - yOffset);
                currentX += sprite.Data.XAdvance + sprite.Data.XOffset;
                _bitmapText.Add(sprite);
            }
        }
        _dimensions   = _font.MeasureFont(_text);
        _dimensions.Y = currentY;
        SetColor();
    }
Ejemplo n.º 4
0
    private IEnumerator AnimateDim(bool isDimmed, CharacterSprite cSprite)
    {
        float _lerpTime    = 1f;
        float _curLerpTime = 0f;


        float _startDim = 0f;
        float _endDim   = 0.7f;

        if (!isDimmed)
        {
            _endDim = 1f;
        }

        Color _outfitColor = new Color();

        do
        {
            _curLerpTime += Time.deltaTime;
            float t           = _curLerpTime / _lerpTime;
            float _currentDim = Mathf.Lerp(_startDim, _endDim, t);

            _outfitColor.r = _currentDim;
            _outfitColor.g = _currentDim;
            _outfitColor.b = _currentDim;

            cSprite.Face.color = _outfitColor;

            yield return(null);
        } while (_curLerpTime < _lerpTime);
    }
Ejemplo n.º 5
0
        public Bird(Texture2D texture) : base(texture)
        {
            // Stand
            CharacterSprite.CreateFrameList("stand", 200);
            CharacterSprite.AddCollider("stand", new Rectangle(15, 3, 36, 30));
            CharacterSprite.AddFrames("stand", new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 32),
                new Rectangle(64, 0, 64, 32),
                new Rectangle(128, 0, 64, 32)
            });

            // Jumping
            CharacterSprite.CreateFrameList("jumping", 200);
            CharacterSprite.AddCollider("jumping", new Rectangle(15, 3, 36, 30));
            CharacterSprite.AddFrames("jumping", new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 32),
                new Rectangle(64, 0, 64, 32),
                new Rectangle(128, 0, 64, 32)
            });

            // Walking
            CharacterSprite.CreateFrameList("walking", 200);
            CharacterSprite.AddCollider("walking", new Rectangle(15, 3, 36, 30));
            CharacterSprite.AddFrames("walking", new List <Rectangle>()
            {
                new Rectangle(0, 0, 64, 32),
                new Rectangle(64, 0, 64, 32),
                new Rectangle(128, 0, 64, 32)
            });
        }
Ejemplo n.º 6
0
        public Ghost(Texture2D texture) : base(texture)
        {
            // Stand
            CharacterSprite.CreateFrameList("stand", 120);
            CharacterSprite.AddCollider("stand", new Rectangle(3, 32, 25, 30));
            CharacterSprite.AddFrames("stand", new List <Rectangle>()
            {
                new Rectangle(0, 0, 32, 64),
                new Rectangle(32, 0, 32, 64),
                new Rectangle(64, 0, 32, 64),
                new Rectangle(96, 0, 32, 64)
            });

            // Jumping
            CharacterSprite.CreateFrameList("jumping", 120);
            CharacterSprite.AddCollider("jumping", new Rectangle(3, 32, 25, 30));
            CharacterSprite.AddFrames("jumping", new List <Rectangle>()
            {
                new Rectangle(0, 0, 32, 64),
                new Rectangle(32, 0, 32, 64),
                new Rectangle(64, 0, 32, 64),
                new Rectangle(96, 0, 32, 64)
            });

            // Walking
            CharacterSprite.CreateFrameList("walking", 120);
            CharacterSprite.AddCollider("walking", new Rectangle(3, 32, 25, 30));
            CharacterSprite.AddFrames("walking", new List <Rectangle>()
            {
                new Rectangle(0, 0, 32, 64),
                new Rectangle(32, 0, 32, 64),
                new Rectangle(64, 0, 32, 64),
                new Rectangle(96, 0, 32, 64)
            });
        }
Ejemplo n.º 7
0
 public override void UpdateFrameList()
 {
     if (_collapsing)
     {
         CharacterSprite.SetFrameList("collapsing");
     }
     else if (_preparingDash)
     {
         CharacterSprite.SetFrameList("dash_preparation");
     }
     else if (_isDashing)
     {
         CharacterSprite.SetFrameList("dash_attack");
     }
     else if (_isAttacking)
     {
         CharacterSprite.SetFrameList(_attackFrameList[_attackType]);
     }
     else if (CharacterSprite.ImmunityAnimationActive)
     {
         CharacterSprite.SetIfFrameListExists("damage");
     }
     else if (!_isOnGround)
     {
         CharacterSprite.SetIfFrameListExists("jumping");
     }
     else
     {
         CharacterSprite.SetFrameList("stand");
     }
 }
    public void SlideActor(ActorSlot actor)
    {
        Debug.Log("Slide actor");
        CharacterSprite charSprite = CutsceneManager.Instance.rightCharacter.GetComponent <CharacterSprite>();

        charSprite.Face.enabled   = true;
        charSprite.Outfit.enabled = true;
        charSprite.Face.sprite    = actor.Actor.BattleFacePath.Get();
        charSprite.Outfit.sprite  = actor.Actor.BattleOutfitPath.Get();

        Transform dest       = CutsceneManager.Instance.RightSpot;
        Image     rightImage = CutsceneManager.Instance.rightCharacter;

        Vector3 _beginPoint = new Vector3(dest.position.x + 100, rightImage.transform.position.y, rightImage.transform.position.z);
        Vector3 _endPoint   = new Vector3(CutsceneManager.Instance.RightSpot.position.x, _beginPoint.y, _beginPoint.z);

        Image _face   = charSprite.Face;
        Image _outfit = charSprite.Outfit;

        rightImage.transform.position = _beginPoint;
        LeanTween.move(rightImage.gameObject, _endPoint, SpriteTime);

        MovementNode.ColorChange(_outfit.gameObject, new Color(0.7f, 0.7f, 0.7f, 1), new Color(1, 1, 1, 1), SpriteTime);
        MovementNode.ColorChange(_face.gameObject, new Color(0.7f, 0.7f, 0.7f, 1), new Color(1, 1, 1, 1), SpriteTime);
    }
Ejemplo n.º 9
0
 private void Awake()
 {
     rb2d            = GetComponent <Rigidbody2D>();
     sprite          = GetComponent <CharacterSprite>();
     map             = GameObject.Find("Main Camera").GetComponent <DrawMap>();
     cameraMovement  = map.GetComponent <CameraMovement>();
     groundLayerMask = 1 << LayerMask.NameToLayer("Ground");
 }
Ejemplo n.º 10
0
 void Awake()
 {
     Sprite              = GetComponentInChildren <CharacterSprite>();
     Input               = new CharacterInput();
     StateMachine        = new FiniteStateMachine();
     States              = new CharacterStates();
     States.idleState    = new IdleState(this);
     States.jumpingState = new JumpingState(this);
 }
 private void InitWheelMode(float targetX)
 {
     _movementSide   = Math.Sign(targetX - Position.X);
     _movement       = 0f;
     _acceleration   = 0f;
     _enterWheelMode = true;
     _velocity.Y     = -1000f;
     CharacterSprite.SetFrameList("enter_wheel_mode");
 }
Ejemplo n.º 12
0
    // Start is called before the first frame update
    void Start()
    {
        MvCon = GetComponent <MovementController>();
        Rigid = GetComponent <Rigidbody>();
        ChSpr = GetComponent <CharacterSprite>();
        ChAu  = GetComponent <CharacterAudioManager>();

        MeleeOffset = MeleeHitbox.localPosition.x;
    }
Ejemplo n.º 13
0
        private void CheckKeys(GameTime gameTime)
        {
            if (_dying)
            {
                return;
            }

            // Movement
            if (InputManager.Instace.KeyDown(Keys.Left) && Math.Abs(_knockbackAcceleration) < 1200f)
            {
                CharacterSprite.SetDirection(SpriteDirection.Left);
                _bottomSprite.SetDirection(SpriteDirection.Left);
                _movement = -1.0f;
            }
            else if (InputManager.Instace.KeyDown(Keys.Right) && Math.Abs(_knockbackAcceleration) < 1200f)
            {
                CharacterSprite.SetDirection(SpriteDirection.Right);
                _bottomSprite.SetDirection(SpriteDirection.Right);
                _movement = 1.0f;
            }

            // Attack
            if (!_isAttacking && InputManager.Instace.KeyDown(Keys.Z))
            {
                RequestAttack(ShotAttack);
            }

            // Jump
            _isJumping = InputManager.Instace.KeyDown(Keys.C);

            // Recharging
            _recharging = _isOnGround && InputManager.Instace.KeyDown(Keys.X);
            if (_recharging)
            {
                if (CharacterSprite.CurrentFrame != 2)
                {
                    _recharged = false;
                }

                if (CharacterSprite.CurrentFrame == 0)
                {
                    TriggerRechargingParticles();
                }
                else if (CharacterSprite.CurrentFrameList == "recharging" && CharacterSprite.CurrentFrame == 2 && !_recharged)
                {
                    _recharged = true;
                    var newAmmo = _ammo + 3;
                    _ammo = MathHelper.Clamp(newAmmo, 0, MaxAmmo);
                    _vacuumSei.PlaySafe();
                }
            }
            if (_recharging && CharacterSprite.CurrentFrame == 0)
            {
                TriggerRechargingParticles();
            }
        }
Ejemplo n.º 14
0
 public bool Update(TimeSpan deltaTime)
 {
     for (int e = 0; e < _entities.Count; ++e)
     {
         Transform       trans  = _transforms[_entities[e].ComponentIndices[0]];
         CharacterSprite sprite = _sprites[_entities[e].ComponentIndices[1]];
         _renderer.AddCharacter(sprite.Character, sprite.ForeColor, sprite.BackColor, trans.LocalLeft, trans.LocalTop);
     }
     return(true);
 }
 private void UpdateEnterWheel()
 {
     if (CharacterSprite.CurrentFrameList == "enter_wheel_mode" && CharacterSprite.Looped)
     {
         _enterWheelMode = false;
         _wheelMode      = true;
         _wheelTick      = InitialWheelTime;
         CharacterSprite.SetFrameList("wheel_mode");
         _emitSparkTime = 800f;
     }
 }
Ejemplo n.º 16
0
        /// <summary>
        /// Initializes the Character.
        /// </summary>
        /// <param name="map">The Map to place the Character on.</param>
        /// <param name="skelManager">The SkeletonManager to use for the Character's skeletons.</param>
        public virtual void Initialize(Map map, SkeletonManager skelManager)
        {
            // HACK: This is quite a dirty way to do this
            _map = map;
            _interpolator.Teleport(Position);

            _characterSprite = CreateCharacterSprite(this, this, skelManager);

            CharacterSprite.SetSet(BodyInfo.Stand, BodyInfo.Size);
            CharacterSprite.SetBody(BodyInfo.Body);
        }
Ejemplo n.º 17
0
    void Start()
    {
        CharacterSprite controller        = new CharacterSprite();
        Sprite          frontFacingSprite = controller.GetFrontFacing();

        GameObject     character = GameObject.Find("character");
        SpriteRenderer renderer  = character.GetComponent <SpriteRenderer>();

        renderer.sprite = frontFacingSprite;

        character.transform.position = new Vector3(0.2f, 0.2f, 1);
    }
Ejemplo n.º 18
0
        //----------------------//------------------------//

        public Enemy(Texture2D texture) : base(texture)
        {
            _viewRangeTexture = new Texture2D(SceneManager.Instance.GraphicsDevice, 1, 1, false, SurfaceFormat.Color);
            _viewRangeTexture.SetData(new Color[] { Color.Green });
            _lastPosition      = Position;
            _enemyType         = EnemyType.None;
            _hasViewRange      = false;
            _viewRangeCooldown = 0f;
            _viewRangeOffset   = Vector2.Zero;
            _damage            = 0;
            _coins             = 3;
            CharacterSprite.SetImmunityMaxTime(0.35f);
        }
Ejemplo n.º 19
0
    // Start is called before the first frame update
    protected virtual void Start()
    {
        col      = GetComponent <Collider2D>();
        body     = GetComponent <Rigidbody2D>();
        animator = GetComponentInChildren <Animator>();

        characterSprite = GetComponentInChildren <CharacterSprite>();
        if (characterSprite)
        {
            characterSprite.onFatalHit           += Kill;
            characterSprite.onCanActChanged      += CanAct;
            characterSprite.onMoveAnimationEvent += MoveAnimationEvent;
        }
    }
Ejemplo n.º 20
0
 public override void UpdateFrameList()
 {
     if (_dying)
     {
         CharacterSprite.SetIfFrameListExists("dying");
     }
     else if (CharacterSprite.ImmunityAnimationActive)
     {
         CharacterSprite.SetIfFrameListExists("damage");
     }
     else
     {
         CharacterSprite.SetFrameList("stand");
     }
 }
Ejemplo n.º 21
0
 public override void RequestAttack(int type)
 {
     if (type == Dash)
     {
         _preparingDash = true;
         CharacterSprite.SetFrameList("dash_preparation");
     }
     else
     {
         if (type == Cannonballs)
         {
             CreateCannonballs();
         }
         base.RequestAttack(type);
     }
 }
Ejemplo n.º 22
0
 public override void PlayerOnSight(Vector2 playerPosition)
 {
     if (Position.X - playerPosition.X > 0)
     {
         CharacterSprite.Effect = SpriteEffects.FlipHorizontally;
     }
     else
     {
         CharacterSprite.Effect = SpriteEffects.None;
     }
     if (!_alertAnimation && !_isAttacking)
     {
         _alertAnimation    = true;
         _viewRangeCooldown = 1500f;
         CharacterSprite.SetFrameList("alert");
     }
 }
Ejemplo n.º 23
0
 protected override void getDefeated()
 {
     foreach (NodeController attackNode in TargetNodes)
     {
         attackNode.storedDamage -= 1;
         if (attackNode.storedDamage <= 0)
         {
             attackNode.dangerous = false;
         }
     }
     CharacterSprite.SetActive(false);
     //healthBar.gameObject.SetActive(false);
     //stunEffect.SetActive(false);
     currentNode.GetComponent <NodeController>().occupant = null;
     currentNode = null;
     knockedOut  = true;
 }
Ejemplo n.º 24
0
 public override void UpdateFrameList()
 {
     CharacterSprite.IsVisible = !_onHole;
     if (_dying)
     {
         CharacterSprite.SetFrameList("dying");
     }
     else if (!_isOnGround)
     {
         var frameList = _velocity.Y == 0 ? "jump_zero" : _velocity.Y > 0 ? "jump_down" : "jump_up";
         CharacterSprite.SetFrameList(frameList);
     }
     else if (_stuckOnGroud)
     {
         CharacterSprite.SetFrameList("stuck");
     }
 }
Ejemplo n.º 25
0
 public override void UpdateFrameList()
 {
     if (_confusionTick > 0f)
     {
         CharacterSprite.SetFrameList("confusion");
     }
     else if (_enterWheelMode)
     {
         CharacterSprite.SetFrameList("enter_wheel_mode");
     }
     else if (_wheelMode)
     {
         CharacterSprite.SetFrameList("wheel_mode");
     }
     else
     {
         base.UpdateFrameList();
     }
 }
    public void HideSprite()
    {
        CharacterSprite charSprite = CutsceneManager.Instance.rightCharacter.GetComponent <CharacterSprite>();


        Transform dest       = CutsceneManager.Instance.RightSpot;
        Image     rightImage = CutsceneManager.Instance.rightCharacter;

        Vector3 _endPoint = new Vector3(CutsceneManager.Instance.RightSpot.position.x + 100, charSprite.transform.position.y, charSprite.transform.position.z);

        Image _face   = charSprite.Face;
        Image _outfit = charSprite.Outfit;

        LeanTween.move(rightImage.gameObject, _endPoint, SpriteTime);

        MovementNode.ColorChange(_outfit.gameObject, new Color(1f, 1f, 1f, 1), new Color(0.0f, 0.0f, 0.0f, 0.0f), SpriteTime);
        MovementNode.ColorChange(_face.gameObject, new Color(1, 1, 1, 1), new Color(0.0f, 0.0f, 0.0f, 0.0f), SpriteTime);
        StartCoroutine(DisableSprite(charSprite));
    }
Ejemplo n.º 27
0
        public override void ReceiveAttack(int damage, Vector2 subjectPosition)
        {
            if (_dying || IsImunity)
            {
                return;
            }

            CharacterSprite.RequestImmunityAnimation();

            _hp = _hp - damage < 0 ? 0 : _hp - damage;
            if (_hp == 0)
            {
                IgnoreGravity      = false;
                _dyingAcceleration = Math.Sign(Position.X - subjectPosition.X) * 0.7f;
                OnDie();
            }

            _hitSe.PlaySafe();
        }
Ejemplo n.º 28
0
        //----------------------//------------------------//

        public Parrot(Texture2D texture) : base(texture)
        {
            _enemyType = EnemyType.Parrot;

            // Stand
            CharacterSprite.CreateFrameList("stand", 150);
            CharacterSprite.AddCollider("stand", new Rectangle(2, 8, 29, 17));
            CharacterSprite.AddFrames("stand", new List <Rectangle>()
            {
                new Rectangle(0, 0, 32, 32),
                new Rectangle(32, 0, 32, 32),
                new Rectangle(64, 0, 32, 32),
                new Rectangle(96, 0, 32, 32)
            }, new int[] { 0, 0, 0, 0 }, new int[] { 0, 0, 0, 0 });

            // Damage
            CharacterSprite.CreateFrameList("damage", 0);
            CharacterSprite.AddCollider("damage", new Rectangle(2, 8, 29, 17));
            CharacterSprite.AddFrames("damage", new List <Rectangle>()
            {
                new Rectangle(0, 32, 32, 32)
            }, new int[] { 0, 0, 0, 0 }, new int[] { 0, 0, 0, 0 });

            // Dying
            CharacterSprite.CreateFrameList("dying", 0);
            CharacterSprite.AddCollider("dying", new Rectangle(2, 8, 29, 17));
            CharacterSprite.AddFrames("dying", new List <Rectangle>()
            {
                new Rectangle(0, 32, 32, 32)
            }, new int[] { 0, 0, 0, 0 }, new int[] { 0, 0, 0, 0 });

            // Combat system init
            _hp           = 1;
            _damage       = 2;
            _flyDirection = Direction.Right;

            // SE init
            _hitSe = SoundManager.LoadSe("ParrotHit");

            IgnoreGravity = true;
        }
Ejemplo n.º 29
0
        public void SetChar(char ch, CharacterSprite sprite)
        {
            if (!malleable)
            {
                throw new Exception("this font is not malleable");
            }

            if (!chars.ContainsKey(ch))
            {
                chars.Add(ch, sprite);
            }
            else
            {
                chars[ch] = sprite;
            }

            if (sprite.Height > height)
            {
                height = sprite.Height;
            }
        }
 public override void UpdateFrameList()
 {
     if (!_dying && !CharacterSprite.ImmunityAnimationActive)
     {
         if (_confusionTick > 0f)
         {
             CharacterSprite.SetFrameList("confusion");
         }
         else if (_enterWheelMode)
         {
             CharacterSprite.SetFrameList("enter_wheel_mode");
         }
         else if (_wheelMode)
         {
             CharacterSprite.SetFrameList("wheel_mode");
         }
     }
     else
     {
         base.UpdateFrameList();
     }
 }