Sedin (#27110)
* Sedin * almost forgot this. * what * Did a few fixes, tried to readd popup * Fix popup, ready for merge * minor change * Generalize seed removal/destruction system, add popups in general. * fix * fix (again) * deadcode is no more * Sedin buff (nerfing the recipe soon) * godont * webedit moment ok listen I had to nuke my setup because my computer was being Dumb As Shit so let me do this ONE webedit * CRIKEY * Revert "CRIKEY" This reverts commit 1c6959ffd9ba8bb1e97ccf2eb0b37b3ff4ec82ee. I was not supposed to commit that >:/ * Alright, it should be good now but I havent tested it * ready for merge/review * prob -> probability * Requested changes nodoc * Review nodoc * documento * thumb up emoji
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using Content.Server.Botany.Systems;
|
||||
using Content.Shared.EntityEffects;
|
||||
|
||||
namespace Content.Server.EntityEffects.Effects.PlantMetabolism;
|
||||
|
||||
/// <summary>
|
||||
/// Handles increase or decrease of plant potency.
|
||||
/// </summary>
|
||||
|
||||
public sealed partial class PlantAdjustPotency : PlantAdjustAttribute
|
||||
{
|
||||
public override string GuidebookAttributeName { get; set; } = "plant-attribute-potency";
|
||||
|
||||
public override void Effect(EntityEffectBaseArgs args)
|
||||
{
|
||||
if (!CanMetabolize(args.TargetEntity, out var plantHolderComp, args.EntityManager))
|
||||
return;
|
||||
|
||||
if (plantHolderComp.Seed == null)
|
||||
return;
|
||||
|
||||
var plantHolder = args.EntityManager.System<PlantHolderSystem>();
|
||||
|
||||
plantHolder.EnsureUniqueSeed(args.TargetEntity, plantHolderComp);
|
||||
|
||||
plantHolderComp.Seed.Potency = Math.Max(plantHolderComp.Seed.Potency + Amount, 1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using Content.Server.Botany.Components;
|
||||
using Content.Server.Botany.Systems;
|
||||
using Content.Shared.EntityEffects;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server.EntityEffects.Effects.PlantMetabolism;
|
||||
|
||||
/// <summary>
|
||||
/// Handles removal of seeds on a plant.
|
||||
/// </summary>
|
||||
|
||||
public sealed partial class PlantDestroySeeds : EntityEffect
|
||||
{
|
||||
public override void Effect(EntityEffectBaseArgs args)
|
||||
{
|
||||
if (
|
||||
!args.EntityManager.TryGetComponent(args.TargetEntity, out PlantHolderComponent? plantHolderComp)
|
||||
|| plantHolderComp.Seed == null
|
||||
|| plantHolderComp.Dead
|
||||
|| plantHolderComp.Seed.Immutable
|
||||
)
|
||||
return;
|
||||
|
||||
var plantHolder = args.EntityManager.System<PlantHolderSystem>();
|
||||
var popupSystem = args.EntityManager.System<SharedPopupSystem>();
|
||||
|
||||
if (plantHolderComp.Seed.Seedless == false)
|
||||
{
|
||||
plantHolder.EnsureUniqueSeed(args.TargetEntity, plantHolderComp);
|
||||
popupSystem.PopupEntity(
|
||||
Loc.GetString("botany-plant-seedsdestroyed"),
|
||||
args.TargetEntity,
|
||||
PopupType.SmallCaution
|
||||
);
|
||||
plantHolderComp.Seed.Seedless = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) =>
|
||||
Loc.GetString("reagent-effect-guidebook-plant-seeds-remove", ("chance", Probability));
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using Content.Server.Botany.Components;
|
||||
using Content.Server.Botany.Systems;
|
||||
using Content.Shared.EntityEffects;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server.EntityEffects.Effects.PlantMetabolism;
|
||||
|
||||
/// <summary>
|
||||
/// Handles restoral of seeds on a plant.
|
||||
/// </summary>
|
||||
|
||||
public sealed partial class PlantRestoreSeeds : EntityEffect
|
||||
{
|
||||
public override void Effect(EntityEffectBaseArgs args)
|
||||
{
|
||||
if (
|
||||
!args.EntityManager.TryGetComponent(args.TargetEntity, out PlantHolderComponent? plantHolderComp)
|
||||
|| plantHolderComp.Seed == null
|
||||
|| plantHolderComp.Dead
|
||||
|| plantHolderComp.Seed.Immutable
|
||||
)
|
||||
return;
|
||||
|
||||
var plantHolder = args.EntityManager.System<PlantHolderSystem>();
|
||||
var popupSystem = args.EntityManager.System<SharedPopupSystem>();
|
||||
|
||||
if (plantHolderComp.Seed.Seedless)
|
||||
{
|
||||
plantHolder.EnsureUniqueSeed(args.TargetEntity, plantHolderComp);
|
||||
popupSystem.PopupEntity(Loc.GetString("botany-plant-seedsrestored"), args.TargetEntity);
|
||||
plantHolderComp.Seed.Seedless = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) =>
|
||||
Loc.GetString("reagent-effect-guidebook-plant-seeds-add", ("chance", Probability));
|
||||
}
|
||||
Reference in New Issue
Block a user