// EXECUTABLE: ----------------------------------------------------------------------------

        public override bool InstantExecute(GameObject target, IAction[] actions, int index)
        {
            SyntyCharacter characterTarget = this.character.GetCharacter(target);

            if (characterTarget == null)
            {
                return(true);
            }

            characterTarget.gender = this.gender;

            characterTarget.UpdateCharacterVisuals();

            return(true);
        }
        // EXECUTABLE: ----------------------------------------------------------------------------

        public override bool InstantExecute(GameObject target, IAction[] actions, int index)
        {
            SyntyCharacter characterTarget = this.character.GetCharacter(target);

            if (characterTarget == null)
            {
                return(true);
            }

            int eyebrowsIndex   = Random.Range(0, characterTarget.eyebrowTotal);
            int headIndex       = Random.Range(0, characterTarget.headAllElementsTotal);
            int hairIndex       = Random.Range(0, characterTarget.hairTotal);
            int facialHairIndex = Random.Range(0, characterTarget.facialHairTotal);

            characterTarget.eyebrowIndex         = eyebrowsIndex;
            characterTarget.headAllElementsIndex = headIndex;
            characterTarget.hairIndex            = hairIndex;

            if (characterTarget.gender == SyntyCharacter.EnumGender.Male)
            {
                characterTarget.facialHairIndex = facialHairIndex;
            }

            #region skin color

            int skinColorRange = Random.Range(1, 5);
            if (skinColorRange == 5)
            {
                characterTarget.skinColor    = new Color(1f, 0.8f, 0.68f);
                characterTarget.scarColor    = new Color(0.93f, 0.69f, 0.59f);
                characterTarget.stubbleColor = new Color(0.8f, 0.7f, 0.63f);
            }
            else if (skinColorRange == 4)
            {
                characterTarget.skinColor    = new Color(0.82f, 0.64f, 0.46f);
                characterTarget.scarColor    = new Color(0.7f, 0.55f, 0.4f);
                characterTarget.stubbleColor = new Color(0.66f, 0.57f, 0.46f);
            }
            else if (skinColorRange == 3)
            {
                characterTarget.skinColor    = new Color(0.56f, 0.41f, 0.31f);
                characterTarget.scarColor    = new Color(0.42f, 0.32f, 0.28f);
                characterTarget.stubbleColor = new Color(0.39f, 0.29f, 0.25f);
            }
            else if (skinColorRange == 2)
            {
                characterTarget.skinColor    = new Color(0.33f, 0.25f, 0.2f);
                characterTarget.scarColor    = new Color(0.42f, 0.32f, 0.28f);
                characterTarget.stubbleColor = new Color(0.21f, 0.17f, 0.16f);
            }
            else
            {
                characterTarget.skinColor    = new Color(0.96f, 0.78f, 0.73f);
                characterTarget.scarColor    = new Color(0.87f, 0.66f, 0.63f);
                characterTarget.stubbleColor = new Color(0.86f, 0.73f, 0.69f);
            }

            #endregion

            #region hair color

            int hairColorRange = Random.Range(1, 10);
            if (hairColorRange == 10)
            {
                characterTarget.hairColor = new Color(0.31f, 0.25f, 0.18f);
            }
            else if (hairColorRange == 9)
            {
                characterTarget.hairColor = new Color(0.22f, 0.22f, 0.22f);
            }
            else if (hairColorRange == 8)
            {
                characterTarget.hairColor = new Color(0.83f, 0.62f, 0.36f);
            }
            else if (hairColorRange == 7)
            {
                characterTarget.hairColor = new Color(0.89f, 0.78f, 0.55f);
            }
            else if (hairColorRange == 6)
            {
                characterTarget.hairColor = new Color(0.8f, 0.82f, 0.81f);
            }
            else if (hairColorRange == 5)
            {
                characterTarget.hairColor = new Color(0.69f, 0.4f, 0.24f);
            }
            else if (hairColorRange == 4)
            {
                characterTarget.hairColor = new Color(0.55f, 0.43f, 0.22f);
            }
            else if (hairColorRange == 4)
            {
                characterTarget.hairColor = new Color(0.85f, 0.47f, 0.25f);
            }
            else if (hairColorRange == 2)
            {
                characterTarget.hairColor = new Color(0.38f, 0.24f, 0.05f);
            }
            else
            {
                characterTarget.hairColor = new Color(0.6f, 0.21f, 0.1f);
            }

            #endregion

            #region body art color

            int bodyArtColor = Random.Range(1, 8);
            if (bodyArtColor == 8)
            {
                characterTarget.bodyArtColor = new Color(0.05f, 0.67f, 0.98f);
            }
            else if (bodyArtColor == 7)
            {
                characterTarget.bodyArtColor = new Color(0.72f, 0.27f, 0.27f);
            }
            else if (bodyArtColor == 6)
            {
                characterTarget.bodyArtColor = new Color(0.31f, 0.72f, 0.69f);
            }
            else if (bodyArtColor == 5)
            {
                characterTarget.bodyArtColor = new Color(0.93f, 0.88f, 0.85f);
            }
            else if (bodyArtColor == 4)
            {
                characterTarget.bodyArtColor = new Color(0.31f, 0.71f, 0.31f);
            }
            else if (bodyArtColor == 3)
            {
                characterTarget.bodyArtColor = new Color(0.53f, 0.31f, 0.65f);
            }
            else if (bodyArtColor == 2)
            {
                characterTarget.bodyArtColor = new Color(0.87f, 0.78f, 0.25f);
            }
            else
            {
                characterTarget.bodyArtColor = new Color(0.24f, 0.46f, 0.82f);
            }

            #endregion

            characterTarget.UpdateCharacterVisuals();

            return(true);
        }
