using UnityEngine;
using System.Collections;

// Made specifically for arena enemy
// Another script will generate an appearance, this script will apply the appearance
// Splitting up the scripts is required so the enemy appearance can persist through the prefight scene to the arena
public class setEnemyAppearance : MonoBehaviour {

	// Variables set by another script
	public static Sprite head; // public for portrait access
	public static Sprite face;
    public static Color color;
	private static Sprite legs;
	private static Sprite weapon;
	private static Sprite shield;
	private static Sprite arm;
	private static Sprite forearm;
	private static float red;
	private static float green;
	private static float blue;
	private static bool isGenerated;
    public static string enemyName;
    

	void Start() {
        if (isGenerated) {
			setAppearance ();
		}
	}
		
	private void setAppearance(){
		// Get all sprite renderers
		SpriteRenderer faceR = transform.FindChild("face").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer bodyR = transform.FindChild("body").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer headR = transform.FindChild("head").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer armR = transform.FindChild("arm").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer forearmR = transform.FindChild("forearm").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer legR = transform.FindChild("legR").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer legL = transform.FindChild("legL").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer weaponR = transform.FindChild("weapon").gameObject.GetComponent<SpriteRenderer> ();
		SpriteRenderer shieldR = transform.FindChild("shield").gameObject.GetComponent<SpriteRenderer> ();
		// Assign sprites
		faceR.sprite = face;
		headR.sprite = head;
		legR.sprite = legs;
		legL.sprite = legs;
		weaponR.sprite = weapon;
		shieldR.sprite = shield;
		// Set color to required sprites
		headR.color = new Color(red,green,blue,1);
		bodyR.color = new Color(red,green,blue,1);
		legR.color = new Color(red,green,blue,1);
		legL.color = new Color(red,green,blue,1);
		armR.color = new Color(red,green,blue,1);
		forearmR.color = new Color(red,green,blue,1);
		//portrait = GameObject.Find ("Canvas").GetComponent<ArenaPortraits> ();
        //portrait.enemyPortrait();
    }
	// Setters for randomizer
	public void setFace(Sprite newFace){
		face = newFace;
	}

	public void setHead(Sprite newHead){
		head = newHead;
	}

	public void setLegs(Sprite newLegs){
		legs = newLegs;
	}

	public void setWeapon(Sprite newWeapon){
		weapon = newWeapon;
	}

	public void setShield(Sprite newShield){
		shield = newShield;
	}

	public void setColor(float r, float g, float b){
		red = r;
		green = g;
		blue = b;
        color = new Color(r, g, b);
	}
    // Assign name
    public void setName(string name) {
        enemyName = name;
    }

	public void generated(){
        isGenerated = true;
	}

}