public Buff( BehaviourName name, string displayName, string description, IList <Flag>?modificationFlags = null, IList <Modification>?initialModifications = null, IList <EffectName>?initialEffects = null, IList <Modification>?finalModifications = null, IList <EffectName>?finalEffects = null, EndsAt?endsAt = null, bool?canStack = null, bool?canResetDuration = null, Alignment?alignment = null, IList <Trigger>?triggers = null, bool destroyOnConditionsMet = false, IList <EffectName>?conditionalEffects = null, bool restoreChangesOnEnd = false) : base(name, $"{nameof(Behaviour)}.{nameof(Buff)}", displayName, description, endsAt ?? EndsAt.Death) { ModificationFlags = modificationFlags ?? new List <Flag>(); InitialModifications = initialModifications ?? new List <Modification>(); InitialEffects = initialEffects ?? new List <EffectName>(); FinalModifications = finalModifications ?? new List <Modification>(); FinalEffects = finalEffects ?? new List <EffectName>(); CanStack = canStack ?? false; CanResetDuration = canResetDuration ?? false; Alignment = alignment ?? Alignment.Neutral; Triggers = triggers ?? new List <Trigger>(); DestroyOnConditionsMet = destroyOnConditionsMet; ConditionalEffects = conditionalEffects ?? new List <EffectName>(); RestoreChangesOnEnd = restoreChangesOnEnd; }
protected Behaviour(BehaviourName name, string type, string displayName, string description, EndsAt endsAt) { Name = name; Type = type; DisplayName = displayName; Description = description; EndsAt = endsAt; }
public Wait( BehaviourName name, string displayName, string description, EndsAt endsAt, BehaviourName?nextBehaviour = null) : base(name, $"{nameof(Behaviour)}.{nameof(Wait)}", displayName, description, endsAt) { NextBehaviour = nextBehaviour; }
public ExtraAttack( BehaviourName name, string displayName, string description, IList <Attacks> attackTypes, EndsAt?endsAt = null, bool canStack = false) : base(name, $"{nameof(Behaviour)}.{nameof(ExtraAttack)}", displayName, description, endsAt ?? EndsAt.Death) { AttackTypes = attackTypes; CanStack = canStack; }
public Tether( BehaviourName name, string displayName, string description, Location?source = null, bool?extendsSelection = null, bool?sharedDamage = null, int?maximumLeashRange = null, bool?calculatedForSourcePathfinding = null, EndsAt?endsAt = null) : base(name, $"{nameof(Behaviour)}.{nameof(Tether)}", displayName, description, endsAt ?? EndsAt.Death) { Source = source ?? Location.Inherited; ExtendsSelection = extendsSelection ?? false; SharedDamage = sharedDamage ?? false; MaximumLeashRange = maximumLeashRange ?? 1; CalculatedForSourcePathfinding = calculatedForSourcePathfinding ?? true; }
public Ammunition( BehaviourName name, string displayName, string description, int maxAmmunitionAmount, IList <Attacks> ammunitionAttackTypes, int?ammunitionAmountLostOnHit = null, IList <EffectName>?onHitEffects = null, int?ammunitionRecoveredOnReload = null, bool?applyOriginalAttackToTarget = null) : base(name, $"{nameof(Behaviour)}.{nameof(Ammunition)}", displayName, description, EndsAt.Death) { MaxAmmunitionAmount = maxAmmunitionAmount; AmmunitionAmountLostOnHit = ammunitionAmountLostOnHit ?? 1; AmmunitionRecoveredOnReload = ammunitionRecoveredOnReload ?? maxAmmunitionAmount; ApplyOriginalAttackToTarget = applyOriginalAttackToTarget ?? true; AmmunitionAttackTypes = ammunitionAttackTypes; OnHitEffects = onHitEffects ?? new List <EffectName>(); }