fix: Updates races to properly support gargoyle equipment. (#744)

* Adds `RaceFlag` to the `Race` object. This is `1 << RaceIndex`
* Replaces `RequiredRace`  with `RequiredRaces` for items.
* Adds convenience flags for `RequiredRaces`
  ```cs
  
  public const int AllowAllRaces = 0x7;      // Race.Human.RaceFlag | Race.Elf.RaceFlag | Race.Gargoyle.RaceFlag
  public const int AllowHumanOrElves = 0x3;  // Race.Human.RaceFlag | Race.Elf.RaceFlag
  public const int AllowElvesOnly = 0x2;     // Race.Elf.RaceFlag
  public const int AllowGargoylesOnly = 0x4; // Race.Gargoyle.RaceFlag
  ```
* Example usage on an item:
  ```cs
  public override int RequiredRaces => Race.AllowHumanOrElves;
  ```
* Adds Wood and Stone armor material types
* Updates Woodland armor to Wood
* Adds proper messaging for race restrictions
* Adds gargoyle only for object properties
* Adds `CheckRace` functions for validating if a race or mobile can use the item:
  ```cs
  bool CheckRace(Race race);
  bool CheckRace(Mobile from, bool message = true);
  ```
This commit is contained in:
Kamron Batman 2021-08-29 00:43:55 -07:00 • committed by GitHub
parent bf20800382
commit 8ffd5a5bd0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
58 changed files with 147 additions and 125 deletions

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherArmsType1() : base(0x301) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherArmsType2() : base(0x302) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherChestType1() : base(0x0304) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherChestType2() : base(0x303) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherKiltType1() : base(0x311) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherKiltType2() : base(0x310) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherLegsType1() : base(0x305) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherLegsType2() : base(0x306) => Weight = 4.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int BasePhysicalResistance => 5;
public override int BaseFireResistance => 6;
public override int BaseColdResistance => 7;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public GargishLeatherWingArmor() : base(0x457E) => Weight = 2.0;
public override Race RequiredRace => Race.Gargoyle;
public override int RequiredRaces => Race.AllowGargoylesOnly;
public override int PhysicalResistance => 0;
public override int FireResistance => 0;
public override int ColdResistance => 0;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public LeafArms() : base(0x2FC8) => Weight = 2.0;
public override Race RequiredRace => Race.Elf;
public override int RequiredRaces => Race.AllowElvesOnly;
public override int BasePhysicalResistance => 2;
public override int BaseFireResistance => 3;
public override int BaseColdResistance => 2;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public LeafChest() : base(0x2FC5) => Weight = 2.0;
public override Race RequiredRace => Race.Elf;
public override int RequiredRaces => Race.AllowElvesOnly;
public override int BasePhysicalResistance => 2;
public override int BaseFireResistance => 3;
public override int BaseColdResistance => 2;

View file

@ -10,7 +10,7 @@ namespace Server.Items
[Constructible]
public LeafGloves() : base(0x2FC6) => Weight = 2.0;
public override Race RequiredRace => Race.Elf;
public override int RequiredRaces => Race.AllowElvesOnly;
public override int BasePhysicalResistance => 2;
public override int BaseFireResistance => 3;
public override int BaseColdResistance => 2;

View file

@ -6,7 +6,7 @@ namespace Server.Items
[Constructible]
public LeafGorget() : base(0x2FC7) => Weight = 2.0;
public override Race RequiredRace => Race.Elf;
public override int RequiredRaces => Race.AllowElvesOnly;
public override int BasePhysicalResistance => 2;
public override int BaseFireResistance => 3;
public override int BaseColdResistance => 2;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public LeafLegs() : base(0x2FC9) => Weight = 2.0;
public override Race RequiredRace => Race.Elf;
public override int RequiredRaces => Race.AllowElvesOnly;
public override int BasePhysicalResistance => 2;
public override int BaseFireResistance => 3;

View file

@ -7,7 +7,7 @@ namespace Server.Items
[Constructible]
public LeafTonlet() : base(0x2FCA) => Weight = 2.0;
public override Race RequiredRace => Race.Elf;
public override int RequiredRaces => Race.AllowElvesOnly;
public override int BasePhysicalResistance => 2;
public override int BaseFireResistance => 3;
public override int BaseColdResistance => 2;