Skip to content

Commit

Permalink
Merge branch 'master' into play-spray
Browse files Browse the repository at this point in the history
  • Loading branch information
GreaseMonk committed Mar 25, 2024
2 parents 3004432 + d080953 commit abed20c
Show file tree
Hide file tree
Showing 145 changed files with 25,169 additions and 13 deletions.
5 changes: 3 additions & 2 deletions Content.Server/Shipyard/Systems/ShipyardSystem.Consoles.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
using Content.Server.Shuttles.Components;
using Content.Server.Station.Components;
using System.Text.RegularExpressions;
using Robust.Shared.Audio;
using Robust.Shared.Audio.Systems;

namespace Content.Server.Shipyard.Systems;
Expand Down Expand Up @@ -438,12 +439,12 @@ private void SendSellMessage(EntityUid uid, EntityUid? player, string name, stri

private void PlayDenySound(EntityUid uid, ShipyardConsoleComponent component)
{
_audio.PlayPvs(_audio.GetSound(component.ErrorSound), uid);
_audio.PlayPvs(_audio.GetSound(component.ErrorSound), uid, AudioParams.Default.WithMaxDistance(0.01f));
}

private void PlayConfirmSound(EntityUid uid, ShipyardConsoleComponent component)
{
_audio.PlayPvs(_audio.GetSound(component.ConfirmSound), uid);
_audio.PlayPvs(_audio.GetSound(component.ConfirmSound), uid, AudioParams.Default.WithMaxDistance(0.01f));
}

private void OnItemSlotChanged(EntityUid uid, ShipyardConsoleComponent component, ContainerModifiedMessage args)
Expand Down
18 changes: 18 additions & 0 deletions Content.Shared/Access/Components/IdCardComponent.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Content.Shared.Access.Systems;
using Content.Shared.PDA;
using Content.Shared.StatusIcon;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;

Expand Down Expand Up @@ -40,4 +41,21 @@ public sealed partial class IdCardComponent : Component
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public bool BypassLogging;


// Frontier
[DataField("soundError")]
public SoundSpecifier ErrorSound =
new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg");

// Frontier
[DataField("soundSwipe")]
public SoundSpecifier SwipeSound =
new SoundPathSpecifier("/Audio/Machines/id_swipe.ogg");

// Frontier
[DataField("soundInsert")]
public SoundSpecifier InsertSound =
new SoundPathSpecifier("/Audio/Machines/id_insert.ogg");

}
7 changes: 7 additions & 0 deletions Content.Shared/RCD/Components/RCDAmmoComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ public sealed partial class RCDAmmoComponent : Component
/// </summary>
[DataField("charges"), ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public int Charges = 5;

/// <summary>
/// ~~~ Frontier ~~~
/// A flag that limits RCD to the authorized ships.
/// </summary>
[DataField("isShipyardRCDAmmo"), AutoNetworkedField]
public bool IsShipyardRCDAmmo;
}

// TODO: state??? check if it desyncs
14 changes: 14 additions & 0 deletions Content.Shared/RCD/Components/RCDComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,18 @@ public sealed partial class RCDComponent : Component
[DataField("floor", customTypeSerializer: typeof(PrototypeIdSerializer<ContentTileDefinition>))]
[ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public string Floor = "FloorSteel";

/// <summary>
/// ~~~ Frontier ~~~
/// A flag that limits RCD to the authorized ships.
/// </summary>
[DataField("isShipyardRCD"), AutoNetworkedField]
public bool IsShipyardRCD;

/// <summary>
/// ~~~ Frontier ~~~
/// The uid to which this RCD is limited to be used on.
/// </summary>
[DataField("linkedShuttleUid"), AutoNetworkedField]
public EntityUid? LinkedShuttleUid = null;
}
10 changes: 10 additions & 0 deletions Content.Shared/RCD/Systems/RCDAmmoSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ private void OnAfterInteract(EntityUid uid, RCDAmmoComponent comp, AfterInteract
return;

var user = args.User;

// ## Frontier - Shipyard RCD ammo only fits in shipyard RCD.
// At this point RCDComponent is guaranteed
EnsureComp<RCDComponent>(target, out var rcdComponent);
if (rcdComponent.IsShipyardRCD && !comp.IsShipyardRCDAmmo || !rcdComponent.IsShipyardRCD && comp.IsShipyardRCDAmmo)
{
_popup.PopupClient(Loc.GetString("rcd-component-wrong-ammo-type"), target, user);
return;
}

args.Handled = true;
var count = Math.Min(charges.MaxCharges - charges.Charges, comp.Charges);
if (count <= 0)
Expand Down
101 changes: 92 additions & 9 deletions Content.Shared/RCD/Systems/RCDSystem.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using Content.Shared.Access.Components;
using Content.Shared.Administration.Logs;
using Content.Shared.Charges.Components;
using Content.Shared.Charges.Systems;
Expand All @@ -10,6 +11,7 @@
using Content.Shared.Physics;
using Content.Shared.Popups;
using Content.Shared.RCD.Components;
using Content.Shared.Shipyard.Components;
using Content.Shared.Tag;
using Content.Shared.Tiles;
using Robust.Shared.Audio;
Expand Down Expand Up @@ -50,6 +52,7 @@ public override void Initialize()
SubscribeLocalEvent<RCDComponent, AfterInteractEvent>(OnAfterInteract);
SubscribeLocalEvent<RCDComponent, RCDDoAfterEvent>(OnDoAfter);
SubscribeLocalEvent<RCDComponent, DoAfterAttemptEvent<RCDDoAfterEvent>>(OnDoAfterAttempt);
SubscribeLocalEvent<IdCardComponent, AfterInteractEvent>(OnIdCardSwipeHappened); // Frontier
}

