public static bool TraitConflict(Vector2 traits) { var t1 = TraitDefinition.GetById((byte)traits.X); var t2 = TraitDefinition.GetById((byte)traits.Y); return(t1.TraitConflicts.Contains(t2) || t2.TraitConflicts.Contains(t1)); }
public bool Equals(TraitDefinition other) { if (other == null) return false; return other.Equals(Definition); }
public virtual void Setup() { m_TraitDefinition = DynamicStruct.Create <TraitDefinition>(); m_TraitDefinition.CreateProperty <int>("FieldA"); SaveAsset(m_TraitDefinition, Path.Combine(k_TraitAssetsPath, "TraitA.asset")); m_EnumDefinition = ScriptableObject.CreateInstance <EnumDefinition>(); m_EnumDefinition.CreateProperty <string>("ValueA"); m_EnumDefinition.CreateProperty <string>("ValueB"); m_EnumDefinition.CreateProperty <string>("ValueC"); SaveAsset(m_EnumDefinition, Path.Combine(k_EnumAssetsPath, "EnumA.asset")); SetupTerminationDefinition("TerminationA.asset"); SetupActionDefinition("ActionA.asset"); m_ProblemDefinition = ScriptableObject.CreateInstance <ProblemDefinition>(); m_ProblemDefinition.ActionDefinitions = new[] { m_ActionDefinition }; m_ProblemDefinition.StateTerminationDefinitions = new[] { m_StateTerminationDefinition }; SaveAsset(m_ProblemDefinition, Path.Combine(k_AssetsPath, "PlanA.asset")); PlannerAssetDatabase.Refresh(new [] { Path.Combine("Assets", "Temp") }); }
public static void SetTraitVector(Vector2 traits) { List <TraitDefinition> list = new List <TraitDefinition>(2); if (traits.X != 0) { list.Add(TraitDefinition.GetById((byte)traits.X)); } if (traits.Y != 0) { list.Add(TraitDefinition.GetById((byte)traits.Y)); } Traits = list.ToArray(); }
private async Task InitializeTraitDefinitionInMemoryRepositoryFromJson(MagusTtkContext dataContext, string jsonFilePath, CancellationToken cancellationToken = default) { string jsonString = await fileContentResolver.ReadFileAsTextAsync(jsonFilePath, cancellationToken); if (string.IsNullOrWhiteSpace(jsonString)) { throw new ArgumentException($"Json file '{jsonFilePath}' not found."); } var entitiesFromJson = JsonDeserializer.DeserializeFromJsonString <TraitDefinition[]>(jsonString); // JSON séma hiba if ((entitiesFromJson == null) || (entitiesFromJson.Length == 0)) { throw new ArgumentException($"Could not parse entities of type '{typeof(TraitDefinition)}' from Json file '{jsonFilePath}'."); } HashSet <string> codeHashes = new HashSet <string>(); var editableRepo = dataContext.TraitDefinitions.AsEditableRepository(); foreach (var entity in entitiesFromJson) { // hiányzó Code if (string.IsNullOrWhiteSpace(entity.Code)) { throw new ArgumentException($"Skill code in file '{jsonFilePath}' is empty."); } // ha nem tudja hozzáadni, akkor már volt ilyen kóddal skill definition if (!codeHashes.Add(entity.Code)) { throw new ArgumentException($"Skill code '{entity.Code}' in file '{jsonFilePath}' is a duplicate."); } var newEntity = new TraitDefinition() { Code = entity.Code, MaxValue = 3, MinValue = 1 }; await editableRepo.Add(newEntity, cancellationToken); } }
static bool IsSemanticTrait(TraitDefinition traitDefinition) { return(typeof(bool) == traitDefinition.Type); }
public TraitRequirement(TraitDefinition definition, bool required = true) { Definition = definition; Required = required; }
public static string ProfileCardDescription(byte traitType) { return(TraitDefinition.GetById(traitType).GetProfileDescription(Game.PlayerStats.IsFemale)); }
public static string Description(byte traitType, bool isFemale) { return(TraitDefinition.GetById(traitType).GetDescription(Game.PlayerStats.IsFemale)); }
public static string ToString(byte traitType) { return(TraitDefinition.GetById(traitType).DisplayName); }
public static byte Rarity(byte traitType) { return(TraitDefinition.GetById(traitType).Rarity); }