Example #1
0
    void UpdateInternal(float dt)
    {
        UpdateFlash();

        if (weaponRenderer_ != null)
        {
            weaponRenderer_.enabled = isHumanControlled_;
        }

        if (isHumanControlled_)
        {
            UpdateInternal_MouseControls(dt);
            camPositioner_.Target = lookAt_;
        }

        bool isRunning = latestFixedMovenentDirection_ != Vector3.zero;

        renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(isRunning ? Anim.Run : Anim.Idle, Anim.DefaultAnimationFramesPerSecond);

        if (ShowCollisionDebug)
        {
            DrawCollisionDebug();
        }
        UpdateEffects(dt);
    }
    public void UpdateAnimation(Vector3 latestMovementDirection, bool isDead = false, bool isAttacking = false)
    {
        if (isDead)
        {
            renderer_.sprite = SpriteWhenDead;
        }
        else if (isAttacking)
        {
            renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(Anim.Attack, Anim.DefaultAnimationFramesPerSecond, 0);
        }
        else
        {
            bool isRunning = latestMovementDirection != Vector3.zero;
            renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(isRunning ? Anim.Run : Anim.Idle, Anim.DefaultAnimationFramesPerSecond, randomOffset_);
        }

        if (latestMovementDirection.x == 0)
        {
            renderer_.flipX = latestFlip_;
        }
        else
        {
            renderer_.flipX = latestMovementDirection.x < 0;
            latestFlip_     = renderer_.flipX;
        }
    }
Example #3
0
        private void Start()
        {
            CurrentMovementState = MovementState.Idle;
            this.spriteAnimator  = GetComponent <SimpleSpriteAnimator>();

            this.playerController = GetComponent <PlayerController>();
        }
Example #4
0
    void UpdatePlayer(float dt)
    {
        moveVec_ = Vector3.zero;

        renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(Anim.Idle, Anim.DefaultAnimationFramesPerSecond);
        renderer_.flipX  = flipX_;
    }
Example #5
0
    public void UpdateAnimation(Vector3 latestMovementDirection, bool isDead = false, bool isAttacking = false)
    {
        if (isDead)
        {
            renderer_.sprite = SpriteWhenDead;
        }
        else
        {
            renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(Anim.Sprites, Anim.DefaultAnimationFramesPerSecond, randomOffset_);
        }

        renderer_.flipX = latestMovementDirection.x < 0;
    }
Example #6
0
    public void SetOverrideAnim(List <Sprite> frames, float frameDuration)
    {
        GetComponent <Animator>().enabled = false;
        SimpleSpriteAnimator animator = GetComponent <SimpleSpriteAnimator>();

        if (animator == null)
        {
            animator = gameObject.AddComponent <SimpleSpriteAnimator>();
        }
        animator.frames        = frames;
        animator.frameDuration = frameDuration;
        animator.enabled       = true;
        animator.Update();
    }
    private IEnumerator cs_playAnim(DynValue args)
    {
        string               name     = args.Table.Get(ArgName).String;
        float                duration = FloatArg(args, ArgDuration, 0.5f);
        List <Sprite>        sprites  = new List <Sprite>(Resources.LoadAll <Sprite>(AnimPath + name));
        SimpleSpriteAnimator animator = chara.animLayer.GetComponent <SimpleSpriteAnimator>();

        animator.frames        = sprites;
        animator.frameDuration = duration;
        yield return(animator.PlayOnceRoutine());

        animator.frames.Clear();
        chara.animLayer.sprite = null;
    }
Example #8
0
    void Start()
    {
        animator = GetComponent <SimpleSpriteAnimator>();
        fsm      = new SimpleAnimFSM();

        //Add our triggers to the FSM.
        fsm.AddTrigger(Warrior.Keywords.deathTrigger);
        fsm.AddTrigger(Warrior.Keywords.attackTrigger);
        fsm.AddTrigger(Warrior.Keywords.respawnTrigger);

        //Add our persistent variables to the FSM.
        fsm.AddVar(Warrior.Keywords.canMove, true);
        fsm.AddVar(Warrior.Keywords.moveInput, false);

        //TODO: Add states to FSM.
    }
Example #9
0
    IEnumerator <float> WanderCo(float startDelay)
    {
        if (!path_.HasPath)
        {
            yield break;
        }

        yield return(Timing.WaitForSeconds(startDelay));

        float t    = 0;
        float endT = path_.EndT;

        while (true)
        {
            var oldPos = transform_.position;
            var newPos = path_.GetPosAtTime(t);
            transform_.position = newPos;

            var  movement  = newPos - oldPos;
            bool flipX     = movement.x < 0;
            bool isRunning = movement.sqrMagnitude > 0.01f * 0.01f;
            renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(isRunning ? Anim.Run : Anim.Idle, Anim.DefaultAnimationFramesPerSecond);
            renderer_.flipX  = flipX;

            if (t == 0)
            {
                ParticleScript.EmitAtPosition(ParticleScript.Instance.PlayerLandParticles, newPos, 5);
                ParticleScript.EmitAtPosition(ParticleScript.Instance.WallDestructionParticles, newPos, 5);
                ParticleScript.EmitAtPosition(ParticleScript.Instance.MuzzleFlashParticles, newPos, 1);
            }

            t += Time.unscaledDeltaTime;
            if (t >= endT)
            {
                ParticleScript.EmitAtPosition(ParticleScript.Instance.PlayerLandParticles, newPos, 5);
                ParticleScript.EmitAtPosition(ParticleScript.Instance.WallDestructionParticles, newPos, 5);
                ParticleScript.EmitAtPosition(ParticleScript.Instance.MuzzleFlashParticles, newPos, 1);

                gameObject.SetActive(false);
                yield break;
            }

            yield return(0);
        }
    }
