diff --git a/Content.IntegrationTests/Tests/_Starlight/Thaven/MoodTests.cs b/Content.IntegrationTests/Tests/_StarLight/Thaven/MoodTests.cs similarity index 100% rename from Content.IntegrationTests/Tests/_Starlight/Thaven/MoodTests.cs rename to Content.IntegrationTests/Tests/_StarLight/Thaven/MoodTests.cs diff --git a/Content.Server/GameTicking/Presets/GamePresetPrototype.cs b/Content.Server/GameTicking/Presets/GamePresetPrototype.cs index 1223a0132e6d..a40ac4d78a83 100644 --- a/Content.Server/GameTicking/Presets/GamePresetPrototype.cs +++ b/Content.Server/GameTicking/Presets/GamePresetPrototype.cs @@ -40,10 +40,5 @@ public sealed partial class GamePresetPrototype : IPrototype /// [DataField("supportedMaps", customTypeSerializer: typeof(PrototypeIdSerializer))] public string? MapPool; - - //starlight start - [DataField("voteCooldown")] - public int VoteCooldown = 2; // How many rounds before this preset can be voted for again. - //starlight end } } diff --git a/Content.Server/Spider/SpiderSystem.cs b/Content.Server/Spider/SpiderSystem.cs index f6b76f77a7cd..465c650c37c1 100644 --- a/Content.Server/Spider/SpiderSystem.cs +++ b/Content.Server/Spider/SpiderSystem.cs @@ -84,8 +84,10 @@ private void OnSpawnNet(EntityUid uid, SpiderComponent component, SpiderWebActio _popup.PopupEntity(Loc.GetString("spider-web-action-success"), args.Performer, args.Performer); args.Handled = true; } - else + else if (!component.OneWebSpawn) _popup.PopupEntity(Loc.GetString("spider-web-action-fail"), args.Performer, args.Performer); + else + _popup.PopupEntity(Loc.GetString("spider-web-action-fail-single"), args.Performer, args.Performer); } private bool SpawnWeb(Entity ent, EntityCoordinates coords) diff --git a/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs b/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs index 3e5b43b942cc..8b360b7a201f 100644 --- a/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs +++ b/Content.Server/Voting/Managers/VoteManager.DefaultVotes.cs @@ -36,8 +36,6 @@ public sealed partial class VoteManager private RoleSystem? _roleSystem; private GameTicker? _gameTicker; - private readonly Dictionary _presetCooldown = new(); - private static readonly Dictionary> VoteTypesToEnableCVars = new() { {StandardVoteType.Restart, CCVars.VoteRestartEnabled}, @@ -222,23 +220,12 @@ private void NotifyNotEnoughGhostPlayers(int ghostPercentageRequirement, int rou private void CreatePresetVote(ICommonSession? initiator) { - //starlight start - var presets = GetGamePresets(); - - //add the secret prototype - if (_prototypeManager.TryIndex("Secret", out var secretPreset)) - { - presets.Add(secretPreset, Loc.GetString("ui-vote-secret-map")); - } - //starlight end - - /* starlight disable - var presets = new Dictionary(); + var presets = new Dictionary(); presets.Add("Secret", Loc.GetString("ui-vote-secret-map")); foreach (var preset in GetGamePresets()) { presets.Add(preset.Key, preset.Value); - } */ + } var alone = _playerManager.PlayerCount == 1 && initiator != null; var options = new VoteOptions @@ -265,38 +252,20 @@ private void CreatePresetVote(ICommonSession? initiator) vote.OnFinished += (_, args) => { string picked; - GamePresetPrototype pickedPreset; //starlight if (args.Winner == null) { - picked = (string)_random.Pick(args.Winners); - pickedPreset = presets.FirstOrDefault(p => p.Key.ID == picked).Key; //starlight + picked = (string) _random.Pick(args.Winners); _chatManager.DispatchServerAnnouncement( - Loc.GetString("ui-vote-gamemode-tie", ("picked", Loc.GetString(pickedPreset.ModeTitle)))); //starlight edit + Loc.GetString("ui-vote-gamemode-tie", ("picked", Loc.GetString(presets[picked])))); } else { - picked = (string)args.Winner; - pickedPreset = presets.FirstOrDefault(p => p.Key.ID == picked).Key; //starlight + picked = (string) args.Winner; _chatManager.DispatchServerAnnouncement( - Loc.GetString("ui-vote-gamemode-win", ("winner", Loc.GetString(pickedPreset.ModeTitle)))); //starlight edit + Loc.GetString("ui-vote-gamemode-win", ("winner", Loc.GetString(presets[picked])))); } _adminLogger.Add(LogType.Vote, LogImpact.Medium, $"Preset vote finished: {picked}"); var ticker = _entityManager.EntitySysManager.GetEntitySystem(); - //starlight, keep track of cooldowns - //subtract 1 from all keys EXCEPT the one we picked - foreach (var key in _presetCooldown.Keys.ToList()) - { - if (key != picked) - { - _presetCooldown[key]--; - if (_presetCooldown[key] <= 0) - _presetCooldown.Remove(key); - } - } - - //add the key we picked to the cooldown list - _presetCooldown.Add(picked, pickedPreset.VoteCooldown); - //starlight end ticker.SetGamePreset(picked); }; } @@ -632,9 +601,9 @@ private void TimeoutStandardVote(StandardVoteType type) DirtyCanCallVoteAll(); } - private Dictionary GetGamePresets() + private Dictionary GetGamePresets() { - var presets = new Dictionary(); + var presets = new Dictionary(); var prototypeId = _cfg.GetCVar(StarlightCCVars.RoundVotingChancesPrototype); @@ -657,12 +626,6 @@ private Dictionary GetGamePresets() if (_playerManager.PlayerCount > (preset.MaxPlayers ?? int.MaxValue)) continue; - //STARLIGHT - //check if its on the cooldown list - if (_presetCooldown.ContainsKey(preset.ID)) - continue; - //STARLIGHT END - if (chancesPrototype.Chances.TryGetValue(preset.ID, out var chance)) { validPresets.Add((preset, chance)); @@ -678,7 +641,7 @@ private Dictionary GetGamePresets() var selectedPresets = SelectPresetsByChance(validPresets, _cfg.GetCVar(StarlightCCVars.RoundVotingCount)); foreach (var preset in selectedPresets) { - presets[preset.preset] = preset.preset.ModeTitle; + presets[preset.preset.ID] = preset.preset.ModeTitle; } return presets; diff --git a/Content.Server/Voting/Managers/VoteManager.cs b/Content.Server/Voting/Managers/VoteManager.cs index 80c48445c297..94e637638ee4 100644 --- a/Content.Server/Voting/Managers/VoteManager.cs +++ b/Content.Server/Voting/Managers/VoteManager.cs @@ -363,7 +363,7 @@ private bool CanCallVote( if (voteType == StandardVoteType.Preset) { var presets = GetGamePresets(); - if (presets.Count == 1 && presets.First().Key.ID == _entityManager.System().Preset?.ID) //starlight edit + if (presets.Count == 1 && presets.Select(x => x.Key).Single() == _entityManager.System().Preset?.ID) return false; } diff --git a/Content.Server/_Starlight/Antags/Actions/EMPScreamSystem.cs b/Content.Server/_Starlight/Antags/Actions/EMPScreamSystem.cs index 686f6eec995c..d543c26f2bc3 100644 --- a/Content.Server/_Starlight/Antags/Actions/EMPScreamSystem.cs +++ b/Content.Server/_Starlight/Antags/Actions/EMPScreamSystem.cs @@ -6,11 +6,14 @@ using Robust.Shared.Audio; using Robust.Shared.Player; using Robust.Server.Audio; +using Content.Shared.Actions; +using Content.Shared.Charges.Systems; namespace Content.Server._Starlight.Antags.Actions; public sealed partial class EMPScreamSystem : EntitySystem { + [Dependency] private readonly SharedChargesSystem _chargesSystem = default!; [Dependency] private readonly EmpSystem _emp = default!; [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly ISharedPlayerManager _player = default!; @@ -26,6 +29,10 @@ public override void Initialize() private void OnEMPScream(EMPScreamEvent ev) { + if (ev.Handled || _chargesSystem.GetCurrentCharges(ev.Action.Owner) == 0) + return; + + ev.Handled = true; var uid = ev.Performer; ScreamEffect(uid, ev.Power, ev.ScreamSound); diff --git a/Content.Server/_Starlight/TextToSpeech/TTSSystem.cs b/Content.Server/_Starlight/TextToSpeech/TTSSystem.cs index 025830668ea0..640bf053a57e 100644 --- a/Content.Server/_Starlight/TextToSpeech/TTSSystem.cs +++ b/Content.Server/_Starlight/TextToSpeech/TTSSystem.cs @@ -85,12 +85,18 @@ private async void OnClientOptionTTS(ClientOptionTTSEvent ev, EntitySessionEvent _ignoredRecipients.Add(args.SenderSession); } + // Removes all [tag] and [/tag] style markup + private static string StripRichTextTags(string text) => + TagStripperRegex().Replace(text, ""); + private void OnRadioReceiveEvent(RadioSpokeEvent args) { if (!_isEnabled || args.Message.Length > MaxChars) return; + args.Message = StripRichTextTags(args.Message); + _chime.TryGetSenderHeadsetChime(args.Source, out var chime); if (!TryComp(args.Source, out TextToSpeechComponent? senderComponent) @@ -392,4 +398,6 @@ private string ReplaceAbbreviations(Match word) [GeneratedRegex(@"(?w<|\^w\^))(?![a-zA-Zа-яёА-ЯЁ0-9])", RegexOptions.IgnoreCase | RegexOptions.Multiline, "en-US")] private static partial Regex SymbolFilter(); + [GeneratedRegex(@"\[[^\]]*\]")] + private static partial Regex TagStripperRegex(); } diff --git a/Content.Shared/_Starlight/Actions/Jump/JumpSystem.cs b/Content.Shared/_Starlight/Actions/Jump/SharedJumpSystem.cs similarity index 97% rename from Content.Shared/_Starlight/Actions/Jump/JumpSystem.cs rename to Content.Shared/_Starlight/Actions/Jump/SharedJumpSystem.cs index 4413d6391a9d..88fc4f935fee 100644 --- a/Content.Shared/_Starlight/Actions/Jump/JumpSystem.cs +++ b/Content.Shared/_Starlight/Actions/Jump/SharedJumpSystem.cs @@ -125,7 +125,7 @@ public void Jump(Entity ent, EntityCoordinates targetCoords, floa vector = Vector2.Normalize(vector) * distance.Value; if (ent.Comp.ActionEntity != null) - _action.SetCooldown(ent.Comp.ActionEntity.Value, _timing.CurTime, _timing.CurTime + TimeSpan.FromSeconds(ent.Comp.Cooldown)); + _action.SetUseDelay(ent.Comp.ActionEntity.Value, TimeSpan.FromSeconds(ent.Comp.Cooldown)); _throwing.TryThrow(ent.Owner, vector, baseThrowSpeed: speed, doSpin: false); diff --git a/Resources/Changelog/ChangelogStarlight.yml b/Resources/Changelog/ChangelogStarlight.yml index e6ff37ff0c00..1f950149549d 100644 --- a/Resources/Changelog/ChangelogStarlight.yml +++ b/Resources/Changelog/ChangelogStarlight.yml @@ -14600,5 +14600,158 @@ Entries: id: 144002 time: '2025-09-17T16:58:28.000000+00:00' url: https://github.com/ss14Starlight/space-station-14/pull/1440 +- author: STARLIGHT TEAM + changes: + - message: Temporarily switch back to starlight vulpkanin stats + type: Tweak + id: 166800 + time: '2025-09-18T19:52:00.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1668 +- author: STARLIGHT TEAM + changes: + - message: Bold for Bold + type: Fix + id: 167000 + time: '2025-09-18T20:25:30.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1670 +- author: Arkanic, Walksanatora + changes: + - message: Fix vulpkanin displacements, fix incorrect hair displacements + type: Fix + id: 165700 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: Arkanic, Walksanatora + changes: + - message: Fix vulpkanin wagging, fix vulpkanin growling accent + type: Fix + id: 165701 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: Arkanic, Walksanatora + changes: + - message: Fix vulpkanin eyes being wizden vulp eyes (sleepy) + type: Fix + id: 165702 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: Arkanic, Walksanatora + changes: + - message: Fix default vulpkanin markings to prevent character changes after update + type: Fix + id: 165703 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: Arkanic, Walksanatora + changes: + - message: Switch back to SL vulpkanin screams + type: Fix + id: 165704 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: Arkanic, Walksanatora + changes: + - message: Fix vulpkanin hair showing when wearing hardsuits + type: Fix + id: 165705 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: Arkanic, Walksanatora + changes: + - message: Switch back to using SL markings where duplicates exist + type: Tweak + id: 165706 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: Arkanic, Walksanatora + changes: + - message: Add missing emotes back to vulpkanin, fix creampie sprites + type: Fix + id: 165707 + time: '2025-09-17T15:06:54.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1657 +- author: CorruptOmega + changes: + - message: Satanic Bible visual has been flipped upside down. + type: Tweak + id: 159100 + time: '2025-09-17T15:29:24.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1591 +- author: Killer Tamashi + changes: + - message: Added Security shuttle "SEC-657 'Pursuit" + type: Add + id: 134800 + time: '2025-09-17T16:07:35.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1348 +- author: CorruptOmega + changes: + - message: CentComm Communication paper to the document printer + type: Add + id: 147200 + time: '2025-09-17T16:21:14.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1472 +- author: walksanatora + changes: + - message: New wizard spell that randomizes all spoken and understood languages + across everyone in the game. really should not spite your new god. + type: Add + id: 142700 + time: '2025-09-17T16:25:10.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1427 +- author: Rinary + changes: + - message: Fixed emp scream & jump cooldowns. + type: Fix + id: 166600 + time: '2025-09-18T21:46:21.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1666 +- author: Rinary + changes: + - message: Changed poison web injection from 2 to 0.5. + type: Tweak + id: 166601 + time: '2025-09-18T21:46:21.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1666 +- author: Rinary + changes: + - message: Changed white spider battery from 200 to 150 and charge rate from 25 + to 10. + type: Tweak + id: 166602 + time: '2025-09-18T21:46:21.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1666 +- author: Rinary + changes: + - message: Fixed spider popup, now it separated and part with directions will be + popuped only when your spider can spawn more than one web in one action. + type: Fix + id: 166603 + time: '2025-09-18T21:46:21.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1666 +- author: Rinary + changes: + - message: Changed web spinning cooldown from 25 to 15, but terror spiders web condition + target web count changed from 24 to 36. + type: Tweak + id: 166604 + time: '2025-09-18T21:46:21.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1666 +- author: Conflee + changes: + - message: Changed pricing of some restock crates to be more reasonable. If the + resell price was close to the buy price, I made them cost slightly more. If + the resell price was way under the buy price, I made them cost slightly less. + type: Tweak + id: 166200 + time: '2025-09-18T22:21:33.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1662 +- author: Conflee + changes: + - message: Fixed infinite money glitch with restock crates in cargo + type: Fix + id: 166201 + time: '2025-09-18T22:21:33.000000+00:00' + url: https://github.com/ss14Starlight/space-station-14/pull/1662 Order: -1 diff --git a/Resources/Locale/en-US/_Starlight/actions/actions/spider.ftl b/Resources/Locale/en-US/_Starlight/actions/actions/spider.ftl new file mode 100644 index 000000000000..fe3d56d49d41 --- /dev/null +++ b/Resources/Locale/en-US/_Starlight/actions/actions/spider.ftl @@ -0,0 +1 @@ +spider-web-action-fail-single = You can't place webs here! \ No newline at end of file diff --git a/Resources/Prototypes/Actions/spider.yml b/Resources/Prototypes/Actions/spider.yml index ea060bd9837a..65741b6d0614 100644 --- a/Resources/Prototypes/Actions/spider.yml +++ b/Resources/Prototypes/Actions/spider.yml @@ -11,7 +11,7 @@ - type: LimitedCharges maxCharges: 3 - type: AutoRecharge - rechargeDuration: 25 + rechargeDuration: 15 # Starlight-end - type: InstantAction event: !type:SpiderWebActionEvent diff --git a/Resources/Prototypes/Body/Prototypes/vulpkanin.yml b/Resources/Prototypes/Body/Prototypes/vulpkanin.yml index ad0d1fcf2cf9..d79e3367e079 100644 --- a/Resources/Prototypes/Body/Prototypes/vulpkanin.yml +++ b/Resources/Prototypes/Body/Prototypes/vulpkanin.yml @@ -18,9 +18,9 @@ - right leg - left leg organs: - heart: OrganAnimalHeart + heart: OrganVulpkaninHeart # starlight - temp vulpkanin revert lungs: OrganHumanLungs - stomach: OrganAnimalStomach + stomach: OrganVulpkaninStomach # starlight - temp vulpkanin revert liver: OrganAnimalLiver kidneys: OrganHumanKidneys right arm: diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml index ae69b70b1801..d69d81547d8e 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml @@ -12,7 +12,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockBoozeFilled - cost: 3500 + cost: 3000 #SL EDIT category: cargoproduct-category-name-service group: market @@ -22,7 +22,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockChefvendFilled - cost: 750 # Starlight-edit + cost: 850 # Starlight-edit category: cargoproduct-category-name-service group: market @@ -32,7 +32,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockClothesFilled - cost: 4010 # Starlight-edit + cost: 4025 # Starlight-edit category: cargoproduct-category-name-service group: market @@ -42,7 +42,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockAutoDrobeFilled - cost: 4010 # Starlight-edit + cost: 4000 # Starlight-edit category: cargoproduct-category-name-service group: market @@ -92,7 +92,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockHotDrinksFilled - cost: 1200 + cost: 1000 #SL EDIT category: cargoproduct-category-name-service group: market @@ -102,7 +102,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockMedicalFilled - cost: 1750 + cost: 1800 #SL EDIT category: cargoproduct-category-name-medical group: market @@ -122,7 +122,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockNutriMaxFilled - cost: 2400 + cost: 2000 #SL EDIT category: cargoproduct-category-name-hydroponics group: market @@ -142,7 +142,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockRobustSoftdrinksFilled - cost: 1200 + cost: 1000 #SL EDIT category: cargoproduct-category-name-service group: market @@ -172,7 +172,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockSeedsFilled - cost: 3600 + cost: 3650 #SL EDIT category: cargoproduct-category-name-hydroponics group: market @@ -192,7 +192,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockVendomatFilled - cost: 1200 + cost: 1000 #SL EDIT category: cargoproduct-category-name-service group: market @@ -212,7 +212,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockTankDispenserFilled - cost: 1000 + cost: 1100 category: cargoproduct-category-name-atmospherics group: market @@ -222,7 +222,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockHappyHonkFilled - cost: 2100 + cost: 3000 #SL EDIT category: cargoproduct-category-name-service group: market @@ -242,7 +242,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockChangFilled - cost: 1200 + cost: 1000 #SL EDIT category: cargoproduct-category-name-service group: market @@ -252,7 +252,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockDiscountDansFilled - cost: 1200 + cost: 1000 #SL EDIT category: cargoproduct-category-name-service group: market @@ -262,6 +262,6 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockDonutFilled - cost: 1200 + cost: 1000 #SL EDIT category: cargoproduct-category-name-service group: market diff --git a/Resources/Prototypes/Entities/Mobs/Species/vulpkanin.yml b/Resources/Prototypes/Entities/Mobs/Species/vulpkanin.yml index a330f51f5281..a6408a428886 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/vulpkanin.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/vulpkanin.yml @@ -16,8 +16,8 @@ - Fox # "vaguely canidae" - Dog # "vaguely canidae" #Starlight - - type: Hunger - - type: Thirst +# - type: Hunger # starlight +# - type: Thirst # starlight - type: MessyDrinker spillChance: 0.33 - type: Icon @@ -44,16 +44,18 @@ types: Piercing: 2 Slash: 3 - - type: Temperature # Same as moth temperatures until below is solved. - heatDamageThreshold: 320 # TODO: 315 when there is a way to make the temperature alert not blink to the side of the screen and disappear when you "sweat" at 39C. - coldDamageThreshold: 230 # TODO: 220 when the above is solved. - specificHeat: 44 - coldDamage: - types: - Cold: 0.05 # Per second, scales with temperature & other constants - heatDamage: - types: - Heat: 2.5 # Per second, scales with temperature & other constants + # starlight start - temp vulpkanin revert + # - type: Temperature # Same as moth temperatures until below is solved. + # heatDamageThreshold: 320 # TODO: 315 when there is a way to make the temperature alert not blink to the side of the screen and disappear when you "sweat" at 39C. + # coldDamageThreshold: 230 # TODO: 220 when the above is solved. + # specificHeat: 44 + # coldDamage: + # types: + # Cold: 0.05 # Per second, scales with temperature & other constants + # heatDamage: + # types: + # Heat: 2.5 # Per second, scales with temperature & other constants + # starlight end # Starlight start # - type: Wagging TODO: Add back once we have animated tails again. Were removed due to the sprite rework, causing all of them to not fit anymore. # action: ActionToggleWaggingVulpkanin @@ -63,16 +65,18 @@ - type: TemperatureProtection heatingCoefficient: 1.2 coolingCoefficient: 0.3 - - type: JumpAbility - action: ActionVulpkaninGravityJump - canCollide: true - jumpDistance: 3 - jumpSound: - path: /Audio/Weapons/punchmiss.ogg - params: - pitch: 1.33 - volume: -5 - variation: 0.05 + # STARLIGHT START + # - type: JumpAbility + # action: ActionVulpkaninGravityJump + # canCollide: true + # jumpDistance: 3 + # jumpSound: + # path: /Audio/Weapons/punchmiss.ogg + # params: + # pitch: 1.33 + # volume: -5 + # variation: 0.05 + # STARLIGHT END - type: InteractionPopup # Crucial detail. successChance: 1 interactSuccessString: petting-success-soft-floofy-vulp @@ -165,6 +169,38 @@ sprite: _Starlight/Mobs/Species/Vulpkanin/displacement.rsi state: shoes # Starlight end + # starlight start - temp vulpkanin revert + - type: Hunger # on 1.5x more + thresholds: + Overfed: 250 + Okay: 200 + Peckish: 150 + Starving: 100 + Dead: 0 + baseDecayRate: 0.018 + - type: Thirst # on 1.5x more + thresholds: + OverHydrated: 650 + Okay: 500 + Thirsty: 350 + Parched: 200 + Dead: 0 + baseDecayRate: 0.125 + - type: Temperature # Ported over from CD. Afterall, it does make sense that something with fur can handle more cold/less heat. Basegame Moths, apparently, have similar resistances. + heatDamageThreshold: 325 + coldDamageThreshold: 230 + currentTemperature: 310.15 + specificHeat: 46 + coldDamage: + types: + Cold : 0.05 #per second, scales with temperature & other constants + heatDamage: + types: + Heat : 1.75 #per second, scales with temperature & other constants + - type: ContentEye + targetZoom: "1.125, 1.125" + maxZoom: "1.125, 1.125" + # starlight end - type: entity parent: [BaseSpeciesDummy] diff --git a/Resources/Prototypes/Species/vulpkanin.yml b/Resources/Prototypes/Species/vulpkanin.yml index ea36cc5c4296..e8db480ccc98 100644 --- a/Resources/Prototypes/Species/vulpkanin.yml +++ b/Resources/Prototypes/Species/vulpkanin.yml @@ -7,10 +7,18 @@ defaultSkinTone: "#5a3f2d" markingLimits: MobVulpkaninMarkingLimits dollPrototype: MobVulpkaninDummy - skinColoration: VulpkaninColors + skinColoration: Hues # Starlight maleFirstNames: names_vulpkanin_male femaleFirstNames: names_vulpkanin_female lastNames: names_vulpkanin_last + # starlight start + minHeight: 0.9 + defaultHeight: 1 + maxHeight: 1.2 + standardSize: 170 + standardWeight: 75 + standardDensity: 110 + # starlight end - type: speciesBaseSprites id: MobVulpkaninSprites diff --git a/Resources/Prototypes/_Starlight/Actions/thaven.yml b/Resources/Prototypes/_StarLight/Actions/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Actions/thaven.yml rename to Resources/Prototypes/_StarLight/Actions/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Body/Organs/thaven.yml b/Resources/Prototypes/_StarLight/Body/Organs/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Body/Organs/thaven.yml rename to Resources/Prototypes/_StarLight/Body/Organs/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Body/Parts/thaven.yml b/Resources/Prototypes/_StarLight/Body/Parts/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Body/Parts/thaven.yml rename to Resources/Prototypes/_StarLight/Body/Parts/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Body/thaven.yml b/Resources/Prototypes/_StarLight/Body/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Body/thaven.yml rename to Resources/Prototypes/_StarLight/Body/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Damage/thaven.yml b/Resources/Prototypes/_StarLight/Damage/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Damage/thaven.yml rename to Resources/Prototypes/_StarLight/Damage/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Datasets/Names/thaven.yml b/Resources/Prototypes/_StarLight/Datasets/Names/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Datasets/Names/thaven.yml rename to Resources/Prototypes/_StarLight/Datasets/Names/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Entities/Mobs/Customization/Marking/thaven.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Entities/Mobs/Customization/Marking/thaven.yml rename to Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/thaven.yml diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/NPCs/terror_spiders.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/NPCs/terror_spiders.yml index 2021fc4967b9..7f8e1a6697a2 100644 --- a/Resources/Prototypes/_StarLight/Entities/Mobs/NPCs/terror_spiders.yml +++ b/Resources/Prototypes/_StarLight/Entities/Mobs/NPCs/terror_spiders.yml @@ -173,6 +173,7 @@ evolveTo: MobTerrorPurple conditions: - !type:SpiderWebCondition + targetWebAmount: 36 - type: entity name: terror gray @@ -236,6 +237,7 @@ evolveTo: MobTerrorBlack conditions: - !type:SpiderWebCondition + targetWebAmount: 36 - type: entity name: terror green @@ -359,10 +361,10 @@ fireCost: 50 - type: BatterySelfRecharger autoRecharge: true - autoRechargeRate: 25 + autoRechargeRate: 10 - type: Battery - maxCharge: 200 - startingCharge: 200 + maxCharge: 150 + startingCharge: 150 - type: Gun fireRate: 0.5 useKey: false diff --git a/Resources/Prototypes/_Starlight/Entities/Mobs/Species/thaven.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Species/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Entities/Mobs/Species/thaven.yml rename to Resources/Prototypes/_StarLight/Entities/Mobs/Species/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Entities/Mobs/thaven.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Entities/Mobs/thaven.yml rename to Resources/Prototypes/_StarLight/Entities/Mobs/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Entities/Objects/Consumable/food.yml b/Resources/Prototypes/_StarLight/Entities/Objects/Consumable/Food/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Entities/Objects/Consumable/food.yml rename to Resources/Prototypes/_StarLight/Entities/Objects/Consumable/Food/thaven.yml diff --git a/Resources/Prototypes/_StarLight/Entities/Structures/spider_web.yml b/Resources/Prototypes/_StarLight/Entities/Structures/spider_web.yml index 01b9ca9c8574..41a0105e319e 100644 --- a/Resources/Prototypes/_StarLight/Entities/Structures/spider_web.yml +++ b/Resources/Prototypes/_StarLight/Entities/Structures/spider_web.yml @@ -117,7 +117,7 @@ limit: 20 reagents: - ReagentId: Mechanotoxin - Quantity: 2 + Quantity: 0.5 blacklist: components: - IgnoreSpiderWeb diff --git a/Resources/Prototypes/_StarLight/Guidebook/species.yml b/Resources/Prototypes/_StarLight/Guidebook/species.yml new file mode 100644 index 000000000000..a8af24c0f380 --- /dev/null +++ b/Resources/Prototypes/_StarLight/Guidebook/species.yml @@ -0,0 +1,4 @@ +- type: guideEntry + id: Thaven + name: Thaven + text: "/ServerInfo/_StarLight/Guidebook/Mobs/Thaven.xml" diff --git a/Resources/Prototypes/_Starlight/InventoryTemplates/thaven_inventory_template.yml b/Resources/Prototypes/_StarLight/InventoryTemplates/thaven_inventory_template.yml similarity index 100% rename from Resources/Prototypes/_Starlight/InventoryTemplates/thaven_inventory_template.yml rename to Resources/Prototypes/_StarLight/InventoryTemplates/thaven_inventory_template.yml diff --git a/Resources/Prototypes/_Starlight/Species/thaven.yml b/Resources/Prototypes/_StarLight/Species/thaven.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Species/thaven.yml rename to Resources/Prototypes/_StarLight/Species/thaven.yml diff --git a/Resources/Prototypes/_Starlight/Thavens/Moods/no_and.yml b/Resources/Prototypes/_StarLight/Thavens/Moods/no_and.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Thavens/Moods/no_and.yml rename to Resources/Prototypes/_StarLight/Thavens/Moods/no_and.yml diff --git a/Resources/Prototypes/_Starlight/Thavens/Moods/shared.yml b/Resources/Prototypes/_StarLight/Thavens/Moods/shared.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Thavens/Moods/shared.yml rename to Resources/Prototypes/_StarLight/Thavens/Moods/shared.yml diff --git a/Resources/Prototypes/_Starlight/Thavens/Moods/wildcard.yml b/Resources/Prototypes/_StarLight/Thavens/Moods/wildcard.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Thavens/Moods/wildcard.yml rename to Resources/Prototypes/_StarLight/Thavens/Moods/wildcard.yml diff --git a/Resources/Prototypes/_Starlight/Thavens/Moods/yes_and.yml b/Resources/Prototypes/_StarLight/Thavens/Moods/yes_and.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Thavens/Moods/yes_and.yml rename to Resources/Prototypes/_StarLight/Thavens/Moods/yes_and.yml diff --git a/Resources/Prototypes/_Starlight/Thavens/datasets.yml b/Resources/Prototypes/_StarLight/Thavens/datasets.yml similarity index 100% rename from Resources/Prototypes/_Starlight/Thavens/datasets.yml rename to Resources/Prototypes/_StarLight/Thavens/datasets.yml diff --git a/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml b/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml index fad6a5b22c1b..299884408dda 100644 --- a/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml +++ b/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml @@ -317,4 +317,109 @@ Purr: collection: FelionoidPurrs Growl: - collection: FelionoidGrowls \ No newline at end of file + collection: FelionoidGrowls + +- type: emoteSounds + id: MaleThaven + sounds: + Scream: + collection: MaleScreams + Laugh: + collection: MaleLaugh + Sneeze: + collection: MaleSneezes + Cough: + collection: MaleCoughs + CatMeow: + collection: CatMeows + CatHisses: + collection: CatHisses + MonkeyScreeches: + collection: MonkeyScreeches + RobotBeep: + collection: RobotBeeps + Yawn: + collection: MaleYawn + Snore: + collection: Snores + Sigh: + collection: MaleSigh + Honk: + collection: BikeHorn + Crying: + collection: MaleCry + Whistle: + collection: Whistles + Weh: + collection: Weh + Gasp: + collection: MaleGasp + DefaultDeathgasp: + collection: MaleDeathGasp + params: + variation: 0.05 + pitch: 1.25 + +- type: emoteSounds + id: FemaleThaven + sounds: + Scream: + collection: FemaleScreams + Laugh: + collection: FemaleLaugh + Sneeze: + collection: FemaleSneezes + Cough: + collection: FemaleCoughs + CatMeow: + collection: CatMeows + CatHisses: + collection: CatHisses + MonkeyScreeches: + collection: MonkeyScreeches + RobotBeep: + collection: RobotBeeps + Yawn: + collection: FemaleYawn + Snore: + collection: Snores + Sigh: + collection: FemaleSigh + Honk: + collection: BikeHorn + Crying: + collection: FemaleCry + Whistle: + collection: Whistles + Weh: + collection: Weh + Gasp: + collection: FemaleGasp + DefaultDeathgasp: + collection: FemaleDeathGasp + params: + variation: 0.05 + pitch: 1.25 + +- type: emoteSounds + id: UnisexThaven + sounds: + CatMeow: + collection: CatMeows + CatHisses: + collection: CatHisses + MonkeyScreeches: + collection: MonkeyScreeches + RobotBeep: + collection: RobotBeeps + Snore: + collection: Snores + Honk: + collection: BikeHorn + Whistle: + collection: Whistles + Weh: + collection: Weh + params: + variation: 0.05 + pitch: 1.25 diff --git a/Resources/Prototypes/_Starlight/datasets.yml b/Resources/Prototypes/_StarLight/datasets.yml similarity index 100% rename from Resources/Prototypes/_Starlight/datasets.yml rename to Resources/Prototypes/_StarLight/datasets.yml diff --git a/Resources/Prototypes/_Starlight/Guidebook/species.yml b/Resources/Prototypes/_Starlight/Guidebook/species.yml deleted file mode 100644 index 98e306a94aaf..000000000000 --- a/Resources/Prototypes/_Starlight/Guidebook/species.yml +++ /dev/null @@ -1,4 +0,0 @@ -- type: guideEntry - id: Thaven - name: Thaven - text: "/ServerInfo/_Starlight/Guidebook/Mobs/Thaven.xml" diff --git a/Resources/Prototypes/_Starlight/Voice/speech_emote_sounds.yml b/Resources/Prototypes/_Starlight/Voice/speech_emote_sounds.yml deleted file mode 100644 index 10b0d22fa720..000000000000 --- a/Resources/Prototypes/_Starlight/Voice/speech_emote_sounds.yml +++ /dev/null @@ -1,104 +0,0 @@ -- type: emoteSounds - id: MaleThaven - sounds: - Scream: - collection: MaleScreams - Laugh: - collection: MaleLaugh - Sneeze: - collection: MaleSneezes - Cough: - collection: MaleCoughs - CatMeow: - collection: CatMeows - CatHisses: - collection: CatHisses - MonkeyScreeches: - collection: MonkeyScreeches - RobotBeep: - collection: RobotBeeps - Yawn: - collection: MaleYawn - Snore: - collection: Snores - Sigh: - collection: MaleSigh - Honk: - collection: BikeHorn - Crying: - collection: MaleCry - Whistle: - collection: Whistles - Weh: - collection: Weh - Gasp: - collection: MaleGasp - DefaultDeathgasp: - collection: MaleDeathGasp - params: - variation: 0.05 - pitch: 1.25 - -- type: emoteSounds - id: FemaleThaven - sounds: - Scream: - collection: FemaleScreams - Laugh: - collection: FemaleLaugh - Sneeze: - collection: FemaleSneezes - Cough: - collection: FemaleCoughs - CatMeow: - collection: CatMeows - CatHisses: - collection: CatHisses - MonkeyScreeches: - collection: MonkeyScreeches - RobotBeep: - collection: RobotBeeps - Yawn: - collection: FemaleYawn - Snore: - collection: Snores - Sigh: - collection: FemaleSigh - Honk: - collection: BikeHorn - Crying: - collection: FemaleCry - Whistle: - collection: Whistles - Weh: - collection: Weh - Gasp: - collection: FemaleGasp - DefaultDeathgasp: - collection: FemaleDeathGasp - params: - variation: 0.05 - pitch: 1.25 - -- type: emoteSounds - id: UnisexThaven - sounds: - CatMeow: - collection: CatMeows - CatHisses: - collection: CatHisses - MonkeyScreeches: - collection: MonkeyScreeches - RobotBeep: - collection: RobotBeeps - Snore: - collection: Snores - Honk: - collection: BikeHorn - Whistle: - collection: Whistles - Weh: - collection: Weh - params: - variation: 0.05 - pitch: 1.25 diff --git a/Resources/ServerInfo/Guidebook/Mobs/Vulpkanin.xml b/Resources/ServerInfo/Guidebook/Mobs/Vulpkanin.xml index 8ee0b17727cb..01701ce8f512 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Vulpkanin.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Vulpkanin.xml @@ -6,11 +6,14 @@ Vulpkanin, due to their dense fur, [color=#1e90ff]prefer colder temperatures[/color] and [color=#ffa500]heat up faster.[/color] - Their agile (but clumsy) legs allow them to leap short distances, be careful not to bump into anything! Their diet allows them to safely eat raw meat but they get poisoned by theobromine. Their weirdly shaped muzzle leads to difficulties drinking, making them sometimes spill small amounts of whatever they drank onto the ground. They take [color=#1e90ff]15% less Cold damage[/color] but [color=#ffa500]15% more Heat damage.[/color]. + + Their eyesight allows them to see slightly further than most species. + + They have a faster metabolism than other species. This makes them hungrier, but it also means that they can process chemicals 25% faster then a standard human. diff --git a/Resources/ServerInfo/_Starlight/Guidebook/Mobs/Thaven.xml b/Resources/ServerInfo/_StarLight/Guidebook/Mobs/Thaven.xml similarity index 100% rename from Resources/ServerInfo/_Starlight/Guidebook/Mobs/Thaven.xml rename to Resources/ServerInfo/_StarLight/Guidebook/Mobs/Thaven.xml