private void OnExamine(EntityUid uid, RCDComponent comp, ExaminedEvent args)
Expand All @@ -70,6 +73,56 @@ private void OnUseInHand(EntityUid uid, RCDComponent comp, UseInHandEvent args)
args.Handled = true;
}

/**
* Frontier - ability to swipe rcd for authorizations to build on specific grids
*/
private void OnIdCardSwipeHappened(EntityUid uid, IdCardComponent comp, ref AfterInteractEvent args)
{
if (args.Handled)
return;

if (args.Target is not { Valid: true } target || !args.CanReach)
return;

var rcdEntityUid = target;

// Is this id card interacting with a shipyard RCD ? if not, ignore it.
if (!TryComp<RCDComponent>(rcdEntityUid, out var rcdComponent) || !rcdComponent.IsShipyardRCD)
{
args.Handled = true;
return;
}

// If the id card has no registered ship we cant continue.
if (!TryComp<ShuttleDeedComponent>(comp.Owner, out var shuttleDeedComponent))
{
_popup.PopupClient(Loc.GetString("rcd-component-missing-id-deed"),
uid, args.User, PopupType.Medium);
_audio.PlayPredicted(comp.ErrorSound, rcdEntityUid, args.User, AudioParams.Default.WithMaxDistance(0.01f));
args.Handled = true;
return;
}

// Swiping it again removes the authorization on it.
if (rcdComponent.LinkedShuttleUid != null)
{
_popup.PopupClient(Loc.GetString("rcd-component-id-card-removed"),
uid, args.User, PopupType.Medium);
_audio.PlayPredicted(comp.SwipeSound, rcdEntityUid, args.User, AudioParams.Default.WithMaxDistance(0.01f));
rcdComponent.LinkedShuttleUid = null;
}
else
{
_popup.PopupClient(Loc.GetString("rcd-component-id-card-accepted"),
uid, args.User, PopupType.Medium);
_audio.PlayPredicted(comp.InsertSound, rcdEntityUid, args.User, AudioParams.Default.WithMaxDistance(0.01f));
rcdComponent.LinkedShuttleUid = shuttleDeedComponent.ShuttleUid;
}

Dirty(rcdComponent.Owner, rcdComponent);
args.Handled = true;
}

