|
@@ -8,7 +8,7 @@ public class ESpirits_ArmoredSamurai : Enemy
|
|
|
[Space(30)]
|
|
[Space(30)]
|
|
|
[Title("ESpirits_ArmoredSamurai属性")]
|
|
[Title("ESpirits_ArmoredSamurai属性")]
|
|
|
[LabelText("最小冲刺时间")] public float minDashTime;
|
|
[LabelText("最小冲刺时间")] public float minDashTime;
|
|
|
- public AnimationCurve brakeCurve = AnimationCurve.EaseInOut(0, 1, 1, 0); // 刹车曲线
|
|
|
|
|
|
|
+ [LabelText("攻击时抗击打值")] public int attackHitResistance;
|
|
|
|
|
|
|
|
private PlayerController player;
|
|
private PlayerController player;
|
|
|
public float time;
|
|
public float time;
|
|
@@ -16,6 +16,7 @@ public class ESpirits_ArmoredSamurai : Enemy
|
|
|
private float brakeTimer = 0f;
|
|
private float brakeTimer = 0f;
|
|
|
public float brakeDuration;
|
|
public float brakeDuration;
|
|
|
private Vector3 originalVelocity;
|
|
private Vector3 originalVelocity;
|
|
|
|
|
+ private int originalHitResistance;
|
|
|
public override void Init()
|
|
public override void Init()
|
|
|
{
|
|
{
|
|
|
base.Init();
|
|
base.Init();
|
|
@@ -28,6 +29,7 @@ public class ESpirits_ArmoredSamurai : Enemy
|
|
|
brakeDuration = sak.keys[0].startKeyTime;
|
|
brakeDuration = sak.keys[0].startKeyTime;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ originalHitResistance = hitResistance;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public override void OnState()
|
|
public override void OnState()
|
|
@@ -98,6 +100,7 @@ public class ESpirits_ArmoredSamurai : Enemy
|
|
|
ChooseLockingTarget();
|
|
ChooseLockingTarget();
|
|
|
CheckTurn(player.transform.position.x - transform.position.x);
|
|
CheckTurn(player.transform.position.x - transform.position.x);
|
|
|
time = 0;
|
|
time = 0;
|
|
|
|
|
+ hitResistance = originalHitResistance;
|
|
|
break;
|
|
break;
|
|
|
case CharacterState.Die:
|
|
case CharacterState.Die:
|
|
|
break;
|
|
break;
|
|
@@ -112,6 +115,12 @@ public class ESpirits_ArmoredSamurai : Enemy
|
|
|
isBraking = true;
|
|
isBraking = true;
|
|
|
brakeTimer = 0f;
|
|
brakeTimer = 0f;
|
|
|
originalVelocity = rb.velocity;
|
|
originalVelocity = rb.velocity;
|
|
|
|
|
+ hitResistance = attackHitResistance;
|
|
|
|
|
+ if (state == CharacterState.Run)
|
|
|
|
|
+ {
|
|
|
|
|
+ state = newState;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
base.ChangeState(newState);
|
|
base.ChangeState(newState);
|
|
@@ -158,17 +167,13 @@ public class ESpirits_ArmoredSamurai : Enemy
|
|
|
void HandleBraking()
|
|
void HandleBraking()
|
|
|
{
|
|
{
|
|
|
brakeTimer += Time.deltaTime;
|
|
brakeTimer += Time.deltaTime;
|
|
|
- float progress = brakeTimer / brakeDuration;
|
|
|
|
|
|
|
|
|
|
- if (progress >= 1f)
|
|
|
|
|
|
|
+ if (brakeTimer >= brakeDuration)
|
|
|
{
|
|
{
|
|
|
isBraking = false;
|
|
isBraking = false;
|
|
|
rb.velocity = Vector3.zero;
|
|
rb.velocity = Vector3.zero;
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- // 使用曲线控制刹车力度
|
|
|
|
|
- float brakeStrength = brakeCurve.Evaluate(progress);
|
|
|
|
|
- rb.velocity = originalVelocity * brakeStrength;
|
|
|
|
|
|
|
+ rb.velocity = originalVelocity ;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|