public override ISyncScenarioItem Apply(CastContext castContext) { if (!CouldCast || !activeAbilityConfig.CouldApply(castContext, Level)) { return(null); } var scenarioItem = base.Apply(castContext); CurrentCooldown = activeAbilityConfig.Cooldown.GetValue(Level); cooldownScenario = new IterateActionScenarioItem((leftTime) => { CurrentCooldown = leftTime; }, CurrentCooldown).PlayAndReturnSelf(); return(scenarioItem); }
public virtual ISyncScenarioItem Apply(CastContext castContext) { castScenario?.Stop(); castScenario = Config.Apply(castContext, Level); return(castScenario); }
public override ISyncScenarioItem Apply(CastContext castContext, int abilityLevel) { return(null); }
public abstract ISyncScenarioItem Attach(CastContext castContext, int abilityLevel);
public ISyncScenarioItem CastPassiveAbility(CastContext castContext) { return(Character.PassiveAbility.Apply(castContext)); }
public ISyncScenarioItem CastAbility(CastContext castContext) { HitsCount.AddValue(-HitsCount.CurrentValue); return(Character.ActiveAbility.Apply(castContext)); }
public virtual ISyncScenarioItem Attach(CastContext castContext) { attachScenario?.Stop(); attachScenario = Config.Attach(castContext, Level); return(attachScenario); }