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; } } }
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"); }
//anim void OnSpriteCtrlOneTimeClipEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip) { if (clip.name == clipHurt) { if (state == (int)EntityState.Hurt) { state = (int)EntityState.Normal; } } }
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; } }
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; } }
void OnSpriteAnimEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip) { if (clip.name == "fireStart") { bodySpriteCtrl.PlayOverrideClip("firing"); mLastFireTime = 0.0f; mCurNumFire = 0; mFiring = true; bodyCtrl.moveSide = 0.0f; } }
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; } }
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; }
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); }
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 }
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); } }
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; } }
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; } }
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); }
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); }
void OnBodySpriteChangeFace(PlatformerSpriteController ctrl) { }
void OnSpriteAnimEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip) { if(clip.name == "fireStart") { bodySpriteCtrl.PlayOverrideClip("firing"); mLastFireTime = 0.0f; mCurNumFire = 0; mFiring = true; bodyCtrl.moveSide = 0.0f; } }
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 }
//anim void OnSpriteCtrlOneTimeClipEnd(PlatformerSpriteController ctrl, tk2dSpriteAnimationClip clip) { if(clip.name == clipHurt) { if(state == (int)EntityState.Hurt) state = (int)EntityState.Normal; } }