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