delete skill trees

This commit is contained in:
Ed
2025-05-09 01:22:02 +03:00
parent d9c2bd8e09
commit 9d7fae73c4
23 changed files with 39 additions and 601 deletions

View File

@@ -49,9 +49,6 @@ public sealed partial class CP14ClientSkillSystem : CP14SharedSkillSystem
var netEv = new CP14TryLearnSkillMessage(GetNetEntity(target.Value), skill.ID);
RaiseNetworkEvent(netEv);
if (_proto.TryIndex(skill.Tree, out var indexedTree))
{
_audio.PlayGlobal(indexedTree.LearnSound, target.Value, AudioParams.Default.WithVolume(6f));
}
_audio.PlayGlobal(skill.LearnSound, target.Value, AudioParams.Default.WithVolume(6f));
}
}

View File

@@ -38,7 +38,6 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered<Gamepl
private IEnumerable<CP14SkillPrototype> _allSkills = [];
private CP14SkillPrototype? _selectedSkill;
private CP14SkillTreePrototype? _selectedSkillTree;
private MenuButton? SkillButton => UIManager
.GetActiveUIWidgetOrNull<Client.UserInterface.Systems.MenuBar.Widgets.GameTopMenuBar>()
@@ -220,9 +219,6 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered<Gamepl
if (_window is null)
return;
if (_selectedSkillTree == null)
return;
if (!EntityManager.TryGetComponent<CP14SkillStorageComponent>(_targetPlayer, out var storage))
return;
@@ -233,9 +229,6 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered<Gamepl
var learned = storage.LearnedSkills;
foreach (var skill in _allSkills)
{
if (skill.Tree != _selectedSkillTree)
continue;
foreach (var req in skill.Restrictions)
{
switch (req)
@@ -244,9 +237,6 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered<Gamepl
if (!_proto.TryIndex(prerequisite.Prerequisite, out var prerequisiteSkill))
continue;
if (prerequisiteSkill.Tree != _selectedSkillTree)
continue;
nodeTreeEdges.Add((skill.ID, prerequisiteSkill.ID));
break;
}
@@ -264,11 +254,7 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered<Gamepl
_window.GraphControl.UpdateState(
new CP14NodeTreeUiState(
nodes: nodeTreeElements,
edges: nodeTreeEdges,
frameIcon: _selectedSkillTree.FrameIcon,
hoveredIcon: _selectedSkillTree.HoveredIcon,
selectedIcon: _selectedSkillTree.SelectedIcon,
learnedIcon: _selectedSkillTree.LearnedIcon
edges: nodeTreeEdges
)
);
}
@@ -283,63 +269,11 @@ public sealed class CP14SkillUIController : UIController, IOnStateEntered<Gamepl
if (!EntityManager.TryGetComponent<CP14SkillStorageComponent>(_targetPlayer, out var storage))
return;
//If tree not selected, select the first one
if (_selectedSkillTree == null && storage.Progress.Count > 0)
{
var firstTree = storage.Progress.First().Key;
if (_proto.TryIndex(firstTree, out var indexedTree))
{
SelectTree(indexedTree, storage); // Set the first tree from the player's progress
}
}
if (_selectedSkillTree == null)
return;
// Reselect for update state
SelectNode(_selectedSkill);
UpdateGraphControl();
// Update the experience points for the selected tree
var playerProgress = storage.Progress;
if (playerProgress.TryGetValue(_selectedSkillTree, out var skillPoint))
{
_window.ExpPointLabel.Text = skillPoint.ToString();
}
_window.LevelLabel.Text = $"{storage.SkillsSumExperience}/{storage.ExperienceMaxCap}";
_window.TreeTabsContainer.RemoveAllChildren();
foreach (var (tree, _) in storage.Progress)
{
if (!_proto.TryIndex(tree, out var indexedTree))
continue;
var treeButton2 = new CP14SkillTreeButtonControl(indexedTree.Color, Loc.GetString(indexedTree.Name));
treeButton2.ToolTip = Loc.GetString(indexedTree.Desc ?? string.Empty);
treeButton2.OnPressed += () =>
{
SelectTree(indexedTree, storage);
};
_window.TreeTabsContainer.AddChild(treeButton2);
}
}
private void SelectTree(CP14SkillTreePrototype tree, CP14SkillStorageComponent storage)
{
if (_window == null)
return;
_selectedSkillTree = tree;
_window.ParallaxBackground.ParallaxPrototype = tree.Parallax;
_window.TreeName.Text = Loc.GetString(tree.Name);
var playerProgress = storage.Progress;
_window.ExpPointLabel.Text = playerProgress.TryGetValue(tree, out var skillpoint) ? skillpoint.ToString() : "0";
UpdateGraphControl();
}
private void CharacterDetached(EntityUid uid)

