Modular weapon inlay (#903)

* slots lists

* blade inlay

* tadam
This commit is contained in:
Ed
2025-02-16 11:41:43 +03:00
committed by GitHub
parent a3849c8aa9
commit ffa565484c
32 changed files with 581 additions and 79 deletions

View File

@@ -6,7 +6,7 @@ namespace Content.Server.EntityEffects.Effects;
public sealed partial class Electrocute : EntityEffect
{
[DataField] public int ElectrocuteTime = 2;
[DataField] public float ElectrocuteTime = 2; //CP14 - float
[DataField] public int ElectrocuteDamageScale = 5;

View File

@@ -1,12 +1,17 @@
using Content.Server._CP14.MagicEnergy;
using Content.Server.Atmos.Components;
using Content.Server.Chat.Systems;
using Content.Shared._CP14.MagicEnergy.Components;
using Content.Shared._CP14.MagicSpell;
using Content.Shared._CP14.MagicSpell.Components;
using Content.Shared._CP14.MagicSpell.Events;
using Content.Shared._CP14.MagicSpell.Spells;
using Content.Shared.Projectiles;
using Content.Shared.Throwing;
using Content.Shared.Weapons.Melee.Events;
using Content.Shared.Whitelist;
using Robust.Server.GameObjects;
using Robust.Shared.Random;
namespace Content.Server._CP14.MagicSpell;
@@ -17,12 +22,17 @@ public sealed partial class CP14MagicSystem : CP14SharedMagicSystem
[Dependency] private readonly CP14MagicEnergySystem _magicEnergy = default!;
[Dependency] private readonly EntityLookupSystem _lookup = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
[Dependency] private readonly IRobustRandom _random = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CP14AreaEntityEffectComponent, MapInitEvent>(OnAoEMapInit);
SubscribeLocalEvent<CP14SpellEffectOnHitComponent, MeleeHitEvent>(OnMeleeHit);
SubscribeLocalEvent<CP14SpellEffectOnHitComponent, ThrowDoHitEvent>(OnProjectileHit);
SubscribeLocalEvent<CP14MagicEffectVerbalAspectComponent, CP14VerbalAspectSpeechEvent>(OnSpellSpoken);
SubscribeLocalEvent<CP14MagicEffectCastingVisualComponent, CP14StartCastMagicEffectEvent>(OnSpawnMagicVisualEffect);
@@ -31,6 +41,37 @@ public sealed partial class CP14MagicSystem : CP14SharedMagicSystem
SubscribeLocalEvent<CP14MagicEffectManaCostComponent, CP14MagicEffectConsumeResourceEvent>(OnManaConsume);
}
private void OnProjectileHit(Entity<CP14SpellEffectOnHitComponent> ent, ref ThrowDoHitEvent args)
{
if (!_random.Prob(ent.Comp.Prob))
return;
if (ent.Comp.Whitelist is not null && !_whitelist.IsValid(ent.Comp.Whitelist, args.Target))
return;
foreach (var effect in ent.Comp.Effects)
{
effect.Effect(EntityManager, new CP14SpellEffectBaseArgs(args.Thrown, ent, args.Target, Transform(args.Target).Coordinates));
}
}
private void OnMeleeHit(Entity<CP14SpellEffectOnHitComponent> ent, ref MeleeHitEvent args)
{
if (!_random.Prob(ent.Comp.Prob))
return;
foreach (var entity in args.HitEntities)
{
if (ent.Comp.Whitelist is not null && !_whitelist.IsValid(ent.Comp.Whitelist, entity))
continue;
foreach (var effect in ent.Comp.Effects)
{
effect.Effect(EntityManager, new CP14SpellEffectBaseArgs(args.User, ent, entity, Transform(entity).Coordinates));
}
}
}
private void OnAoEMapInit(Entity<CP14AreaEntityEffectComponent> ent, ref MapInitEvent args)
{
var entitiesAround = _lookup.GetEntitiesInRange(ent, ent.Comp.Range, LookupFlags.Uncontained);

View File

@@ -0,0 +1,20 @@
using Content.Shared._CP14.MagicSpell.Spells;
using Content.Shared.Whitelist;
namespace Content.Server._CP14.MagicSpell;
/// <summary>
/// Component that allows an meleeWeapon to apply effects to other entities on melee attacks.
/// </summary>
[RegisterComponent]
public sealed partial class CP14SpellEffectOnHitComponent : Component
{
[DataField(required: true, serverOnly: true)]
public List<CP14SpellEffect> Effects = new();
[DataField]
public EntityWhitelist? Whitelist;
[DataField]
public float Prob = 1f;
}

View File

@@ -119,16 +119,19 @@ public sealed class CP14ModularCraftSystem : CP14SharedModularCraftSystem
if (!_proto.TryIndex(partProto, out var partIndexed))
continue;
if (partIndexed.TargetSlot is null)
if (partIndexed.Slots.Count == 0)
continue;
if (!start.Comp.FreeSlots.Contains(partIndexed.TargetSlot.Value))
continue;
if (TryAddPartToSlot(start, part, partProto, partIndexed.TargetSlot.Value))
foreach (var slot in partIndexed.Slots)
{
QueueDel(part);
return true;
if (!start.Comp.FreeSlots.Contains(slot))
continue;
if (TryAddPartToSlot(start, part, partProto, slot))
{
QueueDel(part);
return true;
}
}
}
@@ -141,13 +144,18 @@ public sealed class CP14ModularCraftSystem : CP14SharedModularCraftSystem
if (!_proto.TryIndex(partProto, out var partIndexed))
return false;
if (partIndexed.TargetSlot is null)
if (partIndexed.Slots.Count == 0)
return false;
if (!start.Comp.FreeSlots.Contains(partIndexed.TargetSlot.Value))
return false;
foreach (var slot in partIndexed.Slots)
{
if (!start.Comp.FreeSlots.Contains(slot))
continue;
return TryAddPartToSlot(start, null, partProto, partIndexed.TargetSlot.Value);
return TryAddPartToSlot(start, null, partProto, slot);
}
return false;
}
private bool TryAddPartToSlot(Entity<CP14ModularCraftStartPointComponent> start,

View File

@@ -10,7 +10,7 @@ public sealed partial class CP14ModularCraftPartPrototype : IPrototype
public string ID { get; private set; } = default!;
[DataField]
public ProtoId<CP14ModularCraftSlotPrototype>? TargetSlot;
public List<ProtoId<CP14ModularCraftSlotPrototype>> Slots = new();
/// <summary>
/// An entity that can drop out of the final modular item when destroyed.
@@ -20,7 +20,7 @@ public sealed partial class CP14ModularCraftPartPrototype : IPrototype
public EntProtoId? SourcePart;
[DataField]
public float DestroyProb = 0.0f;
public float DestroyProb;
[DataField(serverOnly: true)]
public List<CP14ModularCraftModifier> Modifiers = new();

View File

@@ -1,4 +1,5 @@
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
namespace Content.Shared._CP14.ModularCraft.Prototypes;
@@ -10,4 +11,7 @@ public sealed partial class CP14ModularCraftSlotPrototype : IPrototype
[DataField(required: true)]
public LocId Name = string.Empty;
[DataField]
public SpriteSpecifier? IconDisplacement { get; private set; }
}

