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
                                      ));
        }
示例#2
0
        public CcBreakByInputModifier(ModifierInfo info, Entity casterEntity, Entity targetEntity,
                                      Modifier parentModifier, CcBreakByInputModifierEventConfig eventConfig,
                                      Environment environment,
                                      CollectionOfInteractions modifierInteractionCollection) : base(info, casterEntity, targetEntity, environment, modifierInteractionCollection)
        {
            this.info           = (CcBreakByInputInfo)info;
            this.parentModifier = parentModifier;
            this.eventConfig    = eventConfig;
            this.environment    = environment;
            this.modifierInteractionCollection = modifierInteractionCollection;

            mainLifetimes.Add(new ParentModifierLifetime(parentModifier));
            smComponent = targetEntity.GetComponent <HeroStateMachineComponent>();
            if (smComponent == null)
            {
                smComponent = targetEntity.GetComponent <MonsterStateMachineComponent>();
            }
            userInput = (DefaultUserInput)smComponent.UserInput;
            EquippedSkills equippedSkills = targetEntity.GetComponent <EquippedSkillsComponent>().EquippedSkills;

            skillId = equippedSkills.PassiveRecovery2.SkillId;

            character = targetEntity.GetComponent <SkillComponent>().Character;
        }