View File

@@ -66,20 +66,12 @@
HorizontalExpand="True" HorizontalAlignment="Center" />
</BoxContainer>
<PanelContainer Margin="10 10 10 10" HorizontalExpand="True" VerticalExpand="True" RectClipContent="True">
<parallax:ParallaxControl Name="ParallaxBackground" ScaleX="4" ScaleY="4" Access="Public" SpeedX="10" SpeedY="5"/>
<parallax:ParallaxControl Name="ParallaxBackground" ParallaxPrototype="AspidParallax" ScaleX="4" ScaleY="4" Access="Public" SpeedX="10" SpeedY="5"/>
<BoxContainer Margin="10 10 10 10" Orientation="Horizontal" HorizontalExpand="True" VerticalExpand="True">
<nodeTree:CP14NodeTreeGraphControl Name="GraphControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Access="Public"/>
</BoxContainer>
<!-- Tree Tabs -->
<BoxContainer Margin="10 10 10 10" VerticalAlignment="Top" HorizontalAlignment="Right" Orientation="Vertical" VerticalExpand="True">
<BoxContainer Name="TreeTabsContainer" Orientation="Vertical" HorizontalExpand="True" VerticalExpand="True" Access="Public"/>
</BoxContainer>
<!-- Experience Data -->
<BoxContainer Margin="10 10 10 10" VerticalAlignment="Bottom" HorizontalAlignment="Center" Orientation="Horizontal" VerticalExpand="True">
<RichTextLabel VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Loc 'cp14-skill-menu-skillpoints'}" StyleClasses="LabelKeyText"/>
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2, 2" TexturePath="/Textures/_CP14/Interface/Misc/skillpoint.png"/>
<RichTextLabel Margin="0 0 20 0" Name="ExpPointLabel" VerticalAlignment="Center" HorizontalAlignment="Left" Text="0" StyleClasses="LabelKeyText" Access="Public"/>
<RichTextLabel VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Loc 'cp14-skill-menu-level'}" StyleClasses="LabelKeyText"/>
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2, 2" TexturePath="/Textures/_CP14/Interface/Misc/skillpoint.png"/>
<RichTextLabel Margin="0 0 0 0" Name="LevelLabel" VerticalAlignment="Center" HorizontalAlignment="Left" Text="0" StyleClasses="LabelKeyText" Access="Public"/>

View File

@@ -57,5 +57,5 @@ public sealed partial class LoadoutPrototype : IPrototype, IEquipmentLoadout
/// CP14 - it is possible to give skill trees to players who have taken this loadout
/// </summary>
[DataField]
public Dictionary<ProtoId<CP14SkillTreePrototype>, FixedPoint2> SkillTree = new();
public HashSet<ProtoId<CP14SkillPrototype>> Skills = new();
}

View File

@@ -102,9 +102,9 @@ public abstract class SharedStationSpawningSystem : EntitySystem
_action.AddAction(entity, action);
}
foreach (var tree in loadout.SkillTree)
foreach (var skill in loadout.Skills)
{
_skill.TryAddExperience(entity, tree.Key, tree.Value);
_skill.TryAddSkill(entity, skill);
}
}

View File

