EffectFilter

From Cosmoteer Wiki
< ModdingModding/EffectFilter
Jump to navigation Jump to search
CalloutIconWarning.png
Work in Progress
This page is currently WORK IN PROGRESS. Some things may be missing.

Feel free to contribute and don't worry about perfection - other editors can make corrections if necessary. Just get creating!

Code location (what's this?): Cosmoteer.Simulation.EffectFilter

Stores rules for filtering hit and media effects.

Also behaves like a rules class.

Parameters (Complete list)
Name Type Required? Buffable? Default value Description
Ships bool - - -
OperationalHealth bool - - -
StructuralHealth bool - - -
OnlyPartCategories HashSet<ID<PartCategory>>? - - -
ExcludePartCategories HashSet<ID<PartCategory>>? - - -
Shields bool - - -
Bullets bool - - - If "false", the next 2 parameters are ignored.
OnlyBulletCategories HashSet<ID<BulletTargetableRules>>? - - -
ExcludeBulletCategories HashSet<ID<BulletTargetableRules>>? - - -
Crew bool - - -
Nuggets bool - - -
IgnoreInvulnerability bool - - false

(effectively)

Self bool? - - -
TargetedSelf bool? - - -
Friendlies bool? - - false

(effectively)

TargetedFriendlies bool? - - -
Enemies bool? - - -
TargetedEnemies bool? - - -
Neutrals bool? - - -
TargetedNeutrals bool? - - -
Junk bool? - - -
TargetedJunk bool? - - -
Deconstruction bool? - - -

Notes

Here is the switch for the defaults :

case EffectFilter.Defaults.All:
          this.Ships = true;
          this.OperationalHealth = true;
          this.StructuralHealth = true;
          this.Shields = true;
          this.Bullets = true;
          this.Crew = true;
          this.Nuggets = true;
          this.IgnoreInvulnerability = true;
          this.Friendlies = new bool?(true);
          this.Enemies = new bool?(true);
          this.Neutrals = new bool?(true);
          this.Junk = new bool?(true);
          break;
        case EffectFilter.Defaults.Enemy:
          this.Ships = true;
          this.OperationalHealth = true;
          this.StructuralHealth = true;
          this.Shields = true;
          this.Bullets = true;
          this.Crew = true;
          this.Nuggets = true;
          break;
        case EffectFilter.Defaults.None:
          this.Ships = false;
          this.OperationalHealth = false;
          this.StructuralHealth = false;
          this.Shields = false;
          this.Bullets = false;
          this.Crew = false;
          this.Nuggets = false;
          this.Friendlies = new bool?(false);
          this.Enemies = new bool?(false);
          this.Neutrals = new bool?(false);
          this.Junk = new bool?(false);
          break;
        case EffectFilter.Defaults.CollisionsOff:
          this.Ships = true;
          this.OperationalHealth = true;
          this.StructuralHealth = true;
          this.Shields = true;
          this.Bullets = true;
          this.Crew = true;
          this.Nuggets = true;
          this.IgnoreInvulnerability = true;
          this.Friendlies = new bool?(false);
          this.Enemies = new bool?(false);
          this.Neutrals = new bool?(false);
          this.Junk = new bool?(false);
          break;
        default:
          throw new ArgumentOutOfRangeException(nameof (defaults), (object) defaults, (string) null);