View File

@@ -1,2 +1,3 @@
cp14-modular-slot-blade = blade
cp14-modular-slot-garde = garde
cp14-modular-slot-garde = garde
cp14-modular-slot-blade-inlay = blade inlay

View File

@@ -1,2 +1,3 @@
cp14-modular-slot-blade = лезвие
cp14-modular-slot-garde = гарда
cp14-modular-slot-garde = гарда
cp14-modular-slot-blade-inlay = инкрустация лезвия

View File

@@ -0,0 +1,12 @@
- type: entity
parent: BaseItem
id: CP14ModularGardeBase
categories: [ ForkFiltered ]
abstract: true
description: Garde? Garde!
components:
- type: Item
storedRotation: 45
shape:
- 0,0,0,0
storedOffset: 0, 5

View File

@@ -1,16 +1,3 @@
- type: entity
parent: BaseItem
id: CP14ModularGardeBase
categories: [ ForkFiltered ]
abstract: true
description: Garde? Garde!
components:
- type: Item
storedRotation: 45
shape:
- 0,0,0,0
storedOffset: 0, 5
- type: entity
parent: CP14ModularGardeBase
id: CP14ModularGardeSharpIron

View File

@@ -0,0 +1,12 @@
- type: entity
parent: BaseItem
id: CP14ModularInlayBase
categories: [ ForkFiltered ]
description: A small piece that can be inlaid into your weapon or tool.
abstract: true
components:
- type: Item
storedRotation: 45
shape:
- 0,0,0,0
storedOffset: 0, 5

