diff --git a/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml b/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml index 6f2dfc8ad6..74ccf7bd28 100644 --- a/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml +++ b/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml @@ -8,7 +8,7 @@ StyleClasses="OpenRight" Margin="0 0 -1 0"> - + diff --git a/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml.cs b/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml.cs index 2a8fd97983..52fbbad8ce 100644 --- a/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml.cs +++ b/Content.Client/_CP14/Skill/Ui/CP14SkillTreeButtonControl.xaml.cs @@ -10,13 +10,14 @@ public sealed partial class CP14SkillTreeButtonControl : Control { public event Action? OnPressed; - public CP14SkillTreeButtonControl(Color color, string label, float skillpoints) + public CP14SkillTreeButtonControl(Color color, string label, float skillpoints, Texture? icon) { RobustXamlLoader.Load(this); ColorPanel.PanelOverride = new StyleBoxFlat { BackgroundColor = color }; if (skillpoints > 0) { + SkillPointImage.Texture = icon; SkillPointImage.Visible = true; SkillTreeLabel.Text = $"{skillpoints} {label}"; } diff --git a/Content.Client/_CP14/UserInterface/Systems/Skill/CP14SkillUIController.cs b/Content.Client/_CP14/UserInterface/Systems/Skill/CP14SkillUIController.cs index 27c0992964..4ab0706c4e 100644 --- a/Content.Client/_CP14/UserInterface/Systems/Skill/CP14SkillUIController.cs +++ b/Content.Client/_CP14/UserInterface/Systems/Skill/CP14SkillUIController.cs @@ -155,27 +155,36 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered(_targetPlayer, out var storage)) return; + if (!_proto.TryIndex(_selectedSkillTree.SkillType, out var indexedSkillType)) + return; + + var skillPointsMap = storage.SkillPoints; + + if (skillPointsMap.TryGetValue(_selectedSkillTree.SkillType, out var skillContainer)) + _window.LevelLabel.Text = + $"{Loc.GetString(indexedSkillType.Name)}: {skillContainer.Sum}/{skillContainer.Max}"; + else + _window.LevelLabel.Text = $"{Loc.GetString(indexedSkillType.Name)}: 0/0"; + + _window.LevelTexture.Texture = indexedSkillType.Icon?.Frame0(); + HashSet nodeTreeElements = new(); HashSet<(string, string)> nodeTreeEdges = new(); @@ -303,14 +325,15 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered { diff --git a/Content.Client/_CP14/UserInterface/Systems/Skill/Window/CP14SkillWindow.xaml b/Content.Client/_CP14/UserInterface/Systems/Skill/Window/CP14SkillWindow.xaml index 795030eeb7..8d2a448861 100644 --- a/Content.Client/_CP14/UserInterface/Systems/Skill/Window/CP14SkillWindow.xaml +++ b/Content.Client/_CP14/UserInterface/Systems/Skill/Window/CP14SkillWindow.xaml @@ -37,8 +37,8 @@ - - + + @@ -78,9 +78,8 @@ - - + diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellAddMemoryPoint.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellAddMemoryPoint.cs index 590a699fd0..6be3d10e94 100644 --- a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellAddMemoryPoint.cs +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellAddMemoryPoint.cs @@ -1,4 +1,6 @@ using Content.Shared._CP14.Skill; +using Content.Shared._CP14.Skill.Prototypes; +using Robust.Shared.Prototypes; namespace Content.Shared._CP14.MagicSpell.Spells; @@ -10,6 +12,9 @@ public sealed partial class CP14SpellAddMemoryPoint : CP14SpellEffect [DataField] public float Limit = 6.5f; + [DataField] + public ProtoId SkillPointType = "Memory"; + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) { if (args.Target is null) @@ -17,6 +22,6 @@ public sealed partial class CP14SpellAddMemoryPoint : CP14SpellEffect var skillSys = entManager.System(); - skillSys.AddMemoryPoints(args.Target.Value, AddedPoints, Limit); + skillSys.AddSkillPoints(args.Target.Value, SkillPointType, AddedPoints, Limit); } } diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellRemoveMemoryPoint.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellRemoveMemoryPoint.cs index 393628d7d4..36e8feed3a 100644 --- a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellRemoveMemoryPoint.cs +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellRemoveMemoryPoint.cs @@ -1,4 +1,6 @@ using Content.Shared._CP14.Skill; +using Content.Shared._CP14.Skill.Prototypes; +using Robust.Shared.Prototypes; namespace Content.Shared._CP14.MagicSpell.Spells; @@ -7,6 +9,9 @@ public sealed partial class CP14SpellRemoveMemoryPoint : CP14SpellEffect [DataField] public float RemovedPoints = 0.5f; + [DataField] + public ProtoId SkillPointType = "Memory"; + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) { if (args.Target is null) @@ -14,6 +19,6 @@ public sealed partial class CP14SpellRemoveMemoryPoint : CP14SpellEffect var skillSys = entManager.System(); - skillSys.RemoveMemoryPoints(args.Target.Value, RemovedPoints); + skillSys.RemoveMemoryPoints(args.Target.Value, SkillPointType, RemovedPoints); } } diff --git a/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs b/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs index 04f3046b33..1515e13525 100644 --- a/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs +++ b/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs @@ -11,7 +11,7 @@ namespace Content.Shared._CP14.Skill; public abstract partial class CP14SharedSkillSystem : EntitySystem { - private EntityQuery _skillStorageQuery = default!; + private EntityQuery _skillStorageQuery; public override void Initialize() { @@ -64,6 +64,9 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem if (!_proto.TryIndex(skill, out var indexedSkill)) return false; + if (!_proto.TryIndex(indexedSkill.Tree, out var indexedTree)) + return false; + foreach (var effect in indexedSkill.Effects) { effect.AddSkill(EntityManager, target); @@ -72,7 +75,12 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem if (free) component.FreeLearnedSkills.Add(skill); else - component.SkillsSumExperience += indexedSkill.LearnCost; + { + if (component.SkillPoints.TryGetValue(indexedTree.SkillType, out var skillContainer)) + { + skillContainer.Sum += indexedSkill.LearnCost; + } + } component.LearnedSkills.Add(skill); Dirty(target, component); @@ -99,13 +107,21 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem if (!_proto.TryIndex(skill, out var indexedSkill)) return false; + if (!_proto.TryIndex(indexedSkill.Tree, out var indexedTree)) + return false; + foreach (var effect in indexedSkill.Effects) { effect.RemoveSkill(EntityManager, target); } if (!component.FreeLearnedSkills.Remove(skill)) - component.SkillsSumExperience -= indexedSkill.LearnCost; + { + if (component.SkillPoints.TryGetValue(indexedTree.SkillType, out var skillContainer)) + { + skillContainer.Sum -= indexedSkill.LearnCost; + } + } Dirty(target, component); return true; @@ -157,20 +173,7 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem if (!Resolve(target, ref component, false)) return false; - if (!AllowedToLearn(target, skill, component)) - return false; - - return true; - } - - /// - /// Is it allowed to learn this skill? The player may not have enough points to learn it, but has already met all the requirements to learn it. - /// - public bool AllowedToLearn(EntityUid target, - CP14SkillPrototype skill, - CP14SkillStorageComponent? component = null) - { - if (!Resolve(target, ref component, false)) + if (!_proto.TryIndex(skill.Tree, out var indexedTree)) return false; //Already learned @@ -181,8 +184,11 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem if (!component.AvailableSkillTrees.Contains(skill.Tree)) return false; - //Check max cap - if (component.SkillsSumExperience + skill.LearnCost > component.ExperienceMaxCap) + //Check skill points + if (!component.SkillPoints.TryGetValue(indexedTree.SkillType, out var skillContainer)) + return false; + + if (skillContainer.Sum + skill.LearnCost > skillContainer.Max) return false; //Restrictions check @@ -294,26 +300,35 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem { return false; } - for(var i = component.LearnedSkills.Count - 1; i >= 0; i--) + + for (var i = component.LearnedSkills.Count - 1; i >= 0; i--) { - if(HaveFreeSkill(target, component.LearnedSkills[i], component)) + if (HaveFreeSkill(target, component.LearnedSkills[i], component)) { continue; } + TryRemoveSkill(target, component.LearnedSkills[i], component); } + return true; } /// /// Increases the number of memory points for a character, limited to a certain amount. /// - public void AddMemoryPoints(EntityUid target, FixedPoint2 points, FixedPoint2 limit, CP14SkillStorageComponent? component = null) + public void AddSkillPoints(EntityUid target, + ProtoId type, + FixedPoint2 points, + FixedPoint2 limit, + CP14SkillStorageComponent? component = null) { if (!Resolve(target, ref component, false)) return; - component.ExperienceMaxCap = FixedPoint2.Min(component.ExperienceMaxCap + points, limit); + if (component.SkillPoints.TryGetValue(type, out var skillContainer)) + skillContainer.Max = FixedPoint2.Min(skillContainer.Max + points, limit); + Dirty(target, component); _popup.PopupEntity(Loc.GetString("cp14-skill-popup-added-points", ("count", points)), target, target); @@ -322,17 +337,23 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem /// /// Removes memory points. If a character has accumulated skills exceeding the new memory limit, random skills will be removed. /// - public void RemoveMemoryPoints(EntityUid target, FixedPoint2 points, CP14SkillStorageComponent? component = null) + public void RemoveMemoryPoints(EntityUid target, + ProtoId type, + FixedPoint2 points, + CP14SkillStorageComponent? component = null) { if (!Resolve(target, ref component, false)) return; - component.ExperienceMaxCap = FixedPoint2.Max(component.ExperienceMaxCap - points, 0); + if (!component.SkillPoints.TryGetValue(type, out var skillContainer)) + return; + + skillContainer.Max = FixedPoint2.Max(skillContainer.Max - points, 0); Dirty(target, component); _popup.PopupEntity(Loc.GetString("cp14-skill-popup-removed-points", ("count", points)), target, target); - while (component.SkillsSumExperience > component.ExperienceMaxCap) + while (skillContainer.Sum > skillContainer.Max) { var frontier = GetFrontierSkills(target, component); if (frontier.Count == 0) diff --git a/Content.Shared/_CP14/Skill/CP14SkillSystem.Scanning.cs b/Content.Shared/_CP14/Skill/CP14SkillSystem.Scanning.cs index 7191253a95..4d957bee35 100644 --- a/Content.Shared/_CP14/Skill/CP14SkillSystem.Scanning.cs +++ b/Content.Shared/_CP14/Skill/CP14SkillSystem.Scanning.cs @@ -57,7 +57,7 @@ public abstract partial class CP14SharedSkillSystem sb.Append($"• [color={indexedTree.Color.ToHex()}]{skillName}[/color]\n"); } - sb.Append($"\n{Loc.GetString("cp14-skill-menu-level")} {ent.Comp.SkillsSumExperience}/{ent.Comp.ExperienceMaxCap}\n"); + //sb.Append($"\n{Loc.GetString("cp14-skill-menu-level")} {ent.Comp.SkillsSumExperience}/{ent.Comp.ExperienceMaxCap}\n"); msg.AddMarkupOrThrow(sb.ToString()); return msg; } diff --git a/Content.Shared/_CP14/Skill/Components/CP14SkillStorageComponent.cs b/Content.Shared/_CP14/Skill/Components/CP14SkillStorageComponent.cs index 3b12fea1f6..b182e92e23 100644 --- a/Content.Shared/_CP14/Skill/Components/CP14SkillStorageComponent.cs +++ b/Content.Shared/_CP14/Skill/Components/CP14SkillStorageComponent.cs @@ -29,23 +29,24 @@ public sealed partial class CP14SkillStorageComponent : Component [DataField, AutoNetworkedField] public List> LearnedSkills = new(); - /// - /// skills that the player has learned on the research table, but has not yet learned in the skill tree. - /// [DataField, AutoNetworkedField] - public List> ResearchedSkills = new(); + public Dictionary, CP14SkillPointContainerEntry> SkillPoints = new(); +} + +[DataDefinition, Serializable, NetSerializable] +public sealed partial class CP14SkillPointContainerEntry +{ + /// + /// The number of experience points spent on skills. + /// + [DataField] + public FixedPoint2 Sum = 0; /// - /// The number of experience points spent on skills. Technically this could be calculated via LearnedSkills, but this is a cached value for optimization. + /// The maximum of experience points that can be spent on learning skills. /// - [DataField, AutoNetworkedField] - public FixedPoint2 SkillsSumExperience = 0; - - /// - /// The maximum ceiling of experience points that can be spent on learning skills. Not tied to a category. - /// - [DataField, AutoNetworkedField] - public FixedPoint2 ExperienceMaxCap = 5; + [DataField] + public FixedPoint2 Max = 0; } /// diff --git a/Content.Shared/_CP14/Skill/Prototypes/CP14SkillPointPrototype.cs b/Content.Shared/_CP14/Skill/Prototypes/CP14SkillPointPrototype.cs new file mode 100644 index 0000000000..144adba497 --- /dev/null +++ b/Content.Shared/_CP14/Skill/Prototypes/CP14SkillPointPrototype.cs @@ -0,0 +1,19 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared._CP14.Skill.Prototypes; + +/// +/// A group of skills combined into one “branch” +/// +[Prototype("cp14SkillPoint")] +public sealed partial class CP14SkillPointPrototype : IPrototype +{ + [IdDataField] public string ID { get; } = default!; + + [DataField(required: true)] + public LocId Name; + + [DataField] + public SpriteSpecifier? Icon; +} diff --git a/Content.Shared/_CP14/Skill/Prototypes/CP14SkillTreePrototype.cs b/Content.Shared/_CP14/Skill/Prototypes/CP14SkillTreePrototype.cs index 6057dc0e67..a872060b95 100644 --- a/Content.Shared/_CP14/Skill/Prototypes/CP14SkillTreePrototype.cs +++ b/Content.Shared/_CP14/Skill/Prototypes/CP14SkillTreePrototype.cs @@ -15,6 +15,9 @@ public sealed partial class CP14SkillTreePrototype : IPrototype [DataField(required: true)] public LocId Name; + [DataField(required: true)] + public ProtoId SkillType; + [DataField] public SpriteSpecifier? FrameIcon; diff --git a/Content.Shared/_CP14/Skill/Restrictions/Researched.cs b/Content.Shared/_CP14/Skill/Restrictions/Researched.cs deleted file mode 100644 index db1ee222bc..0000000000 --- a/Content.Shared/_CP14/Skill/Restrictions/Researched.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Content.Shared._CP14.Skill.Components; -using Content.Shared._CP14.Skill.Prototypes; -using Content.Shared._CP14.Workbench; -using Robust.Shared.Prototypes; - -namespace Content.Shared._CP14.Skill.Restrictions; - -public sealed partial class Researched : CP14SkillRestriction -{ - [DataField(required: true)] - public List Requirements = new(); - - public override bool Check(IEntityManager entManager, EntityUid target, CP14SkillPrototype skill) - { - if (!entManager.TryGetComponent(target, out var skillStorage)) - return false; - - var learned = skillStorage.ResearchedSkills; - return learned.Contains(skill); - } - - public override string GetDescription(IEntityManager entManager, IPrototypeManager protoManager) - { - return Loc.GetString("cp14-skill-req-researched"); - } -} diff --git a/Resources/Locale/en-US/_CP14/skill/skill_points.ftl b/Resources/Locale/en-US/_CP14/skill/skill_points.ftl new file mode 100644 index 0000000000..0e24e6f8fd --- /dev/null +++ b/Resources/Locale/en-US/_CP14/skill/skill_points.ftl @@ -0,0 +1,2 @@ +cp14-skill-point-memory = Memory +cp14-skill-point-vampire-blood = Vampiric powers \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/skill/ui.ftl b/Resources/Locale/en-US/_CP14/skill/ui.ftl index 0202c95cd8..1c7b32cc3b 100644 --- a/Resources/Locale/en-US/_CP14/skill/ui.ftl +++ b/Resources/Locale/en-US/_CP14/skill/ui.ftl @@ -5,13 +5,8 @@ cp14-skill-info-title = Skills cp14-game-hud-open-skill-menu-button-tooltip = Skill tree cp14-skill-menu-learn-button = Learn skill -cp14-skill-menu-learncost = [color=yellow]Memory required:[/color] -cp14-skill-menu-level = Memory: -cp14-skill-menu-free = [color=green]This skill is innate to your character, and wastes no memory points![/color] - -cp14-research-table-title = Research table -cp14-research-recipe-list = Research costs: -cp14-research-craft = Research +cp14-skill-menu-learncost = [color=yellow]{$type} required:[/color] +cp14-skill-menu-free = [color=green]This skill is innate to your character, and wastes no skill points![/color] cp14-skill-desc-add-mana = Increases your character's mana amount by {$mana}. cp14-skill-desc-add-stamina = Increases your character's stamina amount by {$stamina}. diff --git a/Resources/Locale/ru-RU/_CP14/skill/skill_points.ftl b/Resources/Locale/ru-RU/_CP14/skill/skill_points.ftl new file mode 100644 index 0000000000..13cf949146 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/skill/skill_points.ftl @@ -0,0 +1,2 @@ +cp14-skill-point-memory = Память +cp14-skill-point-vampire-blood = Вампирские силы \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/skill/ui.ftl b/Resources/Locale/ru-RU/_CP14/skill/ui.ftl index 46fb57227d..54decbf093 100644 --- a/Resources/Locale/ru-RU/_CP14/skill/ui.ftl +++ b/Resources/Locale/ru-RU/_CP14/skill/ui.ftl @@ -5,13 +5,8 @@ cp14-skill-info-title = Навыки cp14-game-hud-open-skill-menu-button-tooltip = Деревья навыков cp14-skill-menu-learn-button = Изучить навык -cp14-skill-menu-learncost = [color=yellow]Требуется памяти:[/color] -cp14-skill-menu-level = Память: -cp14-skill-menu-free = [color=green]Этот навык врожденный для вашего персонажа, и не тратит очков памяти![/color] - -cp14-research-table-title = Стол исследований -cp14-research-recipe-list = Затраты на исследование: -cp14-research-craft = Исследовать +cp14-skill-menu-learncost = [color=yellow]Требуется {$type}:[/color] +cp14-skill-menu-free = [color=green]Этот навык врожденный для вашего персонажа, и не тратит очков навыков![/color] cp14-skill-desc-add-mana = Увеличивает объем маны вашего персонажа на {$mana}. cp14-skill-desc-add-stamina = Увеличивает выносливость вашего персонажа на {$stamina}. diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T1.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T1.yml index 577a28c475..fc4bac541e 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T1.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T1.yml @@ -9,7 +9,9 @@ factions: - CP14Monster - type: CP14SkillStorage - experienceMaxCap: 0 + skillPoints: + Memory: + max: 0 freeLearnedSkills: - SwordMastery - RapierMastery diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml index 767633cd42..ac85843d87 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Player/DemiplaneAntag/Skeletons/T2.yml @@ -89,7 +89,9 @@ types: CP14ManaDepletion: -0.1 - type: CP14SkillStorage - experienceMaxCap: 0 + skillPoints: + Memory: + max: 0 freeLearnedSkills: - SwordMastery - RapierMastery diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Player/TownRaids/undead.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Player/TownRaids/undead.yml index 88f3346ec7..6efc0aed0f 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Player/TownRaids/undead.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Player/TownRaids/undead.yml @@ -51,7 +51,9 @@ - FootstepSound - CP14RaidLeader - type: CP14SkillStorage - experienceMaxCap: 0 + skillPoints: + Memory: + max: 0 freeLearnedSkills: - SwordMastery - RapierMastery diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml index 1f1e6e9b48..64a7ee1898 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/human.yml @@ -23,8 +23,10 @@ - type: Body prototype: CP14Human requiredLegs: 2 - - type: CP14SkillStorage # +0.5 memory point - experienceMaxCap: 5.5 + - type: CP14SkillStorage + skillPoints: + Memory: + max: 5.5 # +0.5 memory point - type: Inventory templateId: CP14Human femaleDisplacements: diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/base.yml index 53837b1df3..223475ee12 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/base.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/base.yml @@ -58,6 +58,9 @@ - type: CP14MagicUnsafeDamage - type: CP14MagicUnsafeSleep - type: CP14SkillStorage + skillPoints: + Memory: + max: 5 availableSkillTrees: - Pyrokinetic - Hydrosophistry diff --git a/Resources/Prototypes/_CP14/Skill/Basic/trees.yml b/Resources/Prototypes/_CP14/Skill/Basic/trees.yml index 4edfcf70b5..7c2b14adaf 100644 --- a/Resources/Prototypes/_CP14/Skill/Basic/trees.yml +++ b/Resources/Prototypes/_CP14/Skill/Basic/trees.yml @@ -2,54 +2,63 @@ id: Pyrokinetic name: cp14-skill-tree-pyrokinetic-name desc: cp14-skill-tree-pyrokinetic-desc + skillType: Memory color: "#d6933c" - type: cp14SkillTree id: Hydrosophistry name: cp14-skill-tree-hydrosophistry-name desc: cp14-skill-tree-hydrosophistry-desc + skillType: Memory color: "#1554a1" - type: cp14SkillTree id: Illusion name: cp14-skill-tree-illusion-name desc: cp14-skill-tree-illusion-desc + skillType: Memory color: "#f55faf" - type: cp14SkillTree id: Metamagic name: cp14-skill-tree-metamagic-name desc: cp14-skill-tree-metamagic-desc + skillType: Memory color: "#56e5f5" - type: cp14SkillTree id: Healing name: cp14-skill-tree-healing-name desc: cp14-skill-tree-healing-desc + skillType: Memory color: "#51cf72" - type: cp14SkillTree id: Athletic name: cp14-skill-tree-athletic-name desc: cp14-skill-tree-athletic-desc + skillType: Memory color: "#b32e37" #- type: cp14SkillTree # id: Dimension # name: cp14-skill-tree-dimension-name # desc: cp14-skill-tree-dimension-desc +# skillType: Memory # color: "#ac66be" - type: cp14SkillTree id: Electromancy name: cp14-skill-tree-electric-name desc: cp14-skill-tree-electric-desc + skillType: Memory color: "#e8ff4c" - type: cp14SkillTree id: MartialArts name: cp14-skill-tree-martial-name desc: cp14-skill-tree-martial-desc + skillType: Memory color: "#f54242" # @@ -58,22 +67,26 @@ # id: Thaumaturgy # name: cp14-skill-tree-thaumaturgy-name # desc: cp14-skill-tree-thaumaturgy-desc +# skillType: Memory # color: "#7c52bf" #- type: cp14SkillTree # id: Blacksmithing # name: cp14-skill-tree-blacksmithing-name # desc: cp14-skill-tree-blacksmithing-desc +# skillType: Memory # color: "#6b3200" #- type: cp14SkillTree # id: Trading # name: cp14-skill-tree-trading-name # desc: cp14-skill-tree-trading-desc +# skillType: Memory # color: "#f5edaa" - type: cp14SkillTree id: Craftsmanship name: cp14-skill-tree-craftsman-name desc: cp14-skill-tree-craftsman-desc + skillType: Memory color: "#a04b00" diff --git a/Resources/Prototypes/_CP14/Skill/Demigods/trees.yml b/Resources/Prototypes/_CP14/Skill/Demigods/trees.yml index 45f51c7847..fc7b46839d 100644 --- a/Resources/Prototypes/_CP14/Skill/Demigods/trees.yml +++ b/Resources/Prototypes/_CP14/Skill/Demigods/trees.yml @@ -2,11 +2,13 @@ id: GodMerkas name: cp14-job-name-god-merkas desc: cp14-job-desc-god-merkas + skillType: Memory color: "#51cf72" - type: cp14SkillTree id: GodLumera name: cp14-job-name-god-lumera desc: cp14-job-desc-god-lumera + skillType: Memory color: "#5632a8" parallax: Default \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Skill/points.yml b/Resources/Prototypes/_CP14/Skill/points.yml new file mode 100644 index 0000000000..c54995ea4f --- /dev/null +++ b/Resources/Prototypes/_CP14/Skill/points.yml @@ -0,0 +1,13 @@ +- type: cp14SkillPoint + id: Memory + name: cp14-skill-point-memory + icon: + sprite: _CP14/Interface/Misc/skill_point.rsi + state: exp + +- type: cp14SkillPoint + id: Blood + name: cp14-skill-point-vampire-blood + icon: + sprite: _CP14/Interface/Misc/skill_point.rsi + state: blood \ No newline at end of file diff --git a/Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/blood.png b/Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/blood.png new file mode 100644 index 0000000000..ae5039d000 Binary files /dev/null and b/Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/blood.png differ diff --git a/Resources/Textures/_CP14/Interface/Misc/skillpoint.png b/Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/exp.png similarity index 100% rename from Resources/Textures/_CP14/Interface/Misc/skillpoint.png rename to Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/exp.png diff --git a/Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/meta.json b/Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/meta.json new file mode 100644 index 0000000000..b0a36ca412 --- /dev/null +++ b/Resources/Textures/_CP14/Interface/Misc/skill_point.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "size": { + "x": 8, + "y": 8 + }, + "license": "CC-BY-SA-4.0", + "copyright": "Created by TheShuEd (Github)", + "states": [ + { + "name": "exp" + }, + { + "name": "blood" + } + ] +}