-
Notifications
You must be signed in to change notification settings - Fork 193
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Blood Cult DLC 1: Make It an Actually Playable Game (Mode) (#1276)
<!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description You don't actually have to pay for it, y'know? --- # TODO <!-- A list of everything you have to do before this PR is "complete" You probably won't have to complete everything before merging but it's good to leave future references --> - [x] Fix bugs from discord thread. --- <!-- This is default collapsed, readers click to expand it and see all your media The PR media section can get very large at times, so this is a good way to keep it clean The title is written using HTML tags The title must be within the <summary> tags or you won't see it --> <details><summary><h1>Media</h1></summary> <p> ![Example Media Embed](https://example.com/thisimageisntreal.png) </p> </details> --- # Changelog <!-- You can add an author after the `:cl:` to change the name that appears in the changelog (ex: `:cl: Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> :cl: - add: In-game guide book to kickstart your sinister activities. - add: Constructs now have abilities. - add: Rending rune and apocalypse rune now should only be placed in the specific spots on maps. Needs to be mapped. - add: Veil Shifter now displays how much charges it has when examining. - add: Cult runes now have descriptions. Also stating how much invokers required for each rune. - add: Blood rites can now be dropped&deleted. - add: Blood rites now suck... blood in 0.5 tiles radius. - remove: Non-cultists can no longer examine runes. - fix: Fixed Cult Objective Target selection. You can (and should) sacrifice your own people now. - fix: Non cultists can no longer use veil shifter. - fix: Teleport spell is no more a cheap rip-off and now actually teleports. - fix: Timed Factories can't no more produce infinite number of entities. - fix: Offering rune should now properly convert someone. - fix: Sacrificing body with mind now properly transfers their mind to soul shard. - fix: Shadow Shackles now cuffs the target instead of the caster (lmao). --------- Signed-off-by: Remuchi <[email protected]> Signed-off-by: Remuchi <[email protected]> Co-authored-by: Raphael Bertoche <[email protected]> Co-authored-by: VMSolidus <[email protected]>
- Loading branch information
1 parent
48d63ba
commit 975c673
Showing
58 changed files
with
1,326 additions
and
292 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 5 additions & 0 deletions
5
Content.Client/WhiteDream/BloodCult/PhaseShift/PhaseShiftSystem.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
using Content.Shared.WhiteDream.BloodCult.Constructs.PhaseShift; | ||
|
||
namespace Content.Client.WhiteDream.BloodCult.PhaseShift; | ||
|
||
public sealed class PhaseShiftSystem : SharedPhaseShiftSystem; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
67 changes: 67 additions & 0 deletions
67
Content.Server/WhiteDream/BloodCult/ConstructActionsSystem.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
using Content.Server.WhiteDream.BloodCult.Constructs.PhaseShift; | ||
using Content.Shared.StatusEffect; | ||
using Content.Shared.WhiteDream.BloodCult.Spells; | ||
using Robust.Server.Audio; | ||
using Robust.Server.GameObjects; | ||
using Robust.Shared.Map; | ||
using Robust.Shared.Map.Components; | ||
using PhaseShiftedComponent = Content.Shared.WhiteDream.BloodCult.Constructs.PhaseShift.PhaseShiftedComponent; | ||
|
||
namespace Content.Server.WhiteDream.BloodCult; | ||
|
||
public sealed class ConstructActionsSystem : EntitySystem | ||
{ | ||
[Dependency] private readonly ITileDefinitionManager _tileDef = default!; | ||
|
||
[Dependency] private readonly AudioSystem _audio = default!; | ||
[Dependency] private readonly MapSystem _mapSystem = default!; | ||
[Dependency] private readonly TransformSystem _transform = default!; | ||
[Dependency] private readonly StatusEffectsSystem _statusEffects = default!; | ||
|
||
private const string CultTileSpawnEffect = "CultTileSpawnEffect"; | ||
|
||
public override void Initialize() | ||
{ | ||
SubscribeLocalEvent<PlaceTileEntityEvent>(OnPlaceTileEntityEvent); | ||
SubscribeLocalEvent<PhaseShiftEvent>(OnPhaseShift); | ||
} | ||
|
||
private void OnPlaceTileEntityEvent(PlaceTileEntityEvent args) | ||
{ | ||
if (args.Handled) | ||
return; | ||
|
||
if (args.Entity is { } entProtoId) | ||
Spawn(entProtoId, args.Target); | ||
|
||
if (args.TileId is { } tileId) | ||
{ | ||
if (_transform.GetGrid(args.Target) is not { } grid || !TryComp(grid, out MapGridComponent? mapGrid)) | ||
return; | ||
|
||
var tileDef = _tileDef[tileId]; | ||
var tile = new Tile(tileDef.TileId); | ||
|
||
_mapSystem.SetTile(grid, mapGrid, args.Target, tile); | ||
Spawn(CultTileSpawnEffect, args.Target); | ||
} | ||
|
||
if (args.Audio is { } audio) | ||
_audio.PlayPvs(audio, args.Target); | ||
|
||
args.Handled = true; | ||
} | ||
|
||
private void OnPhaseShift(PhaseShiftEvent args) | ||
{ | ||
if (args.Handled) | ||
return; | ||
|
||
if (_statusEffects.TryAddStatusEffect<PhaseShiftedComponent>( | ||
args.Performer, | ||
args.StatusEffectId, | ||
args.Duration, | ||
false)) | ||
args.Handled = true; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.