コード例 #1
0
 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;
 }
コード例 #2
0
 protected Behaviour(BehaviourName name, string type, string displayName, string description, EndsAt endsAt)
 {
     Name        = name;
     Type        = type;
     DisplayName = displayName;
     Description = description;
     EndsAt      = endsAt;
 }
コード例 #3
0
 public Wait(
     BehaviourName name,
     string displayName,
     string description,
     EndsAt endsAt,
     BehaviourName?nextBehaviour = null) : base(name, $"{nameof(Behaviour)}.{nameof(Wait)}", displayName, description, endsAt)
 {
     NextBehaviour = nextBehaviour;
 }
コード例 #4
0
 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;
 }
コード例 #5
0
 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;
 }
コード例 #6
0
 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>();
 }