Example #10
0
    void UpdateInternal_KeyboardControls(float dt)
    {
        bool    hasRecentlyFiredWeapon   = CurrentWeapon.LatestFiringTimeUnscaled > Time.unscaledTime - 0.70f;
        Vector3 latestHorizontalMovement = new Vector3(latestFixedMovenentDirection_.x, 0, 0);
        Vector3 facingDirection          = hasRecentlyFiredWeapon ? CurrentWeapon.LatestFiringDirection : latestHorizontalMovement;

        if (facingDirection.x != 0)
        {
            latestFacingDirection_ = facingDirection.x;
        }

        flipX_ = latestFacingDirection_ < 0;
        weaponTransform_.localPosition = WeaponOffsetRight;

        bool isRunning = latestFixedMovenentDirection_ != Vector3.zero;

        if (isRunning)
        {
            lookAt_ = transform_.position + latestFixedMovenentDirection_ * LookAtOffset;
        }

        renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(isRunning ? Anim.Run : Anim.Idle, Anim.DefaultAnimationFramesPerSecond);
        renderer_.flipX  = flipX_;

        // Weapon positioning
        var weaponOffset = WeaponOffsetRight;

        weaponOffset.x *= flipX_ ? -1 : 1;
        weaponTransform_.localPosition = weaponOffset;
        weaponRenderer_.flipX          = flipX_;
        float weaponRotation = 0;

        if (facingDirection.y < 0)
        {
            weaponRotation = -90;
        }
        else if (facingDirection.y > 0)
        {
            weaponRotation = 90;
        }

        weaponTransform_.rotation = Quaternion.Euler(0, 0, weaponRotation);
    }
    void Start()
    {
        animator = GetComponent <SimpleSpriteAnimator>();
        fsm      = new SimpleAnimFSM();

        //Add our triggers to the FSM.
        fsm.AddTrigger(Warrior.Keywords.deathTrigger);
        fsm.AddTrigger(Warrior.Keywords.attackTrigger);
        fsm.AddTrigger(Warrior.Keywords.respawnTrigger);

        //Add our persistent variables to the FSM.
        fsm.AddVar(Warrior.Keywords.canMove, true);
        fsm.AddVar(Warrior.Keywords.moveInput, false);

        //Add states to the FSM.
        fsm.AddState(StateID.IDLE_STATE, new IdleState_COMPLETED(idleID, animator, fsm));
        fsm.AddState(StateID.WALK_STATE, new WalkState_COMPLETED(walkID, animator, fsm));
        fsm.AddState(StateID.ATTACK_STATE, new AttackState_COMPLETED(attackID, animator, fsm));
        fsm.AddState(StateID.DIE_STATE, new DieState_COMPLETED(deathID, animator, fsm));

        //Initialize FSM state.
        fsm.SetState(StateID.IDLE_STATE);
    }
Example #12
0
 private void Update()
 {
     // TODO: flipX from player X
     renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(Anim.Sprites, Anim.DefaultAnimationFramesPerSecond);
 }
Example #13
0
 public AttackState(int p_clipID, SimpleSpriteAnimator p_anim, SimpleAnimFSM p_fsm)
     : base(p_clipID, p_anim, p_fsm)
 {
 }
Example #14
0
 void Start()
 {
     spriteAnimator  = GetComponent <SimpleSpriteAnimator>();
     movementHandler = GetComponent <MovementHandler>();
     musicManager.SwitchGenderSounds(CurrentPlayerState);
 }
Example #15
0
 public AnimState(int p_clipID, SimpleSpriteAnimator p_anim, SimpleAnimFSM p_fsm)
 {
     clipID = p_clipID;
     anim   = p_anim;
     fsm    = p_fsm;
 }
Example #16
0
 void Update()
 {
     renderer_.sprite = SimpleSpriteAnimator.GetAnimationSprite(Anim.Sprites, Anim.DefaultAnimationFramesPerSecond);
 }
 public WalkState_COMPLETED(int p_clipID, SimpleSpriteAnimator p_anim, SimpleAnimFSM p_fsm)
     : base(p_clipID, p_anim, p_fsm)
 {
 }
Example #18
0
 void Start()
 {
     _controller = GetComponent <CharacterController>();
     _animator   = GetComponent <SimpleSpriteAnimator>();
     _sprite     = transform.Find("Sprite");
 }