Пример #1
0
    void Update()
    {
        if (Player.instance.inputEnabled)
        {
            float axisY = Main.instance.input.GetAxis(0, InputAction.MoveY);

            if (axisY < -0.1f || axisY > 0.1f)
            {
                mCurRot += axisY * rotateSpeed * Time.deltaTime;
                if (mCurRot < rotateMin)
                {
                    mCurRot = rotateMin;
                }
                else if (mCurRot > rotateMax)
                {
                    mCurRot = rotateMax;
                }

                PlatformerSpriteController ctrlSpr = Player.instance.controllerSprite;

                ctrlSpr.anim.Sprite.FlipX = false;

                activeGO.transform.localRotation = Quaternion.AngleAxis(mCurRot, Vector3.forward);

                ctrlSpr.anim.Sprite.FlipX = ctrlSpr.isLeft;
            }
        }
    }
Пример #2
0
    void Awake()
    {
        mPlayer = GetComponent <Player>();
        mPlayer.spawnCallback    += OnPlayerSpawn;
        mPlayer.setStateCallback += OnPlayerSetState;
        mPlayer.setBlinkCallback += OnPlayerBlink;

        mBody = GetComponentInChildren <PlatformerController>();

        mBody.player     = 0;
        mBody.moveInputX = InputAction.MoveX;
        mBody.moveInputY = InputAction.MoveY;
        mBody.jumpInput  = InputAction.Jump;

        mBody.jumpCallback          += OnBodyJump;
        mBody.collisionStayCallback += OnBodyCollisionStay;
        mBody.triggerEnterCallback  += OnBodyTriggerEnter;

        mBodySpriteCtrl = mBody.GetComponent <PlatformerSpriteController>();
        mBodySpriteCtrl.flipCallback            += OnFlipCallback;
        mBodySpriteCtrl.anim.AnimationCompleted += OnBodySpriteAnimFinish;

        mBombCtrl = bomb.GetComponent <BombController>();
        mBombCtrl.deathCallback += OnBombDeathCallback;

        mTargetGO = GameObject.FindGameObjectWithTag("Goal");
    }
Пример #3
0
    //anim

    void OnSpriteCtrlOneTimeClipEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip)
    {
        if (clip.name == clipHurt)
        {
            if (state == (int)EntityState.Hurt)
            {
                state = (int)EntityState.Normal;
            }
        }
    }
Пример #4
0
 void OnAnimFrameEvent(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip, int frame) {
     tk2dSpriteAnimationFrame frameDat = clip.frames[frame];
     switch(mCurPhase) {
         case Phase.Attack:
             if(clip.name == attackWhipClip) {
                 mAttackActive = frameDat.eventInt == 1;
             }
             break;
     }
 }
Пример #5
0
    protected override void Awake()
    {
        mInstance = this;

        base.Awake();

        mTimeTrial = LevelController.isTimeTrial;

        //CameraController camCtrl = CameraController.instance;
        //camCtrl.transform.position = collider.bounds.center;

        //initialize variables
        Main.instance.input.AddButtonCall(0, InputAction.MenuEscape, OnInputPause);

        mCtrl = GetComponent <PlatformerController>();
        mCtrl.collisionEnterCallback += OnRigidbodyCollisionEnter;
        mCtrl.landCallback           += OnLand;

        mDefaultCtrlMoveMaxSpeed = mCtrl.moveMaxSpeed;
        mDefaultCtrlMoveForce    = mCtrl.moveForce;

        mCtrlSpr = GetComponent <PlatformerSpriteController>();

        mCtrlSpr.clipFinishCallback += OnSpriteCtrlOneTimeClipEnd;

        mCapsuleColl           = collider as CapsuleCollider;
        mDefaultColliderCenter = mCapsuleColl.center;
        mDefaultColliderHeight = mCapsuleColl.height;

        mStats = GetComponent <PlayerStats>();

        mBlinks = GetComponentsInChildren <SpriteColorBlink>(true);
        foreach (SpriteColorBlink blinker in mBlinks)
        {
            blinker.enabled = false;
        }

        if (deathGOActivate)
        {
            deathGOActivate.SetActive(false);
        }

        //disable autosave if hardcore
        if (SlotInfo.gameMode == SlotInfo.GameMode.Hardcore)
        {
            //preserveEnergySpent = true;
            mStats.hpPersist           = true;
            PlayerStats.savePersist    = true;
            UserData.instance.autoSave = LevelController.isLevelLoadedComplete;
        }
        else
        {
            PlayerStats.savePersist = false;
        }
    }
