public override void CopyFrom(Character4DBase character) { for (var i = 0; i < Parts.Count; i++) { Parts[i].CopyFrom(character.Parts[i]); } }
public static void Randomize(this Character4DBase character) { character.ResetEquipment(); var randomColor = new Color(Random.Range(0, 1), Random.Range(0, 1), Random.Range(0, 1), 1); character.SetBody(character.Front.SpriteCollection.Eyes.Random(), BodyPart.Eyes); if (character.Front.SpriteCollection.Hair.Count > 0) { character.SetBody(character.Front.SpriteCollection.Hair.Random(), BodyPart.Hair, randomColor); } if (character.Front.SpriteCollection.Eyebrows.Count > 0) { character.SetBody(character.Front.SpriteCollection.Eyebrows.Random(), BodyPart.Eyebrows); } if (character.Front.SpriteCollection.Ears.Count > 0) { character.SetBody(character.Front.SpriteCollection.Ears.Random(), BodyPart.Ears); } if (character.Front.SpriteCollection.Mouth.Count > 0) { character.SetBody(character.Front.SpriteCollection.Mouth.Random(), BodyPart.Mouth); } character.Equip(character.Front.SpriteCollection.Armor.Random(), EquipmentPart.Helmet); character.Equip(character.Front.SpriteCollection.Armor.Random(), EquipmentPart.Armor); switch (Random.Range(0, 5)) { case 0: character.Equip(character.Front.SpriteCollection.MeleeWeapon1H.Random(), EquipmentPart.MeleeWeapon1H); character.UnEquip(EquipmentPart.Shield); break; case 1: character.Equip(character.Front.SpriteCollection.MeleeWeapon1H.Random(), EquipmentPart.MeleeWeapon1H); character.Equip(character.Front.SpriteCollection.Shield.Random(), EquipmentPart.Shield); break; case 2: character.Equip(character.Front.SpriteCollection.MeleeWeapon2H.Random(), EquipmentPart.MeleeWeapon2H); break; case 3: character.Equip(character.Front.SpriteCollection.Bow.Random(), EquipmentPart.Bow); break; case 4: character.Equip(character.Front.SpriteCollection.Firearm1H.Random(), EquipmentPart.SecondaryFirearm1H); break; } }