public override void CopyFrom(Character4DBase character)
 {
     for (var i = 0; i < Parts.Count; i++)
     {
         Parts[i].CopyFrom(character.Parts[i]);
     }
 }
Exemple #2
0
        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;
            }
        }