Feel滚
This commit is contained in:
@@ -46,25 +46,25 @@ namespace Cielonos.MainGame.Characters
|
||||
private void ClawStabBlast()
|
||||
{
|
||||
GenerateClawStabBlast("ClawStabBlast", "ClawStabBlast", 10);
|
||||
feedbackSc["ImpaleWave_Stab"].Play();
|
||||
//feedbackSc["ImpaleWave_Stab"].Play();
|
||||
}
|
||||
|
||||
private void ClawImpaleWave()
|
||||
{
|
||||
GenerateImpaleWave("ImpaleWave");
|
||||
feedbackSc["ImpaleWave_Wave"].Play();
|
||||
//feedbackSc["ImpaleWave_Wave"].Play();
|
||||
}
|
||||
|
||||
private void JumpAttackBlast()
|
||||
{
|
||||
GenerateJumpAttackBlast("JumpAttackBlast", "JumpAttackBlast", 10);
|
||||
feedbackSc["JumpAttack_Blast"].Play();
|
||||
//feedbackSc["JumpAttack_Blast"].Play();
|
||||
}
|
||||
|
||||
private void BumpImpaleWave()
|
||||
{
|
||||
GenerateImpaleWave("ImpaleWave");
|
||||
feedbackSc["ImpaleWave_Wave"].Play();
|
||||
//feedbackSc["ImpaleWave_Wave"].Play();
|
||||
}
|
||||
|
||||
private void GenerateNormalBulletSpawner()
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace Cielonos.MainGame.Characters
|
||||
{
|
||||
AudioManager.Post(AK.EVENTS.NEXUS_CORE_FINISH, centerPosition);
|
||||
PlayerCanvas.Instance.bossInfoUIArea.RemoveInfoUnit(this);
|
||||
MainGameManager.Player.feedbackSc["NexusFinish"].Play();
|
||||
//MainGameManager.Player.feedbackSc["NexusFinish"].Play();
|
||||
}
|
||||
|
||||
base.Die();
|
||||
|
||||
@@ -1,22 +1,14 @@
|
||||
using System.Collections.Generic;
|
||||
using Cielonos.MainGame.Effects.Feedback;
|
||||
using Lean.Pool;
|
||||
using MoreMountains.Feedbacks;
|
||||
using MoreMountains.FeedbacksForThirdParty;
|
||||
using SLSUtilities.Feedback;
|
||||
using SLSUtilities.FeelAssistance;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cielonos.MainGame.Characters
|
||||
{
|
||||
public partial class FeedbackSubcontroller : SubcontrollerBase<CharacterBase>
|
||||
{
|
||||
// === 旧系统(Feel)—— 保留向后兼容 ===
|
||||
public Dictionary<string, FeedbackUnit> feedbacks;
|
||||
public FeedbackUnit this[string feedbackName] => feedbacks?.GetValueOrDefault(feedbackName, null);
|
||||
|
||||
// === 新系统(Feedback System)===
|
||||
public FeedbackDataCollection feedbackDataCollection;
|
||||
public FeedbackData this[string feedbackName] => GetFeedbackData(feedbackName);
|
||||
|
||||
private CharacterFeedbackTimeProvider _timeProvider;
|
||||
private readonly List<FeedbackPlayer> _activePlayers = new List<FeedbackPlayer>(8);
|
||||
@@ -99,6 +91,19 @@ namespace Cielonos.MainGame.Characters
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按名称停止正在播放的 Feedback。
|
||||
/// </summary>
|
||||
public void StopFeedback(string feedbackName)
|
||||
{
|
||||
if (feedbackDataCollection == null) return;
|
||||
if (feedbackDataCollection.TryGet(feedbackName, out FeedbackData data))
|
||||
{
|
||||
StopFeedback(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 停止所有活跃的新系统播放器。
|
||||
@@ -114,18 +119,6 @@ namespace Cielonos.MainGame.Characters
|
||||
|
||||
private void Update()
|
||||
{
|
||||
// 旧系统驱动
|
||||
if (feedbacks != null)
|
||||
{
|
||||
foreach (var feedbackUnit in feedbacks.Values)
|
||||
{
|
||||
float timeScaleMultiplier = owner.selfTimeSm.TimeScale;
|
||||
feedbackUnit.feedback.ExternalTimeScale = timeScaleMultiplier;
|
||||
feedbackUnit.Update();
|
||||
}
|
||||
}
|
||||
|
||||
// 新系统驱动
|
||||
float dt = Time.deltaTime;
|
||||
for (int i = _activePlayers.Count - 1; i >= 0; i--)
|
||||
{
|
||||
|
||||
@@ -159,7 +159,7 @@ namespace Cielonos.MainGame.Characters
|
||||
if (sourceItem != null)
|
||||
{
|
||||
sourceItem.audioContainer.PlaySoundFX("PerfectBlock");
|
||||
sourceItem.feedbackSc["PerfectBlock"]?.Play();
|
||||
sourceItem.feedbackSc.PlayFeedback("PerfectBlock");
|
||||
pObj = sourceItem.blockData.InstantiateBlockEffect(perfectEffectName, sourceCharacter, blockEffectPosition, Quaternion.identity);
|
||||
}
|
||||
else
|
||||
@@ -178,7 +178,7 @@ namespace Cielonos.MainGame.Characters
|
||||
if (sourceItem != null)
|
||||
{
|
||||
sourceItem.audioContainer.PlaySoundFX("NormalBlock");
|
||||
sourceItem.feedbackSc["NormalBlock"]?.Play();
|
||||
sourceItem.feedbackSc.PlayFeedback("NormalBlock");
|
||||
sourceItem.blockData.InstantiateBlockEffect(normalEffectName, sourceCharacter, blockEffectPosition, Quaternion.identity);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -2,7 +2,6 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Cielonos.MainGame.Characters.Inventory;
|
||||
using MoreMountains.FeedbacksForThirdParty;
|
||||
using Sirenix.OdinInspector;
|
||||
using SLSUtilities.General;
|
||||
using UnityEngine;
|
||||
@@ -157,7 +156,7 @@ namespace Cielonos.MainGame.Characters
|
||||
|
||||
if (sourceItem == null)
|
||||
{
|
||||
sourceCharacter?.feedbackSc["PerfectDodge"]?.Play();
|
||||
sourceCharacter?.feedbackSc.PlayFeedback("PerfectDodge");
|
||||
Debug.Log("Perfect Dodge!");
|
||||
}
|
||||
}
|
||||
@@ -168,7 +167,7 @@ namespace Cielonos.MainGame.Characters
|
||||
|
||||
if (sourceItem == null)
|
||||
{
|
||||
sourceCharacter?.feedbackSc["NormalDodge"]?.Play();
|
||||
sourceCharacter?.feedbackSc.PlayFeedback("NormalDodge");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using MoreMountains.Feedbacks;
|
||||
using SLSUtilities.General;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Cielonos.MainGame.UI;
|
||||
using FIMSpace.FProceduralAnimation;
|
||||
using MoreMountains.FeedbacksForThirdParty;
|
||||
using RootMotion.FinalIK;
|
||||
using SLSUtilities.General;
|
||||
using SLSUtilities.FunctionalAnimation;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace Cielonos.MainGame.Characters
|
||||
{
|
||||
|
||||
@@ -2,17 +2,13 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using Cielonos.MainGame.Characters;
|
||||
using Cielonos.MainGame.Effects.Feedback;
|
||||
using Cielonos.MainGame.FunctionalAnimation;
|
||||
using MoreMountains.Feedbacks;
|
||||
using MoreMountains.FeedbacksForThirdParty;
|
||||
using Sirenix.OdinInspector;
|
||||
using SLSUtilities.Feedback;
|
||||
using SLSUtilities.WwiseAssistance;
|
||||
using SLSUtilities.FunctionalAnimation;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Cielonos.MainGame.Characters.Inventory
|
||||
{
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using Cielonos.MainGame.Characters;
|
||||
using Cielonos.MainGame.UI;
|
||||
using MoreMountains.Feedbacks;
|
||||
using MoreMountains.FeedbacksForThirdParty;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
@@ -107,8 +107,8 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
//Swing("Swing", "Swing", swingRotation);
|
||||
audioContainer.PlaySoundFX(vfxName + "Release", projectile.gameObject, true);
|
||||
|
||||
projectile.hitSm.AddHitSound(AK.EVENTS.FUTUREWAND_NORMALHIT)
|
||||
.AddHitEvent((enemy, hitPosition) => feedbackSc["Hit"].Play());
|
||||
/*projectile.hitSm.AddHitSound(AK.EVENTS.FUTUREWAND_NORMALHIT)
|
||||
.AddHitEvent((enemy, hitPosition) => feedbackSc["Hit"].Play());*/
|
||||
}
|
||||
|
||||
private void GenerateGroundArea(string vfxName)
|
||||
@@ -125,8 +125,8 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
//Swing("Swing", "Swing", Vector3.right);
|
||||
audioContainer.PlaySoundFX("GroundArea", area.gameObject, true);
|
||||
|
||||
area.hitSm.AddHitSound(AK.EVENTS.FUTUREWAND_NORMALHIT)
|
||||
.AddHitEvent((enemy, hitPosition) => feedbackSc["Hit"].Play());
|
||||
/*area.hitSm.AddHitSound(AK.EVENTS.FUTUREWAND_NORMALHIT)
|
||||
.AddHitEvent((enemy, hitPosition) => feedbackSc["Hit"].Play());*/
|
||||
}
|
||||
|
||||
private void GenerateSquareExpandingAura(string vfxName)
|
||||
|
||||
@@ -3,9 +3,6 @@ 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;
|
||||
|
||||
@@ -2,7 +2,6 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using Cielonos.MainGame.Characters;
|
||||
using DG.Tweening;
|
||||
using MoreMountains.FeedbacksForThirdParty;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
@@ -86,9 +85,9 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
//.AddHitSound("LightAttackCriticalHit")
|
||||
.AddHitEvent((enemy, hitPosition) =>
|
||||
{
|
||||
slash.hitSm.PlayHitSound(hitPosition,
|
||||
/*slash.hitSm.PlayHitSound(hitPosition,
|
||||
slash.attackSm.attackValue.isCritical ? "LightAttackCriticalHit" : "LightAttackNormalHit");
|
||||
feedbackSc["Hit"].Play();
|
||||
feedbackSc["Hit"].Play();*/
|
||||
});
|
||||
|
||||
//Swing("LightAttackSwing", "Swing", swingForce);
|
||||
@@ -115,7 +114,7 @@ namespace Cielonos.MainGame.Characters.Inventory.Collections
|
||||
.SetTimeSubmodule<NormalArea>(1f)
|
||||
.SetHitSubmodule<NormalArea>();
|
||||
|
||||
slash.hitSm.AddHitEvent((_,_) => feedbackSc["Hit"].Play());
|
||||
//slash.hitSm.AddHitEvent((_,_) => feedbackSc["Hit"].Play());
|
||||
//Swing("GroundImpact", "GroundImpact", Vector3.down * 0.2f * (1 + Mathf.Log10(fallDamageMultiplier)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Cielonos.MainGame.Effects.Feedback;
|
||||
using MoreMountains.Feedbacks;
|
||||
using SLSUtilities.Feedback;
|
||||
using SLSUtilities.FeelAssistance;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cielonos.MainGame.Characters.Inventory
|
||||
{
|
||||
public class FeedbackSubcontroller : SubcontrollerBase<ItemBase>
|
||||
{
|
||||
// === 旧系统(Feel)—— 保留向后兼容 ===
|
||||
public Dictionary<string, FeedbackUnit> feedbacks;
|
||||
public FeedbackUnit this[string feedbackName] => feedbacks.GetValueOrDefault(feedbackName, null);
|
||||
|
||||
// === 新系统(Feedback System)===
|
||||
public FeedbackDataCollection feedbackDataCollection;
|
||||
public FeedbackData this[string feedbackName] => GetFeedbackData(feedbackName);
|
||||
|
||||
private CharacterFeedbackTimeProvider _timeProvider;
|
||||
private readonly List<FeedbackPlayer> _activePlayers = new List<FeedbackPlayer>(8);
|
||||
@@ -97,6 +90,19 @@ namespace Cielonos.MainGame.Characters.Inventory
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按名称停止正在播放的 Feedback。
|
||||
/// </summary>
|
||||
public void StopFeedback(string feedbackName)
|
||||
{
|
||||
if (feedbackDataCollection == null) return;
|
||||
if (feedbackDataCollection.TryGet(feedbackName, out FeedbackData data))
|
||||
{
|
||||
StopFeedback(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 停止所有活跃的新系统播放器。
|
||||
/// </summary>
|
||||
@@ -111,18 +117,6 @@ namespace Cielonos.MainGame.Characters.Inventory
|
||||
|
||||
private void Update()
|
||||
{
|
||||
// 旧系统驱动
|
||||
if (feedbacks != null)
|
||||
{
|
||||
foreach (var feedbackUnit in feedbacks.Values)
|
||||
{
|
||||
float timeScaleMultiplier = owner.player.selfTimeSm.TimeScale;
|
||||
feedbackUnit.feedback.ExternalTimeScale = timeScaleMultiplier;
|
||||
feedbackUnit.Update();
|
||||
}
|
||||
}
|
||||
|
||||
// 新系统驱动
|
||||
float dt = Time.deltaTime;
|
||||
for (int i = _activePlayers.Count - 1; i >= 0; i--)
|
||||
{
|
||||
|
||||
@@ -73,8 +73,6 @@ namespace Cielonos.MainGame.Characters
|
||||
{
|
||||
base.Start();
|
||||
|
||||
feedbackSc["Prewarm"]?.Play();
|
||||
|
||||
inventorySc.equipmentSm.EquipMainWeapon(inventorySc.equipmentSm.preparedMainWeapons[0]);
|
||||
|
||||
for (int i = 0; i < inventorySc.backpack.supportEquipments.Count; i++)
|
||||
|
||||
Reference in New Issue
Block a user