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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
        public SpellData(SerializationInfo info, StreamingContext context)
        {
            var spellId = info.GetValue(nameof(Template), "");

            Template = SpellFactory.GetTemplate(spellId);
        }
Exemple #5
0
 public SpellData(AbilityConfig template)
 {
     Template = template;
 }
Exemple #6
0
 public bool HasSpell(AbilityConfig template)
 {
     return(_knownSpells.ContainsKey(template.ID));
 }
Exemple #7
0
 public AbilityData(SerializationInfo info, StreamingContext context)
 {
     Template = AbilityFactory.GetTemplate(info.GetValue(nameof(Template), ""));
 }
Exemple #8
0
 public AbilityData(AbilityConfig template)
 {
     Template = template;
 }