private void OnAfterInteract(EntityUid uid, RCDComponent comp, AfterInteractEvent args)
{
if (args.Handled || !args.CanReach)
Expand Down Expand Up @@ -111,10 +164,48 @@ private void OnAfterInteract(EntityUid uid, RCDComponent comp, AfterInteractEven

args.Handled = true;

if (_doAfter.TryStartDoAfter(doAfterArgs) && _gameTiming.IsFirstTimePredicted)
// IsAuthorized is part of frontier
if (IsAuthorized(gridId, uid, comp, args) && _doAfter.TryStartDoAfter(doAfterArgs) && _gameTiming.IsFirstTimePredicted)
Spawn("EffectRCDConstruction", location);
}

/**
* Frontier - Stops RCD functions if there is a protected grid component on it, and adds shipyard rcd limitations.
*/
private bool IsAuthorized(EntityUid? gridId, EntityUid uid, RCDComponent comp, AfterInteractEvent args)
{
if (gridId == null)
{
return true;
}
var mapGrid = _mapMan.GetGrid(gridId.Value);
var gridUid = mapGrid.Owner;

// Frontier - Remove all RCD use on outpost.
if (HasComp<ProtectedGridComponent>(gridUid))
{
_popup.PopupClient(Loc.GetString("rcd-component-use-blocked"), uid, args.User);
return false;
}

// Frontier - LinkedShuttleUid requirements to use Shipyard RCD.
if (comp.IsShipyardRCD)
{
if (comp.LinkedShuttleUid == null)
{
_popup.PopupClient(Loc.GetString("rcd-component-no-id-swiped"), uid, args.User);
return false;
}
if (comp.LinkedShuttleUid != gridUid)
{
_popup.PopupClient(Loc.GetString("rcd-component-can-only-build-authorized-ship"), uid, args.User);
return false;
}
}

return true;
}

private void OnDoAfterAttempt(EntityUid uid, RCDComponent comp, DoAfterAttemptEvent<RCDDoAfterEvent> args)
{
// sus client crash why
Expand Down Expand Up @@ -162,14 +253,6 @@ private void OnDoAfter(EntityUid uid, RCDComponent comp, RCDDoAfterEvent args)
var tile = mapGrid.GetTileRef(location);
var snapPos = mapGrid.TileIndicesFor(location);

// I love that this uses entirely separate code to construction and tile placement!!!

var gridUid = mapGrid.Owner;
var ev = new FloorTileAttemptEvent();

if (HasComp<ProtectedGridComponent>(gridUid) || ev.Cancelled) // Frontier - Remove all RCD use on outpost.
return;

switch (comp.Mode)
{
//Floor mode just needs the tile to be a space tile (subFloor)
Expand Down
4 changes: 3 additions & 1 deletion Content.Shared/Shipyard/Components/ShuttleDeedComponent.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using Robust.Shared.GameStates;

namespace Content.Shared.Shipyard.Components;

/// <summary>
/// Tied to an ID card when a ship is purchased. 1 ship per captain.
/// </summary>
[RegisterComponent, Access(typeof(SharedShipyardSystem))]
[RegisterComponent, NetworkedComponent, Access(typeof(SharedShipyardSystem))]
public sealed partial class ShuttleDeedComponent : Component
{
public const int MaxNameLength = 30;
Expand Down
8 changes: 8 additions & 0 deletions Resources/Audio/_NF/Effects/bloodcult/attributions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
- files: ["whispers.ogg"]
license: "CC0-1.0"
copyright: "Original file made by dimbark1 (https://freesound.org/people/dimbark1/), converted to ogg by erhardsteinhauer (discord/github)"
source: "https://freesound.org/people/dimbark1/sounds/316797/"
- files: ["ghost-scream.ogg"]
license: "CC0-1.0"
copyright: "Original file made by NachtmahrTV (https://freesound.org/people/NachtmahrTV/), converted to mono and cut, exported as ogg by erhardsteinhauer (discord/github)"
source: "https://freesound.org/people/NachtmahrTV/sounds/556701/"
Binary file not shown.
8 changes: 8 additions & 0 deletions Resources/Audio/_NF/Effects/bloodcult/licence.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
- files: ["whispers.ogg"]
license: "CC0-1.0"
copyright: "Original file made by dimbark1 (https://freesound.org/people/dimbark1/), converted to ogg by erhardsteinhauer (discord/github)"
source: "https://freesound.org/people/dimbark1/sounds/316797/"
- files: ["ghost-scream.ogg"]
license: "CC0-1.0"
copyright: "Original file made by NachtmahrTV (https://freesound.org/people/NachtmahrTV/), converted to mono and cut, exported as ogg by erhardsteinhauer (discord/github)"
source: "https://freesound.org/people/NachtmahrTV/sounds/556701/"
Binary file not shown.
Binary file added Resources/Audio/_NF/Effects/silence.ogg
Binary file not shown.
21 changes: 21 additions & 0 deletions Resources/Changelog/Changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3743,3 +3743,24 @@ Entries:
message: Liberation Station now offers slug rounds.
id: 4876
time: '2024-03-18T18:39:07.0000000+00:00'
- author: erhardsteinhauer
changes:
- type: Add
message: >-
New Bluespace Event. NT Naval Command disrupted the FTL-jump of
Syndicate Vessel.
- type: Add
message: >-
New Bluespace Event. NT Naval Command detected a Wizard Federation
Scouting Probe entering Frontier Sector.
- type: Add
message: >-
New Bluespace Event. NT Office of Faith and Believes issues aa
announcement about seemingly increased Blood Cult related activity in
the Frontier Sector and warns against worshiping fictional deities.
- type: Add
message: >-
New dungeon factions. Syndicate agents and Blood Cultists can now be
encountered planetside.
id: 4877
time: '2024-03-25T20:09:10.0000000+00:00'
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
advertisement-bloodcultisthumanoid-1 = Nar'Sie will rise again!
advertisement-bloodcultisthumanoid-2 = We will drain your blood!
advertisement-bloodcultisthumanoid-3 = Kill the unbeliever!
advertisement-bloodcultisthumanoid-4 = What was that?
advertisement-bloodcultisthumanoid-5 = You. Will. Suffer.
advertisement-bloodcultisthumanoid-6 = More blood for Nar'Sie!
advertisement-bloodcultisthumanoid-7 = You shouldn't have come here, Bloodbag!
advertisement-bloodcultisthumanoid-8 = I'll die, if Nar'Sie wills it!
advertisement-bloodcultisthumanoid-9 = I hear the Call of The Void.
advertisement-bloodcultisthumanoid-10 = Struggle or surrender- doesn't matter: we will claim your blood.
advertisement-bloodcultisthumanoid-11 = Blood!
advertisement-bloodcultisthumanoid-12 = Glory to The Lurking Void!
advertisement-bloodcultisthumanoid-13 = You will know the true pain!
advertisement-bloodcultisthumanoid-14 = There will be no mercy, unbeliever.
advertisement-bloodcultisthumanoid-15 = Hey, nice jacket!
advertisement-bloodcultisthumanoid-16 = Death to the followers of False Gods!
advertisement-bloodcultisthumanoid-17 = Yes-yes, blood. Need more blood. More, yes.
advertisement-bloodcultisthumanoid-18 = Void take you1
advertisement-bloodcultisthumanoid-19 = *hums*
advertisement-bloodcultisthumanoid-20 = I will make a flute out of your collarbone!
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
advertisement-syndicatehumanoid-1 = Man, I hate it in here!
advertisement-syndicatehumanoid-2 = Yesterday I saw an NT employee. Miserable creature.
advertisement-syndicatehumanoid-3 = Must've been the wind.
advertisement-syndicatehumanoid-4 = What was that?
advertisement-syndicatehumanoid-5 = You saw that?
advertisement-syndicatehumanoid-6 = Yo, dude, like, check this out!
advertisement-syndicatehumanoid-7 = Fuck, that blunt hits hard, I'm trippin'.
advertisement-syndicatehumanoid-8 = I'm looking foward for my hazard pay for this mission.
advertisement-syndicatehumanoid-9 = DIE, DIE, DIE!
advertisement-syndicatehumanoid-10 = Sometime I dream about cheese...
advertisement-syndicatehumanoid-11 = Stop!
advertisement-syndicatehumanoid-12 = Glory to The Syndicate!
advertisement-syndicatehumanoid-13 = Stop resisting!
advertisement-syndicatehumanoid-14 = Drop your weapons!
advertisement-syndicatehumanoid-15 = Argh!
advertisement-syndicatehumanoid-16 = Huh, that's funny.
advertisement-syndicatehumanoid-17 = This day is turning out alright afterall!
advertisement-syndicatehumanoid-18 = Hah! Take that!
advertisement-syndicatehumanoid-19 = *whistles*
advertisement-syndicatehumanoid-20 = Dibs on on that!
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
advertisement-wizardhumanoid-1 = Ţ̴̜͠ú̷̞̬͐t̷̲̺̀̿e̸̠͛ą̸̻͓͗r̴͎͂̀ù̴͎̗͈̓̒m̴̼̽̋ ̴̧͑Ý̴̧͋e̵̒͘ͅv̵̜͂͂a̵͙̽ŗ̵̛̘r̵̯͚̈̍̑à̶̧̺̄̕n̴͓͐̾̇!̷̤̠́
advertisement-wizardhumanoid-2 = M̵̭̼̣̆̒͋ộ̸̞ŕ̷̹̰̥ą̴̰̅̃̇ŗ̶̱̘͂́͂i̸̞̱̹͋͑s̵̗͌̓ ̸̳̅A̴͖̦͗͑͘n̷͚̣̠̉̊t̸̠̪̀́i̶̯͖͚͘ò̷̜͖̇a̴̹̳̘̐̃̊a̴̛̘̥͍i̸̡͔̪͋ẗ̷͎͚́͐̅ư̵̤̤̦̓ȑ̴͈ȋ̷̱̑́͜!̶͍͈̦͠
advertisement-wizardhumanoid-3 = Y̸̕ͅa̵͈̒́a̶̢̹̺̾̈́v̶̤̈a̴͖̯̎r̴͓̲̻͒̃͝u̸̠̒͠ȗ̶̮̺̰k̸̖͍̾!̵̼̹̈́̈́
advertisement-wizardhumanoid-4 = A̵͇͉̐̀n̷̮̈́͘g̴̯̞͛u̵͎̐͛͝l̴̢̙͘e̷̩̭͛ͅ ̵̳̮͍̓͝R̸͇̎͛͝a̵̢͓̼̒ṽ̴̼́ā̸̛͈̙̊t̴̫͒̈͝e̶͉̝̿!̷͉͖͔̈́
advertisement-wizardhumanoid-5 = K̴̙͑̾̃ạ̴̢̒͗͋l̶̫͓̈́̍̒i̵̧̊͑̃i̸̛̗͚i̶̹͎͋͗ǘ̴̠̂a̷̦̐̈́c̵̦̠̜͆ ̷͓̺̓I̷̺͠ṋ̸̋̌q̸̡͉̓ṳ̶̿e̴̟̯͊͂ ̷̧͇̤̀R̷̮͖͝ė̴̢̡͘v̶͍̙̞̆͊̒u̴̠̿ḻ̴̠̳͘!̷̨̰̽̈́̃
advertisement-wizardhumanoid-6 = Z̸̘̽̑e̸̳͂o̷̙̗̘͊u̷̪̍͠á̵͓î̵̭̟͎̄c̸̪̠̑͑̊ ̷͎̫̕K̴̠͍͖͊ă̷̹̗͉̿̐l̴̻̏̚i̴͚̅a̵̲͆́͠t̷̡̹̐i̷̞͙͆ŏ̸̫͖̋͌ ̸̛̻̤̄̔I̶̖̫̻̿̃n̶̮̪̂́a̷̛̩͂̇t̷͈̗̱̚͝ȩ̶̳̹̾͆!̸̠̺̀̆͌
advertisement-wizardhumanoid-7 = Klaatu, Baratu, Nhh... Niktie? Nickle? Fuck..
advertisement-wizardhumanoid-8 = L̷̰̅͗͠i̴͇͑͛̋b̸̡͇̈̾a̸͖͆͘a̶͈̓y̵͒̃͜o̷̧͍̿p̶͚͑͂͜ū̷̼͈͎s̷̯͕̠͂̾͝ ̴̛̣͎̤͑́Ž̵̳̫̈͂ů̶̪͊͘l̶̲̒̿̊ȃ̸̧̻e̸̖̎̋̍y̷̱͐c̵̎ͅì̵̟͍͚̒ȏ̷͈ ̶̻̰̌̕̚Ỉ̸̘̱͕n̷̞̫̣͘f̵̤̊ā̷͔̝̫̏̎i̴̤̋̅̇u̶̝͉̒ͅe̷̗͗̔͑s̷͓͗̑̀t̸̘̳̐̿a̴͇̲̬̔ ̷̯͔̤͠O̷̺̙̣͘c̵̺͖̚c̸͚̯͚̋o̶̖͆i̸̟̔͝ă̶̹̋ͅl̶̢̩̇̋͐
advertisement-wizardhumanoid-9 = NOW YOU DIE!
advertisement-wizardhumanoid-10 = Ş̶̙͋ͅo̵̪̙̍̒m̶̱̏é̸̟̱͑͊t̸͙͑̀̎ì̵̗̀m̵̨͗e̶̗̳̒ ̴̡͓̆̐͆I̵̢͂̚ ̴͍̹͂d̵͎͇̋r̵̢̻̃̀̔ė̴̯͙a̵̧̤̗͑m̷̝̮̔͛ ̶̮͛̆a̶̞̕b̷̼́ǫ̸̩̘͋̍͠u̷͓̬̯͑ṯ̸͒̍̓ ̷͕́͆̂ć̸̱̯̺́͝h̸̨̗̃͠ȅ̶̡̫̓͝e̶̹̻̋̀̑͜s̵͕͍̃e̷̙̳͆.̶͕͑̀̚.̶̘͒͆.̸̺̠̥̒͐͋
advertisement-wizardhumanoid-11 = J̴̪̥͐̒̓a̸̟̞̘͆l̴̟̉̉͝ţ̶̧͆͜i̸͚̮͊ỏ̴̘̘̤n̶͇̰̝͂͋͐ ̶̲̼̥̈́̔̕T̴̻̀̔̓a̸̼̝̞͒͌͝o̴̞͙͝a̶̡͔̰̚ú̴̝͎l̵͖̝͊̚ ̷̼͋͜B̴̪̤͌̏͗ṟ̶̩͌o̷̼̲͔̔͑̀i̸͉̗̗͠ỏ̶̝̹u̷̮̦̕s̵̯̩̰͌
advertisement-wizardhumanoid-12 = O̶̳͈̐͛̚c̶̦͙̈́c̶̪͍̠͐̂ã̵̮͖̠̃͠a̶̙̺̒̒t̵͚̣͎́͘͝ŕ̴͍̋͘ͅͅḁ̶̠̓̕ ̸̝̄X̷̩̰̻̆͗̽á̵͖v̸͔̱̏͑͗ḏ̸̉̉̑i̵̪̣̯͒ù̷̘͙͈̀ŝ̶̲̗̗́͌
advertisement-wizardhumanoid-13 = Surrender, worm, and your life will be spared!
advertisement-wizardhumanoid-14 = F̴̘̜̺̿o̶̼̲̽̓̽r̵͇̽y̷̗̺̼͑͗͠ę̷̛̹̰̇̕a̷̙͓̽ͅl̵̛̗̫͒g̴̯̞̻͘͝í̵̖̜̼̌̒ȃ̶̹̬̱ ̵͇͕̽Å̵͈̗̜̎t̸̡͍̄t̵͓̮̦͌̅̆ö̶̭́̍y̸̞̘͉̋u̸̻̞̎ţ̴̠̱͗̿̂u̶̻͚̽r̴̹̮͆̍̌i̶̘͍̾͆̈́
advertisement-wizardhumanoid-15 = A̵̭̿͛ř̶̳͈̓g̸̘̯͛h̷̘̎͘!̶̡̳̃̾̕
advertisement-wizardhumanoid-16 = A̴̘͎̿n̵̗̠͝t̶̤͚͌͛i̸̹͉̾̆̑ó̵͙t̷̢̓i̵̢̜̓̾o̸̮̣̻̎̊͘ ̶͚̓̐S̸̻̻͇̾͠͝ù̵͉͈̃̓l̶̫͔̭̋b̴̲͙̏͘a̶̠͂̓ ̶̼̗̹̀̃̃Q̷̠͘u̵͓̚͝ȧ̵̭̫̒̂͜ą̸̡͂͗i̴̺͘ĉ̶̫̳̿̾ī̶ͅŏ̷͇͍̊̓
advertisement-wizardhumanoid-17 = V̵̳͇̻̏̆i̶͙̞͖̽͊͠n̶̦̦͍̉͝d̵̙͎̲̈́͑͌i̷̫͕̲̊̒̚ư̷̡̯͈͗̌s̶̠̙̿̽ ̶͈̬͐̈́R̶̟͙̉̀̏è̷̡͒͛v̵͕͖̚i̷̩͠ặ̴̾͋ͅq̵͎̝͚͝ū̵̙͉̔́é̷͙̗ ̵͉̑̃̐C̷̱͙͎͝i̷̢̘͗̽s̴̞̦̘͛̊ě̵̙͖͑͜y̵̖̻̭͂͑̾ḭ̴̅ẗ̷̙͉̙́ư̸̺͝r̴̻̺̍̀i̶̖̓͐
advertisement-wizardhumanoid-18 = V̴͙̟̳̈į̴̪͈̒͗̈á̸͈ớ̴̠͑é̸͎̺̻g̷͉̓ȕ̶̡͓̻̇̚í̸͍͋̕n̷̰͗̋̈́ ̸͚͒́Z̸̛̟̉͘ő̴̘͝a̸̳͎͍̓͆͠y̶̖̋̚͘u̶̗̿͊͂b̶̡͓͓͗̈́a̷̺̱͌͠ ̷̢͈̺̿̿V̴̞͖̈͛̕è̸̞͎̏ṇ̴́͑͒t̴̛̼̐e̷̻͛̈ḯ̶̲̻̪͗a̵̻͙̋͛l̸̺̞̦͌͋͛k̶̺͔̉͒ů̵̙̰̾͐š̶̠͔̗
advertisement-wizardhumanoid-19 = *giggles*
advertisement-wizardhumanoid-20 = *cackles*
Loading

0 comments on commit abed20c

Please sign in to comment.