@@ -83,55 +83,6 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem
return component.LearnedSkills.Contains(skill);
}
/// <summary>
/// Adds experience to the specified skill tree for the player.
/// </summary>
public bool TryAddExperience(EntityUid target,
ProtoId<CP14SkillTreePrototype> tree,
FixedPoint2 exp,
CP14SkillStorageComponent? component = null)
{
if (!Resolve(target, ref component, false))
return false;
if (component.Progress.TryGetValue(tree, out var currentExp))
{
// If the tree already exists, add experience to it
component.Progress[tree] = currentExp + exp;
}
else
{
// If the tree doesn't exist, initialize it with the experience
component.Progress[tree] = exp;
}
Dirty(target, component);
return true;
}
/// <summary>
/// Removes experience from the specified skill tree for the player.
/// </summary>
public bool TryRemoveExperience(EntityUid target,
ProtoId<CP14SkillTreePrototype> tree,
FixedPoint2 exp,
CP14SkillStorageComponent? component = null)
{
if (!Resolve(target, ref component, false))
return false;
if (!component.Progress.TryGetValue(tree, out var currentExp))
return false;
if (currentExp < exp)
return false;
component.Progress[tree] = FixedPoint2.Max(0, component.Progress[tree] - exp);
Dirty(target, component);
return true;
}
/// <summary>
/// Checks if the player can learn the specified skill.
/// </summary>
@@ -158,12 +109,6 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem
if (!AllowedToLearn(target, skill, component))
return false;
//Experience check
if (!component.Progress.TryGetValue(skill.Tree, out var currentExp))
return false;
if (currentExp < skill.LearnCost)
return false;
return true;
}
@@ -182,7 +127,7 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem
return false;
//Check max cap
if (component.SkillsSumExperience + skill.LearnCost >= component.ExperienceMaxCap)
if (component.SkillsSumExperience + skill.LearnCost > component.ExperienceMaxCap)
return false;
//Restrictions check
@@ -211,9 +156,6 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem
if (!CanLearnSkill(target, skill, component))
return false;
if (!TryRemoveExperience(target, indexedSkill.Tree, indexedSkill.LearnCost, component))
return false;
if (!TryAddSkill(target, skill, component))
return false;

View File

@@ -15,7 +15,6 @@ public abstract partial class CP14SharedSkillSystem
[Dependency] private readonly IPrototypeManager _proto = default!;
private IEnumerable<CP14SkillPrototype>? _allSkills;
private IEnumerable<CP14SkillTreePrototype>? _allTrees;
private void InitializeAdmin()
{
SubscribeLocalEvent<CP14SkillStorageComponent, GetVerbsEvent<Verb>>(OnGetAdminVerbs);
@@ -36,7 +35,6 @@ public abstract partial class CP14SharedSkillSystem
private void UpdateCachedSkill()
{
_allSkills = _proto.EnumeratePrototypes<CP14SkillPrototype>();
_allTrees = _proto.EnumeratePrototypes<CP14SkillTreePrototype>();
}
@@ -45,32 +43,11 @@ public abstract partial class CP14SharedSkillSystem
if (!_admin.HasAdminFlag(args.User, AdminFlags.Admin))
return;
if (_allSkills is null || _allTrees is null)
if (_allSkills is null)
return;
var target = args.Target;
//Add skill points
foreach (var tree in _allTrees)
{
FixedPoint2 current = 0;
ent.Comp.Progress.TryGetValue(tree, out current);
var name = Loc.GetString(tree.Name);
args.Verbs.Add(new Verb
{
Text = name,
Message = $"{name} EXP {current} -> {current + 1}",
Category = VerbCategory.CP14AdminSkillAdd,
Icon = tree.Icon,
Act = () =>
{
TryAddExperience(target, tree.ID, 1);
},
Priority = 2,
});
}
//Add Skill
foreach (var skill in _allSkills)
{
@@ -91,30 +68,6 @@ public abstract partial class CP14SharedSkillSystem
});
}
//Remove skill points
foreach (var tree in _allTrees)
{
FixedPoint2 current = 0;
ent.Comp.Progress.TryGetValue(tree, out current);
if (current < 1)
continue;
var name = Loc.GetString(tree.Name);
args.Verbs.Add(new Verb
{
Text = name,
Message = $"{name} EXP {current} -> {current - 1}",
Category = VerbCategory.CP14AdminSkillRemove,
Icon = tree.Icon,
Act = () =>
{
TryRemoveExperience(target, tree.ID, 1);
},
Priority = 2,
});
}
//Remove Skill
foreach (var skill in ent.Comp.LearnedSkills)
{

View File

@@ -1,48 +0,0 @@
using Content.Shared._CP14.Skill.Components;
using Content.Shared._CP14.Skill.Prototypes;
using Content.Shared.Bed.Sleep;
using Content.Shared.Examine;
using Content.Shared.FixedPoint;
using Content.Shared.Mobs.Components;
using Content.Shared.Mobs.Systems;
using Robust.Shared.Map;
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.Skill;
public abstract partial class CP14SharedSkillSystem
{
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly ExamineSystemShared _examine = default!;
[Dependency] private readonly MobStateSystem _mobState = default!;
public void GiveExperienceInRadius(EntityCoordinates position, ProtoId<CP14SkillTreePrototype> tree, FixedPoint2 points, float radius = 5)
{
var entities = _lookup.GetEntitiesInRange<CP14SkillStorageComponent>(position, radius, LookupFlags.Uncontained);
foreach (var ent in entities)
{
//Cant learn if the position is not in range or obstructed
if (!_examine.InRangeUnOccluded(ent, position, radius))
continue;
//Cant learn when dead
if (TryComp<MobStateComponent>(ent, out var mobState) && !_mobState.IsAlive(ent, mobState))
continue;
//Cant learn if the entity is sleeping
if (HasComp<SleepingComponent>(ent))
continue;
TryAddExperience(ent, tree, points);
}
}
public void GiveExperienceInRadius(EntityUid uid,
ProtoId<CP14SkillTreePrototype> tree,
FixedPoint2 points,
float radius = 5)
{
GiveExperienceInRadius(Transform(uid).Coordinates, tree, points, radius);
}
}

View File

@@ -22,12 +22,6 @@ public sealed partial class CP14SkillStorageComponent : Component
[DataField, AutoNetworkedField]
public FixedPoint2 SkillsSumExperience = 0;
/// <summary>
/// Keeps track of progress points in the knowledge areas available to the player. Important: The absence of a specific area means that the player CANNOT progress in that area.
/// </summary>
[DataField, AutoNetworkedField]
public Dictionary<ProtoId<CP14SkillTreePrototype>, FixedPoint2> Progress = new();
/// <summary>
/// The maximum ceiling of experience points that can be spent on learning skills. Not tied to a category.
/// </summary>

View File

@@ -1,6 +1,7 @@
using System.Numerics;
using Content.Shared._CP14.Skill.Effects;
using Content.Shared._CP14.Skill.Restrictions;
using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
@@ -26,12 +27,6 @@ public sealed partial class CP14SkillPrototype : IPrototype
[DataField]
public LocId? Desc;
/// <summary>
/// The tree this skill belongs to. This is used to group skills together in the UI.
/// </summary>
[DataField(required: true)]
public ProtoId<CP14SkillTreePrototype> Tree = default!;
/// <summary>
/// The cost to learn this skill. This is used to determine how many progress points are needed to learn the skill.
/// </summary>
@@ -62,4 +57,7 @@ public sealed partial class CP14SkillPrototype : IPrototype
/// </summary>
[DataField]
public List<CP14SkillRestriction> Restrictions = new();
[DataField]
public SoundSpecifier LearnSound = new SoundCollectionSpecifier("CP14LearnSkill");
}