Пример #6
0
 void OnSpriteAnimEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip)
 {
     if (clip.name == "fireStart")
     {
         bodySpriteCtrl.PlayOverrideClip("firing");
         mLastFireTime     = 0.0f;
         mCurNumFire       = 0;
         mFiring           = true;
         bodyCtrl.moveSide = 0.0f;
     }
 }
Пример #7
0
    void OnAnimFinish(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip) {
        switch(mCurPhase) {
            case Phase.Attack:
                if(clip.name == attackWhipClip) {
                    //todo: random pattern
                    ToPhase(Phase.Move);
                }
                break;

            case Phase.AirStrike:
                if(clip.name == attackStrikeClipPrep) {
                    bodySpriteCtrl.PlayOverrideClip(attackStrikeClip);

                    bodyCtrl.enabled = false;
                    bodyCtrl.gravityController.enabled = false;

                    rigidbody.velocity = Vector3.zero;
                    rigidbody.drag = 0.0f;

                    //fly towards player's current pos
                    Vector3 playerPos = mPlayer.collider.bounds.center;
                    Vector3 pos = collider.bounds.center;

                    if(!mPlayer.controller.isGrounded) {
                        pos += mPlayer.rigidbody.velocity.normalized * airStrikeOfs;
                    }
                    else {
                        pos.x += mPlayer.controller.moveSide * airStrikeOfs;
                    }

                    mStrikeDir = (playerPos - pos).normalized;

                    mAttackActive = true;
                    mStrikeLastTime = Time.fixedTime;
                }
                break;

            case Phase.ThrowGrenades:
                if(clip.name == attackProjClip) {
                    Vector3 playerPos = mPlayer.collider.bounds.center;
                    Vector3 pos = collider.bounds.center;
                    Vector3 posLaunch = projAttach.position; posLaunch.z = 0.0f;
                    Projectile.Create(projGroup, projType, posLaunch, (playerPos - pos).normalized, mPlayer.transform);
                    mProjCounter++;
                    if(mProjCounter >= projMax)
                        ToPhase(Phase.Move);
                    else {
                        bodySpriteCtrl.PlayOverrideClip(attackProjClip);
                    }
                }
                break;
        }
    }
Пример #8
0
    protected override void Awake()
    {
        mDefaultDieDelay = dieDelay;

        base.Awake();

        mCtrl = GetComponent <PlatformerController>();
        //mCtrl.gravityController.enabled = false;
        //mCtrl.enabled = false;

        mCtrlSpr = GetComponent <PlatformerSpriteController>();

        damageTrigger.damageCallback += OnDamageDealt;

        shaker.enabled = false;
    }
Пример #9
0
    void OnFlipCallback(PlatformerSpriteController ctrl)
    {
        attachSpriteAnim.Sprite.FlipX = ctrl.isLeft;

        if (attachAnimator.isPlaying)
        {
            float t = attachAnimator.currentPlayingTake.sequence.elapsed;
            attachAnimator.PlayAtTime(mBodySpriteCtrl.isLeft ? "throwLeft" : "throw", t);
        }


        Transform attach = attachAnimator.transform;

        Vector3 s = attach.localScale;

        s.x = ctrl.isLeft ? -Mathf.Abs(s.x) : Mathf.Abs(s.x);

        attach.localScale = s;
    }
        public ClipData(PlatformerSpriteController ctrl, tk2dSpriteAnimation lib) {
            idle = lib.GetClipByName(ctrl.idleClip);

            move = lib.GetClipByName(ctrl.moveClip);

            ups = new tk2dSpriteAnimationClip[ctrl.upClips.Length];
            for(int i = 0, len = ctrl.upClips.Length; i < len; i++)
                ups[i] = lib.GetClipByName(ctrl.upClips[i]);

            downs = new tk2dSpriteAnimationClip[ctrl.downClips.Length];
            for(int i = 0, len = ctrl.downClips.Length; i < len; i++)
                downs[i] = lib.GetClipByName(ctrl.downClips[i]);

            wallStick = lib.GetClipByName(ctrl.wallStickClip);
            wallJump = lib.GetClipByName(ctrl.wallJumpClip);

            slide = lib.GetClipByName(ctrl.slideClip);
            //climb = lib.GetClipByName(ctrl.climbClip);
        }
