Bugfixes + QoL (#1218)

* fix keyring

* fix #1209

* fix #1116

* fix water, test reenable ambient loop

* recipe categories in workbecnhes

* Update CP14StoreWindow.xaml

* refactor: review

* Update CP14WorkbenchWindow.xaml.cs

* Update SharedCP14MagicEnergySystem.cs

* categorizize all recipes + some UI fix

* Update round_end.yml

---------

Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
This commit is contained in:
Ed
2025-04-25 13:39:20 +03:00
committed by GitHub
parent 4bb614981f
commit 62cdf9e1c5
28 changed files with 416 additions and 86 deletions

View File

@@ -43,14 +43,11 @@ public sealed partial class ContentAudioSystem
private void CP14UpdateAmbientLoops()
{
return; //DISABLED UNTIL CLIENT ERROR SPAM FIXED
if (_timing.CurTime <= _nextUpdateTime)
return;
_nextUpdateTime = _timing.CurTime + _updateFrequency;
if (_state.CurrentState is not GameplayState)
return;

View File

@@ -170,7 +170,6 @@ public sealed class CP14ClientModularCraftSystem : CP14SharedModularCraftSystem
var defaultKey = $"cp14-modular-clothing-layer-{args.Slot}";
var counterPart = 0;
foreach (var part in start.Comp.InstalledParts)
{
var indexedPart = _proto.Index(part);
@@ -180,7 +179,7 @@ public sealed class CP14ClientModularCraftSystem : CP14SharedModularCraftSystem
var i = 0;
foreach (var layer in layers)
{
var key = $"{defaultKey}-{counterPart}-{i}";
var key = $"{defaultKey}-{indexedPart.ID}-{i}";
args.Layers.Add((key, layer));
i++;
}
@@ -210,7 +209,7 @@ public sealed class CP14ClientModularCraftSystem : CP14SharedModularCraftSystem
Color = indexedPart.Color,
};
var key = $"{defaultKey}-{counterPart}-default";
var key = $"{defaultKey}-{indexedPart.ID}-default";
args.Layers.Add((key, defaultLayer));
}
}

View File

@@ -7,7 +7,7 @@
<BoxContainer Orientation="Horizontal">
<BoxContainer HorizontalExpand="True" VerticalExpand="True" Orientation="Horizontal">
<!-- Product list (left side UI) -->
<TabContainer SizeFlagsStretchRatio="0.5" Name="Tabs" HorizontalExpand="True" VerticalExpand="True" MinSize="0 200">
<TabContainer MinWidth="400" Name="Tabs" HorizontalExpand="True" VerticalExpand="True" MinSize="0 200">
<ScrollContainer HorizontalExpand="True" VerticalExpand="True" MinSize="0 200">
<BoxContainer Name="BuyProductsContainer" Orientation="Vertical" HorizontalExpand="True"/>
</ScrollContainer>
@@ -16,7 +16,7 @@
</ScrollContainer>
</TabContainer>
<!-- Station trading data (right side UI) -->
<BoxContainer SizeFlagsStretchRatio="0.5" Orientation="Vertical" HorizontalExpand="True" VerticalExpand="True" Margin="0 0 10 0">
<BoxContainer MinWidth="400" Orientation="Vertical" HorizontalExpand="True" VerticalExpand="True" Margin="0 0 10 0">
<controls:StripeBack>
<PanelContainer>
<Label Text="{Loc 'cp14-store-ui-order'}" Align="Center" Margin="0 5 0 3"/>

View File

@@ -12,9 +12,6 @@ public sealed class CP14WorkbenchBoundUserInterface : BoundUserInterface
{
private CP14WorkbenchWindow? _window;
[ViewVariables]
private string _search = string.Empty;
public CP14WorkbenchBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
}
@@ -26,12 +23,6 @@ public sealed class CP14WorkbenchBoundUserInterface : BoundUserInterface
_window = this.CreateWindow<CP14WorkbenchWindow>();
_window.OnCraft += entry => SendMessage(new CP14WorkbenchUiCraftMessage(entry.ProtoId));
_window.OnTextUpdated += search =>
{
_search = search.Trim().ToLowerInvariant();
_window.UpdateFilter(_search);
};
}
protected override void UpdateState(BoundUserInterfaceState state)
@@ -41,7 +32,7 @@ public sealed class CP14WorkbenchBoundUserInterface : BoundUserInterface
switch (state)
{
case CP14WorkbenchUiRecipesState recipesState:
_window?.UpdateRecipes(recipesState, _search);
_window?.UpdateState(recipesState);
break;
}
}