View File

@@ -1,47 +0,0 @@
using Robust.Shared.Audio;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
namespace Content.Shared._CP14.Skill.Prototypes;
/// <summary>
/// A group of skills combined into one “branch”
/// </summary>
[Prototype("cp14SkillTree")]
public sealed partial class CP14SkillTreePrototype : IPrototype
{
[IdDataField] public string ID { get; } = default!;
[DataField(required: true)]
public LocId Name;
[DataField]
public SpriteSpecifier? FrameIcon;
[DataField]
public SpriteSpecifier? HoveredIcon;
[DataField]
public SpriteSpecifier? SelectedIcon;
[DataField]
public SpriteSpecifier? LearnedIcon;
[DataField]
public SpriteSpecifier? AvailableIcon;
[DataField]
public string Parallax = "AspidParallax";
[DataField]
public LocId? Desc;
[DataField]
public Color Color;
[DataField]
public SoundSpecifier LearnSound = new SoundCollectionSpecifier("CP14LearnSkill");
[DataField]
public SpriteSpecifier? Icon = null;
}

View File

@@ -1,25 +0,0 @@
cp14-skill-tree-blaksmithing-name = Blacksmithing
cp14-skill-tree-blaksmithing-desc = Explore and create new items from metal.
cp14-skill-tree-pyrokinetic-name = Pyrokinetic
cp14-skill-tree-pyrokinetic-desc = Master the magic of fire, allowing you to warm, illuminate, and destroy.
cp14-skill-tree-hydrosophistry-name = Hydrosophistry
cp14-skill-tree-hydrosophistry-desc = Master the magic of water and frost to create items from water and ice, and freeze enemies.
cp14-skill-tree-metamagic-name = Metamagic
cp14-skill-tree-metamagic-desc = Explore ways to subtly manipulate magic to affect spells and items.
cp14-skill-tree-illusion-name = Illusoriness
cp14-skill-tree-illusion-desc = Explore the nature of light to create illusions, light sources and shadows.
cp14-skill-tree-healing-name = Lifecation
cp14-skill-tree-healing-desc = Explore the ways in which magic affects living creatures.
cp14-skill-tree-dimension-name = Dimensium
cp14-skill-tree-dimension-desc = Immerse yourself in the nature of space and void.
# Body
cp14-skill-tree-atlethic-name = Atlethic
cp14-skill-tree-atlethic-desc = Develop your body by pushing the boundaries of what is available.