View File

@@ -0,0 +1,102 @@
- type: entity
parent: CP14ModularInlayBase
id: CP14ModularInlayQuartzBase
abstract: true
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Inlay/quartz.rsi
- type: entity
parent: CP14ModularInlayQuartzBase
id: CP14ModularInlayQuartzWater
name: water quartz inlay
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Inlay/quartz.rsi
layers:
- state: item
color: "#5eabeb"
- state: frame
- type: CP14ModularCraftPart
possibleParts:
- InlayQuartzWater
- type: entity
parent: CP14ModularInlayQuartzBase
id: CP14ModularInlayQuartzHealing
name: healing quartz inlay
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Inlay/quartz.rsi
layers:
- state: item
color: "#79b330"
- state: frame
- type: CP14ModularCraftPart
possibleParts:
- InlayQuartzHealing
- type: entity
parent: CP14ModularInlayQuartzBase
id: CP14ModularInlayQuartzFire
name: fire quartz inlay
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Inlay/quartz.rsi
layers:
- state: item
color: "#ed731c"
- state: frame
- type: CP14ModularCraftPart
possibleParts:
- InlayQuartzFire
- type: entity
parent: CP14ModularInlayQuartzBase
id: CP14ModularInlayQuartzLight
name: light quartz inlay
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Inlay/quartz.rsi
layers:
- state: item
color: "#f1c7ff"
shader: unshaded
- state: frame
- type: CP14ModularCraftPart
possibleParts:
- InlayQuartzLight
- type: PointLight
radius: 2
color: "#f1c7ff"
netsync: false
- type: entity
parent: CP14ModularInlayQuartzBase
id: CP14ModularInlayQuartzElectric
name: electric quartz inlay
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Inlay/quartz.rsi
layers:
- state: item
color: "#e6ff6b"
- state: frame
- type: CP14ModularCraftPart
possibleParts:
- InlayQuartzElectric
- type: entity
parent: CP14ModularInlayQuartzBase
id: CP14ModularInlayQuartzDarkness
name: darkness quartz inlay
components:
- type: Sprite
sprite: _CP14/Objects/ModularTools/Inlay/quartz.rsi
layers:
- state: item
color: "#391c57"
- state: frame
- type: CP14ModularCraftPart
possibleParts:
- InlayQuartzDarkness

View File

@@ -26,10 +26,14 @@
newSize: Normal
adjustShape: 0, 1
storedOffsetBonus: 0, 5
- !type:EditModularSlots
addSlots:
- BladeInlay
- type: modularPart
id: BladeIronAxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
modifiers:
@@ -40,7 +44,8 @@
- type: modularPart
id: BladeGoldAxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
color: "#ffaf47"
@@ -52,7 +57,8 @@
- type: modularPart
id: BladeCopperAxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
color: "#bd712f"
@@ -64,7 +70,8 @@
- type: modularPart
id: BladeMithrilAxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Axe/metall_axe.rsi
color: "#45d2a4"

View File

@@ -31,10 +31,12 @@
- !type:EditModularSlots
addSlots:
- Garde
- BladeInlay
- type: modularPart
id: BladeIronDagger
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
modifiers:
@@ -45,7 +47,8 @@
- type: modularPart
id: BladeGoldDagger
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
color: "#ffaf47"
@@ -57,7 +60,8 @@
- type: modularPart
id: BladeCopperDagger
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
color: "#bd712f"
@@ -69,7 +73,8 @@
- type: modularPart
id: BladeMithrilDagger
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Dagger/metall_dagger.rsi
color: "#45d2a4"

View File

