I am looking for a word, or words, which would appropriately convey that two items can go together. As an example, a Sword and Shield. I am using this for a game that I am making, and I have items which can go in the off-hand slot of the inventory. So, as an example, if you have a one-handed sword, axe, or mace equipped in the main hand, you can equip a shield in the off-hand slot, because these things are, as I'm currently calling it, unifiable. Other such examples are a Bow and Quiver. However, with a Bow equipped, you cannot equip a shield, because a Bow is not unifiable with a shield. Another example is a Staff or Wand, which are both unifiable with a Tome. Again though, a Tome cannot be equipped with a Sword, Mace, or Axe, etc.
Sentence example:
"You can equip a Shield with a Sword, because they're _____."
"You cannot equip a Tome with a Bow, because they're not ____."
It may be unnecessary to post this, but here is the coding example of this concept written out. I just want a better naming mechanism for the function:
public static bool IsUnifiableWith(this ItemType itemType, ItemType other)
{
switch (itemType)
{
case ItemType.Bow:
return other == ItemType.Quiver;
case ItemType.Dagger:
return other == ItemType.Dagger;
case ItemType.Fist:
return other == ItemType.Fist;
case ItemType.Instrument:
return other == ItemType.Score;
case ItemType.OneHandedAxe:
case ItemType.OneHandedMace:
case ItemType.OneHandedSword:
return
other == ItemType.Shield ||
other == ItemType.OneHandedSword ||
other == ItemType.OneHandedAxe ||
other == ItemType.OneHandedMace;
case ItemType.Scythe:
return other == ItemType.Phylactery;
case ItemType.Staff:
case ItemType.Wand:
return other == ItemType.Tome;
case ItemType.Phylactery:
return other == ItemType.Scythe;
case ItemType.Quiver:
return other == ItemType.Bow;
case ItemType.Score:
return other == ItemType.Instrument;
case ItemType.Shield:
return
other == ItemType.OneHandedAxe ||
other == ItemType.OneHandedMace ||
other == ItemType.OneHandedSword;
case ItemType.Tome:
return other == ItemType.Staff || other == ItemType.Wand;
default:
return false;
}
}
What other words could convey a matching of items, as I have mentioned?