View File

@@ -1,27 +0,0 @@
cp14-skill-tree-blaksmithing-name = Кузнечное дело
cp14-skill-tree-blaksmithing-desc = Исследуйте и создавайте новые предметы из металла.
# Magic
cp14-skill-tree-pyrokinetic-name = Пирокинетика
cp14-skill-tree-pyrokinetic-desc = Овладейте магией огня, позволяющей вам согревать, освещать и уничтожать.
cp14-skill-tree-hydrosophistry-name = Гидрософистика
cp14-skill-tree-hydrosophistry-desc = Овладейте магией воды и мороза, чтобы создавать предметы из воды и льда, и замораживать врагов.
cp14-skill-tree-metamagic-name = Метамагия
cp14-skill-tree-metamagic-desc = Исследуйте способы тонкой манипуляции магии, чтобы влиять на заклинания и предметы.
cp14-skill-tree-illusion-name = Иллюзорность
cp14-skill-tree-illusion-desc = Исследуйте природу света, чтобы создавать иллюзии, источники света и тени.
cp14-skill-tree-healing-name = Жизнетворение
cp14-skill-tree-healing-desc = Изучайте способы влияния магии на живые создания.
cp14-skill-tree-dimension-name = Дименсиум
cp14-skill-tree-dimension-desc = Погрузитесь в природу пространства и пустоты.
# Body
cp14-skill-tree-atlethic-name = Атлетика
cp14-skill-tree-atlethic-desc = Развивайте свое тело, расширяя границы доступного.

View File

@@ -1,7 +1,6 @@
- type: roleLoadout
id: JobCP14Adventurer
groups:
- CP14SkillTree
- CP14GeneralHead
- CP14GeneralOuterClothing
- CP14GeneralEyes
@@ -18,7 +17,6 @@
- type: roleLoadout
id: JobCP14Apprentice
groups:
- CP14SkillTree
- CP14GeneralHead
- CP14GeneralOuterClothing
- CP14GeneralEyes
@@ -33,7 +31,6 @@
- type: roleLoadout
id: JobCP14Alchemist
groups:
- CP14SkillTree
- CP14AlchemistHead #
- CP14GeneralOuterClothing
- CP14AlchemistEyes #
@@ -49,7 +46,6 @@
- type: roleLoadout
id: JobCP14Innkeeper
groups:
- CP14SkillTree
- CP14GeneralHead
- CP14GeneralOuterClothing
- CP14GeneralEyes
@@ -64,7 +60,6 @@
- type: roleLoadout
id: JobCP14Blacksmith
groups:
- CP14SkillTree
- CP14GeneralHead
- CP14GeneralOuterClothing
- CP14GeneralEyes
@@ -79,7 +74,6 @@
- type: roleLoadout
id: JobCP14GuardCommander
groups:
- CP14SkillTree
- CP14GuardHead
- CP14GeneralOuterClothing
- CP14GeneralEyes
@@ -95,7 +89,6 @@
- type: roleLoadout
id: JobCP14Guard
groups:
- CP14SkillTree
- CP14GuardHead
- CP14GeneralOuterClothing
- CP14GeneralEyes
@@ -111,7 +104,6 @@
- type: roleLoadout
id: JobCP14Commandant
groups:
- CP14SkillTree
- CP14MerchantOuterClothing
- CP14GeneralEyes
- CP14MerchantShirt
@@ -123,7 +115,6 @@
- type: roleLoadout
id: JobCP14Guildmaster
groups:
- CP14SkillTree
- CP14GuildmasterOuterClothing
- CP14GeneralEyes
- CP14GuildmasterHead
@@ -138,7 +129,6 @@
- type: roleLoadout
id: JobCP14Merchant
groups:
- CP14SkillTree
- CP14MerchantHead
- CP14MerchantOuterClothing
- CP14GeneralEyes

View File