View File

@@ -8,9 +8,12 @@
<!-- Main -->
<BoxContainer HorizontalExpand="True" VerticalExpand="True" Orientation="Horizontal">
<!-- Product list (left side UI) -->
<BoxContainer SizeFlagsStretchRatio="0.5" HorizontalExpand="True" Orientation="Vertical" Margin="0 0 10 0">
<!-- Search Bar -->
<LineEdit Name="SearchBar" Margin="4" PlaceHolder="Search" HorizontalExpand="True" />
<BoxContainer MinWidth="350" HorizontalExpand="True" Orientation="Vertical" Margin="0 0 10 0">
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<!-- Search Bar -->
<LineEdit Name="SearchBar" Margin="4" PlaceHolder="Search" HorizontalExpand="True" />
<OptionButton Name="OptionCategories" Access="Public" MinSize="130 0"/>
</BoxContainer>
<!-- Crafts container -->
<ScrollContainer HorizontalExpand="True" VerticalExpand="True" MinSize="0 200">
<BoxContainer Name="CraftsContainer" Orientation="Vertical" HorizontalExpand="True" />
@@ -18,7 +21,7 @@
</BoxContainer>
<!-- Craft view (right side UI) -->
<BoxContainer SizeFlagsStretchRatio="0.5" Orientation="Vertical" HorizontalExpand="True"
<BoxContainer MinWidth="350" Orientation="Vertical" HorizontalExpand="True"
VerticalExpand="True">
<PanelContainer HorizontalExpand="True" VerticalExpand="True">
<!-- Background -->

View File

