Exemplo n.º 1
0
        public override void Process(Entity entity)
        {
            AdditionalAttachedVfxComponent aavc = entity.GetComponent <AdditionalAttachedVfxComponent>();
            JustCreatedModifiersComponent  justCreatedModifiers = entity.GetComponent <JustCreatedModifiersComponent>();

            foreach (Modifier modifier in justCreatedModifiers.modifiers)
            {
                if (aavc.interestedModifierTypes.Contains(modifier.Type()))
                {
                    foreach (GameObject gameObject in aavc.vfxs)
                    {
                        gameObject.SetActive(false);
                    }
                    break;
                }
            }

            CharacterStateTransitionComponent characterStateTransition =
                entity.GetComponent <CharacterStateTransitionComponent>();

            if (characterStateTransition.justChanged)
            {
                if (characterStateTransition.from != Character.CharacterState.Default)
                {
                    if (characterStateTransition.to == Character.CharacterState.Default)
                    {
                        foreach (GameObject gameObject in aavc.vfxs)
                        {
                            gameObject.SetActive(true);
                        }
                    }
                }
            }
        }
        public override void Process(Entity entity)
        {
            if (!ccBreakEventConfig.enable)
            {
                return;
            }
            StatsComponent statsComponent = entity.GetComponent <StatsComponent>();

            if (statsComponent.BasicStatsFromConfig.ShowRole() != EntityRole.Hero)
            {
                return;
            }

            JustCreatedModifiersComponent justCreatedModifiers = entity.GetComponent <JustCreatedModifiersComponent>();
            bool     found           = false;
            Modifier triggerModifier = null;

            foreach (Modifier modifier in justCreatedModifiers.modifiers)
            {
                if (!CcBreakByInputModifier.interested.Contains(modifier.Type()))
                {
                    continue;
                }

                triggerModifier = modifier;
                found           = true;
                break;
            }

            if (!found)
            {
                return;
            }

            EquippedSkillsComponent equippedSkills = entity.GetComponent <EquippedSkillsComponent>();

            if (!equippedSkills.EquippedSkills.IsPassiveRecovery2Equipped())
            {
                return;
            }

            SkillComponent     skillComponent = entity.GetComponent <SkillComponent>();
            CcBreakByInputInfo info           = new CcBreakByInputInfo(Target.Target, modifierConfig, null);
            Character          character      = skillComponent.Character;

            character.AddModifier(new CcBreakByInputModifier(
                                      info, entity, entity, triggerModifier, ccBreakEventConfig, environment, modifierInteractionCollection
                                      ));
        }