@@ -43,10 +43,14 @@
storedOffsetBonus: 0, 5
- !type:EditDamageableModifier # How you can break a hammer?
multiplier: 0.8
- !type:EditModularSlots
addSlots:
- BladeInlay
- type: modularPart
id: BladeIronHammer
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi
modifiers:
@@ -57,7 +61,8 @@
- type: modularPart
id: BladeGoldHammer
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi
color: "#ffaf47"
@@ -69,7 +74,8 @@
- type: modularPart
id: BladeCopperHammer
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi
color: "#bd712f"
@@ -81,7 +87,8 @@
- type: modularPart
id: BladeMithrilHammer
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Hammer/metall_hammer.rsi
color: "#45d2a4"

View File

@@ -27,7 +27,8 @@
- type: modularPart
id: BladeIronMace
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi
modifiers:
@@ -38,7 +39,8 @@
- type: modularPart
id: BladeGoldMace
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi
color: "#ffaf47"
@@ -50,7 +52,8 @@
- type: modularPart
id: BladeCopperMace
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi
color: "#bd712f"
@@ -62,7 +65,8 @@
- type: modularPart
id: BladeMithrilMace
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Mace/metall_mace.rsi
color: "#45d2a4"

View File

@@ -19,10 +19,12 @@
- !type:EditModularSlots
addSlots:
- Garde
- BladeInlay
- type: modularPart
id: BladeIronPickaxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi
modifiers:
@@ -33,7 +35,8 @@
- type: modularPart
id: BladeGoldPickaxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi
color: "#ffaf47"
@@ -45,7 +48,8 @@
- type: modularPart
id: BladeCopperPickaxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi
color: "#bd712f"
@@ -57,7 +61,8 @@
- type: modularPart
id: BladeMithrilPickaxe
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Pickaxe/metall_pickaxe.rsi
color: "#45d2a4"

View File

@@ -28,12 +28,14 @@
- !type:EditModularSlots
addSlots:
- Garde
- BladeInlay
- !type:EditDamageableModifier # Only 1 ingot t craft, so less health
multiplier: 2
- type: modularPart
id: BladeIronRapier
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi
modifiers:
@@ -44,7 +46,8 @@
- type: modularPart
id: BladeGoldRapier
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi
color: "#ffaf47"
@@ -56,7 +59,8 @@
- type: modularPart
id: BladeCopperRapier
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi
color: "#bd712f"
@@ -68,7 +72,8 @@
- type: modularPart
id: BladeMithrilRapier
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Rapier/metall_rapier.rsi
color: "#45d2a4"

View File

@@ -28,10 +28,14 @@
newSize: Normal
adjustShape: 0, 1
storedOffsetBonus: 0, 5
- !type:EditModularSlots
addSlots:
- BladeInlay
- type: modularPart
id: BladeIronShovel
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi
modifiers:
@@ -42,7 +46,8 @@
- type: modularPart
id: BladeGoldShovel
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi
color: "#ffaf47"
@@ -54,7 +59,8 @@
- type: modularPart
id: BladeCopperShovel
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi
color: "#bd712f"
@@ -66,7 +72,8 @@
- type: modularPart
id: BladeMithrilShovel
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Shovel/metall_shovel.rsi
color: "#45d2a4"

View File

@@ -21,10 +21,12 @@
- !type:EditModularSlots
addSlots:
- Garde
- BladeInlay
- type: modularPart
id: BladeIronSickle
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi
modifiers:
@@ -35,7 +37,8 @@
- type: modularPart
id: BladeGoldSickle
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi
color: "#ffaf47"
@@ -47,7 +50,8 @@
- type: modularPart
id: BladeCopperSickle
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi
color: "#bd712f"
@@ -59,7 +63,8 @@
- type: modularPart
id: BladeMithrilSickle
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Sickle/metall_sickle.rsi
color: "#45d2a4"

View File

@@ -36,10 +36,12 @@
- !type:EditModularSlots
addSlots:
- Garde
- BladeInlay
- type: modularPart
id: BladeIronSpear
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi
modifiers:
@@ -50,7 +52,8 @@
- type: modularPart
id: BladeGoldSpear
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi
color: "#ffaf47"
@@ -62,7 +65,8 @@
- type: modularPart
id: BladeCopperSpear
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi
color: "#bd712f"
@@ -74,7 +78,8 @@
- type: modularPart
id: BladeMithrilSpear
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Spear/metall_spear.rsi
color: "#45d2a4"

View File