@@ -6,7 +6,7 @@
using Content.Shared._CP14.Workbench;
using Content.Shared._CP14.Workbench.Prototypes;
using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;
@@ -16,86 +16,167 @@ namespace Content.Client._CP14.Workbench;
[GenerateTypedNameReferences]
public sealed partial class CP14WorkbenchWindow : DefaultWindow
{
[Dependency] private readonly IEntityManager _entity = default!;
[Dependency] private readonly IPrototypeManager _prototype = default!;
private const int AllCategoryId = -1;
private CP14WorkbenchUiRecipesState? _cachedState;
[Dependency] private readonly IPrototypeManager _prototype = default!;
[Dependency] private readonly ILogManager _log = default!;
public event Action<CP14WorkbenchUiRecipesEntry>? OnCraft;
public event Action<string>? OnTextUpdated;
private readonly Dictionary<int, LocId> _categories = new();
private CP14WorkbenchUiRecipesState? _cachedState;
private CP14WorkbenchUiRecipesEntry? _selectedEntry;
private string _searchFilter = string.Empty;
private ISawmill Sawmill { get; init; }
public CP14WorkbenchWindow()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
SearchBar.OnTextChanged += _ =>
{
OnTextUpdated?.Invoke(SearchBar.Text);
};
CraftButton.OnPressed += _ =>
{
if (_selectedEntry is null)
return;
Sawmill = _log.GetSawmill("cp14_workbench_window");
OnCraft?.Invoke(_selectedEntry.Value);
};
SearchBar.OnTextChanged += OnSearchChanged;
CraftButton.OnPressed += OnCraftPressed;
OptionCategories.OnItemSelected += OnCategoryItemSelected;
}
public void UpdateFilter(string? search)
public void UpdateRecipesVisibility()
{
if (_cachedState is null)
return;
UpdateRecipes(_cachedState, search);
}
public void UpdateRecipes(CP14WorkbenchUiRecipesState recipesState, string? search = null)
{
_cachedState = recipesState;
CraftsContainer.RemoveAllChildren();
List<CP14WorkbenchUiRecipesEntry> uncraftableList = new();
foreach (var entry in recipesState.Recipes)
var recipes = new List<CP14WorkbenchUiRecipesEntry>();
foreach (var entry in _cachedState.Recipes)
{
if (search is not null && search != "")
if (!_prototype.TryIndex(entry.ProtoId, out var indexedEntry))
{
if (!_prototype.TryIndex(entry.ProtoId, out var indexedEntry))
continue;
if (!_prototype.TryIndex(indexedEntry.Result, out var indexedResult))
continue;
if (!indexedResult.Name.Contains(search))
continue;
Sawmill.Error($"No recipe prototype {entry.ProtoId} retrieved from cache found");
continue;
}
if (entry.Craftable)
{
var control = new CP14WorkbenchRecipeControl(entry);
control.OnSelect += RecipeSelect;
CraftsContainer.AddChild(control);
}
else
uncraftableList.Add(entry);
if (!ProcessSearchFilter(entry, indexedEntry))
continue;
if (!ProcessSearchCategoryFilter(indexedEntry))
continue;
recipes.Add(entry);
}
foreach (var entry in uncraftableList)
recipes.Sort(CP14WorkbenchUiRecipesEntry.CompareTo);
foreach (var recipe in recipes)
{
var control = new CP14WorkbenchRecipeControl(entry);
var control = new CP14WorkbenchRecipeControl(recipe);
control.OnSelect += RecipeSelect;
CraftsContainer.AddChild(control);
}
if (_selectedEntry is not null && recipesState.Recipes.Contains(_selectedEntry.Value))
RecipeSelectNull();
}
public void UpdateState(CP14WorkbenchUiRecipesState recipesState)
{
_cachedState = recipesState;
_categories.Clear();
OptionCategories.Clear();
OptionCategories.AddItem(Loc.GetString("cp14-recipe-category-all"), AllCategoryId);
var categories = new List<LocId>();
var count = 0;
foreach (var entry in recipesState.Recipes)
{
RecipeSelect(_selectedEntry.Value, _prototype.Index(_selectedEntry.Value.ProtoId));
return;
if (!_prototype.TryIndex(entry.ProtoId, out var indexedEntry))
continue;
// Populate categories
if (indexedEntry.Category is null)
continue;
if (!_prototype.TryIndex(indexedEntry.Category, out var indexedCategory))
continue;
if (categories.Contains(indexedCategory.Name))
continue;
categories.Add(indexedCategory.Name);
}
RecipeSelect(recipesState);
categories.Sort((a, b) => string.Compare(Loc.GetString(a), Loc.GetString(b), StringComparison.Ordinal));
foreach (var category in categories)
{
OptionCategories.AddItem(Loc.GetString(category), count);
_categories.Add(count, category);
count++;
}
UpdateRecipesVisibility();
}
private void OnSearchChanged(LineEdit.LineEditEventArgs _)
{
_searchFilter = SearchBar.Text.Trim().ToLowerInvariant();
UpdateRecipesVisibility();
}
private void OnCraftPressed(BaseButton.ButtonEventArgs _)
{
if (_selectedEntry is null)
return;
OnCraft?.Invoke(_selectedEntry.Value);
}
private void OnCategoryItemSelected(OptionButton.ItemSelectedEventArgs obj)
{
OptionCategories.SelectId(obj.Id);
UpdateRecipesVisibility();
}
private bool ProcessSearchFilter(CP14WorkbenchUiRecipesEntry entry, CP14WorkbenchRecipePrototype indexedEntry)
{
if (_searchFilter == string.Empty)
return true;
// Skip the iteration, because the desired result does not match the filter
if (_prototype.TryIndex(indexedEntry.Result, out var indexedResult))
return indexedResult.Name.Contains(_searchFilter);
Sawmill.Error($"No result entity prototype {entry.ProtoId} retrieved from cache found");
return false;
}
private bool ProcessSearchCategoryFilter(CP14WorkbenchRecipePrototype indexedEntry)
{
// If we are searching through all categories, we simply skip the current filter
if (OptionCategories.SelectedId == AllCategoryId)
return true;
if (!_categories.TryGetValue(OptionCategories.SelectedId, out var selectedCategory))
{
Sawmill.Error($"Non-existent {OptionCategories.SelectedId} category id selected. Filter skipped");
return true;
}
if (indexedEntry.Category is null)
return false;
if (!_prototype.TryIndex(indexedEntry.Category, out var indexedCategory))
{
Sawmill.Error($"Non-existent {indexedEntry.Category} category prototype id. Filter skipped");
return true;
}
return indexedCategory.Name == selectedCategory;
}
private void RecipeSelect(CP14WorkbenchUiRecipesState recipesState)
@@ -107,17 +188,32 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow
}
}
private void RecipeSelect(CP14WorkbenchUiRecipesEntry cachedEntry)
{
if (_cachedState is null)
return;
if (_cachedState.Recipes.Contains(cachedEntry))
{
Sawmill.Warning($"The selected cache option {cachedEntry} isn't found in recipes");
return;
}
RecipeSelect(cachedEntry, _prototype.Index(cachedEntry.ProtoId));
}
private void RecipeSelect(CP14WorkbenchUiRecipesEntry entry, CP14WorkbenchRecipePrototype recipe)
{
_selectedEntry = entry;
var result = _prototype.Index(recipe.Result);
// TODO: Make it through the localization?
var counter = recipe.ResultCount > 1 ? $" x{recipe.ResultCount}" : string.Empty;
ItemView.SetPrototype(recipe.Result);
var counter = recipe.ResultCount > 1 ? $" x{recipe.ResultCount}" : "";
ItemName.Text = result.Name + counter;
ItemDescription.Text = result.Description;
ItemRequirements.RemoveAllChildren();
foreach (var requirement in recipe.Requirements)
@@ -127,4 +223,14 @@ public sealed partial class CP14WorkbenchWindow : DefaultWindow
CraftButton.Disabled = !entry.Craftable;
}
private void RecipeSelectNull()
{
_selectedEntry = null;
ItemView.SetPrototype(null);
ItemName.Text = string.Empty;
ItemDescription.Text = string.Empty;
ItemRequirements.RemoveAllChildren();
CraftButton.Disabled = true;
}
}