示例#3
0
        // EXECUTABLE: ----------------------------------------------------------------------------

        public override bool InstantExecute(GameObject target, IAction[] actions, int index)
        {
            SyntyCharacter characterTarget = this.character.GetCharacter(target);

            if (characterTarget == null)
            {
                return(true);
            }

            switch (area)
            {
            case Materials.primary:
                characterTarget.primaryColor = color;
                break;

            case Materials.secondary:
                characterTarget.secondaryColor = color;
                break;

            case Materials.leatherPrimary:
                characterTarget.leatherPrimaryColor = color;
                break;

            case Materials.leatherSecondary:
                characterTarget.leatherSecondaryColor = color;
                break;

            case Materials.metalPrimary:
                characterTarget.metalPrimaryColor = color;
                break;

            case Materials.metalSecondary:
                characterTarget.metalSecondaryColor = color;
                break;

            case Materials.metalDark:
                characterTarget.metalDarkColor = color;
                break;

            case Materials.hair:
                characterTarget.hairColor = color;
                break;

            case Materials.skin:
                characterTarget.skinColor = color;
                break;

            case Materials.stubble:
                characterTarget.stubbleColor = color;
                break;

            case Materials.scar:
                characterTarget.scarColor = color;
                break;

            case Materials.bodyArt:
                characterTarget.bodyArtColor = color;
                break;

            case Materials.eye:
                characterTarget.eyeColor = color;
                break;
            }

            characterTarget.UpdateCharacterVisuals();

            return(true);
        }
        // EXECUTABLE: ----------------------------------------------------------------------------

        public override bool InstantExecute(GameObject target, IAction[] actions, int index)
        {
            SyntyCharacter characterTarget = this.character.GetCharacter(target);

            if (characterTarget == null)
            {
                return(true);
            }

            if (this.text == null)
            {
                return(true);
            }

            string variable;

            switch (element)
            {
            case Element.HeadAllElements:
                variable = characterTarget.headAllElementsIndex.ToString();
                break;

            case Element.HeadNoElements:
                variable = characterTarget.headNoElementsIndex.ToString();
                break;

            case Element.Eyebrow:
                variable = characterTarget.eyebrowIndex.ToString();
                break;

            case Element.FacialHair:
                variable = characterTarget.facialHairIndex.ToString();
                break;

            case Element.Torso:
                variable = characterTarget.torsoIndex.ToString();
                break;

            case Element.ArmUpperRight:
                variable = characterTarget.armUpperRightIndex.ToString();
                break;

            case Element.ArmUpperLeft:
                variable = characterTarget.armUpperLeftIndex.ToString();
                break;

            case Element.ArmLowerRight:
                variable = characterTarget.armLowerRightIndex.ToString();
                break;

            case Element.ArmLowerLeft:
                variable = characterTarget.armLowerLeftIndex.ToString();
                break;

            case Element.HandRight:
                variable = characterTarget.handRightIndex.ToString();
                break;

            case Element.HandLeft:
                variable = characterTarget.handLeftIndex.ToString();
                break;

            case Element.Hips:
                variable = characterTarget.hipsIndex.ToString();
                break;

            case Element.LegRight:
                variable = characterTarget.legRightIndex.ToString();
                break;

            case Element.LegLeft:
                variable = characterTarget.legLeftIndex.ToString();
                break;

            case Element.HeadCoveringsBaseHair:
                variable = characterTarget.headCoveringsBaseHairIndex.ToString();
                break;

            case Element.HeadCoveringsNoFacialHair:
                variable = characterTarget.headCoveringsNoFacialHairIndex.ToString();
                break;

            case Element.HeadCoveringsNoHair:
                variable = characterTarget.headCoveringsNoHairIndex.ToString();
                break;

            case Element.Hair:
                variable = characterTarget.hairIndex.ToString();
                break;

            case Element.Helmet:
                variable = characterTarget.helmetIndex.ToString();
                break;

            case Element.BackAttachment:
                variable = characterTarget.backAttackmentIndex.ToString();
                break;

            case Element.ShoulderAttachmentRight:
                variable = characterTarget.shoulderAttachmentRightIndex.ToString();
                break;

            case Element.ShoulderAttachmentLeft:
                variable = characterTarget.shoudlerAttachmentLeftIndex.ToString();
                break;

            case Element.ElbowAttachmentRight:
                variable = characterTarget.elbowAttachmendRightIndex.ToString();
                break;

            case Element.ElbowAttachmentLeft:
                variable = characterTarget.elbowAttachmentLeftIndex.ToString();
                break;

            case Element.HipsAttachment:
                variable = characterTarget.hipsAttachmentIndex.ToString();
                break;

            case Element.KneeAttachmentRight:
                variable = characterTarget.kneeAttachmentRightIndex.ToString();
                break;

            case Element.KneeAttachmentLeft:
                variable = characterTarget.kneeAttachmentLeftIndex.ToString();
                break;

            case Element.ElfEar:
                variable = characterTarget.elfEarIndex.ToString();
                break;

            default:
                variable = "";
                break;
            }

            this.text.SetText(string.Format(
                                  this.content,
                                  new string[] { variable }
                                  ));

            return(true);
        }