@@ -1,119 +0,0 @@
- type: loadoutGroup
id: CP14SkillTree
name: cp14-loadout-skill-tree
minLimit: 2
maxLimit: 2
loadouts:
- CP14SkillTreeMetamagic
- CP14SkillTreeHydrosophistry
- CP14SkillTreePyrokinetic
- CP14SkillTreeIllusion
- CP14SkillTreeHealing
- CP14SkillTreeAtlethic
#- CP14SkillTreeDimension Disabled until teleport & grab collider fix
- type: entity
id: CP14SkillTreePyrokineticLoadoutDummy
name: Pyrokinetic
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _CP14/Actions/skill_tree.rsi
state: pyro
- type: loadout
id: CP14SkillTreePyrokinetic
dummyEntity: CP14SkillTreePyrokineticLoadoutDummy
skillTree:
Pyrokinetic: 2
- type: entity
id: CP14SkillTreeHydrosophistryLoadoutDummy
name: Hydrosophistry
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _CP14/Actions/skill_tree.rsi
state: water
- type: loadout
id: CP14SkillTreeHydrosophistry
dummyEntity: CP14SkillTreeHydrosophistryLoadoutDummy
skillTree:
Hydrosophistry: 2
- type: entity
id: CP14SkillTreeIllusionLoadoutDummy
name: Illusion
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _CP14/Actions/skill_tree.rsi
state: light
- type: loadout
id: CP14SkillTreeIllusion
dummyEntity: CP14SkillTreeIllusionLoadoutDummy
skillTree:
Illusion: 2
- type: entity
id: CP14SkillTreeMetamagicLoadoutDummy
name: Metamagic
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _CP14/Actions/skill_tree.rsi
state: meta
- type: loadout
id: CP14SkillTreeMetamagic
dummyEntity: CP14SkillTreeMetamagicLoadoutDummy
skillTree:
Metamagic: 2
- type: entity
id: CP14SkillTreeHealingLoadoutDummy
name: Healing
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _CP14/Actions/skill_tree.rsi
state: heal
- type: loadout
id: CP14SkillTreeHealing
dummyEntity: CP14SkillTreeHealingLoadoutDummy
skillTree:
Healing: 2
- type: entity
id: CP14SkillTreeAtlethicLoadoutDummy
name: Atlethic
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _CP14/Actions/skill_tree.rsi
state: atlethic
- type: loadout
id: CP14SkillTreeAtlethic
dummyEntity: CP14SkillTreeAtlethicLoadoutDummy
skillTree:
Atlethic: 2
- type: entity
id: CP14SkillTreeDimensionLoadoutDummy
name: Dimension
categories: [ HideSpawnMenu ]
components:
- type: Sprite
sprite: _CP14/Actions/skill_tree.rsi
state: dimension
- type: loadout
id: CP14SkillTreeDimension
dummyEntity: CP14SkillTreeDimensionLoadoutDummy
skillTree:
Dimension: 2

View File

@@ -1,7 +1,6 @@
- type: cp14Skill
id: CP14ActionSpellKick
skillUiPosition: 0, 0
tree: Atlethic
icon:
sprite: _CP14/Actions/Spells/physical.rsi
state: kick
@@ -10,8 +9,7 @@
- type: cp14Skill
id: CP14ActionSpellSprint
skillUiPosition: 0, 2
tree: Atlethic
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/physical.rsi
state: sprint
@@ -20,9 +18,8 @@
- type: cp14Skill
id: CP14ActionSpellSprintGoblin
skillUiPosition: 2, 2
skillUiPosition: 0, 0
learnCost: 0
tree: Atlethic
icon:
sprite: _CP14/Actions/Spells/physical.rsi
state: sprint

View File

@@ -1,7 +1,6 @@
- type: cp14Skill
id: CP14ActionSpellShadowGrab
skillUiPosition: 0, 0
tree: Dimension
icon:
sprite: _CP14/Actions/Spells/dimension.rsi
state: shadow_grab
@@ -10,8 +9,7 @@
- type: cp14Skill
id: CP14ActionSpellShadowSwap
skillUiPosition: 0, 2
tree: Dimension
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/dimension.rsi
state: shadow_swap
@@ -20,9 +18,8 @@
- type: cp14Skill
id: CP14ActionSpellShadowStep
skillUiPosition: 0, 4
skillUiPosition: 0, 0
learnCost: 2
tree: Dimension
icon:
sprite: _CP14/Actions/Spells/dimension.rsi
state: shadow_step

View File