View File

@@ -81,6 +81,9 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
if (!_cp14LockQuery.TryComp(args.Target, out var cp14LockComp))
return;
if (cp14LockComp.LockShape == null)
return;
if (!_timing.IsFirstTimePredicted)
return;
@@ -91,7 +94,10 @@ public sealed class SharedCP14LockKeySystem : EntitySystem
if (!_keyQuery.TryComp(key, out var keyComp))
continue;
if (keyComp.LockShape != cp14LockComp.LockShape)
if (keyComp.LockShape == null)
continue;
if (keyComp.LockShape.SequenceEqual(cp14LockComp.LockShape))
continue;
TryUseKeyOnLock(args.User,

View File

@@ -4,6 +4,7 @@ using Content.Shared.Alert;
using Content.Shared.Audio;
using Content.Shared.Examine;
using Content.Shared.FixedPoint;
using Content.Shared.Rejuvenate;
using Content.Shared.Rounding;
namespace Content.Shared._CP14.MagicEnergy;
@@ -17,11 +18,17 @@ public abstract class SharedCP14MagicEnergySystem : EntitySystem
{
SubscribeLocalEvent<CP14MagicEnergyContainerComponent, ComponentStartup>(OnComponentStartup);
SubscribeLocalEvent<CP14MagicEnergyContainerComponent, ComponentShutdown>(OnComponentShutdown);
SubscribeLocalEvent<CP14MagicEnergyContainerComponent, RejuvenateEvent>(OnRejuvenate);
SubscribeLocalEvent<CP14MagicEnergyExaminableComponent, ExaminedEvent>(OnExamined);
SubscribeLocalEvent<CP14MagicEnergyAmbientSoundComponent, CP14SlotCrystalPowerChangedEvent>(OnSlotPowerChanged);
}
private void OnRejuvenate(Entity<CP14MagicEnergyContainerComponent> ent, ref RejuvenateEvent args)
{
ChangeEnergy((ent, ent.Comp), ent.Comp.MaxEnergy - ent.Comp.Energy, out var deltaEnergy, out var overloadEnergy, true);
}
private void OnComponentStartup(Entity<CP14MagicEnergyContainerComponent> ent, ref ComponentStartup args)
{
UpdateMagicAlert(ent);

View File

@@ -50,6 +50,11 @@ public readonly struct CP14WorkbenchUiRecipesEntry : IEquatable<CP14WorkbenchUiR
Craftable = craftable;
}
public int CompareTo(CP14WorkbenchUiRecipesEntry other)
{
return Craftable.CompareTo(other.Craftable);
}
public override bool Equals(object? obj)
{
return obj is CP14WorkbenchUiRecipesEntry other && Equals(other);
@@ -64,4 +69,14 @@ public readonly struct CP14WorkbenchUiRecipesEntry : IEquatable<CP14WorkbenchUiR
{
return HashCode.Combine(ProtoId, Craftable);
}
public override string ToString()
{
return $"{ProtoId} ({Craftable})";
}
public static int CompareTo(CP14WorkbenchUiRecipesEntry left, CP14WorkbenchUiRecipesEntry right)
{
return right.CompareTo(left);
}
}

View File

@@ -0,0 +1,18 @@
/*
* This file is sublicensed under MIT License
* https://github.com/space-wizards/space-station-14/blob/master/LICENSE.TXT
*/
using Robust.Shared.Prototypes;
namespace Content.Shared._CP14.Workbench.Prototypes;
[Prototype("CP14RecipeCategory")]
public sealed class CP14WorkbenchRecipeCategoryPrototype : IPrototype
{
[IdDataField]
public string ID { get; private set; } = string.Empty;
[DataField(required: true)]
public LocId Name;
}

View File

@@ -32,4 +32,7 @@ public sealed class CP14WorkbenchRecipePrototype : IPrototype
[DataField]
public int ResultCount = 1;
[DataField]
public ProtoId<CP14WorkbenchRecipeCategoryPrototype>? Category;
}

