private void ApplyMaterials() { var renderers = ArmorRenderers.ToList(); renderers.Add(HairRenderer); renderers.Add(PrimaryWeaponRenderer); renderers.Add(SecondaryWeaponRenderer); renderers.ForEach(i => i.sharedMaterial = i.color == Color.white ? DefaultMaterial : EquipmentPaintMaterial); }
/// <summary> /// Equip something from SpriteCollection. /// </summary> public override void Equip(SpriteGroupEntry item, EquipmentPart part, Color?color) { switch (part) { case EquipmentPart.MeleeWeapon1H: case EquipmentPart.MeleeWeapon2H: case EquipmentPart.MeleeWeaponPaired: case EquipmentPart.Bow: Firearms = null; FirearmsRenderers.ForEach(i => i.sprite = null); break; case EquipmentPart.Firearm1H: case EquipmentPart.Firearm2H: PrimaryMeleeWeapon = SecondaryMeleeWeapon = null; PrimaryMeleeWeaponRenderer.sprite = SecondaryMeleeWeaponRenderer.sprite = null; break; } switch (part) { case EquipmentPart.Helmet: Helmet = item?.Sprite; HelmetRenderer.color = color ?? HelmetRenderer.color; break; case EquipmentPart.Armor: Armor = item?.Sprites.ToList(); ArmorRenderers.ForEach(i => i.color = color ?? i.color); break; case EquipmentPart.Pauldrons: case EquipmentPart.Vest: case EquipmentPart.Gloves: case EquipmentPart.Belt: case EquipmentPart.Boots: foreach (var p in GetEquipmentSubPartNames(part)) { SetArmorParts(p, item?.Sprites); } break; case EquipmentPart.MeleeWeapon1H: PrimaryMeleeWeapon = item?.Sprite; PrimaryMeleeWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryMeleeWeaponRenderer.color : Color.white); if (WeaponType != WeaponType.MeleePaired) { WeaponType = WeaponType.Melee1H; } break; case EquipmentPart.MeleeWeapon2H: PrimaryMeleeWeapon = item?.Sprite; PrimaryMeleeWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryMeleeWeaponRenderer.color : Color.white); WeaponType = WeaponType.Melee2H; break; case EquipmentPart.MeleeWeaponPaired: if (WeaponType == WeaponType.Melee2H) { PrimaryMeleeWeapon = null; } SecondaryMeleeWeapon = item?.Sprite; WeaponType = WeaponType.MeleePaired; break; case EquipmentPart.Bow: Bow = item?.Sprites.ToList(); WeaponType = WeaponType.Bow; break; case EquipmentPart.Firearm1H: Firearms = item?.Sprites.ToList(); WeaponType = WeaponType.Firearms1H; break; case EquipmentPart.Firearm2H: Firearms = item?.Sprites.ToList(); WeaponType = WeaponType.Firearms2H; break; case EquipmentPart.Shield: Shield = item?.Sprite; WeaponType = WeaponType.Melee1H; break; case EquipmentPart.Cape: Cape = item?.Sprite; CapeRenderer.color = color ?? CapeRenderer.color; break; case EquipmentPart.Back: Back = item?.Sprite; BackRenderer.color = color ?? BackRenderer.color; WeaponType = WeaponType.Melee1H; break; case EquipmentPart.Earrings: Earrings = item?.Sprite; EarringsRenderer.color = color ?? EarringsRenderer.color; break; case EquipmentPart.Glasses: Glasses = item?.Sprite; GlassesRenderer.color = color ?? GlassesRenderer.color; break; case EquipmentPart.Mask: Mask = item?.Sprite; MaskRenderer.color = color ?? MaskRenderer.color; break; default: throw new NotImplementedException($"Unsupported part: {part}."); } Initialize(); }
/// <summary> /// Equip something from SpriteCollection. /// </summary> public override void Equip(SpriteGroupEntry item, EquipmentPart part, Color?color) { switch (part) { case EquipmentPart.MeleeWeapon1H: CompositeWeapon = null; break; case EquipmentPart.MeleeWeapon2H: CompositeWeapon = null; Shield = null; break; case EquipmentPart.Bow: PrimaryWeapon = SecondaryWeapon = null; Shield = null; break; case EquipmentPart.Crossbow: PrimaryWeapon = SecondaryWeapon = null; Shield = null; break; case EquipmentPart.SecondaryFirearm1H: CompositeWeapon = null; Shield = null; break; } switch (part) { case EquipmentPart.Helmet: HideEars = item != null && !item.Tags.Contains("ShowEars"); CropHair = item != null && !item.Tags.Contains("FullHair"); Helmet = HelmetRenderer.GetComponent <SpriteMapping>().FindSprite(item?.Sprites); HelmetRenderer.color = color ?? HelmetRenderer.color; break; case EquipmentPart.Armor: Armor = item?.Sprites.ToList(); ArmorRenderers.ForEach(i => i.color = color ?? i.color); break; case EquipmentPart.Vest: SetArmorParts(VestRenderers, item?.Sprites, color); break; case EquipmentPart.Bracers: SetArmorParts(BracersRenderers, item?.Sprites, color); break; case EquipmentPart.Leggings: SetArmorParts(LeggingsRenderers, item?.Sprites, color); break; case EquipmentPart.MeleeWeapon1H: PrimaryWeapon = item?.Sprite; PrimaryWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryWeaponRenderer.color : Color.white); if (WeaponType != WeaponType.Paired) { WeaponType = WeaponType.Melee1H; } break; case EquipmentPart.MeleeWeapon2H: PrimaryWeapon = item?.Sprite; PrimaryWeaponRenderer.color = color ?? (item != null && item.Tags.Contains("Paint") ? PrimaryWeaponRenderer.color : Color.white); WeaponType = WeaponType.Melee2H; break; case EquipmentPart.Bow: CompositeWeapon = item?.Sprites.ToList(); WeaponType = WeaponType.Bow; break; case EquipmentPart.Crossbow: CompositeWeapon = item?.Sprites.ToList(); WeaponType = WeaponType.Crossbow; break; case EquipmentPart.SecondaryFirearm1H: SecondaryWeapon = SecondaryWeaponRenderer.GetComponent <SpriteMapping>().FindSprite(item?.Sprites); WeaponType = WeaponType.Paired; break; case EquipmentPart.Shield: Shield = item?.Sprites.ToList(); WeaponType = WeaponType.Melee1H; break; case EquipmentPart.Cape: Cape = item?.Sprite; CapeRenderer.color = color ?? CapeRenderer.color; break; case EquipmentPart.Back: Back = item?.Sprite; BackRenderer.color = color ?? BackRenderer.color; WeaponType = WeaponType.Melee1H; break; case EquipmentPart.Earrings: Earrings = item?.Sprites.ToList(); EarringsRenderers[0].color = EarringsRenderers[1].color = color ?? EarringsRenderers[0].color; break; case EquipmentPart.Mask: Mask = MaskRenderer.GetComponent <SpriteMapping>().FindSprite(item?.Sprites); MaskRenderer.color = color ?? MaskRenderer.color; break; default: throw new NotImplementedException($"Unsupported part: {part}."); } Initialize(); }