@@ -32,10 +32,12 @@
- !type:EditModularSlots
addSlots:
- Garde
- BladeInlay
- type: modularPart
id: BladeIronSword
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi
modifiers:
@@ -46,7 +48,8 @@
- type: modularPart
id: BladeGoldSword
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi
color: "#ffaf47"
@@ -58,7 +61,8 @@
- type: modularPart
id: BladeCopperSword
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi
color: "#bd712f"
@@ -70,7 +74,8 @@
- type: modularPart
id: BladeMithrilSword
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Blade/Sword/metall_sword.rsi
color: "#45d2a4"
@@ -82,7 +87,8 @@
- type: modularPart
id: BladeBoneSword
targetSlot: Blade
slots:
- Blade
sourcePart: CP14ModularBladeBoneSword
rsiPath: _CP14/Objects/ModularTools/Blade/Sword/bone_sword.rsi
modifiers:

View File

@@ -11,7 +11,8 @@
- type: modularPart
id: GardeSharpIron
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi
modifiers:
@@ -21,7 +22,8 @@
- type: modularPart
id: GardeSharpGold
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi
color: "#ffaf47"
@@ -32,7 +34,8 @@
- type: modularPart
id: GardeSharpCopper
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi
color: "#bd712f"
@@ -43,7 +46,8 @@
- type: modularPart
id: GardeSharpMithril
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sharp.rsi
color: "#45d2a4"

View File

@@ -11,7 +11,8 @@
- type: modularPart
id: GardeSturdyIron
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapIron
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi
modifiers:
@@ -21,7 +22,8 @@
- type: modularPart
id: GardeSturdyGold
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapGold
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi
color: "#ffaf47"
@@ -32,7 +34,8 @@
- type: modularPart
id: GardeSturdyCopper
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapCopper
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi
color: "#bd712f"
@@ -43,7 +46,8 @@
- type: modularPart
id: GardeSturdyMithril
targetSlot: Garde
slots:
- Garde
sourcePart: CP14ScrapMithril
rsiPath: _CP14/Objects/ModularTools/Garde/metall_sturdy.rsi
color: "#45d2a4"

View File

@@ -0,0 +1,129 @@
- type: modularPart
id: InlayQuartzWater
slots:
- BladeInlay
rsiPath: _CP14/Objects/ModularTools/Inlay/quartz.rsi
color: "#5eabeb"
modifiers:
- !type:AddComponents
components:
- type: CP14SpellEffectOnHit
effects:
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectFreeze
- !type:CP14SpellApplyEntityEffect
effects:
- !type:MovespeedModifier
walkSpeedModifier: 0.75
sprintSpeedModifier: 0.75
statusLifetime: 2
- !type:AdjustTemperature
amount: -6000
- !type:ExtinguishReaction
- type: modularPart
id: InlayQuartzHealing
slots:
- BladeInlay
rsiPath: _CP14/Objects/ModularTools/Inlay/quartz.rsi
color: "#79b330"
modifiers:
- !type:AddComponents
components:
- type: CP14SpellEffectOnHit
effects:
- !type:CP14SpellApplyEntityEffect
effects:
- !type:HealthChange
damage:
types:
Slash: -0.5
Blunt: -0.5
Piercing: -0.5
Poison: -0.5
Bloodloss: -0.5
Caustic: -0.5
Cold: -0.5
Heat: -0.5
Shock: -0.5
- !type:Jitter
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectCureWounds
- type: modularPart
id: InlayQuartzFire
slots:
- BladeInlay
rsiPath: _CP14/Objects/ModularTools/Inlay/quartz.rsi
color: "#ed731c"
modifiers:
- !type:AddComponents
components:
- type: CP14SpellEffectOnHit
whitelist:
components:
- MobState #Please dont burn all map
effects:
- !type:CP14SpellApplyEntityEffect
effects:
- !type:FlammableReaction
multiplier: 0.5
- !type:AdjustTemperature
amount: 6000
- !type:Ignite
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectFlameCreation
- type: modularPart
id: InlayQuartzLight
slots:
- BladeInlay
rsiPath: _CP14/Objects/ModularTools/Inlay/quartz.rsi
color: "#f1c7ff"
modifiers:
- !type:AddComponents
components:
- type: PointLight
color: "#f1c7ff"
radius: 3
- type: modularPart
id: InlayQuartzElectric
slots:
- BladeInlay
rsiPath: _CP14/Objects/ModularTools/Inlay/quartz.rsi
color: "#e6ff6b"
modifiers:
- !type:AddComponents
components:
- type: CP14SpellEffectOnHit
prob: 0.15
effects:
- !type:CP14SpellApplyEntityEffect
effects:
- !type:Electrocute
electrocuteTime: 0.5
electrocuteDamageScale: 1
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ElectrifiedEffect
- type: modularPart
id: InlayQuartzDarkness
slots:
- BladeInlay
rsiPath: _CP14/Objects/ModularTools/Inlay/quartz.rsi
color: "#391c57"
modifiers:
- !type:AddComponents
components:
- type: CP14SpellEffectOnHit
effects:
- !type:CP14SpellThrowFromUser
throwPower: 9
- !type:CP14SpellSpawnEntityOnTarget
spawns:
- CP14ImpactEffectShadowGrab