View File

@@ -0,0 +1,6 @@
cp14-recipe-category-all = All
cp14-recipe-category-tile = Floor
cp14-recipe-category-tool = Tools
cp14-recipe-category-weapon = Weapon
cp14-recipe-category-armor = Armor

View File

@@ -0,0 +1,6 @@
cp14-recipe-category-all = Все
cp14-recipe-category-tile = Пол
cp14-recipe-category-tool = Инструменты
cp14-recipe-category-weapon = Оружие
cp14-recipe-category-armor = Броня

View File

@@ -44,6 +44,13 @@
- ItemMask
density: 1000
hard: false
fix2: # For block AI movement
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
density: 30
mask:
- ItemMask
- type: FootstepModifier
footstepSoundCollection:
collection: FootstepWater
@@ -62,7 +69,6 @@
- type: TileEntityEffect
effects:
- !type:ExtinguishReaction
- type: FrictionContacts
- type: entity
parent: CP14FloorWaterOptimized
@@ -75,7 +81,6 @@
- type: SpeedModifierContacts
walkSpeedModifier: 0.2
sprintSpeedModifier: 0.2
- type: FrictionContacts
- type: DamageContacts
damage:
types:

View File

@@ -6,7 +6,6 @@
description: Maintains communication with the demiplanes while charged. Causes mosnters from the demiplanes to attack the city. Once it is discharged, the game is over.
suffix: ONE TO MAP
components:
- type: SpriteFade
- type: Fixtures
fixtures:
fix1:

View File

