// 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); }
// 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); }
// 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); }