From 57a7cb30a77ca4a7e27bae3d49bccb3eddfc0d23 Mon Sep 17 00:00:00 2001 From: Red <96445749+TheShuEd@users.noreply.github.com> Date: Sat, 23 Aug 2025 01:56:01 +0300 Subject: [PATCH] Vampire hotfix (#1696) * Adjust vampire features and add construction category Increased vampire skill points from 1 to 3 and removed SendOnlyToOwner override. Updated power punch spell: removed cast slowdown, increased paralyze durations, and raised cooldown. Added new construction category for vampires with English and Russian localization, and updated vampire construction recipes to use this category. Reduced furnace recipe craft times from 4 to 1. Cleaned up unused usings in vampire components. * Improve vampire skill popups and clan heart features Added missing popup when no essence is left to gather and improved popup handling for skill point changes. Updated localization for clan progress and essence messages, added WarpPoint to vampire clan heart, and adjusted vampire skill tree structure and UI positions. * Add vampire hypnosis skill and rebalance vampire content Introduces the Hypnosys vampire skill and associated spell, including new status effects and alerts for forced sleep. Adjusts vampire skill tree progression, rebalances bite spell effects, modifies construction recipes to use stone instead of iron, and updates entity drop behaviors. Also tweaks skill point defaults and hunger/thirst effect order for plant growth spells. * Adjust hunger settings and map spawner modifiers Removed baseDecayRate and starvationDamage from Hunger components for NightChildrens, Devourers, and Unnameable in subgamemodes.yml. Updated comoss.yml and venicialis.yml to replace or add spawner modifiers, introducing Boar and Rabbits while removing EnemyFlem, MonsterMosquito, and MobSlimeIce. * Add SSD block to magic system and vampire bite spell Introduced CP14MagicEffectSSDBlockComponent to prevent magic use on SSD (disconnected) players. Updated the magic system to check for SSD status and added localization strings for SSD block messages in English and Russian. Applied the SSD block effect to the vampire bite spell. Also fixed a typo in the PacifiedBlockComponent filename. * Make blood reagents unrecognizable and adjust effects Set all blood reagent variants to 'recognizable: false' to prevent easy identification. Simplified and unified damage effects for blood reagents, removing some specific reactions and adjusting damage groups, particularly for vampire-related blood types. Also fixed a duplicate 'allowedStates' key in the vampire bite spell action. * Enable map initialization and clean up power punch spell Changed map creation in Demiplane and CrashToWildlands systems to run map initialization by setting runMapInit to true. Removed redundant map initialization check in CP14SpawnProceduralLocationJob. Also removed the CP14ActionSpellVampirePower2 entity from the vampire power punch spell prototype. --- .../Vampire/CP14ShowVampireIconsSystem.cs | 1 - .../_CP14/Demiplane/CP14DemiplaneSystem.cs | 2 +- .../Rules/CP14CrashToWildlandsRule.cs | 2 +- .../CP14SpawnProceduralLocationJob.cs | 4 +- .../CP14SharedMagicSystem.Checks.cs | 17 +++++ ... CP14MagicEffectPacifiedBlockComponent.cs} | 0 .../CP14MagicEffectSSDBlockComponent.cs | 9 +++ .../_CP14/Skill/CP14SharedSkillSystem.cs | 8 +-- .../_CP14/Vampire/CP14SharedVampireSystem.cs | 5 ++ .../CP14ShowVampireFactionComponent.cs | 1 - .../Components/CP14VampireComponent.cs | 4 +- .../en-US/_CP14/construction/category.ftl | 1 + .../en-US/_CP14/magicEnergy/magic-spells.ftl | 1 + .../Locale/en-US/_CP14/vampire/vampire.ftl | 3 +- .../ru-RU/_CP14/construction/category.ftl | 1 + .../ru-RU/_CP14/magicEnergy/magic-spells.ftl | 1 + .../Locale/ru-RU/_CP14/vampire/vampire.ftl | 3 +- .../Prototypes/_CP14/Alerts/status_effect.yml | 8 ++- .../Actions/Spells/Life/plant_growth.yml | 5 +- .../Entities/Actions/Spells/Vampire/bite.yml | 5 +- .../Actions/Spells/Vampire/hypnosys.yml | 68 +++++++++++++++++++ .../Actions/Spells/Vampire/power_punch.yml | 37 +--------- .../Actions/Spells/Vampire/search_vampire.yml | 28 +------- .../_CP14/Entities/StatusEffects/misc.yml | 14 +++- .../Structures/Specific/Vampire/vampire.yml | 25 +------ .../_CP14/GameRules/subgamemodes.yml | 15 ---- Resources/Prototypes/_CP14/Maps/comoss.yml | 4 +- .../Prototypes/_CP14/Maps/venicialis.yml | 3 +- Resources/Prototypes/_CP14/Reagents/blood.yml | 35 +++------- .../Construction/Graphs/Vampire/workbench.yml | 23 ++----- .../_CP14/Recipes/Construction/vampire.yml | 16 ++--- .../_CP14/Recipes/Workbench/furnace.yml | 10 +-- .../_CP14/Skill/Vampire/vampire.yml | 49 +++++++------ 33 files changed, 204 insertions(+), 204 deletions(-) rename Content.Shared/_CP14/MagicSpell/Components/{CP14MagicEffctPacifiedBlockComponent.cs => CP14MagicEffectPacifiedBlockComponent.cs} (100%) create mode 100644 Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectSSDBlockComponent.cs create mode 100644 Resources/Locale/en-US/_CP14/construction/category.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/construction/category.ftl create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/hypnosys.yml diff --git a/Content.Client/_CP14/Vampire/CP14ShowVampireIconsSystem.cs b/Content.Client/_CP14/Vampire/CP14ShowVampireIconsSystem.cs index 1a03888f33..0c3298fa31 100644 --- a/Content.Client/_CP14/Vampire/CP14ShowVampireIconsSystem.cs +++ b/Content.Client/_CP14/Vampire/CP14ShowVampireIconsSystem.cs @@ -1,6 +1,5 @@ using Content.Client.Administration.Managers; using Content.Client.Overlays; -using Content.Shared._CP14.Vampire; using Content.Shared._CP14.Vampire.Components; using Content.Shared.Ghost; using Content.Shared.StatusIcon.Components; diff --git a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs index 5ba28bcf96..9bcb03e17d 100644 --- a/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs +++ b/Content.Server/_CP14/Demiplane/CP14DemiplaneSystem.cs @@ -116,7 +116,7 @@ public sealed partial class CP14DemiplaneSystem : CP14SharedDemiplaneSystem } stationMap.GeneratedNodes.Add(targetPosition.Value); - _map.CreateMap(out var mapId, runMapInit: false); + _map.CreateMap(out var mapId, runMapInit: true); var mapUid = _map.GetMap(mapId); EnsureComp(mapUid).Position = targetPosition.Value; diff --git a/Content.Server/_CP14/GameTicking/Rules/CP14CrashToWildlandsRule.cs b/Content.Server/_CP14/GameTicking/Rules/CP14CrashToWildlandsRule.cs index e2613b98ec..5a9d9e678a 100644 --- a/Content.Server/_CP14/GameTicking/Rules/CP14CrashToWildlandsRule.cs +++ b/Content.Server/_CP14/GameTicking/Rules/CP14CrashToWildlandsRule.cs @@ -52,7 +52,7 @@ public sealed class CP14ExpeditionToWindlandsRule : GameRuleSystem(largestStationGrid.Value, out var shuttleComp); - var windlands = _mapSystem.CreateMap(out var mapId, runMapInit: false); + var windlands = _mapSystem.CreateMap(out var mapId, runMapInit: true); _generation.GenerateLocation(windlands, mapId, component.Location, component.Modifiers); _shuttles.FTLToCoordinates(largestStationGrid.Value, shuttleComp, new EntityCoordinates(windlands, Vector2.Zero), 0f, 0f, component.FloatingTime); diff --git a/Content.Server/_CP14/Procedural/CP14SpawnProceduralLocationJob.cs b/Content.Server/_CP14/Procedural/CP14SpawnProceduralLocationJob.cs index abc6e4f157..8d49f85601 100644 --- a/Content.Server/_CP14/Procedural/CP14SpawnProceduralLocationJob.cs +++ b/Content.Server/_CP14/Procedural/CP14SpawnProceduralLocationJob.cs @@ -80,8 +80,6 @@ public sealed class CP14SpawnProceduralLocationJob( var mixture = new GasMixture(moles, Atmospherics.T20C); entManager.System().SetMapAtmosphere(MapUid, false, mixture); - if (!map.IsInitialized(mapId)) - map.InitializeMap(mapId); map.SetPaused(mapId, false); //Spawn modified config @@ -90,7 +88,7 @@ public sealed class CP14SpawnProceduralLocationJob( gridComp, position, seed)); - + //Add map components entManager.AddComponents(MapUid, locationConfig.Components); diff --git a/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs b/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs index 218ceceb93..0e5e7851b3 100644 --- a/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs +++ b/Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.Checks.cs @@ -15,6 +15,7 @@ using Content.Shared.Mobs; using Content.Shared.Mobs.Components; using Content.Shared.Popups; using Content.Shared.Speech.Muting; +using Content.Shared.SSDIndicator; namespace Content.Shared._CP14.MagicSpell; @@ -33,6 +34,7 @@ public abstract partial class CP14SharedMagicSystem SubscribeLocalEvent(OnStaminaCheck); SubscribeLocalEvent(OnSkillPointCheck); SubscribeLocalEvent(OnPacifiedCheck); + SubscribeLocalEvent(OnSSDCheck); SubscribeLocalEvent(OnMobStateCheck); SubscribeLocalEvent(OnReligionRestrictedCheck); @@ -180,6 +182,21 @@ public abstract partial class CP14SharedMagicSystem args.Cancel(); } + private void OnSSDCheck(Entity ent, ref CP14CastMagicEffectAttemptEvent args) + { + if (args.Target is null) + return; + + if (!TryComp(args.Target.Value, out var ssdIndication)) + return; + + if (ssdIndication.IsSSD) + { + args.PushReason(Loc.GetString("cp14-magic-spell-ssd")); + args.Cancel(); + } + } + private void OnMobStateCheck(Entity ent, ref CP14CastMagicEffectAttemptEvent args) { diff --git a/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffctPacifiedBlockComponent.cs b/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectPacifiedBlockComponent.cs similarity index 100% rename from Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffctPacifiedBlockComponent.cs rename to Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectPacifiedBlockComponent.cs diff --git a/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectSSDBlockComponent.cs b/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectSSDBlockComponent.cs new file mode 100644 index 0000000000..53ec253b29 --- /dev/null +++ b/Content.Shared/_CP14/MagicSpell/Components/CP14MagicEffectSSDBlockComponent.cs @@ -0,0 +1,9 @@ +namespace Content.Shared._CP14.MagicSpell.Components; + +/// +/// Blocks the target from using magic if they are pacified. +/// +[RegisterComponent, Access(typeof(CP14SharedMagicSystem))] +public sealed partial class CP14MagicEffectSSDBlockComponent : Component +{ +} diff --git a/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs b/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs index c432fc0d67..09a429c26a 100644 --- a/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs +++ b/Content.Shared/_CP14/Skill/CP14SharedSkillSystem.cs @@ -413,8 +413,8 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem DirtyField(target, component, nameof(CP14SkillStorageComponent.SkillPoints)); - if (indexedType.GetPointPopup is not null && !silent) - _popup.PopupPredicted(Loc.GetString(indexedType.GetPointPopup, ("count", points)), target, target); + if (indexedType.GetPointPopup is not null && !silent && _timing.IsFirstTimePredicted) + _popup.PopupClient(Loc.GetString(indexedType.GetPointPopup, ("count", points)), target, target); } /// @@ -441,8 +441,8 @@ public abstract partial class CP14SharedSkillSystem : EntitySystem skillContainer.Max = FixedPoint2.Max(skillContainer.Max - points, 0); Dirty(target, component); - if (indexedType.LosePointPopup is not null && !silent) - _popup.PopupPredicted(Loc.GetString(indexedType.LosePointPopup, ("count", points)), target, target); + if (indexedType.LosePointPopup is not null && !silent && _timing.IsFirstTimePredicted) + _popup.PopupClient(Loc.GetString(indexedType.LosePointPopup, ("count", points)), target, target); while (skillContainer.Sum > skillContainer.Max) { diff --git a/Content.Shared/_CP14/Vampire/CP14SharedVampireSystem.cs b/Content.Shared/_CP14/Vampire/CP14SharedVampireSystem.cs index 394a40b5aa..dd5f88d192 100644 --- a/Content.Shared/_CP14/Vampire/CP14SharedVampireSystem.cs +++ b/Content.Shared/_CP14/Vampire/CP14SharedVampireSystem.cs @@ -10,6 +10,7 @@ using Content.Shared.Examine; using Content.Shared.FixedPoint; using Content.Shared.Humanoid; using Content.Shared.Jittering; +using Content.Shared.Popups; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Timing; @@ -25,6 +26,7 @@ public abstract partial class CP14SharedVampireSystem : EntitySystem [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly CP14SharedSkillSystem _skill = default!; [Dependency] protected readonly IPrototypeManager Proto = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; private readonly ProtoId _skillPointType = "Blood"; private readonly ProtoId _memorySkillPointType = "Memory"; @@ -194,7 +196,10 @@ public abstract partial class CP14SharedVampireSystem : EntitySystem } if (extractedEssence <= 0) + { + _popup.PopupClient(Loc.GetString("cp14-vampire-gather-essence-no-left"), victim, vampire, PopupType.SmallCaution); return; + } _skill.AddSkillPoints(vampire, _skillPointType, extractedEssence); victim.Comp.Essence -= amount; diff --git a/Content.Shared/_CP14/Vampire/Components/CP14ShowVampireFactionComponent.cs b/Content.Shared/_CP14/Vampire/Components/CP14ShowVampireFactionComponent.cs index 9a73ee05bf..5d046da2a7 100644 --- a/Content.Shared/_CP14/Vampire/Components/CP14ShowVampireFactionComponent.cs +++ b/Content.Shared/_CP14/Vampire/Components/CP14ShowVampireFactionComponent.cs @@ -1,4 +1,3 @@ -using Content.Shared.StatusIcon; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; diff --git a/Content.Shared/_CP14/Vampire/Components/CP14VampireComponent.cs b/Content.Shared/_CP14/Vampire/Components/CP14VampireComponent.cs index 79ad22d1e7..24d6771a8b 100644 --- a/Content.Shared/_CP14/Vampire/Components/CP14VampireComponent.cs +++ b/Content.Shared/_CP14/Vampire/Components/CP14VampireComponent.cs @@ -28,7 +28,7 @@ public sealed partial class CP14VampireComponent : Component public ProtoId? Faction; [DataField] - public FixedPoint2 SkillPointCount = 1f; + public FixedPoint2 SkillPointCount = 2f; [DataField] public TimeSpan ToggleVisualsTime = TimeSpan.FromSeconds(2f); @@ -56,6 +56,4 @@ public sealed partial class CP14VampireComponent : Component [DataField] public float IgniteThreshold = 350f; - - public override bool SendOnlyToOwner => true; } diff --git a/Resources/Locale/en-US/_CP14/construction/category.ftl b/Resources/Locale/en-US/_CP14/construction/category.ftl new file mode 100644 index 0000000000..89430714bb --- /dev/null +++ b/Resources/Locale/en-US/_CP14/construction/category.ftl @@ -0,0 +1 @@ +cp14-construction-category-vampire = Vampires \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/magicEnergy/magic-spells.ftl b/Resources/Locale/en-US/_CP14/magicEnergy/magic-spells.ftl index 9f8f6b4627..27e3f00ff8 100644 --- a/Resources/Locale/en-US/_CP14/magicEnergy/magic-spells.ftl +++ b/Resources/Locale/en-US/_CP14/magicEnergy/magic-spells.ftl @@ -21,6 +21,7 @@ cp14-magic-spell-need-material-component = You need to hold the material compone cp14-magic-spell-stamina-not-enough = You don't have the energy to do it. cp14-magic-staminacost = Stamina cost cp14-magic-spell-pacified = It could hurt someone! +cp14-magic-spell-ssd = Do not touch disconnected players! cp14-magic-spell-target-not-mob = The target must be a living thing! diff --git a/Resources/Locale/en-US/_CP14/vampire/vampire.ftl b/Resources/Locale/en-US/_CP14/vampire/vampire.ftl index 692d1b9bb3..c48b8592b3 100644 --- a/Resources/Locale/en-US/_CP14/vampire/vampire.ftl +++ b/Resources/Locale/en-US/_CP14/vampire/vampire.ftl @@ -18,8 +18,9 @@ cp14-vampire-tree-examine-level = Essences: ([color=red]{$essence}/{$left}[/colo cp14-vampire-essence-holder-examine = This victim contains [color=red]{$essence} blood essence[/color]. -cp14-vampire-tree-other-title = Progress of other altars: +cp14-vampire-tree-other-title = Progress of other clans: cp14-vampire-tree-other-info = "{$name}": [color=red]({$essence}/{$left})[/color] essences, [color=red]{$lvl}[/color] level. +cp14-vampire-gather-essence-no-left = Здесь больше нет эссенции! ## Announcements diff --git a/Resources/Locale/ru-RU/_CP14/construction/category.ftl b/Resources/Locale/ru-RU/_CP14/construction/category.ftl new file mode 100644 index 0000000000..f10f3341f8 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/construction/category.ftl @@ -0,0 +1 @@ +cp14-construction-category-vampire = Вампиры \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-spells.ftl b/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-spells.ftl index a6822528ab..c5d6ddab93 100644 --- a/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-spells.ftl +++ b/Resources/Locale/ru-RU/_CP14/magicEnergy/magic-spells.ftl @@ -21,6 +21,7 @@ cp14-magic-spell-need-material-component = Нужно держать матер cp14-magic-spell-stamina-not-enough = Вам не хватает сил, чтобы сделать это. cp14-magic-staminacost = Затраты энергии cp14-magic-spell-pacified = Это может навредить кому либо! +cp14-magic-spell-ssd = Не трогайте отключившихся игроков! cp14-magic-spell-target-not-mob = Цель должна быть живым существом! diff --git a/Resources/Locale/ru-RU/_CP14/vampire/vampire.ftl b/Resources/Locale/ru-RU/_CP14/vampire/vampire.ftl index 79ce6af2ce..e2d47517e0 100644 --- a/Resources/Locale/ru-RU/_CP14/vampire/vampire.ftl +++ b/Resources/Locale/ru-RU/_CP14/vampire/vampire.ftl @@ -17,8 +17,9 @@ cp14-vampire-tree-examine-level = Эссенции: ([color=red]{$essence}/{$lef cp14-vampire-essence-holder-examine = В этой жертве есть еще [color=red]{$essence} эссенции крови[/color]. -cp14-vampire-tree-other-title = Прогресс других алтарей: +cp14-vampire-tree-other-title = Прогресс других кланов: cp14-vampire-tree-other-info = "{$name}": [color=red]{$count}[/color] эссенции, [color=red]{$lvl}[/color] уровень. +cp14-vampire-gather-essence-no-left = There is no more essence here! ## Announcements diff --git a/Resources/Prototypes/_CP14/Alerts/status_effect.yml b/Resources/Prototypes/_CP14/Alerts/status_effect.yml index 5bc29d0c1f..a04e725f0d 100644 --- a/Resources/Prototypes/_CP14/Alerts/status_effect.yml +++ b/Resources/Prototypes/_CP14/Alerts/status_effect.yml @@ -8,4 +8,10 @@ id: CP14Glowing icons: - sprite: _CP14/Actions/Spells/light.rsi - state: sphere_of_light \ No newline at end of file + state: sphere_of_light + +- type: alert + id: CP14VampireSleeping + icons: + - sprite: _CP14/Actions/Spells/vampire.rsi + state: blood_moon \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Life/plant_growth.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Life/plant_growth.yml index b3e9c2b330..e46de57eeb 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Life/plant_growth.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Life/plant_growth.yml @@ -12,6 +12,7 @@ magicType: Life effects: - !type:CP14SpellSpawnEntityOnTarget + clientside: true spawns: - CP14ImpactEffectCureWounds - !type:CP14SpellApplyEntityEffect @@ -33,12 +34,12 @@ Slash: -1 - !type:SatiateThirst factor: 3 + - !type:SatiateHunger + factor: 3 conditions: - !type:OrganType type: CP14Vampire shouldHave: false - - !type:SatiateHunger - factor: 3 - !type:CP14PlantResourceModify energy: 3 resourse: 3 diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/bite.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/bite.yml index a362f751a0..897765e72a 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/bite.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/bite.yml @@ -7,6 +7,7 @@ - type: CP14MagicEffectCastSlowdown speedMultiplier: 0.3 - type: CP14MagicEffectVampire + - type: CP14MagicEffectSSDBlock - type: CP14MagicEffectTargetMobStatusRequired allowedStates: - Alive @@ -21,7 +22,7 @@ - !type:Jitter effects: - !type:CP14SpellSuckBlood - suckAmount: 10 + suckAmount: 5 - !type:CP14SpellVampireGatherEssence - !type:CP14SpellSpawnEntityOnUser clientside: true @@ -31,7 +32,7 @@ effects: - !type:Jitter - !type:ModifyBloodLevel - amount: -10 + amount: -3 - type: Action icon: sprite: _CP14/Actions/Spells/vampire.rsi diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/hypnosys.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/hypnosys.yml new file mode 100644 index 0000000000..1afceba23e --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/hypnosys.yml @@ -0,0 +1,68 @@ +- type: entity + id: CP14ActionSpellVampireHypnosys + parent: CP14ActionSpellBase + name: Hypnosys + description: You focus on the target, mesmerizing and lulling it to sleep. + components: + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.5 + - type: CP14MagicEffectVampire + - type: CP14MagicEffectManaCost + manaCost: 5 + - type: CP14MagicEffect + effects: + - !type:CP14SpellSpawnEntityOnTarget + clientside: true + spawns: + - CP14ImpactEffectVampireHypnosis + - !type:CP14SpellApplyEntityEffect + effects: + - !type:ModifyStatusEffect + effectProto: CP14StatusEffectVampireForceSleep + type: Add + time: 4 + refresh: true + - type: CP14MagicEffectCastingVisual + proto: CP14RuneVampireHypnosis + - type: Action + icon: + sprite: _CP14/Actions/Spells/vampire.rsi + state: blood_moon + - type: TargetAction + range: 3 + interactOnMiss: false + - type: EntityTargetAction + whitelist: + components: + - MobState + event: !type:CP14ToggleableEntityTargetActionEvent + effectFrequency: 3 + cooldown: 60 + castTime: 30 + distanceThreshold: 6 + +- type: entity + id: CP14RuneVampireHypnosis + parent: CP14BaseMagicRune + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: red + - type: Sprite + layers: + - state: double_outer + color: red + shader: unshaded + +- type: entity + id: CP14ImpactEffectVampireHypnosis + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + save: false + components: + - type: Sprite + sprite: Effects/electricity.rsi + layers: + - state: electrified + color: red + shader: unshaded \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/power_punch.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/power_punch.yml index 0f33c29c1c..7e4f21dae3 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/power_punch.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/power_punch.yml @@ -4,8 +4,6 @@ name: Demonstration of strength description: By channeling the power of the oldest vampire clan, you instantly strike your target, causing them to fly back and lose their balance. components: - - type: CP14MagicEffectCastSlowdown - speedMultiplier: 0.4 - type: CP14MagicEffectPacifiedBlock - type: CP14MagicEffectVampire - type: CP14MagicEffectManaCost @@ -15,7 +13,7 @@ - !type:CP14SpellApplyEntityEffect effects: - !type:Paralyze - paralyzeTime: 1 + paralyzeTime: 3 - !type:CP14SpellThrowFromUser throwPower: 9 - !type:CP14SpellSpawnEntityOnTarget @@ -39,44 +37,13 @@ - type: EntityTargetAction canTargetSelf: false event: !type:CP14EntityTargetActionEvent - cooldown: 15 + cooldown: 45 whitelist: components: - Body - Item - Anchorable -- type: entity - id: CP14ActionSpellVampirePower2 - parent: CP14ActionSpellVampirePower - name: Demonstration of strength II - description: By channeling the power of the oldest vampire clan, you instantly strike your target, causing them to fly back and lose their balance. This powerful version stuns for a longer period of time. - components: - - type: CP14MagicEffectManaCost - manaCost: 30 - - type: CP14MagicEffect - effects: - - !type:CP14SpellApplyEntityEffect - effects: - - !type:Paralyze - paralyzeTime: 2 - - !type:CP14SpellThrowFromUser - throwPower: 15 - - !type:CP14SpellSpawnEntityOnTarget - spawns: - - CP14ImpactEffectVampireKick - - !type:CP14SpellApplyEntityEffect - effects: - - !type:HealthChange - ignoreResistances: false - damage: - types: - Blunt: 15 - - type: Action - icon: - sprite: _CP14/Actions/Spells/vampire.rsi - state: power_kick_2 - - type: entity id: CP14ImpactEffectVampireKick parent: CP14ImpactEffectBloodStep diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/search_vampire.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/search_vampire.yml index 0ee1add948..cd046d0dca 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/search_vampire.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/Vampire/search_vampire.yml @@ -67,30 +67,4 @@ lifetime: 8 - type: Tag tags: - - HideContextMenu - -- type: entity - id: CP14RuneVampireHypnosis - parent: CP14BaseMagicRune - categories: [ HideSpawnMenu ] - components: - - type: PointLight - color: red - - type: Sprite - layers: - - state: double_outer - color: red - shader: unshaded - -- type: entity - id: CP14ImpactEffectVampireHypnosis - parent: CP14BaseMagicImpact - categories: [ HideSpawnMenu ] - save: false - components: - - type: Sprite - sprite: Effects/electricity.rsi - layers: - - state: electrified - color: red - shader: unshaded \ No newline at end of file + - HideContextMenu \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/StatusEffects/misc.yml b/Resources/Prototypes/_CP14/Entities/StatusEffects/misc.yml index 7e4011f40b..4028193c6f 100644 --- a/Resources/Prototypes/_CP14/Entities/StatusEffects/misc.yml +++ b/Resources/Prototypes/_CP14/Entities/StatusEffects/misc.yml @@ -1,5 +1,6 @@ - type: entity id: CP14StatusEffectMagicArmor + parent: MobStatusEffectBase components: - type: StatusEffect - type: StatusEffectAlert @@ -44,4 +45,15 @@ - type: PointLight radius: 5.0 energy: 1 - color: "#efedff" \ No newline at end of file + color: "#efedff" + +- type: entity + parent: MobStatusEffectDebuff + id: CP14StatusEffectVampireForceSleep + name: vampire forced sleep + components: + - type: StatusEffectAlert + alert: CP14VampireSleeping + - type: ForcedSleepingStatusEffect + - type: StunnedStatusEffect + - type: KnockdownStatusEffect \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Vampire/vampire.yml b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Vampire/vampire.yml index 862e07837d..1db7b96e7e 100644 --- a/Resources/Prototypes/_CP14/Entities/Structures/Specific/Vampire/vampire.yml +++ b/Resources/Prototypes/_CP14/Entities/Structures/Specific/Vampire/vampire.yml @@ -49,6 +49,7 @@ name: vampire clan heart description: The source of power for the vampire clan. By gathering the life force of its victims, the clan becomes stronger. components: + - type: WarpPoint - type: Fixtures fixtures: fix1: @@ -120,11 +121,6 @@ !type:DamageTrigger damage: 50 behaviors: - - !type:SpawnEntitiesBehavior - spawn: - CP14ScrapIron: - min: 1 - max: 2 - !type:PlaySoundBehavior sound: collection: MetalBreak @@ -164,11 +160,6 @@ !type:DamageTrigger damage: 50 behaviors: - - !type:SpawnEntitiesBehavior - spawn: - CP14ScrapIron: - min: 1 - max: 2 - !type:PlaySoundBehavior sound: collection: MetalBreak @@ -208,11 +199,6 @@ !type:DamageTrigger damage: 50 behaviors: - - !type:SpawnEntitiesBehavior - spawn: - CP14ScrapIron: - min: 1 - max: 2 - !type:PlaySoundBehavior sound: collection: MetalBreak @@ -251,9 +237,9 @@ behaviors: - !type:SpawnEntitiesBehavior spawn: - CP14ScrapIron: + CP14StoneBlock1: min: 1 - max: 2 + max: 5 - !type:PlaySoundBehavior sound: collection: MetalBreak @@ -315,11 +301,6 @@ CP14StoneBlock1: min: 2 max: 4 - - !type:SpawnEntitiesBehavior - spawn: - CP14ScrapIron: - min: 1 - max: 3 - !type:SpawnEntitiesBehavior spawn: CP14BloodEssence: diff --git a/Resources/Prototypes/_CP14/GameRules/subgamemodes.yml b/Resources/Prototypes/_CP14/GameRules/subgamemodes.yml index e1645e9f4f..e70d7cb711 100644 --- a/Resources/Prototypes/_CP14/GameRules/subgamemodes.yml +++ b/Resources/Prototypes/_CP14/GameRules/subgamemodes.yml @@ -26,11 +26,6 @@ - type: CP14ShowVampireFaction faction: NightChildrens - type: Hunger - baseDecayRate: 0.07 - starvationDamage: - types: - Cold: 0.25 - Bloodloss: 0.25 hungerThresholdAlerts: Peckish: CP14VampirePeckish Starving: CP14VampireStarving @@ -61,11 +56,6 @@ - type: CP14ShowVampireFaction faction: Devourers - type: Hunger - baseDecayRate: 0.07 - starvationDamage: - types: - Cold: 0.25 - Bloodloss: 0.25 hungerThresholdAlerts: Peckish: CP14VampirePeckish Starving: CP14VampireStarving @@ -96,11 +86,6 @@ - type: CP14ShowVampireFaction faction: Unnameable - type: Hunger - baseDecayRate: 0.07 - starvationDamage: - types: - Cold: 0.25 - Bloodloss: 0.25 hungerThresholdAlerts: Peckish: CP14VampirePeckish Starving: CP14VampireStarving diff --git a/Resources/Prototypes/_CP14/Maps/comoss.yml b/Resources/Prototypes/_CP14/Maps/comoss.yml index 8ed149f04d..51bfed3575 100644 --- a/Resources/Prototypes/_CP14/Maps/comoss.yml +++ b/Resources/Prototypes/_CP14/Maps/comoss.yml @@ -53,8 +53,8 @@ location: ComossIsland modifiers: - RaidSpawners - - EnemyFlem - - MonsterMosquito + - Rabbits + - Boar - Marble - CopperOre - CopperOre diff --git a/Resources/Prototypes/_CP14/Maps/venicialis.yml b/Resources/Prototypes/_CP14/Maps/venicialis.yml index 58f5c5e41e..c36a58deae 100644 --- a/Resources/Prototypes/_CP14/Maps/venicialis.yml +++ b/Resources/Prototypes/_CP14/Maps/venicialis.yml @@ -55,6 +55,7 @@ - CP14CrystalQuartzWater - Quartz - Ruins - - MobSlimeIce + - Boar + - Rabbits - LumiShroom - SilverNeedle diff --git a/Resources/Prototypes/_CP14/Reagents/blood.yml b/Resources/Prototypes/_CP14/Reagents/blood.yml index 6cde6c2f77..6fcf4e184d 100644 --- a/Resources/Prototypes/_CP14/Reagents/blood.yml +++ b/Resources/Prototypes/_CP14/Reagents/blood.yml @@ -5,7 +5,7 @@ desc: cp14-reagent-desc-blood flavor: CP14Metallic color: "#800000" - recognizable: true + recognizable: false physicalDesc: cp14-reagent-physical-desc-ferrous footstepSound: collection: FootstepBlood @@ -31,7 +31,6 @@ damage: groups: Brute: -5 - Burn: -5 - type: reagent id: CP14BloodAnimal @@ -40,7 +39,7 @@ desc: cp14-reagent-desc-blood-animal flavor: CP14Metallic color: "#802020" - recognizable: true + recognizable: false physicalDesc: cp14-reagent-physical-desc-ferrous footstepSound: collection: FootstepBlood @@ -67,7 +66,7 @@ desc: cp14-reagent-desc-blood-vampire flavor: CP14Metallic color: "#800000" - recognizable: true + recognizable: false physicalDesc: cp14-reagent-physical-desc-ferrous footstepSound: collection: FootstepBlood @@ -82,7 +81,7 @@ name: cp14-reagent-name-blood-tiefling flavor: CP14Metallic color: "#803300" - recognizable: true + recognizable: false physicalDesc: cp14-reagent-physical-desc-ferrous footstepSound: collection: FootstepBlood @@ -107,22 +106,7 @@ type: CP14Vampire damage: groups: - Brute: -3 - Burn: -3 - - !type:FlammableReaction - conditions: - - !type:OrganType - type: CP14Vampire - multiplier: 1 - - !type:AdjustTemperature - conditions: - - !type:OrganType - type: CP14Vampire - amount: 1000 - - !type:Ignite - conditions: - - !type:OrganType - type: CP14Vampire + Burn: -5 pricePerUnit: 0.15 - type: reagent @@ -132,7 +116,7 @@ name: cp14-reagent-name-blood-elf flavor: CP14Metallic color: "#80003e" - recognizable: true + recognizable: false physicalDesc: cp14-reagent-physical-desc-ferrous footstepSound: collection: FootstepBlood @@ -163,8 +147,7 @@ type: CP14Vampire damage: groups: - Brute: -3 - Burn: -3 + Burn: -5 pricePerUnit: 0.25 - type: reagent @@ -174,7 +157,7 @@ name: cp14-reagent-name-blood-goblin flavor: CP14Metallic color: "#576e35" - recognizable: true + recognizable: false physicalDesc: cp14-reagent-physical-desc-ferrous footstepSound: collection: FootstepBlood @@ -217,7 +200,7 @@ desc: cp14-reagent-desc-blood-monster flavor: CP14Metallic color: "#800058" - recognizable: true + recognizable: false physicalDesc: cp14-reagent-physical-desc-ferrous footstepSound: collection: FootstepBlood diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Vampire/workbench.yml b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Vampire/workbench.yml index 62501cdff5..48b81e4a2d 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Vampire/workbench.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/Graphs/Vampire/workbench.yml @@ -25,8 +25,8 @@ completed: - !type:SnapToGrid steps: - - material: CP14IronBar - amount: 2 + - material: CP14Stone + amount: 10 doAfter: 2 - node: CP14VampireClanHeartUnnameableFrame @@ -39,12 +39,9 @@ - !type:CP14AllVampireClanRequired faction: Unnameable steps: - - material: CP14IronBar - amount: 2 - doAfter: 2 - material: CP14BloodEssence amount: 1 - doAfter: 2 + doAfter: 1 - node: CP14VampireClanHeartUnnameable entity: CP14VampireClanHeartUnnameable @@ -58,8 +55,8 @@ completed: - !type:SnapToGrid steps: - - material: CP14IronBar - amount: 2 + - material: CP14Stone + amount: 10 doAfter: 2 - node: CP14VampireClanHeartDevourersFrame @@ -72,9 +69,6 @@ - !type:CP14AllVampireClanRequired faction: Unnameable steps: - - material: CP14IronBar - amount: 2 - doAfter: 2 - material: CP14BloodEssence amount: 1 doAfter: 2 @@ -91,8 +85,8 @@ completed: - !type:SnapToGrid steps: - - material: CP14IronBar - amount: 2 + - material: CP14Stone + amount: 10 doAfter: 2 - node: CP14VampireClanHeartNightChildrenFrame @@ -105,9 +99,6 @@ - !type:CP14AllVampireClanRequired faction: Unnameable steps: - - material: CP14IronBar - amount: 2 - doAfter: 2 - material: CP14BloodEssence amount: 1 doAfter: 2 diff --git a/Resources/Prototypes/_CP14/Recipes/Construction/vampire.yml b/Resources/Prototypes/_CP14/Recipes/Construction/vampire.yml index 04c23aba43..d89beea1a2 100644 --- a/Resources/Prototypes/_CP14/Recipes/Construction/vampire.yml +++ b/Resources/Prototypes/_CP14/Recipes/Construction/vampire.yml @@ -5,7 +5,7 @@ graph: CP14WorkbenchVampire startNode: start targetNode: CP14WorkbenchVampire - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false @@ -21,7 +21,7 @@ graph: CP14VampireStoneAltar startNode: start targetNode: CP14VampireStoneAltar - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false @@ -38,7 +38,7 @@ graph: CP14VampireClanHeartUnnameable startNode: start targetNode: CP14VampireClanHeartUnnameable - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false @@ -54,7 +54,7 @@ graph: CP14VampirePortalGlyphUnnameable startNode: start targetNode: CP14VampirePortalGlyphUnnameable - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false @@ -71,7 +71,7 @@ graph: CP14VampireClanHeartDevourers startNode: start targetNode: CP14VampireClanHeartDevourers - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false @@ -87,7 +87,7 @@ graph: CP14VampirePortalGlyphDevourers startNode: start targetNode: CP14VampirePortalGlyphDevourers - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false @@ -104,7 +104,7 @@ graph: CP14VampireClanHeartNightChildren startNode: start targetNode: CP14VampireClanHeartNightChildren - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false @@ -120,7 +120,7 @@ graph: CP14VampirePortalGlyphNightChildrens startNode: start targetNode: CP14VampirePortalGlyphNightChildrens - category: construction-category-furniture + category: cp14-construction-category-vampire objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false diff --git a/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml b/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml index 22795b4000..3508af5f2f 100644 --- a/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml +++ b/Resources/Prototypes/_CP14/Recipes/Workbench/furnace.yml @@ -1,7 +1,7 @@ - type: CP14Recipe id: CP14CopperBar1 tag: CP14RecipeMeltingFurnace - craftTime: 4 + craftTime: 1 category: Materials requiredSkills: - CopperMelting @@ -14,7 +14,7 @@ - type: CP14Recipe id: CP14IronBar1 tag: CP14RecipeMeltingFurnace - craftTime: 4 + craftTime: 1 category: Materials requiredSkills: - IronMelting @@ -27,7 +27,7 @@ - type: CP14Recipe id: CP14GoldBar1 tag: CP14RecipeMeltingFurnace - craftTime: 4 + craftTime: 1 category: Materials requiredSkills: - GoldMelting @@ -40,7 +40,7 @@ - type: CP14Recipe id: CP14MithrilBar1 tag: CP14RecipeMeltingFurnace - craftTime: 4 + craftTime: 1 category: Materials requiredSkills: - MithrilMelting @@ -187,7 +187,7 @@ - type: CP14Recipe id: CP14BaseAlchemyBomb tag: CP14RecipeMeltingFurnace - craftTime: 4 + craftTime: 1 requiredSkills: - GlassMelting requirements: diff --git a/Resources/Prototypes/_CP14/Skill/Vampire/vampire.yml b/Resources/Prototypes/_CP14/Skill/Vampire/vampire.yml index f7ecf96b24..f56f6877bd 100644 --- a/Resources/Prototypes/_CP14/Skill/Vampire/vampire.yml +++ b/Resources/Prototypes/_CP14/Skill/Vampire/vampire.yml @@ -13,8 +13,25 @@ action: CP14ActionVampireBite - type: cp14Skill - id: PowerKick + id: Hypnosys skillUiPosition: 2, 0 + learnCost: 0.5 + tree: Vampire + icon: + sprite: _CP14/Actions/Spells/vampire.rsi + state: blood_moon + effects: + - !type:AddAction + action: CP14ActionSpellVampireHypnosys + restrictions: + - !type:NeedPrerequisite + prerequisite: Bite + - !type:VampireClanLevel + level: 1 + +- type: cp14Skill + id: PowerKick + skillUiPosition: 6, 0 learnCost: 1 tree: Vampire icon: @@ -25,30 +42,12 @@ action: CP14ActionSpellVampirePower restrictions: - !type:NeedPrerequisite - prerequisite: Bite - - !type:VampireClanLevel - level: 1 - -- type: cp14Skill - id: PowerKick2 - skillUiPosition: 6, 0 - learnCost: 1 - tree: Vampire - icon: - sprite: _CP14/Actions/Spells/vampire.rsi - state: power_kick_2 - effects: - - !type:ReplaceAction - oldAction: CP14ActionSpellVampirePower - newAction: CP14ActionSpellVampirePower2 - restrictions: - - !type:NeedPrerequisite - prerequisite: PowerKick + prerequisite: Hypnosys - !type:VampireClanLevel level: 2 - type: cp14Skill - id: PowerKick3 + id: PowerKickArea skillUiPosition: 10, 0 learnCost: 1 tree: Vampire @@ -60,7 +59,7 @@ action: CP14ActionSpellVampirePower3 restrictions: - !type:NeedPrerequisite - prerequisite: PowerKick2 + prerequisite: PowerKick - !type:VampireClanLevel level: 3 @@ -128,7 +127,7 @@ - type: cp14Skill id: VampireTransmutateUnnameable skillUiPosition: 0, 6 - name: cp14-skill-vampire-transmutate-name + name: cp14-skill-vampire-transmutate-name learnCost: 0 tree: Vampire icon: @@ -178,7 +177,7 @@ - type: cp14Skill id: BloodEssenceCreation skillUiPosition: 0, 10 - learnCost: 0.5 + learnCost: 0 tree: Vampire icon: sprite: _CP14/Actions/Spells/vampire.rsi @@ -206,7 +205,7 @@ - type: cp14Skill id: VampireCureWounds skillUiPosition: 6, 8 - learnCost: 0.5 + learnCost: 1 tree: Vampire icon: sprite: _CP14/Actions/Spells/vampire.rsi