public static Entity BuildAbility(AbilityConfig config) { var entity = Entity.New(config.Name); entity.Add(new TypeId(config.ID)); entity.Add(new LabelComponent(entity.Name)); entity.Add(new DescriptionComponent(config.Description)); entity.Add(new StatsContainer()); if (config.Icon.IsLoaded) { entity.Add(new IconComponent(config.Icon.LoadedAsset, "")); } else { config.Icon.LoadAsset( handle => { entity.Add(new IconComponent(handle, "")); }); } entity.Add(new InventoryItem(1, 0, ItemRarity.Special)); entity.Add(new StatusUpdateComponent()); config.AddComponents(entity); // entity.Add(new DataDescriptionComponent(config.DataDescription)); return(entity); }
public static Entity BuildAbility(AbilityConfig data, bool ignoreVitalCost) { var entity = Entity.New(data.Name); entity.Add(new TypeId(data.ID)); entity.Add(new LabelComponent(entity.Name)); entity.Add(new DescriptionComponent(data.Description)); entity.Add(new StatsContainer()); var icon = data.Icon; if (!string.IsNullOrEmpty(icon)) { entity.Add(new IconComponent(UnityDirs.AbilityIcons, icon)); } //entity.Add(new InventoryItem(1, 0, -1)); entity.Add(new StatusUpdateComponent()); //if (data.ActionSpawn != null) { // entity.Add(new ActionSpawnComponent(data.ActionSpawn)); //} //entity.Add(new CommandTargeting(data.Target, GameData.ActionDistance.GetAssociatedValue(data.Range), true)); //var cmd = new ActionSequence(data.CommandsElements.ToArray()); //cmd.Costs.Add(new RecoveryCost(data.Recovery)); //if (!ignoreVitalCost) { // cmd.Costs.Add(new CostVital(data.TargetVital, data.Cost)); //} //World.Get<DataFactory>().AddComponent(entity, data.Data, typeof(Action)); entity.Add(new DataDescriptionComponent(data.DataDescription)); if (data.TypeComponents != null) { World.Get <DataFactory>().AddComponentList(entity, data.Data, data.TypeComponents); } return(entity); }
private static void Init() { GameData.AddInit(Init); foreach (var loadedDataEntry in GameData.GetSheet("Abilities")) { var ability = new AbilityConfig(loadedDataEntry.Value); _abilities.AddOrUpdate(loadedDataEntry.Value.ID, ability); _abilitiesFullID.AddOrUpdate(loadedDataEntry.Value.FullID, ability); } }
public SpellData(SerializationInfo info, StreamingContext context) { var spellId = info.GetValue(nameof(Template), ""); Template = SpellFactory.GetTemplate(spellId); }
public SpellData(AbilityConfig template) { Template = template; }
public bool HasSpell(AbilityConfig template) { return(_knownSpells.ContainsKey(template.ID)); }
public AbilityData(SerializationInfo info, StreamingContext context) { Template = AbilityFactory.GetTemplate(info.GetValue(nameof(Template), "")); }
public AbilityData(AbilityConfig template) { Template = template; }