@@ -1,7 +1,6 @@
- type: cp14Skill
id: CP14ActionSpellCureBurn
skillUiPosition: 0, 0
tree: Healing
learnCost: 1
icon:
sprite: _CP14/Actions/Spells/healing.rsi
@@ -11,9 +10,8 @@
- type: cp14Skill
id: CP14ActionSpellBloodPurification
skillUiPosition: 2, 0
skillUiPosition: 0, 0
learnCost: 1
tree: Healing
icon:
sprite: _CP14/Actions/Spells/healing.rsi
state: cure_poison
@@ -22,9 +20,8 @@
- type: cp14Skill
id: CP14ActionSpellCureWounds
skillUiPosition: 4, 0
skillUiPosition: 0, 0
learnCost: 1
tree: Healing
icon:
sprite: _CP14/Actions/Spells/healing.rsi
state: cure_wounds
@@ -33,8 +30,7 @@
- type: cp14Skill
id: CP14ActionSpellPlantGrowth
skillUiPosition: 0, 2
tree: Healing
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/healing.rsi
state: plant_growth
@@ -43,9 +39,8 @@
- type: cp14Skill
id: CP14ActionSpellHealBallade
skillUiPosition: 0, 6
skillUiPosition: 0, 0
learnCost: 1
tree: Healing
icon:
sprite: _CP14/Actions/Spells/healing.rsi
state: heal_music
@@ -54,8 +49,7 @@
- type: cp14Skill
id: CP14ActionSpellPeaceBallade
skillUiPosition: 0, 8
tree: Healing
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/healing.rsi
state: peace_music
@@ -64,8 +58,7 @@
- type: cp14Skill
id: CP14ActionSpellSpeedBallade
skillUiPosition: 0, 10
tree: Healing
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/healing.rsi
state: speed_music
@@ -74,8 +67,7 @@
- type: cp14Skill
id: CP14ActionSpellSheepPolymorph
skillUiPosition: 4, 10
tree: Healing
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/misc.rsi
state: polymorph

View File

@@ -1,7 +1,6 @@
- type: cp14Skill
id: CP14ActionSpellFreeze
skillUiPosition: 0, 4
tree: Hydrosophistry
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/water.rsi
state: freeze
@@ -11,7 +10,6 @@
- type: cp14Skill
id: CP14ActionSpellWaterCreation
skillUiPosition: 0, 0
tree: Hydrosophistry
icon:
sprite: _CP14/Actions/Spells/water.rsi
state: water_creation
@@ -20,8 +18,7 @@
- type: cp14Skill
id: CP14ActionSpellBeerCreation
skillUiPosition: 2, 0
tree: Hydrosophistry
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/water.rsi
state: beer_creation
@@ -33,8 +30,7 @@
- type: cp14Skill
id: CP14ActionSpellIceShards
skillUiPosition: 0, 6
tree: Hydrosophistry
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/water.rsi
state: ice_shards
@@ -43,8 +39,7 @@
- type: cp14Skill
id: CP14ActionSpellIceDagger
skillUiPosition: 0, 8
tree: Hydrosophistry
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/water.rsi
state: ice_dagger
@@ -53,8 +48,7 @@
- type: cp14Skill
id: CP14ActionSpellIceArrow
skillUiPosition: 0, 10
tree: Hydrosophistry
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/water.rsi
state: ice_arrow

View File

@@ -1,7 +1,6 @@
- type: cp14Skill
id: CP14ActionSpellSphereOfLight
skillUiPosition: 0, 0
tree: Illusion
icon:
sprite: _CP14/Actions/Spells/light.rsi
state: sphere_of_light
@@ -10,8 +9,7 @@
- type: cp14Skill
id: CP14ActionSpellFlashLight
skillUiPosition: 2, 0
tree: Illusion
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/light.rsi
state: flash_light
@@ -20,9 +18,8 @@
- type: cp14Skill
id: CP14ActionSpellSignalLightRed
skillUiPosition: 0, 4
skillUiPosition: 0, 0
learnCost: 0.5
tree: Illusion
icon:
sprite: _CP14/Actions/Spells/light.rsi
state: signal_light_red
@@ -31,9 +28,8 @@
- type: cp14Skill
id: CP14ActionSpellSignalLightYellow
skillUiPosition: 0, 6
skillUiPosition: 0, 0
learnCost: 0.5
tree: Illusion
icon:
sprite: _CP14/Actions/Spells/light.rsi
state: signal_light_yellow
@@ -42,9 +38,8 @@
- type: cp14Skill
id: CP14ActionSpellSignalLightBlue
skillUiPosition: 0, 8
skillUiPosition: 0, 0
learnCost: 0.5
tree: Illusion
icon:
sprite: _CP14/Actions/Spells/light.rsi
state: signal_light_blue

