// Set the internal data with no transition public void SetTraitVariation(S.String trait, int variationID, Sprite sprite, bool isBlanco, bool noAnimation = false) { TraitOpts t = S.Array.Find(traits, x => x.name == trait); if (t.name != trait) { Debug.LogError("Trait " + trait + " does not exist", this); } StartCoroutine(Horrible(trait, t, variationID, sprite, isBlanco, noAnimation)); }
private IEnumerator Horrible(S.String trait, TraitOpts t, int variationID, Sprite sprite, bool isBlanco, bool noAnimation) { if (trait == "poncho" && variationIds.ContainsKey(trait) && variationIds [trait] != variationID) { this.GetComponent <AudioSource> ().Play(); } variationIds [trait] = variationID; isBlancos [trait] = isBlanco; if (!noAnimation) { this.GetComponent <Animator> ().Play("Person - Change Poncho"); yield return(new WaitForSeconds(1.37f * 1 / this.GetComponent <Animator> ().speed)); } t.traitRenderer.sprite = sprite; }