View File

@@ -4,4 +4,8 @@
- type: modularSlot
id: Garde
name: cp14-modular-slot-garde
name: cp14-modular-slot-garde
- type: modularSlot
id: BladeInlay
name: cp14-modular-slot-blade-inlay

View File

@@ -8,6 +8,8 @@
- !type:StackResource
stack: CP14CopperBar
count: 1
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularGardeSharpCopper
- type: CP14Recipe
@@ -18,6 +20,8 @@
- !type:StackResource
stack: CP14IronBar
count: 1
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularGardeSharpIron
- type: CP14Recipe
@@ -28,6 +32,8 @@
- !type:StackResource
stack: CP14GoldBar
count: 1
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularGardeSharpGold
- type: CP14Recipe
@@ -38,6 +44,8 @@
- !type:StackResource
stack: CP14MithrilBar
count: 1
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularGardeSharpMithril
# Sturdy garde

View File

@@ -0,0 +1,89 @@
- type: CP14Recipe
id: CP14ModularInlayQuartzWater
tag: CP14RecipeAnvil
craftTime: 4
requirements:
- !type:StackResource
stack: CP14MithrilBar
count: 2
- !type:ProtoIdResource
protoId: CP14CrystalShardWater
count: 4
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularInlayQuartzWater
- type: CP14Recipe
id: CP14ModularInlayQuartzHealing
tag: CP14RecipeAnvil
craftTime: 4
requirements:
- !type:StackResource
stack: CP14MithrilBar
count: 2
- !type:ProtoIdResource
protoId: CP14CrystalShardHealing
count: 4
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularInlayQuartzHealing
- type: CP14Recipe
id: CP14ModularInlayQuartzFire
tag: CP14RecipeAnvil
craftTime: 4
requirements:
- !type:StackResource
stack: CP14MithrilBar
count: 2
- !type:ProtoIdResource
protoId: CP14CrystalShardFire
count: 4
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularInlayQuartzFire
- type: CP14Recipe
id: CP14ModularInlayQuartzLight
tag: CP14RecipeAnvil
craftTime: 4
requirements:
- !type:StackResource
stack: CP14MithrilBar
count: 2
- !type:ProtoIdResource
protoId: CP14CrystalShardLight
count: 4
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularInlayQuartzLight
- type: CP14Recipe
id: CP14ModularInlayQuartzElectric
tag: CP14RecipeAnvil
craftTime: 4
requirements:
- !type:StackResource
stack: CP14MithrilBar
count: 2
- !type:ProtoIdResource
protoId: CP14CrystalShardElectric
count: 4
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularInlayQuartzElectric
- type: CP14Recipe
id: CP14ModularInlayQuartzDarkness
tag: CP14RecipeAnvil
craftTime: 4
requirements:
- !type:StackResource
stack: CP14MithrilBar
count: 2
- !type:ProtoIdResource
protoId: CP14CrystalShardDarkness
count: 4
- !type:KnowledgeRequired
knowledge: MetallForging
result: CP14ModularInlayQuartzDarkness

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

View File

@@ -0,0 +1,20 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-4.0",
"copyright": "Created by TheShuEd (Github)",
"states": [
{
"name": "icon"
},
{
"name": "item"
},
{
"name": "frame"
}
]
}