Пример #11
0
    protected override void Awake()
    {
        base.Awake();

        mStats = GetComponent <Stats>();
        mStats.changeHPCallback += OnStatsHPChange;
        mStats.isInvul           = true;

        mBodyCtrl = GetComponent <PlatformerController>();
        if (mBodyCtrl)
        {
            mBodyCtrl.moveSideLock = true;
        }

        mGravCtrl = GetComponent <GravityController>();

        mBodySpriteCtrl = GetComponent <PlatformerSpriteController>();

        mDamageTriggers = GetComponentsInChildren <Damage>(true);

        if (!FSM)
        {
            autoSpawnFinish = true;
        }

        if (stunGO)
        {
            stunGO.SetActive(false);
        }

        if (activator)
        {
            mDefaultDeactiveDelay = activator.deactivateDelay;
        }

        if (deathActivateGO)
        {
            deathActivateGO.SetActive(false);
        }

        //initialize variables
    }
Пример #12
0
    protected override void Awake()
    {
        mInstance = this;

        base.Awake();

        //CameraController camCtrl = CameraController.instance;
        //camCtrl.transform.position = collider.bounds.center;

        //initialize variables
        Main.instance.input.AddButtonCall(0, InputAction.MenuEscape, OnInputPause);

        mCtrl                         = GetComponent <PlatformerController>();
        mCtrl.moveInputX              = InputAction.MoveX;
        mCtrl.moveInputY              = InputAction.MoveY;
        mCtrl.collisionEnterCallback += OnRigidbodyCollisionEnter;

        mDefaultCtrlMoveMaxSpeed = mCtrl.moveMaxSpeed;
        mDefaultCtrlMoveForce    = mCtrl.moveForce;

        mCtrlSpr = GetComponent <PlatformerSpriteController>();

        mCtrlSpr.clipFinishCallback += OnSpriteCtrlOneTimeClipEnd;

        mCapsuleColl           = collider as CapsuleCollider;
        mDefaultColliderCenter = mCapsuleColl.center;
        mDefaultColliderHeight = mCapsuleColl.height;

        mStats = GetComponent <PlayerStats>();

        mBlinks = GetComponentsInChildren <SpriteColorBlink>(true);
        foreach (SpriteColorBlink blinker in mBlinks)
        {
            blinker.enabled = false;
        }

        if (deathGOActivate)
        {
            deathGOActivate.SetActive(false);
        }
    }
Пример #13
0
    void OnBodySpriteAnimEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip)
    {
        if (clip.name == castClip)
        {
            Vector3    pos = collider.bounds.center; pos.z = 0.0f;
            Quaternion rot = Quaternion.AngleAxis(360.0f / ((float)castProjCount), Vector3.forward);
            Vector3    dir = Quaternion.AngleAxis(360.0f * Random.value, Vector3.forward) * Vector3.up;

            for (int i = 0; i < castProjCount; i++)
            {
                //NOTE: assumes seeker proj
                Projectile proj = Projectile.Create(projGroup, castProjSeekType, pos, dir, Player.instance.transform);
                proj.releaseCallback += OnCastProjRelease;
                dir = rot * dir;
            }

            sunnySpawnSfx.Play();

            mCurCastProjCount = castProjCount;
        }
    }
Пример #14
0
    void OnAnimFinish(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip)
    {
        switch (mCurPhase)
        {
        case Phase.Cast:
            if (clip.name == castClip)
            {
                //cast time warp

                //get nearest spawn pt to player
                Vector3 playerPos      = mPlayer.collider.bounds.center;
                Vector3 nearestPt      = Vector3.zero;
                float   nearestDistSqr = Mathf.Infinity;
                for (int i = 0; i < timeWarpSpawnPts.Length; i++)
                {
                    Vector3 p       = timeWarpSpawnPts[i].position;
                    float   distSqr = (p - playerPos).sqrMagnitude;
                    if (distSqr < nearestDistSqr)
                    {
                        nearestPt      = p;
                        nearestDistSqr = distSqr;
                    }
                }

                timeWarp.transform.position = nearestPt;
                timeWarp.gameObject.SetActive(true);
                timeWarp.Play(timeWarpStartTake);

                spellSfx.Play();

                mForceNextPhase = Phase.Jump;
                ToPhase(Phase.SprayNPray);
            }
            break;
        }
    }