View File

@@ -1,7 +1,6 @@
- type: cp14Skill
id: CP14ActionSpellMagicSplitting
skillUiPosition: 0, 0
tree: Metamagic
icon:
sprite: _CP14/Actions/Spells/meta.rsi
state: counter_spell
@@ -10,9 +9,8 @@
- type: cp14Skill
id: CP14ActionSpellManaGift
skillUiPosition: 0, 2
skillUiPosition: 0, 0
learnCost: 0.5
tree: Metamagic
icon:
sprite: _CP14/Actions/Spells/meta.rsi
state: mana_gift
@@ -21,9 +19,8 @@
- type: cp14Skill
id: CP14ActionSpellManaGiftElf
skillUiPosition: 2, 2
skillUiPosition: 0, 0
learnCost: 0.5
tree: Metamagic
icon:
sprite: _CP14/Actions/Spells/meta.rsi
state: mana_gift
@@ -38,9 +35,8 @@
- type: cp14Skill
id: CP14ActionSpellManaConsume
skillUiPosition: 0, 4
skillUiPosition: 0, 0
learnCost: 0.5
tree: Metamagic
icon:
sprite: _CP14/Actions/Spells/meta.rsi
state: mana_consume
@@ -49,9 +45,8 @@
- type: cp14Skill
id: CP14ActionSpellManaConsumeElf
skillUiPosition: 2, 4
skillUiPosition: 0, 0
learnCost: 0.5
tree: Metamagic
icon:
sprite: _CP14/Actions/Spells/meta.rsi
state: mana_consume
@@ -66,8 +61,7 @@
- type: cp14Skill
id: CP14ActionSpellMagicBallade
skillUiPosition: 0, 6
tree: Metamagic
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/meta.rsi
state: magic_music

View File

@@ -1,7 +1,6 @@
- type: cp14Skill
id: CP14ActionSpellFlameCreation
skillUiPosition: 0, 0
tree: Pyrokinetic
icon:
sprite: _CP14/Actions/Spells/fire.rsi
state: flame_creation
@@ -10,8 +9,7 @@
- type: cp14Skill
id: CP14ActionSpellHellBallade
skillUiPosition: 0, 2
tree: Pyrokinetic
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/fire.rsi
state: fire_music
@@ -23,8 +21,7 @@
- type: cp14Skill
id: CP14ActionSpellTieflingInnerFire
skillUiPosition: 0, 4
tree: Pyrokinetic
skillUiPosition: 0, 0
icon:
sprite: _CP14/Actions/Spells/fire.rsi
state: tiefling_revenge

View File

@@ -1,62 +0,0 @@
- type: cp14SkillTree
id: Pyrokinetic
name: cp14-skill-tree-pyrokinetic-name
desc: cp14-skill-tree-pyrokinetic-desc
color: "#b52400"
icon:
sprite: _CP14/Actions/skill_tree.rsi
state: pyro
- type: cp14SkillTree
id: Hydrosophistry
name: cp14-skill-tree-hydrosophistry-name
desc: cp14-skill-tree-hydrosophistry-desc
color: "#1554a1"
icon:
sprite: _CP14/Actions/skill_tree.rsi
state: water
- type: cp14SkillTree
id: Illusion
name: cp14-skill-tree-illusion-name
desc: cp14-skill-tree-illusion-desc
color: "#f55faf"
icon:
sprite: _CP14/Actions/skill_tree.rsi
state: light
- type: cp14SkillTree
id: Metamagic
name: cp14-skill-tree-metamagic-name
desc: cp14-skill-tree-metamagic-desc
color: "#56e5f5"
icon:
sprite: _CP14/Actions/skill_tree.rsi
state: meta
- type: cp14SkillTree
id: Healing
name: cp14-skill-tree-healing-name
desc: cp14-skill-tree-healing-desc
color: "#51cf72"
icon:
sprite: _CP14/Actions/skill_tree.rsi
state: heal
- type: cp14SkillTree
id: Atlethic
name: cp14-skill-tree-atlethic-name
desc: cp14-skill-tree-atlethic-desc
color: "#b32e37"
icon:
sprite: _CP14/Actions/skill_tree.rsi
state: atlethic
- type: cp14SkillTree
id: Dimension
name: cp14-skill-tree-dimension-name
desc: cp14-skill-tree-dimension-desc
color: "#ac66be"
icon:
sprite: _CP14/Actions/skill_tree.rsi
state: dimension