狗屎Minimax坏我代码
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
using ChocDino.UIFX;
|
||||
using Cielonos.MainGame.Buffs.Character;
|
||||
using Cielonos.MainGame.Effects.Feedback;
|
||||
using Cielonos.MainGame.UI;
|
||||
using MoreMountains.Feedbacks;
|
||||
using MoreMountains.FeedbacksForThirdParty;
|
||||
using MoreMountains.FeedbacksForThirdParty.Cielonos;
|
||||
using SLSUtilities.Feedback;
|
||||
using SLSUtilities.General;
|
||||
using SLSUtilities.FunctionalAnimation;
|
||||
using SLSUtilities.WwiseAssistance;
|
||||
@@ -194,10 +196,10 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
{
|
||||
if (BattleManager.EnemySm.GetDisruptableEnemies(availableEnemies).Count > 0)
|
||||
{
|
||||
float duration = fullBodyFuncAnimSm.collection["DisruptionAttack" + suffix].Interval(IntervalType.Startup).Duration * 2;
|
||||
player.feedbackSc["DisruptionBulletTime"].feedback.GetFeedbackOfType<CIF_TimeScaleModifier>().Duration = duration;
|
||||
player.feedbackSc["DisruptionBulletTime"].feedback.GetFeedbackOfType<MMF_ColorAdjustments_URP>().ShakeDuration = duration;
|
||||
player.feedbackSc["DisruptionBulletTime"].Play();
|
||||
var timeScaleModifierClip = player.feedbackSc.GetFeedbackData("DisruptionStartup").Clip<TimeScaleModifierAction>("Time");
|
||||
float duration = fullBodyFuncAnimSm.collection["DisruptionAttack" + suffix].Interval(IntervalType.Startup).Duration * 2;
|
||||
timeScaleModifierClip.duration = duration;
|
||||
player.feedbackSc.PlayFeedback("DisruptionStartup");
|
||||
}
|
||||
|
||||
if (suffix == "B")
|
||||
@@ -281,10 +283,10 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
GenerateHeavySlash(p.str0, attackData[p.str1]);
|
||||
}
|
||||
|
||||
private void FAPF_GenerateParrySlash(RuntimeFuncAnim rtFuncAnim)
|
||||
private void FAPF_GenerateUltimateSlash(RuntimeFuncAnim rtFuncAnim)
|
||||
{
|
||||
CustomFunction.PC_StringString p = rtFuncAnim.GetParams<CustomFunction.PC_StringString>();
|
||||
GenerateParrySlash(p.str0, attackData[p.str1]);
|
||||
GenerateUltimateSlash(p.str0, attackData[p.str1]);
|
||||
}
|
||||
|
||||
private void FAPF_GenerateDisruptionSlash(RuntimeFuncAnim rtFuncAnim)
|
||||
@@ -308,25 +310,25 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
|
||||
slash.Initialize<NormalArea>(player, this, Fraction.Enemy)
|
||||
.SetAttackSubmodule<NormalArea>(attackUnit)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.04f)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.02f)
|
||||
.SetHitSubmodule<NormalArea>()
|
||||
.SetForceSubmodule<NormalArea>(1.5f, true);
|
||||
|
||||
slash.attackSm.breakthroughAction = (enemy, hitPosition) =>
|
||||
{
|
||||
AudioManager.Post(AK.EVENTS.DISRUPT, hitPosition);
|
||||
//ApplyElectronicParalysis(enemy, attackUnit);
|
||||
};
|
||||
|
||||
slash.hitSm.AddHitSound(AK.EVENTS.POLYCHROME_LIGHTATTACKHIT)
|
||||
.AddHitEvent((enemy, hitPosition) =>
|
||||
{
|
||||
feedbackSc[feedback].feedback.GetFeedbackOfType<MMF_CinemachinePosition>().PositionAmplitude =
|
||||
vfxData.Get(vfxName).slashScreenPosition.normalized * 0.1f;
|
||||
feedbackSc[feedback].Play();
|
||||
//ApplyElectronicParalysis(enemy, attackUnit);
|
||||
var positionShakeAction = feedbackSc.GetFeedbackData(feedback).Action<CameraPositionShakeAction>("Camera");
|
||||
float magnitude = feedback == "SingleNormalHit" ? 0.12f : 0.06f;
|
||||
positionShakeAction.amplitude = vfxData.Get(vfxName).slashScreenPosition.normalized * magnitude;
|
||||
feedbackSc.PlayFeedback(feedback);
|
||||
|
||||
|
||||
ModifyTechniqueScore(0.02f);
|
||||
|
||||
if (attackUnit.unitName == "InstantAttack")
|
||||
{
|
||||
if (enemy.buffSm.HasBuff<ElectronicParalysis>())
|
||||
@@ -354,7 +356,7 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
|
||||
slash.Initialize<NormalArea>(player, this, Fraction.Enemy)
|
||||
.SetAttackSubmodule<NormalArea>(attackUnit)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.06f)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.04f)
|
||||
.SetHitSubmodule<NormalArea>()
|
||||
.SetForceSubmodule<NormalArea>(3f, true);
|
||||
|
||||
@@ -368,9 +370,10 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
slash.hitSm.AddHitSound(AK.EVENTS.POLYCHROME_HEAVYATTACKLHIT)
|
||||
.AddHitEvent((enemy, hitPosition) =>
|
||||
{
|
||||
feedbackSc["HeavyHitFirst"].feedback.GetFeedbackOfType<MMF_CinemachinePosition>().PositionAmplitude =
|
||||
vfxData.Get(vfxName).slashScreenPosition.normalized * 0.15f;
|
||||
feedbackSc["HeavyHitFirst"].Play();
|
||||
var positionShakeAction = feedbackSc.GetFeedbackData("HeavyHit").Action<CameraPositionShakeAction>("Camera");
|
||||
positionShakeAction.amplitude = vfxData.Get(vfxName).slashScreenPosition.normalized * 0.18f;
|
||||
feedbackSc.PlayFeedback("HeavyHit");
|
||||
|
||||
ModifyTechniqueScore(0.05f);
|
||||
ApplyElectronicParalysis(enemy, attackUnit);
|
||||
});
|
||||
@@ -384,36 +387,35 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
|
||||
slash.Initialize<NormalArea>(player, this, Fraction.Enemy)
|
||||
.SetAttackSubmodule<NormalArea>(attackUnit)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.04f, 0.06f)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.04f)
|
||||
.SetHitSubmodule<NormalArea>()
|
||||
.SetForceSubmodule<NormalArea>(3f, true);
|
||||
|
||||
slash.attackSm.breakthroughAction = (enemy, hitPosition) =>
|
||||
{
|
||||
ModifyTechniqueScore(0.2f);
|
||||
feedbackSc.PlayFeedback("Breakthrough");
|
||||
AudioManager.Post(AK.EVENTS.DISRUPT, hitPosition);
|
||||
ApplyElectronicParalysis(enemy, attackUnit);
|
||||
};
|
||||
|
||||
slash.hitSm
|
||||
.AddHitSound(AK.EVENTS.POLYCHROME_HEAVYATTACKLHIT)
|
||||
.AddHitEvent((enemy, hitPosition) =>
|
||||
{
|
||||
feedbackSc["HeavyHitFirst"].feedback.GetFeedbackOfType<MMF_CinemachinePosition>().PositionAmplitude =
|
||||
vfxData.Get(vfxName).slashScreenPosition.normalized * 0.15f;
|
||||
feedbackSc["HeavyHitFirst"].Play();
|
||||
ApplyElectronicParalysis(enemy, attackUnit);
|
||||
var positionShakeAction = feedbackSc.GetFeedbackData("HeavyHit").Action<CameraPositionShakeAction>("Camera");
|
||||
positionShakeAction.amplitude = vfxData.Get(vfxName).slashScreenPosition.normalized * 0.18f;
|
||||
feedbackSc.PlayFeedback("HeavyHit");
|
||||
});
|
||||
return slash;
|
||||
}
|
||||
|
||||
private NormalArea GenerateParrySlash(string vfxName, AttackUnit attackUnit)
|
||||
private NormalArea GenerateUltimateSlash(string vfxName, AttackUnit attackUnit)
|
||||
{
|
||||
NormalArea slash = vfxData.SpawnVFX(vfxName).GetComponentInChildren<NormalArea>();
|
||||
|
||||
slash.Initialize<NormalArea>(player, this, Fraction.Enemy)
|
||||
.SetAttackSubmodule<NormalArea>(attackUnit)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.06f)
|
||||
.SetTimeSubmodule<NormalArea>(1f, 0.04f)
|
||||
.SetHitSubmodule<NormalArea>()
|
||||
.SetForceSubmodule<NormalArea>(10f, true);
|
||||
|
||||
@@ -426,8 +428,10 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
.AddHitSound(AK.EVENTS.POLYCHROME_HEAVYATTACKLHIT)
|
||||
.AddHitEvent((enemy, hitPosition) =>
|
||||
{
|
||||
feedbackSc["ParryHit"].Play();
|
||||
new ElectronicParalysis(5f).Apply(enemy);
|
||||
var positionShakeAction = feedbackSc.GetFeedbackData("HeavyHit").Action<CameraPositionShakeAction>("Camera");
|
||||
positionShakeAction.amplitude = vfxData.Get(vfxName).slashScreenPosition.normalized * 0.18f;
|
||||
feedbackSc.PlayFeedback("HeavyHit");
|
||||
feedbackSc.PlayFeedback("Breakthrough");
|
||||
});
|
||||
|
||||
return slash;
|
||||
@@ -450,17 +454,13 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
{
|
||||
_blockAnimName = _blockAnimName == "BlockL" ? "BlockR" : "BlockL";
|
||||
animationSc.fullBodyFuncAnimSm.Play(_blockAnimName, 1, 0);
|
||||
player.selfTimeSm.ModifyTimeScale(0.06f, 0.4f);
|
||||
attackArea.creator.selfTimeSm.ModifyTimeScale(0.06f, 0.4f);
|
||||
|
||||
if (_blockAnimName == "BlockL")
|
||||
{
|
||||
feedbackSc["NormalBlockLeft"].Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
feedbackSc["NormalBlockRight"].Play();
|
||||
}
|
||||
var rotationShakeAction = feedbackSc.GetFeedbackData("NormalBlock").Action<CameraRotationShakeAction>("Camera");
|
||||
rotationShakeAction.amplitude = _blockAnimName == "BlockL" ?
|
||||
new Vector3(-0f, -2f, 1f) :
|
||||
new Vector3(-0f, 2f, -1f);
|
||||
|
||||
feedbackSc.PlayFeedback("NormalBlock");
|
||||
|
||||
if (attackArea is NormalArea)
|
||||
{
|
||||
@@ -472,17 +472,13 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
{
|
||||
_blockAnimName = _blockAnimName == "BlockL" ? "BlockR" : "BlockL";
|
||||
animationSc.fullBodyFuncAnimSm.Play(_blockAnimName, 1, 0);
|
||||
player.selfTimeSm.ModifyTimeScale(0.12f, EaseType.InQuint, 0.2f);
|
||||
attackArea.creator.selfTimeSm.ModifyTimeScale(0.12f, EaseType.InQuint, 0.2f);
|
||||
|
||||
if (_blockAnimName == "BlockL")
|
||||
{
|
||||
feedbackSc["PerfectBlockLeft"].Play();
|
||||
}
|
||||
else
|
||||
{
|
||||
feedbackSc["PerfectBlockRight"].Play();
|
||||
}
|
||||
var rotationShakeAction = feedbackSc.GetFeedbackData("PerfectBlock").Action<CameraRotationShakeAction>("Camera");
|
||||
rotationShakeAction.amplitude = _blockAnimName == "BlockL" ?
|
||||
new Vector3(0f, -4f, 2f) :
|
||||
new Vector3(0f, 4f, -2f);
|
||||
|
||||
feedbackSc.PlayFeedback("PerfectBlock");
|
||||
|
||||
if (attackArea is NormalArea)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user