@@ -1,6 +1,7 @@
- type: CP14Recipe
id: CP14BaseShield
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14BaseWrench
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14Screwdriver
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -41,19 +44,10 @@
count: 1
result: CP14PlatePie
- type: CP14Recipe
id: CP14Nail20
tag: CP14RecipeAnvil
craftTime: 4
requirements:
- !type:StackResource
stack: CP14IronBar
count: 2
result: CP14Nail20
- type: CP14Recipe
id: CP14CrystalLampBlueEmpty
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -67,6 +61,7 @@
- type: CP14Recipe
id: CP14Scissors
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -77,6 +72,7 @@
- type: CP14Recipe
id: CP14ClothingOuterClothingCopperArmor
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -87,6 +83,7 @@
- type: CP14Recipe
id: CP14ClothingGlovesGirdles
tag: CP14RecipeAnvil
category: Armor
craftTime: 2
requirements:
- !type:StackResource
@@ -97,6 +94,7 @@
- type: CP14Recipe
id: CP14CrossboltCopper
tag: CP14RecipeAnvil
category: Weapon
craftTime: 1
requirements:
- !type:StackResource
@@ -108,6 +106,7 @@
- type: CP14Recipe
id: CP14CrossboltIron
tag: CP14RecipeAnvil
category: Weapon
craftTime: 1
requirements:
- !type:StackResource
@@ -119,6 +118,7 @@
- type: CP14Recipe
id: CP14CrossboltGold
tag: CP14RecipeAnvil
category: Weapon
craftTime: 1
requirements:
- !type:StackResource
@@ -130,6 +130,7 @@
- type: CP14Recipe
id: CP14CrossboltMithril
tag: CP14RecipeAnvil
category: Weapon
craftTime: 1
requirements:
- !type:StackResource
@@ -141,6 +142,7 @@
- type: CP14Recipe
id: CP14BaseLockpick
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -151,6 +153,7 @@
- type: CP14Recipe
id: CP14LockpickMithril
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -161,6 +164,7 @@
- type: CP14Recipe
id: CP14BaseLightCrossbow
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -177,6 +181,7 @@
- type: CP14Recipe
id: CP14ClothingMaskSteelMask
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -187,6 +192,7 @@
- type: CP14Recipe
id: CP14KeyCopperBlank
tag: CP14RecipeAnvil
category: Tools
craftTime: 3
requirements:
- !type:StackResource
@@ -197,6 +203,7 @@
- type: CP14Recipe
id: CP14KeyIronBlank
tag: CP14RecipeAnvil
category: Tools
craftTime: 3
requirements:
- !type:StackResource
@@ -207,6 +214,7 @@
- type: CP14Recipe
id: CP14KeyGoldBlank
tag: CP14RecipeAnvil
category: Tools
craftTime: 3
requirements:
- !type:StackResource
@@ -217,6 +225,7 @@
- type: CP14Recipe
id: CP14KeyMithrilBlank
tag: CP14RecipeAnvil
category: Tools
craftTime: 3
requirements:
- !type:StackResource
@@ -227,6 +236,7 @@
- type: CP14Recipe
id: CP14KeyFile
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -237,6 +247,7 @@
- type: CP14Recipe
id: CP14LockCopper
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -247,6 +258,7 @@
- type: CP14Recipe
id: CP14LockIron
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -257,6 +269,7 @@
- type: CP14Recipe
id: CP14LockGold
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -267,6 +280,7 @@
- type: CP14Recipe
id: CP14LockMithril
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14ModularAventailIronPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14ModularAventailGoldPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14ModularAventailCopperPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14ModularAventailMithrilPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -46,6 +50,7 @@
- type: CP14Recipe
id: CP14ModularAventailIronChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14ModularAventailGoldChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -66,6 +72,7 @@
- type: CP14Recipe
id: CP14ModularAventailCopperChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -76,6 +83,7 @@
- type: CP14Recipe
id: CP14ModularAventailMithrilChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronDagger
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldDagger
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperDagger
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilDagger
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -46,6 +50,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronSpear
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperSpear
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -66,6 +72,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldSpear
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -76,6 +83,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilSpear
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -88,6 +96,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronMace
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -98,6 +107,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldMace
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -108,6 +118,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperMace
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -118,6 +129,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilMace
tag: CP14RecipeAnvil
category: Weapon
craftTime: 2
requirements:
- !type:StackResource
@@ -130,6 +142,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronSword
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -140,6 +153,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldSword
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -150,6 +164,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperSword
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -160,6 +175,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilSword
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -172,6 +188,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronSickle
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -182,6 +199,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperSickle
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -192,6 +210,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldSickle
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -202,6 +221,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilSickle
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -214,6 +234,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronShovel
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -224,6 +245,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldShovel
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -235,6 +257,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperShovel
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -245,6 +268,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilShovel
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -257,6 +281,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronPickaxe
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -267,6 +292,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldPickaxe
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -277,6 +303,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperPickaxe
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -287,6 +314,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilPickaxe
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -299,6 +327,7 @@
- type: CP14Recipe
id: CP14ModularGripIron
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -309,6 +338,7 @@
- type: CP14Recipe
id: CP14ModularGripCopper
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -319,6 +349,7 @@
- type: CP14Recipe
id: CP14ModularGripGolden
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -329,6 +360,7 @@
- type: CP14Recipe
id: CP14ModularGripMithril
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -341,6 +373,7 @@
- type: CP14Recipe
id: CP14ModularGripIronLong
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -351,6 +384,7 @@
- type: CP14Recipe
id: CP14ModularGripCopperLong
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -361,6 +395,7 @@
- type: CP14Recipe
id: CP14ModularGripGoldLong
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -371,6 +406,7 @@
- type: CP14Recipe
id: CP14ModularGripMithrilLong
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -383,6 +419,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronRapier
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -393,6 +430,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldRapier
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -403,6 +441,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperRapier
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -413,6 +452,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilRapier
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -425,6 +465,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronAxe
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -435,6 +476,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperAxe
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -445,6 +487,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldAxe
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -455,6 +498,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilAxe
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -467,6 +511,7 @@
- type: CP14Recipe
id: CP14ModularBladeIronHammer
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -477,6 +522,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperHammer
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -487,6 +533,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldHammer
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -497,6 +544,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilHammer
tag: CP14RecipeAnvil
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -504,11 +552,12 @@
count: 2
result: CP14ModularBladeMithrilHammer
# Sickle
# Hoe
- type: CP14Recipe
id: CP14ModularBladeIronHoe
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -519,6 +568,7 @@
- type: CP14Recipe
id: CP14ModularBladeCopperHoe
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -529,6 +579,7 @@
- type: CP14Recipe
id: CP14ModularBladeGoldHoe
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -539,6 +590,7 @@
- type: CP14Recipe
id: CP14ModularBladeMithrilHoe
tag: CP14RecipeAnvil
category: Tools
craftTime: 2
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14ArmorIronCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14ArmorGoldCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14ArmorCopperCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14ArmorMithrilCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -46,6 +50,7 @@
- type: CP14Recipe
id: CP14ArmorIronInfantryCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14ArmorGoldInfantryCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -66,6 +72,7 @@
- type: CP14Recipe
id: CP14ArmorCopperInfantryCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -76,6 +83,7 @@
- type: CP14Recipe
id: CP14ArmorMithrilInfantryCuirass
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -88,6 +96,7 @@
- type: CP14Recipe
id: CP14ArmorIronChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 8
requirements:
- !type:StackResource
@@ -98,6 +107,7 @@
- type: CP14Recipe
id: CP14ArmorGoldChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 8
requirements:
- !type:StackResource
@@ -108,6 +118,7 @@
- type: CP14Recipe
id: CP14ArmorCopperChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 8
requirements:
- !type:StackResource
@@ -118,6 +129,7 @@
- type: CP14Recipe
id: CP14ArmorMithrilChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 8
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14ModularCuissesIronPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14ModularCuissesGoldPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14ModularCuissesCopperPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14ModularCuissesMithrilPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -46,6 +50,7 @@
- type: CP14Recipe
id: CP14ModularCuissesIronChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14ModularCuissesGoldChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -66,6 +72,7 @@
- type: CP14Recipe
id: CP14ModularCuissesCopperChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -76,6 +83,7 @@
- type: CP14Recipe
id: CP14ModularCuissesMithrilChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource

