using UnityEngine;
using System.Collections;

/*
 * Generates a random appearance for enemies children objects
 * Should only be placed in an enemy object with:
 * head, face, legR, legL, weapon children
 */

public class RandomAppearance : MonoBehaviour {

	public Sprite[] heads;
	public Sprite[] faces;
	public Sprite[] weapons;
	public Sprite[] legs;
	public Sprite[] shields;
    // had to change a couple to public static for enemy portrait purposes
	public static SpriteRenderer head;
    public static SpriteRenderer face;
	private SpriteRenderer body;
	private SpriteRenderer legR; // looking AT the player right
	private SpriteRenderer legL; // looking AT the player left
	private SpriteRenderer arm;
	private SpriteRenderer forearm;
	private SpriteRenderer weapon;
	private SpriteRenderer shield;
    public static Color randomColor;
    // for names
    public TextAsset nameFile;
    public string[] nameList;
    private string randomName;

    void Start(){
        fetchNames();
		generate ();
	}
    // To parse a text file (list of names) -- Created using a unity3d tutorial forum.
    // Also selects a name at random.
    private void fetchNames() {
        nameList = nameFile.text.Split("\n"[0]);
        randomName = nameList[Random.Range(0, nameList.Length)];

    }

    void generate(){
		/*head.sprite = heads[Random.Range (0, heads.Length)];
		face.sprite = faces[Random.Range (0, faces.Length)];
		legR.sprite = legRs[Random.Range (0, legRs.Length)];
		legL.sprite = legLs[Random.Range (0, legLs.Length)];
		weapon.sprite = weapons[Random.Range (0, weapons.Length)];
		shield.sprite = shields[Random.Range (0, shields.Length)];
		addColor (Random.Range (0f, 1f), Random.Range (0f, 1f), Random.Range (0f, 1f));*/
		GameObject enemy = GameObject.Find ("Enemy");
		if (enemy != null) {
			setEnemyAppearance looks = enemy.GetComponent<setEnemyAppearance> ();
            looks.setName(randomName);
			looks.setFace (faces [Random.Range (0, faces.Length)]);
			looks.setHead (heads [Random.Range (0, heads.Length)]);
			looks.setLegs (legs [Random.Range (0, legs.Length)]);
			looks.setShield (shields [Random.Range (0, shields.Length)]);
			looks.setWeapon (weapons [Random.Range (0, weapons.Length)]);
			looks.setColor (Random.Range (0f, 1f), Random.Range (0f, 1f), Random.Range (0f, 1f));
			looks.generated ();
		}
	}
}