public void DownStart() { downCount = 0; isWakeUp = false; stateBase.ChangeSkillConstant(SkillConstants.Down, 0); }
//やられ public void HitStunStart() { isEndStun = false; FighterSkill.CustomHitBox box = stateBase.core.GetDamage; //硬直 hitRigor = box.hitRigor; hitCount = 0; //ヒットストップ GameManager.Instance.SetHitStop(stateBase.core.PlayerNumber, box.hitStop); //相打ち時に受けたほうを優先する if (GameManager.Instance.GetHitStop(stateBase.core.EnemyNumber) <= 0) { GameManager.Instance.SetHitStop(stateBase.core.EnemyNumber, box.hitStop); } //立ちやられ if (stateBase.core.GetDamage.frameHitBoxes.Count > 0) { //ダメージ処理 stateBase.core.HP -= box.damage; if (stateBase.core.HP < 0) { stateBase.core.HP = 0; } switch (box.hitPoint) { case HitPoint.Bottom: switch (box.hitStrength) { case HitStrength.Light: stateBase.ChangeSkillConstant(SkillConstants.Stand_Light_Bottom_HitMotion, 0); break; case HitStrength.Middle: stateBase.ChangeSkillConstant(SkillConstants.Stand_Middle_Bottom_HitMotion, 0); break; case HitStrength.Strong: stateBase.ChangeSkillConstant(SkillConstants.Stand_Strong_Bottom_HitMotion, 0); break; } break; case HitPoint.Middle: switch (box.hitStrength) { case HitStrength.Light: stateBase.ChangeSkillConstant(SkillConstants.Stand_Light_Middle_HitMotion, 0); break; case HitStrength.Middle: stateBase.ChangeSkillConstant(SkillConstants.Stand_Middle_Middle_HitMotion, 0); break; case HitStrength.Strong: stateBase.ChangeSkillConstant(SkillConstants.Stand_Strong_Middle_HitMotion, 0); break; } break; case HitPoint.Top: switch (box.hitStrength) { case HitStrength.Light: stateBase.ChangeSkillConstant(SkillConstants.Stand_Light_Top_HitMotion, 0); break; case HitStrength.Middle: stateBase.ChangeSkillConstant(SkillConstants.Stand_Middle_Top_HitMotion, 0); break; case HitStrength.Strong: stateBase.ChangeSkillConstant(SkillConstants.Stand_Strong_Top_HitMotion, 0); break; } break; } } //ノックバックのセット PlayerDirection tmpDir; //右向きにノックバックするか左向きにノックバックするか if (GameManager.Instance.GetPlayFighterCore(stateBase.core.EnemyNumber).Direction == PlayerDirection.Right) { tmpDir = PlayerDirection.Left; } else { tmpDir = PlayerDirection.Right; } //エフェクト再生 BoxCollider _bCol = stateBase.core.GetDamageCollider; Transform t = _bCol.gameObject.transform; for (int i = 0; i < box.hitEffects.Count; i++) { if (box.hitEffects[i].effect != null) { if (GameManager.Instance.GetPlayFighterCore(stateBase.core.EnemyNumber).Direction == PlayerDirection.Right) { Object.Instantiate(box.hitEffects[i].effect, new Vector3(t.position.x + _bCol.center.x + box.hitEffects[i].position.x, t.position.y + _bCol.center.y + box.hitEffects[i].position.y, t.position.z + _bCol.center.z + box.hitEffects[i].position.z), Quaternion.identity); } else if (GameManager.Instance.GetPlayFighterCore(stateBase.core.EnemyNumber).Direction == PlayerDirection.Left) { Object.Instantiate(box.hitEffects[i].effect, new Vector3(t.position.x + _bCol.center.x + box.hitEffects[i].position.x, t.position.y + _bCol.center.y + box.hitEffects[i].position.y, t.position.z + _bCol.center.z + box.hitEffects[i].position.z), Quaternion.Euler(0, 180, 0)); } } } stateBase.core.SetKnockBack(box.knockBack, stateBase.core.EnemyNumber, tmpDir); //ダメージを受けたのでリセット stateBase.core.SetDamage(new FighterSkill.CustomHitBox(), null); }
//ガード開始 public void GuardStart() { isGuard = false; isGuardEnd = false; FighterSkill.CustomHitBox box = stateBase.core.GetDamage; //硬直 hitRigor = box.hitRigor; hitCount = 0; //ヒットストップ GameManager.Instance.SetHitStop(stateBase.core.PlayerNumber, box.hitStop); //相打ち時に受けたほうを優先する if (GameManager.Instance.GetHitStop(stateBase.core.EnemyNumber) <= 0) { GameManager.Instance.SetHitStop(stateBase.core.EnemyNumber, box.hitStop); } Direction inp = stateBase.input.GetPlayerMoveDirection(stateBase); if (inp == Direction.Back) { stateBase.ChangeSkillConstant(SkillConstants.Stand_Guard, 0); } else if (inp == Direction.DownBack) { stateBase.ChangeSkillConstant(SkillConstants.Crouching_Guard, 0); } //ノックバックのセット PlayerDirection tmpDir; //右向きにノックバックするか左向きにノックバックするか if (GameManager.Instance.GetPlayFighterCore(stateBase.core.EnemyNumber).Direction == PlayerDirection.Right) { tmpDir = PlayerDirection.Left; } else { tmpDir = PlayerDirection.Right; } //エフェクト再生 BoxCollider _bCol = stateBase.core.GetDamageCollider; Transform t = _bCol.gameObject.transform; for (int i = 0; i < box.hitEffects.Count; i++) { if (box.hitEffects[i].guardEffect != null) { if (GameManager.Instance.GetPlayFighterCore(stateBase.core.EnemyNumber).Direction == PlayerDirection.Right) { Object.Instantiate(box.hitEffects[i].guardEffect, new Vector3(t.position.x + _bCol.center.x + box.hitEffects[i].position.x, t.position.y + _bCol.center.y + box.hitEffects[i].position.y, t.position.z + _bCol.center.z + box.hitEffects[i].position.z), Quaternion.identity); } else if (GameManager.Instance.GetPlayFighterCore(stateBase.core.EnemyNumber).Direction == PlayerDirection.Left) { Object.Instantiate(box.hitEffects[i].guardEffect, new Vector3(t.position.x + _bCol.center.x + box.hitEffects[i].position.x, t.position.y + _bCol.center.y + box.hitEffects[i].position.y, t.position.z + _bCol.center.z + box.hitEffects[i].position.z), Quaternion.Euler(0, 180, 0)); } } } stateBase.core.SetKnockBack(box.guardKnockBack, stateBase.core.EnemyNumber, tmpDir); //ダメージを受けたのでリセット stateBase.core.SetDamage(new FighterSkill.CustomHitBox(), null); }
public void AttackStart() { string atk = stateBase.input.GetPlayerAtk(); switch (atk) { case "_Atk1": if (stateBase.core.PlayerMoveStates == PlayerMoveState.Crouching) { stateBase.ChangeSkillConstant(SkillConstants.Crouching_Light_Jab, 0); } else { stateBase.ChangeSkillConstant(SkillConstants.Stand_Light_Jab, 0); } break; case "_Atk2": if (stateBase.core.PlayerMoveStates == PlayerMoveState.Crouching) { stateBase.ChangeSkillConstant(SkillConstants.Crouching_Middle_Jab, 0); } else { stateBase.ChangeSkillConstant(SkillConstants.Stand_Middle_Jab, 0); } break; case "_Atk3": if (stateBase.core.PlayerMoveStates == PlayerMoveState.Crouching) { stateBase.ChangeSkillConstant(SkillConstants.Crouching_Strong_Jab, 0); } else { stateBase.ChangeSkillConstant(SkillConstants.Stand_Strong_Jab, 0); } break; } }