View File

@@ -3,6 +3,7 @@
- type: CP14Recipe
id: CP14ModularGardeSharpCopper
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -13,6 +14,7 @@
- type: CP14Recipe
id: CP14ModularGardeSharpIron
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -23,6 +25,7 @@
- type: CP14Recipe
id: CP14ModularGardeSharpGold
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -33,6 +36,7 @@
- type: CP14Recipe
id: CP14ModularGardeSharpMithril
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -45,6 +49,7 @@
- type: CP14Recipe
id: CP14ModularGardeSturdyCopper
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -55,6 +60,7 @@
- type: CP14Recipe
id: CP14ModularGardeSturdyIron
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -65,6 +71,7 @@
- type: CP14Recipe
id: CP14ModularGardeSturdyGold
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource
@@ -75,6 +82,7 @@
- type: CP14Recipe
id: CP14ModularGardeSturdyMithril
tag: CP14RecipeAnvil
category: Weapon
craftTime: 4
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14ModularGreaveIronPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14ModularGreaveGoldPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14ModularGreaveCopperPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14ModularGreaveMithrilPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -46,6 +50,7 @@
- type: CP14Recipe
id: CP14ModularGreaveIronChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14ModularGreaveGoldChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -66,6 +72,7 @@
- type: CP14Recipe
id: CP14ModularGreaveCopperChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -76,6 +83,7 @@
- type: CP14Recipe
id: CP14ModularGreaveMithrilChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14HelmetIronCapellina
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14HelmetGoldCapellina
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14HelmetCopperCapellina
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14HelmetMithrilCapellina
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -46,6 +50,7 @@
- type: CP14Recipe
id: CP14HelmetIronPalmHelmet
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14HelmetGoldPalmHelmet
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -66,6 +72,7 @@
- type: CP14Recipe
id: CP14HelmetCopperPalmHelmet
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -76,6 +83,7 @@
- type: CP14Recipe
id: CP14HelmetMithrilPalmHelmet
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14ModularTipCopperArrow
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -15,6 +16,7 @@
- type: CP14Recipe
id: CP14ModularTipIronArrow
tag: CP14RecipeAnvil
category: Armor
craftTime: 2
requirements:
- !type:StackResource
@@ -26,6 +28,7 @@
- type: CP14Recipe
id: CP14ModularTipGoldArrow
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -37,6 +40,7 @@
- type: CP14Recipe
id: CP14ModularTipMithrilArrow
tag: CP14RecipeAnvil
category: Armor
craftTime: 2
requirements:
- !type:StackResource

View File

