public AProjectile(PrimaryObject source, PrimaryObject target, DamageType dmgType, int damage, int speed, int acceleration) { this.source = source; this.target = target; this.dmgType = dmgType; this.damage = damage; this.speed = speed; this.acceleration = acceleration; position = source.posCenter; }
bool checkTargetConstraints(PrimaryObject target) { foreach (Constraint constraint in targetConstraints.Concat(source.targetConstraints)) { if (!constraint.isAllowed(source, target)) { return(false); } } return(true); }
// List public bool applyAndWatch(PrimaryObject holder) { switch (getBuffOverrideRule()) { case BuffOverrideRule.NO_EFFECT: break; case BuffOverrideRule.STACK: break; case BuffOverrideRule.TIME_RESET: break; case BuffOverrideRule.STACK_TIME_RESET: break; } }
protected abstract void remove(PrimaryObject target);
protected abstract bool apply(PrimaryObject target);
abstract void removeEffects(PrimaryObject holder);
abstract void applyEffects(PrimaryObject holder);
public bool execute(PrimaryObject source, PrimaryObject target) { EffectWatcher watcher = createEffectWatcher(); watcher.applyAndWatch(apply, remove, source, target); }
public ProjectileSplitGleive(PrimaryObject source, PrimaryObject target, DamageType dmgType, int damage, int speed, int acceleration) : base(source, target, dmgType, damage, speed, acceleration) { }
public void applyAndWatch(Action <PrimaryObject, PrimaryObject> applyEffectAction, Action <PrimaryObject, PrimaryObject> removeEffectAction, Effect effect, PrimaryObject source, PrimaryObject target) { this.applyEffectAction = applyEffectAction; this.removeEffectAction = removeEffectAction; bool wasApplied = applyEffectAction(source, target); Task.Factory.StartNew(() => startWatchingAsync()); }
public ProjectileGleive(PrimaryObject source, PrimaryObject target, DamageType dmgType, int damage, int speed, int acceleration, int remainingNumberOfTargets) : base(source, target, dmgType, damage, speed, acceleration) { }