Пример #15
0
        public ClipData(PlatformerSpriteController ctrl, tk2dSpriteAnimation lib)
        {
            idle = lib.GetClipByName(ctrl.idleClip);

            move = lib.GetClipByName(ctrl.moveClip);

            ups = new tk2dSpriteAnimationClip[ctrl.upClips.Length];
            for (int i = 0, len = ctrl.upClips.Length; i < len; i++)
            {
                ups[i] = lib.GetClipByName(ctrl.upClips[i]);
            }

            downs = new tk2dSpriteAnimationClip[ctrl.downClips.Length];
            for (int i = 0, len = ctrl.downClips.Length; i < len; i++)
            {
                downs[i] = lib.GetClipByName(ctrl.downClips[i]);
            }

            wallStick = lib.GetClipByName(ctrl.wallStickClip);
            wallJump  = lib.GetClipByName(ctrl.wallJumpClip);

            slide = lib.GetClipByName(ctrl.slideClip);
            //climb = lib.GetClipByName(ctrl.climbClip);
        }
Пример #16
0
    protected override void Awake() {
        mInstance = this;

        base.Awake();

        //CameraController camCtrl = CameraController.instance;
        //camCtrl.transform.position = collider.bounds.center;

        //initialize variables
        Main.instance.input.AddButtonCall(0, InputAction.MenuEscape, OnInputPause);

        mCtrl = GetComponent<PlatformerController>();
        mCtrl.moveInputX = InputAction.MoveX;
        mCtrl.moveInputY = InputAction.MoveY;
        mCtrl.collisionEnterCallback += OnRigidbodyCollisionEnter;

        mDefaultCtrlMoveMaxSpeed = mCtrl.moveMaxSpeed;
        mDefaultCtrlMoveForce = mCtrl.moveForce;

        mCtrlSpr = GetComponent<PlatformerSpriteController>();

        mCtrlSpr.clipFinishCallback += OnSpriteCtrlOneTimeClipEnd;

        mCapsuleColl = collider as CapsuleCollider;
        mDefaultColliderCenter = mCapsuleColl.center;
        mDefaultColliderHeight = mCapsuleColl.height;

        mStats = GetComponent<PlayerStats>();

        mBlinks = GetComponentsInChildren<SpriteColorBlink>(true);
        foreach(SpriteColorBlink blinker in mBlinks) {
            blinker.enabled = false;
        }

        if(deathGOActivate)
            deathGOActivate.SetActive(false);
    }
Пример #17
0
 void OnBodySpriteChangeFace(PlatformerSpriteController ctrl)
 {
 }
Пример #18
0
 void OnSpriteAnimEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip) {
     if(clip.name == "fireStart") {
         bodySpriteCtrl.PlayOverrideClip("firing");
         mLastFireTime = 0.0f;
         mCurNumFire = 0;
         mFiring = true;
         bodyCtrl.moveSide = 0.0f;
     }
 }
Пример #19
0
    protected override void Awake() {
        base.Awake();

        mStats = GetComponent<Stats>();
        mStats.changeHPCallback += OnStatsHPChange;
        mStats.isInvul = true;

        mBodyCtrl = GetComponent<PlatformerController>();
        if(mBodyCtrl)
            mBodyCtrl.moveSideLock = true;

        mGravCtrl = GetComponent<GravityController>();

        mBodySpriteCtrl = GetComponent<PlatformerSpriteController>();

        mDamageTriggers = GetComponentsInChildren<Damage>(true);

        if(!FSM)
            autoSpawnFinish = true;

        if(stunGO)
            stunGO.SetActive(false);

        if(activator)
            mDefaultDeactiveDelay = activator.deactivateDelay;

        if(deathActivateGO)
            deathActivateGO.SetActive(false);

        //initialize variables
    }
Пример #20
0
    //anim

    void OnSpriteCtrlOneTimeClipEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip) {
        if(clip.name == clipHurt) {
            if(state == (int)EntityState.Hurt)
                state = (int)EntityState.Normal;
        }
    }