@@ -4,6 +4,7 @@
- type: CP14Recipe
id: CP14ModularVisorIronPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -14,6 +15,7 @@
- type: CP14Recipe
id: CP14ModularVisorGoldPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -24,6 +26,7 @@
- type: CP14Recipe
id: CP14ModularVisorCopperPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14ModularVisorMithrilPlate
tag: CP14RecipeAnvil
category: Armor
craftTime: 4
requirements:
- !type:StackResource
@@ -46,6 +50,7 @@
- type: CP14Recipe
id: CP14ModularVisorIronChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14ModularVisorGoldChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -66,6 +72,7 @@
- type: CP14Recipe
id: CP14ModularVisorCopperChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource
@@ -76,6 +83,7 @@
- type: CP14Recipe
id: CP14ModularVisorMithrilChainmail
tag: CP14RecipeAnvil
category: Armor
craftTime: 6
requirements:
- !type:StackResource

View File

@@ -1,6 +1,7 @@
- type: CP14Recipe
id: CP14Bucket
tag: CP14RecipeWorkbench
category: Tools
craftTime: 2
requirements:
- !type:StackGroupResource
@@ -60,6 +61,7 @@
- type: CP14Recipe
id: CP14Lighter
tag: CP14RecipeWorkbench
category: Tools
craftTime: 4
requirements:
- !type:StackResource
@@ -73,6 +75,7 @@
- type: CP14Recipe
id: CP14ModularGripWooden
tag: CP14RecipeWorkbench
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -83,6 +86,7 @@
- type: CP14Recipe
id: CP14ModularGripWoodenLong
tag: CP14RecipeWorkbench
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -93,6 +97,7 @@
- type: CP14Recipe
id: CP14ModularGripLucens
tag: CP14RecipeWorkbench
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -103,6 +108,7 @@
- type: CP14Recipe
id: CP14ModularGripLucensLong
tag: CP14RecipeWorkbench
category: Tools
craftTime: 2
requirements:
- !type:StackResource
@@ -113,6 +119,7 @@
- type: CP14Recipe
id: CP14Bow
tag: CP14RecipeWorkbench
category: Weapon
craftTime: 2
requirements:
- !type:StackGroupResource
@@ -126,6 +133,7 @@
- type: CP14Recipe
id: CP14ModularRodWooden
tag: CP14RecipeWorkbench
category: Tools
craftTime: 3
requirements:
- !type:StackResource
@@ -137,6 +145,7 @@
- type: CP14Recipe
id: CP14ModularRodLucens
tag: CP14RecipeWorkbench
category: Tools
craftTime: 3
requirements:
- !type:StackResource

View File

@@ -1,6 +1,7 @@
- type: CP14Recipe
id: CP14FloorTileFoundation
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -12,6 +13,7 @@
- type: CP14Recipe
id: CP14FloorTileMarbleBrick
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -23,6 +25,7 @@
- type: CP14Recipe
id: CP14FloorTileMarbleSmallbricks
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -34,6 +37,7 @@
- type: CP14Recipe
id: CP14FloorTileStonebricks
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -45,6 +49,7 @@
- type: CP14Recipe
id: CP14FloorTileStonebricksSmallCarved
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -56,6 +61,7 @@
- type: CP14Recipe
id: CP14FloorTileStonebricksSmallCarved2
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -67,6 +73,7 @@
- type: CP14Recipe
id: CP14FloorTileStonebricksSquareCarved
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -78,6 +85,7 @@
- type: CP14Recipe
id: CP14FloorTileOakWoodplanks
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -89,6 +97,7 @@
- type: CP14Recipe
id: CP14FloorTileOakWoodplanksBig
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -100,6 +109,7 @@
- type: CP14Recipe
id: CP14FloorTileOakWoodplanksCruciform
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -111,6 +121,7 @@
- type: CP14Recipe
id: CP14FloorTileOakWoodplanksStairs
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -122,6 +133,7 @@
- type: CP14Recipe
id: CP14FloorTileBirchWoodplanks
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -133,6 +145,7 @@
- type: CP14Recipe
id: CP14FloorTileBirchWoodplanksBig
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -144,6 +157,7 @@
- type: CP14Recipe
id: CP14FloorTileBirchWoodplanksCruciform
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource
@@ -155,6 +169,7 @@
- type: CP14Recipe
id: CP14FloorTileBirchWoodplanksStairs
tag: CP14RecipeWorkbench
category: FloorTile
craftTime: 1
requirements:
- !type:StackResource

View File

@@ -0,0 +1,15 @@
- type: CP14RecipeCategory
id: FloorTile
name: cp14-recipe-category-tile
- type: CP14RecipeCategory
id: Tools
name: cp14-recipe-category-tool
- type: CP14RecipeCategory
id: Weapon
name: cp14-recipe-category-weapon
- type: CP14RecipeCategory
id: Armor
name: cp14-recipe-category-armor