示例#5
0
        // PUBLIC METHODS: ------------------------------------------------------------------------

        public SyntyCharacter GetCharacter(GameObject invoker)
        {
            switch (this.target)
            {
            case Target.Player:
                if (HookPlayer.Instance != null)
                {
                    this.cacheCharacter = HookPlayer.Instance.Get <SyntyCharacter>();
                }
                break;

            case Target.Invoker:
                if (invoker == null)
                {
                    this.cacheCharacter = null;
                    break;
                }

                if (this.cacheCharacter == null || invoker.GetInstanceID() != this.cacheCharacterID)
                {
                    this.cacheCharacter   = invoker.GetComponentInChildren <SyntyCharacter>();
                    this.cacheCharacterID = invoker.GetInstanceID();
                }

                if (this.cacheCharacter == null || invoker.GetInstanceID() != this.cacheCharacterID)
                {
                    this.cacheCharacter   = invoker.GetComponentInParent <SyntyCharacter>();
                    this.cacheCharacterID = invoker.GetInstanceID();
                }

                break;

            case Target.Character:
                if (this.character != null)
                {
                    this.cacheCharacter = this.character;
                }
                break;

            case Target.LocalVariable:
                GameObject localResult = this.local.Get(invoker) as GameObject;
                if (localResult != null && localResult.GetInstanceID() != this.cacheInstanceID)
                {
                    this.cacheCharacter = localResult.GetComponentInChildren <SyntyCharacter>();
                    if (this.cacheCharacter == null)
                    {
                        localResult.GetComponentInParent <SyntyCharacter>();
                    }
                }
                break;

            case Target.GlobalVariable:
                GameObject globalResult = this.global.Get(invoker) as GameObject;
                if (globalResult != null && globalResult.GetInstanceID() != this.cacheInstanceID)
                {
                    this.cacheCharacter = globalResult.GetComponentInChildren <SyntyCharacter>();
                    if (this.cacheCharacter == null)
                    {
                        globalResult.GetComponentInParent <SyntyCharacter>();
                    }
                }
                break;

            case Target.ListVariable:
                GameObject listResult = this.list.Get(invoker) as GameObject;
                if (listResult != null && listResult.GetInstanceID() != this.cacheInstanceID)
                {
                    this.cacheCharacter = listResult.GetComponentInChildren <SyntyCharacter>();
                    if (this.cacheCharacter == null)
                    {
                        listResult.GetComponentInParent <SyntyCharacter>();
                    }
                }
                break;
            }

            this.cacheInstanceID = (this.cacheCharacter == null
                ? 0
                : this.cacheCharacter.gameObject.GetInstanceID()
                                    );

            return(this.cacheCharacter);
        }
        // EXECUTABLE: ----------------------------------------------------------------------------

        public override bool InstantExecute(GameObject target, IAction[] actions, int index)
        {
            SyntyCharacter characterTarget = this.character.GetCharacter(target);

            if (characterTarget == null)
            {
                return(true);
            }

            int newIndex   = 0;
            int tmpCurrent = 0;
            int tmpTotal   = 0;

            switch (this.element)
            {
            case Element.HeadAllElements:
                tmpTotal   = characterTarget.headAllElementsTotal;
                tmpCurrent = characterTarget.headAllElementsIndex;
                break;

            case Element.HeadNoElements:
                tmpTotal   = characterTarget.headNoElementsTotal;
                tmpCurrent = characterTarget.headNoElementsIndex;
                break;

            case Element.Eyebrow:
                if (characterTarget.gender == SyntyCharacter.EnumGender.Female)
                {
                    tmpTotal = characterTarget.femaleEyebrows.childCount;
                }
                else
                {
                    tmpTotal = characterTarget.eyebrowTotal;
                }

                tmpCurrent = characterTarget.eyebrowIndex;
                break;

            case Element.FacialHair:
                tmpTotal   = characterTarget.facialHairTotal;
                tmpCurrent = characterTarget.facialHairIndex;
                break;

            case Element.Torso:
                tmpTotal   = characterTarget.torsoTotal;
                tmpCurrent = characterTarget.torsoIndex;
                break;

            case Element.ArmUpperRight:
                tmpTotal   = characterTarget.armUpperRightTotal;
                tmpCurrent = characterTarget.armUpperRightIndex;
                break;

            case Element.ArmUpperLeft:
                tmpTotal   = characterTarget.armUpperLeftTotal;
                tmpCurrent = characterTarget.armUpperLeftIndex;
                break;

            case Element.ArmLowerRight:
                tmpTotal   = characterTarget.armLowerRightTotal;
                tmpCurrent = characterTarget.armLowerRightIndex;
                break;

            case Element.ArmLowerLeft:
                tmpTotal   = characterTarget.armLowerLeftTotal;
                tmpCurrent = characterTarget.armLowerLeftIndex;
                break;

            case Element.HandRight:
                tmpTotal   = characterTarget.handRightTotal;
                tmpCurrent = characterTarget.handRightIndex;
                break;

            case Element.HandLeft:
                tmpTotal   = characterTarget.handLeftTotal;
                tmpCurrent = characterTarget.handLeftIndex;
                break;

            case Element.Hips:
                tmpTotal   = characterTarget.hipsTotal;
                tmpCurrent = characterTarget.hipsIndex;
                break;

            case Element.LegRight:
                tmpTotal   = characterTarget.legRightTotal;
                tmpCurrent = characterTarget.legRightIndex;
                break;

            case Element.LegLeft:
                tmpTotal   = characterTarget.legLeftTotal;
                tmpCurrent = characterTarget.legLeftIndex;
                break;

            case Element.HeadCoveringsBaseHair:
                tmpTotal   = characterTarget.headCoveringsBaseHairTotal;
                tmpCurrent = characterTarget.headCoveringsBaseHairIndex;
                break;

            case Element.HeadCoveringsNoFacialHair:
                tmpTotal   = characterTarget.headCoveringsNoFacialHairTotal;
                tmpCurrent = characterTarget.headCoveringsNoFacialHairIndex;
                break;

            case Element.HeadCoveringsNoHair:
                tmpTotal   = characterTarget.headCoveringsNoHairTotal;
                tmpCurrent = characterTarget.headCoveringsNoHairIndex;
                break;

            case Element.Hair:
                tmpTotal   = characterTarget.hairTotal;
                tmpCurrent = characterTarget.hairIndex;
                break;

            case Element.Helmet:
                tmpTotal   = characterTarget.helmetTotal;
                tmpCurrent = characterTarget.helmetIndex;
                break;

            case Element.BackAttachment:
                tmpTotal   = characterTarget.backAttackmentTotal;
                tmpCurrent = characterTarget.backAttackmentIndex;
                break;

            case Element.ShoulderAttachmentRight:
                tmpTotal   = characterTarget.shoulderAttachmentRightTotal;
                tmpCurrent = characterTarget.shoulderAttachmentRightIndex;
                break;

            case Element.ShoulderAttachmentLeft:
                tmpTotal   = characterTarget.shoudlerAttachmentLeftTotal;
                tmpCurrent = characterTarget.shoudlerAttachmentLeftIndex;
                break;

            case Element.ElbowAttachmentRight:
                tmpTotal   = characterTarget.elbowAttachmendRightTotal;
                tmpCurrent = characterTarget.elbowAttachmendRightIndex;
                break;

            case Element.ElbowAttachmentLeft:
                tmpTotal   = characterTarget.elbowAttachmentLeftTotal;
                tmpCurrent = characterTarget.elbowAttachmentLeftIndex;
                break;

            case Element.HipsAttachment:
                tmpTotal   = characterTarget.hipsAttachmentTotal;
                tmpCurrent = characterTarget.hipsAttachmentIndex;
                break;

            case Element.KneeAttachmentRight:
                tmpTotal   = characterTarget.kneeAttachmentRightTotal;
                tmpCurrent = characterTarget.kneeAttachmentRightIndex;
                break;

            case Element.KneeAttachmentLeft:
                tmpTotal   = characterTarget.kneeAttachmentLeftTotal;
                tmpCurrent = characterTarget.kneeAttachmentLeftIndex;
                break;

            case Element.ElfEar:
                tmpTotal   = characterTarget.elfEarTotal;
                tmpCurrent = characterTarget.elfEarIndex;
                break;
            }

            switch (select)
            {
            case Position.First:
                newIndex = 0;
                break;

            case Position.Last:
                newIndex = tmpTotal;
                break;

            case Position.Random:
                newIndex = Random.Range(0, tmpTotal - 1);
                break;

            case Position.Index:
                newIndex = this.index;
                break;

            case Position.Next:
                newIndex = ((tmpCurrent + 1) > (tmpTotal - 1)) ? 0 : tmpCurrent + 1;
                break;

            case Position.Previous:
                newIndex = ((tmpCurrent - 1) < 0) ? tmpTotal - 1 : tmpCurrent - 1;
                break;
            }

            switch (this.element)
            {
            case Element.HeadAllElements:
                characterTarget.headAllElementsIndex = newIndex;
                break;

            case Element.HeadNoElements:
                characterTarget.headNoElementsIndex = newIndex;
                break;

            case Element.Eyebrow:
                characterTarget.eyebrowIndex = newIndex;
                break;

            case Element.FacialHair:
                characterTarget.facialHairIndex = newIndex;
                break;

            case Element.Torso:
                characterTarget.torsoIndex = newIndex;
                break;

            case Element.ArmUpperRight:
                characterTarget.armUpperRightIndex = newIndex;
                break;

            case Element.ArmUpperLeft:
                characterTarget.armUpperLeftIndex = newIndex;
                break;

            case Element.ArmLowerRight:
                characterTarget.armLowerRightIndex = newIndex;
                break;

            case Element.ArmLowerLeft:
                characterTarget.armLowerLeftIndex = newIndex;
                break;

            case Element.HandRight:
                characterTarget.handRightIndex = newIndex;
                break;

            case Element.HandLeft:
                characterTarget.handLeftIndex = newIndex;
                break;

            case Element.Hips:
                characterTarget.hipsIndex = newIndex;
                break;

            case Element.LegRight:
                characterTarget.legRightIndex = newIndex;
                break;

            case Element.LegLeft:
                characterTarget.legLeftIndex = newIndex;
                break;

            case Element.HeadCoveringsBaseHair:
                characterTarget.headCoveringsBaseHairIndex = newIndex;
                break;

            case Element.HeadCoveringsNoFacialHair:
                characterTarget.headCoveringsNoFacialHairIndex = newIndex;
                break;

            case Element.HeadCoveringsNoHair:
                characterTarget.headCoveringsNoHairIndex = newIndex;
                break;

            case Element.Hair:
                characterTarget.hairIndex = newIndex;
                break;

            case Element.Helmet:
                characterTarget.helmetIndex = newIndex;
                break;

            case Element.BackAttachment:
                characterTarget.backAttackmentIndex = newIndex;
                break;

            case Element.ShoulderAttachmentRight:
                characterTarget.shoulderAttachmentRightIndex = newIndex;
                break;

            case Element.ShoulderAttachmentLeft:
                characterTarget.shoudlerAttachmentLeftIndex = newIndex;
                break;

            case Element.ElbowAttachmentRight:
                characterTarget.elbowAttachmendRightIndex = newIndex;
                break;

            case Element.ElbowAttachmentLeft:
                characterTarget.elbowAttachmentLeftIndex = newIndex;
                break;

            case Element.HipsAttachment:
                characterTarget.hipsAttachmentIndex = newIndex;
                break;

            case Element.KneeAttachmentRight:
                characterTarget.kneeAttachmentRightIndex = newIndex;
                break;

            case Element.KneeAttachmentLeft:
                characterTarget.kneeAttachmentLeftIndex = newIndex;
                break;

            case Element.ElfEar:
                characterTarget.elfEarIndex = newIndex;
                break;
            }

            characterTarget.UpdateCharacterVisuals();

            return(true);
        }