using System.Collections.Generic; using MoreMountains.Feedbacks; using SLSFramework.General; using UnityEngine; namespace Cielonos.MainGame.Characters { public partial class ReactionSubcontroller : SubcontrollerBase { public Dictionary originalBreakthroughResistances; public Dictionary breakthroughResistances; public DodgeSubmodule dodgeSm; public BlockSubmodule blockSm; public override void Initialize() { base.Initialize(); originalBreakthroughResistances = new Dictionary() { { BreakthroughType.None, true }, { BreakthroughType.Weak, true }, { BreakthroughType.Medium, false }, { BreakthroughType.Heavy, false }, { BreakthroughType.Disruption, false }, { BreakthroughType.Forced, false }, { BreakthroughType.Unstoppable, false }, }; breakthroughResistances = new Dictionary() { { BreakthroughType.None, true }, { BreakthroughType.Weak, true }, { BreakthroughType.Medium, false }, { BreakthroughType.Heavy, false }, { BreakthroughType.Disruption, false }, { BreakthroughType.Forced, false }, { BreakthroughType.Unstoppable, false }, }; dodgeSm = new DodgeSubmodule(this); blockSm = new BlockSubmodule(this); } public void Update() { if (owner.statusSm.isDead) { return; } dodgeSm.Update(); blockSm.Update(); } public void ResetBreakthroughResistances() { foreach (var kvp in originalBreakthroughResistances) { breakthroughResistances[kvp.Key] = kvp.Value; } } } public partial class ReactionSubcontroller { public void InitializeResistances(EnemyRank enemyRank) { if (enemyRank == EnemyRank.Nexus || enemyRank == EnemyRank.Core) { originalBreakthroughResistances[BreakthroughType.Medium] = true; originalBreakthroughResistances[BreakthroughType.Heavy] = true; breakthroughResistances[BreakthroughType.Medium] = true; breakthroughResistances[BreakthroughType.Heavy] = true; } } } }