|
|
@ -3,6 +3,7 @@ using System.Linq;
|
|||
using System.Numerics;
|
||||
using Content.Client.DisplacementMap;
|
||||
using Content.Client.Inventory;
|
||||
using Content.Shared._Sunrise;
|
||||
using Content.Shared.Clothing;
|
||||
using Content.Shared.Clothing.Components;
|
||||
using Content.Shared.Clothing.EntitySystems;
|
||||
|
|
@ -11,9 +12,11 @@ using Content.Shared.Humanoid;
|
|||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Inventory.Events;
|
||||
using Content.Shared.Item;
|
||||
using Content.Shared.Tag;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.ResourceManagement;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Serialization.Manager;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations;
|
||||
using Robust.Shared.Utility;
|
||||
|
|
@ -55,6 +58,8 @@ public sealed class ClientClothingSystem : ClothingSystem
|
|||
[Dependency] private readonly IResourceCache _cache = default!;
|
||||
[Dependency] private readonly InventorySystem _inventorySystem = default!;
|
||||
[Dependency] private readonly DisplacementMapSystem _displacement = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
[Dependency] private readonly TagSystem _tagSystem = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
|
|
@ -108,6 +113,12 @@ public sealed class ClientClothingSystem : ClothingSystem
|
|||
|
||||
List<PrototypeLayerData>? layers = null;
|
||||
|
||||
if (TryComp(args.Equipee, out HumanoidAppearanceComponent? humanoid))
|
||||
{
|
||||
var bodyTypeName = _prototype.Index<BodyTypePrototype>(humanoid.BodyType).Name;
|
||||
item.ClothingVisuals.TryGetValue($"{args.Slot}-{bodyTypeName}", out layers);
|
||||
}
|
||||
|
||||
// first attempt to get species specific data.
|
||||
if (inventory.SpeciesId != null)
|
||||
item.ClothingVisuals.TryGetValue($"{args.Slot}-{inventory.SpeciesId}", out layers);
|
||||
|
|
@ -116,7 +127,7 @@ public sealed class ClientClothingSystem : ClothingSystem
|
|||
if (layers == null && !item.ClothingVisuals.TryGetValue(args.Slot, out layers))
|
||||
{
|
||||
// No generic data either. Attempt to generate defaults from the item's RSI & item-prefixes
|
||||
if (!TryGetDefaultVisuals(uid, item, args.Slot, inventory.SpeciesId, out layers))
|
||||
if (!TryGetDefaultVisuals(uid, item, args.Slot, inventory.SpeciesId, args.Equipee, out layers))
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -144,6 +155,7 @@ public sealed class ClientClothingSystem : ClothingSystem
|
|||
/// Useful for lazily adding clothing sprites without modifying yaml. And for backwards compatibility.
|
||||
/// </remarks>
|
||||
private bool TryGetDefaultVisuals(EntityUid uid, ClothingComponent clothing, string slot, string? speciesId,
|
||||
EntityUid target,
|
||||
[NotNullWhen(true)] out List<PrototypeLayerData>? layers)
|
||||
{
|
||||
layers = null;
|
||||
|
|
@ -171,6 +183,13 @@ public sealed class ClientClothingSystem : ClothingSystem
|
|||
if (clothing.EquippedState != null)
|
||||
state = $"{clothing.EquippedState}";
|
||||
|
||||
if (TryComp(target, out HumanoidAppearanceComponent? humanoid))
|
||||
{
|
||||
var bodyTypeName = _prototype.Index(humanoid.BodyType).Name;
|
||||
if (rsi.TryGetState($"{state}-{bodyTypeName}", out _))
|
||||
state = $"{state}-{bodyTypeName}";
|
||||
}
|
||||
|
||||
// species specific
|
||||
if (speciesId != null && rsi.TryGetState($"{state}-{speciesId}", out _))
|
||||
state = $"{state}-{speciesId}";
|
||||
|
|
@ -276,18 +295,42 @@ public sealed class ClientClothingSystem : ClothingSystem
|
|||
// Select displacement maps
|
||||
var displacementData = inventory.Displacements.GetValueOrDefault(slot); //Default unsexed map
|
||||
|
||||
var equipeeSex = CompOrNull<HumanoidAppearanceComponent>(equipee)?.Sex;
|
||||
if (equipeeSex != null)
|
||||
string? bodyTypeName = null;
|
||||
if (TryComp(equipee, out HumanoidAppearanceComponent? humanoid))
|
||||
{
|
||||
switch (equipeeSex)
|
||||
bodyTypeName = _prototype.Index(humanoid.BodyType).Name;
|
||||
|
||||
var hardsuitKey = $"hardsuit-{bodyTypeName}";
|
||||
|
||||
switch (humanoid.Sex)
|
||||
{
|
||||
case Sex.Male:
|
||||
if (inventory.MaleDisplacements.Count > 0)
|
||||
displacementData = inventory.MaleDisplacements.GetValueOrDefault(slot);
|
||||
{
|
||||
displacementData = inventory.MaleDisplacements.GetValueOrDefault($"{slot}-{bodyTypeName}")
|
||||
?? inventory.MaleDisplacements.GetValueOrDefault(slot);
|
||||
|
||||
if (_tagSystem.HasTag(equipment, "Hardsuit"))
|
||||
{
|
||||
displacementData = inventory.MaleDisplacements.GetValueOrDefault(hardsuitKey)
|
||||
?? inventory.Displacements.GetValueOrDefault(slot);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case Sex.Female:
|
||||
if (inventory.FemaleDisplacements.Count > 0)
|
||||
displacementData = inventory.FemaleDisplacements.GetValueOrDefault(slot);
|
||||
{
|
||||
displacementData = inventory.FemaleDisplacements.GetValueOrDefault($"{slot}-{bodyTypeName}")
|
||||
?? inventory.FemaleDisplacements.GetValueOrDefault(slot);
|
||||
|
||||
if (_tagSystem.HasTag(equipment, "Hardsuit"))
|
||||
{
|
||||
displacementData = inventory.FemaleDisplacements.GetValueOrDefault(hardsuitKey)
|
||||
?? inventory.FemaleDisplacements.GetValueOrDefault(slot);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -334,7 +377,8 @@ public sealed class ClientClothingSystem : ClothingSystem
|
|||
if (displacementData is not null)
|
||||
{
|
||||
//Checking that the state is not tied to the current race. In this case we don't need to use the displacement maps.
|
||||
if (layerData.State is not null && inventory.SpeciesId is not null && layerData.State.EndsWith(inventory.SpeciesId))
|
||||
if (layerData.State is not null && (inventory.SpeciesId is not null && layerData.State.EndsWith(inventory.SpeciesId)
|
||||
|| bodyTypeName is not null && layerData.State.EndsWith(bodyTypeName)))
|
||||
continue;
|
||||
|
||||
if (_displacement.TryAddDisplacement(displacementData, sprite, index, key, revealedLayers))
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using Content.Shared._Sunrise;
|
||||
using Content.Shared.Humanoid;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
|
|
@ -41,10 +42,8 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
|||
var oldLayers = new HashSet<HumanoidVisualLayers>(component.BaseLayers.Keys);
|
||||
component.BaseLayers.Clear();
|
||||
|
||||
// add default species layers
|
||||
var speciesProto = _prototypeManager.Index(component.Species);
|
||||
var baseSprites = _prototypeManager.Index<HumanoidSpeciesBaseSpritesPrototype>(speciesProto.SpriteSet);
|
||||
foreach (var (key, id) in baseSprites.Sprites)
|
||||
var bodyTypeProto = _prototypeManager.Index(component.BodyType);
|
||||
foreach (var (key, id) in bodyTypeProto.Sprites)
|
||||
{
|
||||
oldLayers.Remove(key);
|
||||
if (!component.CustomBaseLayers.ContainsKey(key))
|
||||
|
|
@ -194,6 +193,7 @@ public sealed class HumanoidAppearanceSystem : SharedHumanoidAppearanceSystem
|
|||
humanoid.Sex = profile.Sex;
|
||||
humanoid.Gender = profile.Gender;
|
||||
humanoid.Age = profile.Age;
|
||||
humanoid.BodyType = profile.BodyType;
|
||||
humanoid.Species = profile.Species;
|
||||
humanoid.SkinColor = profile.Appearance.SkinColor;
|
||||
humanoid.EyeColor = profile.Appearance.EyeColor;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,13 @@
|
|||
ToolTip="{Loc 'humanoid-profile-editor-guidebook-button-tooltip'}"/>
|
||||
<OptionButton Name="SpeciesButton" HorizontalAlignment="Right" />
|
||||
</BoxContainer>
|
||||
<!-- Body Type -->
|
||||
<BoxContainer HorizontalExpand="True">
|
||||
<Label Text="Тип тела"/>
|
||||
<Control HorizontalExpand="True"/>
|
||||
<OptionButton Name="CBodyTypesButton" HorizontalAlignment="Right" />
|
||||
</BoxContainer>
|
||||
<!-- Body Type -->
|
||||
<!-- Age -->
|
||||
<BoxContainer HorizontalExpand="True">
|
||||
<Label Text="{Loc 'humanoid-profile-editor-age-label'}" />
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ using Content.Client.Players.PlayTimeTracking;
|
|||
using Content.Client.Sprite;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Client.UserInterface.Systems.Guidebook;
|
||||
using Content.Shared._Sunrise;
|
||||
using Content.Shared._Sunrise.SunriseCCVars;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Clothing;
|
||||
|
|
@ -88,6 +89,8 @@ namespace Content.Client.Lobby.UI
|
|||
|
||||
private List<SpeciesPrototype> _species = new();
|
||||
|
||||
private List<BodyTypePrototype> _bodyTypes = new();
|
||||
|
||||
private List<(string, RequirementsSelector)> _jobPriorities = new();
|
||||
|
||||
private readonly Dictionary<string, BoxContainer> _jobCategories;
|
||||
|
|
@ -227,6 +230,17 @@ namespace Content.Client.Lobby.UI
|
|||
#endregion
|
||||
// Sunrise-TTS-End
|
||||
|
||||
#region BodyType
|
||||
|
||||
|
||||
CBodyTypesButton.OnItemSelected += args =>
|
||||
{
|
||||
CBodyTypesButton.SelectId(args.Id);
|
||||
SetBodyType(_bodyTypes[args.Id].ID);
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
RefreshSpecies();
|
||||
|
||||
SpeciesButton.OnItemSelected += args =>
|
||||
|
|
@ -786,6 +800,7 @@ namespace Content.Client.Lobby.UI
|
|||
UpdateSaveButton();
|
||||
UpdateMarkings();
|
||||
UpdateTtsVoicesControls(); // Sunrise-TTS
|
||||
UpdateBodyTypes();
|
||||
UpdateHairPickers();
|
||||
UpdateCMarkingsHair();
|
||||
UpdateCMarkingsFacialHair();
|
||||
|
|
@ -1252,6 +1267,7 @@ namespace Content.Client.Lobby.UI
|
|||
|
||||
UpdateGenderControls();
|
||||
UpdateTtsVoicesControls(); // Sunrise-TTS
|
||||
UpdateBodyTypes();
|
||||
RefreshLoadouts(); // Sunrise-Sex restrictions
|
||||
Markings.SetSex(newSex);
|
||||
ReloadPreview();
|
||||
|
|
@ -1281,6 +1297,7 @@ namespace Content.Client.Lobby.UI
|
|||
// In case there's species restrictions for loadouts
|
||||
RefreshLoadouts();
|
||||
UpdateSexControls(); // update sex for new species
|
||||
UpdateBodyTypes();
|
||||
UpdateSpeciesGuidebookIcon();
|
||||
ReloadPreview();
|
||||
}
|
||||
|
|
@ -1733,5 +1750,38 @@ namespace Content.Client.Lobby.UI
|
|||
ImportButton.Disabled = false;
|
||||
ExportButton.Disabled = false;
|
||||
}
|
||||
|
||||
private void SetBodyType(string newBodyType)
|
||||
{
|
||||
Profile = Profile?.WithBodyType(newBodyType);
|
||||
ReloadPreview();
|
||||
IsDirty = true;
|
||||
}
|
||||
|
||||
private void UpdateBodyTypes()
|
||||
{
|
||||
if (Profile is null)
|
||||
return;
|
||||
|
||||
CBodyTypesButton.Clear();
|
||||
var species = _prototypeManager.Index(Profile.Species);
|
||||
var sex = Profile.Sex;
|
||||
_bodyTypes = species.BodyTypes.Select(protoId => _prototypeManager.Index<BodyTypePrototype>(protoId))
|
||||
.Where(proto => !proto.SexRestrictions.Contains(sex.ToString()))
|
||||
.ToList();
|
||||
|
||||
for (var i = 0; i < _bodyTypes.Count; i++)
|
||||
{
|
||||
CBodyTypesButton.AddItem(Loc.GetString(_bodyTypes[i].Name), i);
|
||||
}
|
||||
|
||||
if (!_bodyTypes.Select(proto => proto.ID).Contains(Profile.BodyType))
|
||||
{
|
||||
SetBodyType(_bodyTypes.First().ID);
|
||||
}
|
||||
|
||||
CBodyTypesButton.Select(_bodyTypes.FindIndex(x => x.ID == Profile.BodyType));
|
||||
IsDirty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ namespace Content.IntegrationTests.Tests.Preferences
|
|||
FlavorText = "The biggest boy around.",
|
||||
Species = "Human",
|
||||
Age = 21,
|
||||
BodyType = "Normal",
|
||||
Appearance = new(
|
||||
"Afro",
|
||||
Color.Aqua,
|
||||
|
|
|
|||
2122
Content.Server.Database/Migrations/Postgres/20250211154217_BodyType.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Content.Server.Database.Migrations.Postgres
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class BodyType : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "body_type",
|
||||
table: "profile",
|
||||
type: "text",
|
||||
nullable: false,
|
||||
defaultValue: "");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "body_type",
|
||||
table: "profile");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -827,6 +827,11 @@ namespace Content.Server.Database.Migrations.Postgres
|
|||
.HasColumnType("integer")
|
||||
.HasColumnName("age");
|
||||
|
||||
b.Property<string>("BodyType")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("body_type");
|
||||
|
||||
b.Property<string>("CharacterName")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
|
|
@ -902,12 +907,10 @@ namespace Content.Server.Database.Migrations.Postgres
|
|||
.HasColumnType("text")
|
||||
.HasColumnName("species");
|
||||
|
||||
// Sunrise-TTS-Start
|
||||
b.Property<string>("Voice")
|
||||
.IsRequired()
|
||||
.HasColumnType("text")
|
||||
.HasColumnName("voice");
|
||||
// Sunrise-TTS-End
|
||||
|
||||
b.HasKey("Id")
|
||||
.HasName("PK_profile");
|
||||
|
|
|
|||
2046
Content.Server.Database/Migrations/Sqlite/20250211154155_BodyType.Designer.cs
generated
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Content.Server.Database.Migrations.Sqlite
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class BodyType : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "body_type",
|
||||
table: "profile",
|
||||
type: "TEXT",
|
||||
nullable: false,
|
||||
defaultValue: "");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "body_type",
|
||||
table: "profile");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -779,6 +779,11 @@ namespace Content.Server.Database.Migrations.Sqlite
|
|||
.HasColumnType("INTEGER")
|
||||
.HasColumnName("age");
|
||||
|
||||
b.Property<string>("BodyType")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("body_type");
|
||||
|
||||
b.Property<string>("CharacterName")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
|
|
@ -854,12 +859,10 @@ namespace Content.Server.Database.Migrations.Sqlite
|
|||
.HasColumnType("TEXT")
|
||||
.HasColumnName("species");
|
||||
|
||||
// Sunrise-TTS-Start
|
||||
b.Property<string>("Voice")
|
||||
.IsRequired()
|
||||
.HasColumnType("TEXT")
|
||||
.HasColumnName("voice");
|
||||
// Sunrise-TTS-End
|
||||
|
||||
b.HasKey("Id")
|
||||
.HasName("PK_profile");
|
||||
|
|
|
|||
|
|
@ -403,6 +403,9 @@ namespace Content.Server.Database
|
|||
public string FlavorText { get; set; } = null!;
|
||||
public int Age { get; set; }
|
||||
public string Sex { get; set; } = null!;
|
||||
|
||||
public string BodyType { get; set; } = null!;
|
||||
|
||||
public string Gender { get; set; } = null!;
|
||||
public string Species { get; set; } = null!;
|
||||
public string Voice { get; set; } = null!; // Sunrise-TTS
|
||||
|
|
|
|||
|
|
@ -251,6 +251,7 @@ namespace Content.Server.Database
|
|||
profile.FlavorText,
|
||||
profile.Species,
|
||||
voice, // Sunrise-TTS
|
||||
profile.BodyType,
|
||||
profile.Age,
|
||||
sex,
|
||||
gender,
|
||||
|
|
@ -288,6 +289,7 @@ namespace Content.Server.Database
|
|||
profile.FlavorText = humanoid.FlavorText;
|
||||
profile.Species = humanoid.Species;
|
||||
profile.Voice = humanoid.Voice; // Sunrise-TTS
|
||||
profile.BodyType = humanoid.BodyType;
|
||||
profile.Age = humanoid.Age;
|
||||
profile.Sex = humanoid.Sex.ToString();
|
||||
profile.Gender = humanoid.Gender.ToString();
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ public sealed partial class HumanoidAppearanceSystem
|
|||
uid,
|
||||
HumanoidMarkingModifierKey.Key,
|
||||
new HumanoidMarkingModifierState(component.MarkingSet, component.Species,
|
||||
component.BodyType,
|
||||
component.Sex,
|
||||
component.SkinColor,
|
||||
component.CustomBaseLayers
|
||||
|
|
@ -70,6 +71,7 @@ public sealed partial class HumanoidAppearanceSystem
|
|||
uid,
|
||||
HumanoidMarkingModifierKey.Key,
|
||||
new HumanoidMarkingModifierState(component.MarkingSet, component.Species,
|
||||
component.BodyType,
|
||||
component.Sex,
|
||||
component.SkinColor,
|
||||
component.CustomBaseLayers
|
||||
|
|
@ -94,6 +96,7 @@ public sealed partial class HumanoidAppearanceSystem
|
|||
uid,
|
||||
HumanoidMarkingModifierKey.Key,
|
||||
new HumanoidMarkingModifierState(component.MarkingSet, component.Species,
|
||||
component.BodyType,
|
||||
component.Sex,
|
||||
component.SkinColor,
|
||||
component.CustomBaseLayers
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using System.Numerics;
|
|||
using Content.Server.Body.Components;
|
||||
using Content.Server.Construction.Components;
|
||||
using Content.Server.Traits.Assorted;
|
||||
using Content.Shared._Sunrise;
|
||||
using Content.Shared._Sunrise.FleshCult;
|
||||
using Content.Shared.Body.Components;
|
||||
using Content.Shared.Body.Part;
|
||||
|
|
@ -269,8 +270,8 @@ public sealed partial class FleshCultSystem
|
|||
}
|
||||
}
|
||||
|
||||
var skeletonSprites = _prototypeManager.Index<HumanoidSpeciesBaseSpritesPrototype>("MobSkeletonSprites");
|
||||
foreach (var (key, id) in skeletonSprites.Sprites)
|
||||
var bodyType = _prototypeManager.Index<BodyTypePrototype>("SkeletonNormal");
|
||||
foreach (var (key, id) in bodyType.Sprites)
|
||||
{
|
||||
if (key != HumanoidVisualLayers.Head)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ using Content.Server._Sunrise.FleshCult.FleshGrowth;
|
|||
using Content.Server._Sunrise.FleshCult.GameRule;
|
||||
using Content.Server.Body.Components;
|
||||
using Content.Server.Traits.Assorted;
|
||||
using Content.Shared._Sunrise;
|
||||
using Content.Shared._Sunrise.FleshCult;
|
||||
using Content.Shared.Body.Components;
|
||||
using Content.Shared.Body.Organ;
|
||||
|
|
@ -304,8 +305,8 @@ public sealed partial class FleshCultSystem
|
|||
}
|
||||
}
|
||||
|
||||
var skeletonSprites = _prototypeManager.Index<HumanoidSpeciesBaseSpritesPrototype>("MobSkeletonSprites");
|
||||
foreach (var (key, id) in skeletonSprites.Sprites)
|
||||
var bodyType = _prototypeManager.Index<BodyTypePrototype>("SkeletonNormal");
|
||||
foreach (var (key, id) in bodyType.Sprites)
|
||||
{
|
||||
if (key != HumanoidVisualLayers.Head)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -223,9 +223,8 @@ public sealed partial class SurgerySystem : SharedSurgerySystem
|
|||
baseLayerStorage.Layer = customBaseLayer.Id;
|
||||
else
|
||||
{
|
||||
var speciesProto = _prototypes.Index(humanoid.Species);
|
||||
var baseSprites = _prototypes.Index<HumanoidSpeciesBaseSpritesPrototype>(speciesProto.SpriteSet);
|
||||
if (baseSprites.Sprites.TryGetValue(layer.Value, out var baseLayer))
|
||||
var bodyType = _prototypes.Index(humanoid.BodyType);
|
||||
if (bodyType.Sprites.TryGetValue(layer.Value, out var baseLayer))
|
||||
baseLayerStorage.Layer = baseLayer;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using Content.Shared._Sunrise;
|
||||
using Content.Shared._Sunrise.TTS;
|
||||
using Content.Shared.Humanoid.Markings;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
|
|
@ -94,6 +95,9 @@ public sealed partial class HumanoidAppearanceComponent : Component
|
|||
[DataField("voice")]
|
||||
public ProtoId<TTSVoicePrototype> Voice { get; set; } = SharedHumanoidAppearanceSystem.DefaultVoice;
|
||||
// Sunrise-TTS-End
|
||||
|
||||
[DataField, AutoNetworkedField]
|
||||
public ProtoId<BodyTypePrototype> BodyType { get; set; } = SharedHumanoidAppearanceSystem.DefaultBodyType;
|
||||
}
|
||||
|
||||
[DataDefinition]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
using System.Collections.Frozen;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using Content.Shared._Sunrise;
|
||||
using Content.Shared.Humanoid.Prototypes;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
|
|
@ -254,11 +255,10 @@ namespace Content.Shared.Humanoid.Markings
|
|||
IoCManager.Resolve(ref prototypeManager);
|
||||
var speciesProto = prototypeManager.Index<SpeciesPrototype>(species);
|
||||
if (
|
||||
!prototypeManager.TryIndex(speciesProto.SpriteSet, out HumanoidSpeciesBaseSpritesPrototype? baseSprites) ||
|
||||
!baseSprites.Sprites.TryGetValue(layer, out var spriteName) ||
|
||||
!prototypeManager.TryIndex(speciesProto.BodyTypes.First(), out BodyTypePrototype? baseBodyType) ||
|
||||
!baseBodyType.Sprites.TryGetValue(layer, out var spriteName) ||
|
||||
!prototypeManager.TryIndex(spriteName, out HumanoidSpeciesSpriteLayer? sprite) ||
|
||||
sprite == null ||
|
||||
!sprite.MarkingsMatchSkin
|
||||
sprite is not { MarkingsMatchSkin: true }
|
||||
)
|
||||
{
|
||||
alpha = 1f;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ namespace Content.Shared.Humanoid.Prototypes;
|
|||
/// Base sprites for a species (e.g., what replaces the empty tagged layer,
|
||||
/// or settings per layer)
|
||||
/// </summary>
|
||||
[Prototype("speciesBaseSprites")]
|
||||
/*[Prototype("speciesBaseSprites")]
|
||||
public sealed partial class HumanoidSpeciesBaseSpritesPrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
|
|
@ -21,7 +21,7 @@ public sealed partial class HumanoidSpeciesBaseSpritesPrototype : IPrototype
|
|||
/// </summary>
|
||||
[DataField("sprites", required: true)]
|
||||
public Dictionary<HumanoidVisualLayers, string> Sprites = new();
|
||||
}
|
||||
}*/
|
||||
|
||||
/// <summary>
|
||||
/// Humanoid species sprite layer. This is what defines the base layer of
|
||||
|
|
|
|||
|
|
@ -54,6 +54,9 @@ public sealed partial class SpeciesPrototype : IPrototype
|
|||
[DataField("sprites")]
|
||||
public string SpriteSet { get; private set; } = default!;
|
||||
|
||||
[DataField(required: true)]
|
||||
public List<string> BodyTypes { get; } = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Default skin tone for this species. This applies for non-human skin tones.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using Content.Shared._Sunrise;
|
||||
using Content.Shared._Sunrise.TTS;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.Decals;
|
||||
|
|
@ -42,6 +43,10 @@ public abstract class SharedHumanoidAppearanceSystem : EntitySystem
|
|||
|
||||
[ValidatePrototypeId<SpeciesPrototype>]
|
||||
public const string DefaultSpecies = "Human";
|
||||
|
||||
[ValidatePrototypeId<BodyTypePrototype>]
|
||||
public const string DefaultBodyType = "HumanNormal"; // Sunrise
|
||||
|
||||
// Sunrise-TTS-Start
|
||||
public const string DefaultVoice = "Voljin";
|
||||
public static readonly Dictionary<Sex, string> DefaultSexVoice = new()
|
||||
|
|
@ -61,6 +66,25 @@ public abstract class SharedHumanoidAppearanceSystem : EntitySystem
|
|||
SubscribeLocalEvent<HumanoidAppearanceComponent, ExaminedEvent>(OnExamined);
|
||||
}
|
||||
|
||||
public void SetBodyType(
|
||||
EntityUid uid,
|
||||
ProtoId<BodyTypePrototype> bodyType,
|
||||
bool sync = true,
|
||||
HumanoidAppearanceComponent? humanoid = null)
|
||||
{
|
||||
if (!Resolve(uid, ref humanoid))
|
||||
return;
|
||||
|
||||
var speciesPrototype = _proto.Index<SpeciesPrototype>(humanoid.Species);
|
||||
if (speciesPrototype.BodyTypes.Contains(bodyType))
|
||||
humanoid.BodyType = bodyType;
|
||||
else
|
||||
humanoid.BodyType = speciesPrototype.BodyTypes.First();
|
||||
|
||||
if (sync)
|
||||
Dirty(uid, humanoid);
|
||||
}
|
||||
|
||||
public DataNode ToDataNode(HumanoidCharacterProfile profile)
|
||||
{
|
||||
var export = new HumanoidProfileExport()
|
||||
|
|
@ -167,6 +191,7 @@ public abstract class SharedHumanoidAppearanceSystem : EntitySystem
|
|||
targetHumanoid.CustomBaseLayers = new(sourceHumanoid.CustomBaseLayers);
|
||||
targetHumanoid.MarkingSet = new(sourceHumanoid.MarkingSet);
|
||||
SetTTSVoice(target, sourceHumanoid.Voice, targetHumanoid); // Sunrise-TTS
|
||||
targetHumanoid.BodyType = sourceHumanoid.BodyType;
|
||||
|
||||
targetHumanoid.Gender = sourceHumanoid.Gender;
|
||||
if (TryComp<GrammarComponent>(target, out var grammar))
|
||||
|
|
@ -422,6 +447,7 @@ public abstract class SharedHumanoidAppearanceSystem : EntitySystem
|
|||
|
||||
EnsureDefaultMarkings(uid, humanoid);
|
||||
SetTTSVoice(uid, profile.Voice, humanoid); // Sunrise-TTS
|
||||
SetBodyType(uid, profile.BodyType, false, humanoid);
|
||||
|
||||
humanoid.Gender = profile.Gender;
|
||||
if (TryComp<GrammarComponent>(uid, out var grammar))
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ public sealed class HumanoidMarkingModifierState : BoundUserInterfaceState
|
|||
public HumanoidMarkingModifierState(
|
||||
MarkingSet markingSet,
|
||||
string species,
|
||||
string bodyType,
|
||||
Sex sex,
|
||||
Color skinColor,
|
||||
Dictionary<HumanoidVisualLayers, CustomBaseLayerInfo> customBaseLayers
|
||||
|
|
@ -51,6 +52,7 @@ public sealed class HumanoidMarkingModifierState : BoundUserInterfaceState
|
|||
{
|
||||
MarkingSet = markingSet;
|
||||
Species = species;
|
||||
BodyType = bodyType;
|
||||
Sex = sex;
|
||||
SkinColor = skinColor;
|
||||
CustomBaseLayers = customBaseLayers;
|
||||
|
|
@ -58,6 +60,7 @@ public sealed class HumanoidMarkingModifierState : BoundUserInterfaceState
|
|||
|
||||
public MarkingSet MarkingSet { get; }
|
||||
public string Species { get; }
|
||||
public string BodyType { get; }
|
||||
public Sex Sex { get; }
|
||||
public Color SkinColor { get; }
|
||||
public Color EyeColor { get; }
|
||||
|
|
|
|||
|
|
@ -92,6 +92,9 @@ namespace Content.Shared.Preferences
|
|||
[DataField]
|
||||
public Gender Gender { get; private set; } = Gender.Male;
|
||||
|
||||
[DataField]
|
||||
public string BodyType { get; set; } = SharedHumanoidAppearanceSystem.DefaultBodyType;
|
||||
|
||||
/// <summary>
|
||||
/// <see cref="Appearance"/>
|
||||
/// </summary>
|
||||
|
|
@ -136,6 +139,7 @@ namespace Content.Shared.Preferences
|
|||
string flavortext,
|
||||
string species,
|
||||
string voice, // Sunrise-TTS
|
||||
string bodyType,
|
||||
int age,
|
||||
Sex sex,
|
||||
Gender gender,
|
||||
|
|
@ -151,6 +155,7 @@ namespace Content.Shared.Preferences
|
|||
FlavorText = flavortext;
|
||||
Species = species;
|
||||
Voice = voice; // Sunrise-TTS
|
||||
BodyType = bodyType;
|
||||
Age = age;
|
||||
Sex = sex;
|
||||
Gender = gender;
|
||||
|
|
@ -183,6 +188,7 @@ namespace Content.Shared.Preferences
|
|||
other.FlavorText,
|
||||
other.Species,
|
||||
other.Voice,
|
||||
other.BodyType,
|
||||
other.Age,
|
||||
other.Sex,
|
||||
other.Gender,
|
||||
|
|
@ -241,10 +247,12 @@ namespace Content.Shared.Preferences
|
|||
|
||||
var sex = Sex.Unsexed;
|
||||
var age = 18;
|
||||
var bodyType = SharedHumanoidAppearanceSystem.DefaultBodyType;
|
||||
if (prototypeManager.TryIndex<SpeciesPrototype>(species, out var speciesPrototype))
|
||||
{
|
||||
sex = random.Pick(speciesPrototype.Sexes);
|
||||
age = random.Next(speciesPrototype.MinAge, speciesPrototype.OldAge); // people don't look and keep making 119 year old characters with zero rp, cap it at middle aged
|
||||
bodyType = speciesPrototype.BodyTypes.First();
|
||||
}
|
||||
|
||||
// Sunrise-TTS-Start
|
||||
|
|
@ -277,6 +285,7 @@ namespace Content.Shared.Preferences
|
|||
Gender = gender,
|
||||
Species = species,
|
||||
Voice = voiceId, // Sunrise-TTS
|
||||
BodyType = bodyType,
|
||||
Appearance = HumanoidCharacterAppearance.Random(species, sex),
|
||||
};
|
||||
}
|
||||
|
|
@ -318,6 +327,11 @@ namespace Content.Shared.Preferences
|
|||
}
|
||||
// Sunrise-TTS-End
|
||||
|
||||
public HumanoidCharacterProfile WithBodyType(string bodyType)
|
||||
{
|
||||
return new HumanoidCharacterProfile(this) { BodyType = bodyType };
|
||||
}
|
||||
|
||||
public HumanoidCharacterProfile WithCharacterAppearance(HumanoidCharacterAppearance appearance)
|
||||
{
|
||||
return new(this) { Appearance = appearance };
|
||||
|
|
@ -487,6 +501,7 @@ namespace Content.Shared.Preferences
|
|||
if (Sex != other.Sex) return false;
|
||||
if (Gender != other.Gender) return false;
|
||||
if (Species != other.Species) return false;
|
||||
if (BodyType != other.BodyType) return false;
|
||||
if (PreferenceUnavailable != other.PreferenceUnavailable) return false;
|
||||
if (SpawnPriority != other.SpawnPriority) return false;
|
||||
if (!_jobPriorities.SequenceEqual(other._jobPriorities)) return false;
|
||||
|
|
@ -539,6 +554,8 @@ namespace Content.Shared.Preferences
|
|||
_ => Gender.Epicene // Invalid enum values.
|
||||
};
|
||||
|
||||
var bodyType = speciesPrototype.BodyTypes.Contains(BodyType) ? BodyType : speciesPrototype.BodyTypes.First();
|
||||
|
||||
string name;
|
||||
if (string.IsNullOrEmpty(Name))
|
||||
{
|
||||
|
|
@ -646,6 +663,7 @@ namespace Content.Shared.Preferences
|
|||
Age = age;
|
||||
Sex = sex;
|
||||
Gender = gender;
|
||||
BodyType = bodyType;
|
||||
Appearance = appearance;
|
||||
SpawnPriority = spawnPriority;
|
||||
|
||||
|
|
@ -767,6 +785,7 @@ namespace Content.Shared.Preferences
|
|||
hashCode.Add(FlavorText);
|
||||
hashCode.Add(Species);
|
||||
hashCode.Add(Age);
|
||||
hashCode.Add(BodyType);
|
||||
hashCode.Add((int)Sex);
|
||||
hashCode.Add((int)Gender);
|
||||
hashCode.Add(Appearance);
|
||||
|
|
|
|||
20
Content.Shared/_Sunrise/BodyType.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using Content.Shared.Humanoid;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared._Sunrise;
|
||||
|
||||
[Prototype("bodyType")]
|
||||
public sealed class BodyTypePrototype : IPrototype
|
||||
{
|
||||
[IdDataField]
|
||||
public string ID { get; } = default!;
|
||||
|
||||
[DataField(required: true)]
|
||||
public string Name { get; } = default!;
|
||||
|
||||
[DataField(required: true)]
|
||||
public Dictionary<HumanoidVisualLayers, string> Sprites = new();
|
||||
|
||||
[DataField]
|
||||
public List<string> SexRestrictions = new();
|
||||
}
|
||||
3
Resources/Locale/ru-RU/_strings/bodytypes.ftl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
humanoid-profile-editor-body-type-label = Телосложение:
|
||||
body-normal = Нормальное
|
||||
body-slim = Худощавое
|
||||
|
|
@ -69,6 +69,46 @@
|
|||
32:
|
||||
sprite: Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit-female
|
||||
jumpsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit
|
||||
shoes-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: shoes
|
||||
gloves-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: gloves
|
||||
pants-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: panties
|
||||
socks-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: socks
|
||||
bra-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: bra
|
||||
outerClothing-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: outer
|
||||
hardsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: hardsuit
|
||||
# Sunrise edit ;3
|
||||
- type: FootprintEmitter
|
||||
leftBareFootState:
|
||||
|
|
@ -92,3 +132,43 @@
|
|||
32:
|
||||
sprite: Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit-female
|
||||
jumpsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit
|
||||
shoes-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: shoes
|
||||
gloves-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: gloves
|
||||
pants-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: panties
|
||||
socks-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: socks
|
||||
bra-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: bra
|
||||
outerClothing-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: outer
|
||||
hardsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: hardsuit
|
||||
|
|
|
|||
|
|
@ -32,6 +32,46 @@
|
|||
32:
|
||||
sprite: Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit-female
|
||||
jumpsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit
|
||||
shoes-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: shoes
|
||||
gloves-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: gloves
|
||||
pants-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: panties
|
||||
socks-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: socks
|
||||
bra-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: bra
|
||||
outerClothing-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: outer
|
||||
hardsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: hardsuit
|
||||
# Sunrise-Start
|
||||
- type: FootprintEmitter
|
||||
- type: Carriable
|
||||
|
|
@ -50,3 +90,43 @@
|
|||
32:
|
||||
sprite: Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit-female
|
||||
jumpsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit
|
||||
shoes-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: shoes
|
||||
gloves-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: gloves
|
||||
pants-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: panties
|
||||
socks-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: socks
|
||||
bra-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: bra
|
||||
outerClothing-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: outer
|
||||
hardsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: hardsuit
|
||||
|
|
|
|||
|
|
@ -3,21 +3,21 @@
|
|||
name: species-name-arachnid
|
||||
roundStart: true
|
||||
prototype: MobArachnid
|
||||
sprites: MobArachnidSprites
|
||||
bodyTypes:
|
||||
- ArachnidNormal
|
||||
# - ArachnidSlim
|
||||
defaultSkinTone: "#385878"
|
||||
markingLimits: MobArachnidMarkingLimits
|
||||
dollPrototype: MobArachnidDummy
|
||||
skinColoration: Hues
|
||||
maleFirstNames: names_arachnid_first
|
||||
femaleFirstNames: names_arachnid_first
|
||||
maleLastNames: names_arachnid_last # Russian-LastnameGender
|
||||
femaleLastNames: names_arachnid_last # Russian-LastnameGender
|
||||
# Sunrise-Edit
|
||||
#sexes:
|
||||
#- Unsexed
|
||||
maleLastNames: names_arachnid_last
|
||||
femaleLastNames: names_arachnid_last
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobArachnidSprites
|
||||
- type: bodyType
|
||||
id: ArachnidNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobArachnidHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
|
|
@ -35,12 +35,40 @@
|
|||
LFoot: MobArachnidLFoot
|
||||
RFoot: MobArachnidRFoot
|
||||
|
||||
- type: bodyType
|
||||
id: ArachnidSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobArachnidSlimHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
Chest: MobArachnidSlimTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
Eyes: MobArachnidSlimEyes
|
||||
LArm: MobArachnidSlimLArm
|
||||
RArm: MobArachnidSlimRArm
|
||||
LHand: MobArachnidSlimLHand
|
||||
RHand: MobArachnidSlimRHand
|
||||
LLeg: MobArachnidSlimLLeg
|
||||
RLeg: MobArachnidSlimRLeg
|
||||
LFoot: MobArachnidSlimLFoot
|
||||
RFoot: MobArachnidSlimRFoot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidEyes
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Arachnid/parts.rsi
|
||||
state: eyes
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimEyes
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: eyes
|
||||
|
||||
- type: markingPoints
|
||||
id: MobArachnidMarkingLimits
|
||||
onlyWhitelisted: true
|
||||
|
|
@ -155,3 +183,75 @@
|
|||
baseSprite:
|
||||
sprite: Mobs/Species/Arachnid/parts.rsi
|
||||
state: r_foot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobArachnidSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/arachnid.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@
|
|||
name: species-name-diona
|
||||
roundStart: true
|
||||
prototype: MobDiona
|
||||
sprites: MobDionaSprites
|
||||
bodyTypes:
|
||||
- DionaNormal
|
||||
defaultSkinTone: "#cdb369"
|
||||
markingLimits: MobDionaMarkingLimits
|
||||
dollPrototype: MobDionaDummy
|
||||
|
|
@ -14,8 +15,9 @@
|
|||
femaleLastNames: DionaLast # Russian-LastnameGender
|
||||
naming: TheFirstofLast
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobDionaSprites
|
||||
- type: bodyType
|
||||
id: DionaNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobDionaHead
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
name: species-name-dwarf
|
||||
roundStart: true
|
||||
prototype: MobDwarf
|
||||
sprites: MobHumanSprites
|
||||
bodyTypes:
|
||||
- HumanNormal
|
||||
- HumanSlim
|
||||
markingLimits: MobHumanMarkingLimits
|
||||
dollPrototype: MobDwarfDummy
|
||||
skinColoration: HumanToned
|
||||
|
|
|
|||
|
|
@ -3,14 +3,16 @@
|
|||
name: species-name-gingerbread
|
||||
roundStart: false
|
||||
prototype: MobGingerbread
|
||||
sprites: MobGingerbreadSprites
|
||||
bodyTypes:
|
||||
- GingerbreadNormal
|
||||
markingLimits: MobHumanMarkingLimits
|
||||
dollPrototype: MobGingerbreadDummy
|
||||
skinColoration: HumanToned
|
||||
defaultSkinTone: "#9a7c5a"
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobGingerbreadSprites
|
||||
- type: bodyType
|
||||
id: GingerbreadNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobGingerbreadHead
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
name: species-name-human
|
||||
roundStart: true
|
||||
prototype: MobHuman
|
||||
sprites: MobHumanSprites
|
||||
bodyTypes:
|
||||
- HumanNormal
|
||||
- HumanSlim
|
||||
markingLimits: MobHumanMarkingLimits
|
||||
dollPrototype: MobHumanDummy
|
||||
skinColoration: HumanToned
|
||||
|
|
@ -14,8 +16,9 @@
|
|||
# be defined as a 'custom base layer'
|
||||
# in either the mob's starting marking prototype,
|
||||
# or it has to be added in C#.
|
||||
- type: speciesBaseSprites
|
||||
id: MobHumanSprites
|
||||
- type: bodyType
|
||||
id: HumanNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Special: MobHumanoidAnyMarking
|
||||
Head: MobHumanHead
|
||||
|
|
@ -35,6 +38,28 @@
|
|||
LFoot: MobHumanLFoot
|
||||
RFoot: MobHumanRFoot
|
||||
|
||||
- type: bodyType
|
||||
id: HumanSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobHumanSlimHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
FacialHair: MobHumanoidAnyMarking
|
||||
Chest: MobHumanSlimTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
Eyes: MobHumanoidEyes
|
||||
LArm: MobHumanSlimLArm
|
||||
RArm: MobHumanSlimRArm
|
||||
LHand: MobHumanSlimLHand
|
||||
RHand: MobHumanSlimRHand
|
||||
LLeg: MobHumanSlimLLeg
|
||||
RLeg: MobHumanSlimRLeg
|
||||
LFoot: MobHumanSlimLFoot
|
||||
RFoot: MobHumanSlimRFoot
|
||||
|
||||
- type: markingPoints
|
||||
id: MobHumanMarkingLimits
|
||||
points:
|
||||
|
|
@ -162,3 +187,75 @@
|
|||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: r_foot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobHumanSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
|
@ -3,18 +3,21 @@
|
|||
name: species-name-moth
|
||||
roundStart: true
|
||||
prototype: MobMoth
|
||||
sprites: MobMothSprites
|
||||
bodyTypes:
|
||||
- MothNormal
|
||||
# - MothSlim
|
||||
defaultSkinTone: "#ffda93"
|
||||
markingLimits: MobMothMarkingLimits
|
||||
dollPrototype: MobMothDummy
|
||||
skinColoration: Hues
|
||||
maleFirstNames: names_moth_first_male
|
||||
femaleFirstNames: names_moth_first_female
|
||||
maleLastNames: names_moth_last # Russian-LastnameGender
|
||||
femaleLastNames: names_moth_last # Russian-LastnameGender
|
||||
maleLastNames: names_moth_last
|
||||
femaleLastNames: names_moth_last
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobMothSprites
|
||||
- type: bodyType
|
||||
id: MothNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobMothHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
|
|
@ -32,12 +35,40 @@
|
|||
LFoot: MobMothLFoot
|
||||
RFoot: MobMothRFoot
|
||||
|
||||
- type: bodyType
|
||||
id: MothSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobMothSlimHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
Chest: MobMothSlimTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
Eyes: MobMothSlimEyes
|
||||
LArm: MobMothSlimLArm
|
||||
RArm: MobMothSlimRArm
|
||||
LHand: MobMothSlimLHand
|
||||
RHand: MobMothSlimRHand
|
||||
LLeg: MobMothSlimLLeg
|
||||
RLeg: MobMothSlimRLeg
|
||||
LFoot: MobMothSlimLFoot
|
||||
RFoot: MobMothSlimRFoot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothEyes
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Moth/parts.rsi
|
||||
state: eyes
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimEyes
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: eyes
|
||||
|
||||
- type: markingPoints
|
||||
id: MobMothMarkingLimits
|
||||
onlyWhitelisted: true
|
||||
|
|
@ -158,3 +189,75 @@
|
|||
baseSprite:
|
||||
sprite: Mobs/Species/Moth/parts.rsi
|
||||
state: r_foot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobMothSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/moth.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
name: species-name-reptilian
|
||||
roundStart: true
|
||||
prototype: MobReptilian
|
||||
sprites: MobReptilianSprites
|
||||
bodyTypes:
|
||||
- ReptilianNormal
|
||||
# - ReptilianSlim
|
||||
defaultSkinTone: "#34a223"
|
||||
markingLimits: MobReptilianMarkingLimits
|
||||
dollPrototype: MobReptilianDummy
|
||||
|
|
@ -12,8 +14,9 @@
|
|||
femaleFirstNames: names_reptilian_female
|
||||
naming: FirstDashFirst
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobReptilianSprites
|
||||
- type: bodyType
|
||||
id: ReptilianNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobReptilianHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
|
|
@ -31,6 +34,28 @@
|
|||
LFoot: MobReptilianLFoot
|
||||
RFoot: MobReptilianRFoot
|
||||
|
||||
- type: bodyType
|
||||
id: ReptilianSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobReptilianSlimHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
Chest: MobReptilianSlimTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
Eyes: MobHumanoidEyes
|
||||
LArm: MobReptilianSlimLArm
|
||||
RArm: MobReptilianSlimRArm
|
||||
LHand: MobReptilianSlimLHand
|
||||
RHand: MobReptilianSlimRHand
|
||||
LLeg: MobReptilianSlimLLeg
|
||||
RLeg: MobReptilianSlimRLeg
|
||||
LFoot: MobReptilianSlimLFoot
|
||||
RFoot: MobReptilianSlimRFoot
|
||||
|
||||
- type: markingPoints
|
||||
id: MobReptilianMarkingLimits
|
||||
onlyWhitelisted: true
|
||||
|
|
@ -148,3 +173,75 @@
|
|||
baseSprite:
|
||||
sprite: Mobs/Species/Reptilian/parts.rsi
|
||||
state: r_foot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobReptilianSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/lizard.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@
|
|||
name: species-name-skeleton
|
||||
roundStart: false
|
||||
prototype: MobSkeletonPerson
|
||||
sprites: MobSkeletonSprites
|
||||
bodyTypes:
|
||||
- SkeletonNormal
|
||||
defaultSkinTone: "#fff9e2"
|
||||
markingLimits: MobHumanMarkingLimits
|
||||
maleFirstNames: skeletonNamesFirst
|
||||
|
|
@ -11,8 +12,9 @@
|
|||
dollPrototype: MobSkeletonPersonDummy
|
||||
skinColoration: TintedHues
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobSkeletonSprites
|
||||
- type: bodyType
|
||||
id: SkeletonNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobSkeletonHead
|
||||
Chest: MobSkeletonTorso
|
||||
|
|
|
|||
|
|
@ -3,21 +3,24 @@
|
|||
name: species-name-slime
|
||||
roundStart: true
|
||||
prototype: MobSlimePerson
|
||||
sprites: MobSlimeSprites
|
||||
bodyTypes:
|
||||
- SlimeNormal
|
||||
# - SlimeSlim
|
||||
defaultSkinTone: "#b8b8b8"
|
||||
markingLimits: MobSlimeMarkingLimits
|
||||
dollPrototype: MobSlimePersonDummy
|
||||
skinColoration: Hues
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobSlimeSprites
|
||||
- type: bodyType
|
||||
id: SlimeNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobSlimeHead
|
||||
Hair: MobSlimeMarkingFollowSkin
|
||||
FacialHair: MobSlimeMarkingFollowSkin
|
||||
Chest: MobSlimeTorso
|
||||
HeadTop: MobHumanoidAnyMarking # Sunrise-Sponsors
|
||||
Tail: MobHumanoidAnyMarking # Sunrise-Sponsors
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
Eyes: MobHumanoidEyes
|
||||
LArm: MobSlimeLArm
|
||||
RArm: MobSlimeRArm
|
||||
|
|
@ -28,6 +31,28 @@
|
|||
LFoot: MobSlimeLFoot
|
||||
RFoot: MobSlimeRFoot
|
||||
|
||||
- type: bodyType
|
||||
id: SlimeSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobSlimeSlimHead
|
||||
Hair: MobSlimeMarkingFollowSkin
|
||||
FacialHair: MobSlimeMarkingFollowSkin
|
||||
Chest: MobSlimeSlimTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
Eyes: MobHumanoidEyes
|
||||
LArm: MobSlimeSlimLArm
|
||||
RArm: MobSlimeSlimRArm
|
||||
LHand: MobSlimeSlimLHand
|
||||
RHand: MobSlimeSlimRHand
|
||||
LLeg: MobSlimeSlimLLeg
|
||||
RLeg: MobSlimeSlimRLeg
|
||||
LFoot: MobSlimeSlimLFoot
|
||||
RFoot: MobSlimeSlimRFoot
|
||||
|
||||
- type: markingPoints
|
||||
id: MobSlimeMarkingLimits
|
||||
points:
|
||||
|
|
@ -37,11 +62,11 @@
|
|||
FacialHair:
|
||||
points: 1
|
||||
required: false
|
||||
Tail: # :despair:
|
||||
points: 1 # Sunrise-Sponsors
|
||||
Tail:
|
||||
points: 1
|
||||
required: false
|
||||
HeadTop: # :skull:
|
||||
points: 1 # Sunrise-Sponsors
|
||||
HeadTop:
|
||||
points: 1
|
||||
required: false
|
||||
Chest:
|
||||
points: 1
|
||||
|
|
@ -141,3 +166,75 @@
|
|||
baseSprite:
|
||||
sprite: Mobs/Species/Slime/parts.rsi
|
||||
state: r_foot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobSlimeSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/slime.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@
|
|||
name: Terminator
|
||||
roundStart: false
|
||||
prototype: MobTerminatorEndoskeleton
|
||||
sprites: MobTerminatorSprites
|
||||
bodyTypes:
|
||||
- TerminatorNormal
|
||||
defaultSkinTone: "#fff9e2"
|
||||
markingLimits: MobHumanMarkingLimits
|
||||
maleFirstNames: skeletonNamesFirst
|
||||
|
|
@ -11,8 +12,9 @@
|
|||
dollPrototype: MobSkeletonPersonDummy
|
||||
skinColoration: TintedHues
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobTerminatorSprites
|
||||
- type: bodyType
|
||||
id: TerminatorNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobTerminatorHead
|
||||
Chest: MobTerminatorTorso
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@
|
|||
name: species-name-vox
|
||||
roundStart: true
|
||||
prototype: MobVox
|
||||
sprites: MobVoxSprites
|
||||
bodyTypes:
|
||||
- VoxNormal
|
||||
markingLimits: MobVoxMarkingLimits
|
||||
dollPrototype: MobVoxDummy
|
||||
skinColoration: VoxFeathers
|
||||
|
|
@ -14,8 +15,9 @@
|
|||
sexes:
|
||||
- Unsexed
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobVoxSprites
|
||||
- type: bodyType
|
||||
id: VoxNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobVoxHead
|
||||
Snout: MobHumanoidAnyMarking
|
||||
|
|
|
|||
|
|
@ -40,6 +40,46 @@
|
|||
32:
|
||||
sprite: Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit-female
|
||||
jumpsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: jumpsuit
|
||||
shoes-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: shoes
|
||||
gloves-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: gloves
|
||||
pants-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: panties
|
||||
socks-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: socks
|
||||
bra-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: bra
|
||||
outerClothing-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: outer
|
||||
hardsuit-body-slim:
|
||||
sizeMaps:
|
||||
32:
|
||||
sprite: _Sunrise/Mobs/Species/Human/displacement.rsi
|
||||
state: hardsuit
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
fix1:
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
name: species-name-demon
|
||||
roundStart: true
|
||||
prototype: MobDemon
|
||||
sprites: MobDemonSprites
|
||||
bodyTypes:
|
||||
- DemonNormal
|
||||
# - DemonSlim
|
||||
defaultSkinTone: "#34a223"
|
||||
markingLimits: MobDemonMarkingLimits
|
||||
dollPrototype: MobDemonDummy
|
||||
|
|
@ -14,8 +16,9 @@
|
|||
femaleLastNames: names_last_female
|
||||
naming: firstlast
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobDemonSprites
|
||||
- type: bodyType
|
||||
id: DemonNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobDemonHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
|
|
@ -35,6 +38,30 @@
|
|||
LFoot: MobDemonLFoot
|
||||
RFoot: MobDemonRFoot
|
||||
|
||||
- type: bodyType
|
||||
id: DemonSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobDemonSlimHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
FacialHair: MobHumanoidAnyMarking
|
||||
Snout: MobHumanoidAnyMarking
|
||||
Chest: MobDemonSlimTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
Tail: MobDemonTail
|
||||
Eyes: MobHumanoidEyes
|
||||
LArm: MobDemonSlimLArm
|
||||
RArm: MobDemonSlimRArm
|
||||
LHand: MobDemonSlimLHand
|
||||
RHand: MobDemonSlimRHand
|
||||
LLeg: MobDemonSlimLLeg
|
||||
RLeg: MobDemonSlimRLeg
|
||||
LFoot: MobDemonSlimLFoot
|
||||
RFoot: MobDemonSlimRFoot
|
||||
|
||||
- type: markingPoints
|
||||
id: MobDemonMarkingLimits
|
||||
points:
|
||||
|
|
@ -155,3 +182,75 @@
|
|||
baseSprite:
|
||||
sprite: _Sunrise/Mobs/Species/Demon/parts.rsi
|
||||
state: tail
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobDemonSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/demon.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
name: species-name-felinid
|
||||
roundStart: true
|
||||
prototype: MobFelinid
|
||||
sprites: MobHumanSprites
|
||||
bodyTypes:
|
||||
- HumanNormal
|
||||
- HumanSlim
|
||||
markingLimits: MobFelinidMarkingLimits
|
||||
dollPrototype: MobFelinidDummy
|
||||
skinColoration: HumanToned
|
||||
|
|
|
|||
|
|
@ -4,14 +4,16 @@
|
|||
name: species-name-xeno
|
||||
roundStart: true
|
||||
prototype: MobHumanoidXeno
|
||||
sprites: MobHumanoidXenoSprites
|
||||
bodyTypes:
|
||||
- HumanoidXenoNormal
|
||||
markingLimits: MobHumanoidXenoMarkingLimits
|
||||
dollPrototype: MobXenoDummy
|
||||
skinColoration: TintedHues
|
||||
sponsorOnly: true
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobHumanoidXenoSprites
|
||||
- type: bodyType
|
||||
id: HumanoidXenoNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobHumanoidXenoHead
|
||||
Chest: MobHumanoidXenoTorso
|
||||
|
|
|
|||
|
|
@ -4,14 +4,16 @@
|
|||
name: species-name-predator
|
||||
roundStart: true
|
||||
prototype: MobPredator
|
||||
sprites: MobPredatorSprites
|
||||
bodyTypes:
|
||||
- PredatorNormal
|
||||
markingLimits: MobPredatorMarkingLimits
|
||||
dollPrototype: MobPredatorDummy
|
||||
skinColoration: None
|
||||
sponsorOnly: true
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobPredatorSprites
|
||||
- type: bodyType
|
||||
id: PredatorNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobPredatorHead
|
||||
Chest: MobPredatorTorso
|
||||
|
|
|
|||
|
|
@ -3,13 +3,15 @@
|
|||
name: species-name-swine
|
||||
roundStart: true
|
||||
prototype: MobSwine
|
||||
sprites: MobSwineSprites
|
||||
bodyTypes:
|
||||
- SwineNormal
|
||||
markingLimits: MobSwineMarkingLimits
|
||||
dollPrototype: MobSwineDummy
|
||||
skinColoration: None
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobSwineSprites
|
||||
- type: bodyType
|
||||
id: SwineNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobSwineHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
name: species-name-tajaran
|
||||
roundStart: true
|
||||
prototype: MobTajaran
|
||||
sprites: MobTajaranSprites
|
||||
bodyTypes:
|
||||
- TajaranNormal
|
||||
# - TajaranSlim
|
||||
markingLimits: MobTajaranMarkingLimits
|
||||
dollPrototype: MobTajaranDummy
|
||||
skinColoration: Hues
|
||||
|
|
@ -16,8 +18,9 @@
|
|||
oldAge: 46
|
||||
maxAge: 49
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobTajaranSprites
|
||||
- type: bodyType
|
||||
id: TajaranNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobTajaranHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
|
|
@ -36,6 +39,29 @@
|
|||
HeadTop: MobHumanoidAnyMarking
|
||||
Snout: MobHumanoidAnyMarking
|
||||
|
||||
- type: bodyType
|
||||
id: TajaranSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobTajaranSlimHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
FacialHair: MobHumanoidAnyMarking
|
||||
Chest: MobTajaranSlimTorso
|
||||
Eyes: MobTajaranEyes
|
||||
LArm: MobTajaranSlimLArm
|
||||
RArm: MobTajaranSlimRArm
|
||||
LHand: MobTajaranSlimLHand
|
||||
RHand: MobTajaranSlimRHand
|
||||
LLeg: MobTajaranSlimLLeg
|
||||
RLeg: MobTajaranSlimRLeg
|
||||
LFoot: MobTajaranSlimLFoot
|
||||
RFoot: MobTajaranSlimRFoot
|
||||
Tail: MobTajaranTail
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
Snout: MobHumanoidAnyMarking
|
||||
|
||||
- type: markingPoints
|
||||
id: MobTajaranMarkingLimits
|
||||
onlyWhitelisted: true
|
||||
|
|
@ -150,4 +176,76 @@
|
|||
id: MobTajaranRFoot
|
||||
baseSprite:
|
||||
sprite: _Sunrise/Mobs/Species/Tajaran/parts.rsi
|
||||
state: r_foot
|
||||
state: r_foot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobTajaranSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/tajaran.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
|
@ -3,14 +3,17 @@
|
|||
name: species-name-foxes
|
||||
roundStart: true
|
||||
prototype: MobVulpkanin
|
||||
sprites: MobVulpkaninSprites
|
||||
bodyTypes:
|
||||
- VulpkaninNormal
|
||||
# - VulpkaninSlim
|
||||
defaultSkinTone: "#FFBBC3"
|
||||
markingLimits: MobVulpkaninMarkingLimits
|
||||
dollPrototype: MobVulpkaninDummy
|
||||
skinColoration: Hues
|
||||
|
||||
- type: speciesBaseSprites
|
||||
id: MobVulpkaninSprites
|
||||
- type: bodyType
|
||||
id: VulpkaninNormal
|
||||
name: body-normal
|
||||
sprites:
|
||||
Head: MobVulpkaninHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
|
|
@ -30,6 +33,30 @@
|
|||
LFoot: MobVulpkaninLFoot
|
||||
RFoot: MobVulpkaninRFoot
|
||||
|
||||
- type: bodyType
|
||||
id: VulpkaninSlim
|
||||
name: body-slim
|
||||
sexRestrictions:
|
||||
- Male
|
||||
sprites:
|
||||
Head: MobVulpkaninSlimHead
|
||||
Hair: MobHumanoidAnyMarking
|
||||
FacialHair: MobHumanoidAnyMarking
|
||||
Snout: MobHumanoidAnyMarking
|
||||
Chest: MobVulpkaninSlimTorso
|
||||
HeadTop: MobHumanoidAnyMarking
|
||||
HeadSide: MobHumanoidAnyMarking
|
||||
Tail: MobHumanoidAnyMarking
|
||||
Eyes: MobHumanoidEyes
|
||||
LArm: MobVulpkaninSlimLArm
|
||||
RArm: MobVulpkaninSlimRArm
|
||||
LHand: MobVulpkaninSlimLHand
|
||||
RHand: MobVulpkaninSlimRHand
|
||||
LLeg: MobVulpkaninSlimLLeg
|
||||
RLeg: MobVulpkaninSlimRLeg
|
||||
LFoot: MobVulpkaninSlimLFoot
|
||||
RFoot: MobVulpkaninSlimRFoot
|
||||
|
||||
- type: markingPoints
|
||||
id: MobVulpkaninMarkingLimits
|
||||
points:
|
||||
|
|
@ -146,3 +173,75 @@
|
|||
baseSprite:
|
||||
sprite: _Sunrise/Mobs/Species/Vulpkanin/parts.rsi
|
||||
state: r_foot
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimHead
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: head_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimHeadFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: head_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimTorso
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: torso_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimTorsoFemale
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: torso_slim_f
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimLLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: l_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimLArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: l_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimLHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: l_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimLFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: l_foot_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimRLeg
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: r_leg_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimRArm
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: r_arm_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimRHand
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: r_hand_slim
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
id: MobVulpkaninSlimRFoot
|
||||
baseSprite:
|
||||
sprite: Mobs/Species/Slim/vulpa.rsi
|
||||
state: r_foot_slim
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 486 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/head.png
Normal file
|
After Width: | Height: | Size: 606 B |
|
Before Width: | Height: | Size: 616 B After Width: | Height: | Size: 442 B |
|
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 435 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/head_slim.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/head_slim_f.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 266 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/l_arm_slim.png
Normal file
|
After Width: | Height: | Size: 502 B |
|
Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 398 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/l_foot_slim.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 257 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/l_hand_slim.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 517 B After Width: | Height: | Size: 6.2 KiB |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/l_leg_slim.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
|
@ -1,63 +1,118 @@
|
|||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "full",
|
||||
"directions": 4
|
||||
"version": 2,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
{
|
||||
"name": "head_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_m",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_arm",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_foot",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_hand",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_leg",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_arm",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_foot",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_hand",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_leg",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_m",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
"states": [
|
||||
{
|
||||
"name": "full"
|
||||
},
|
||||
{
|
||||
"name": "head",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_m",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_arm",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_foot",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_hand",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_leg",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_arm",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_foot",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_hand",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_leg",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_m",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_slim_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_arm_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_foot_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_hand_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_leg_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_arm_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_foot_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_hand_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_leg_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_slim_f",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 276 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/r_arm_slim.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 443 B After Width: | Height: | Size: 398 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/r_foot_slim.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 261 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/r_hand_slim.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 486 B After Width: | Height: | Size: 6.2 KiB |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/r_leg_slim.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/torso.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 682 B |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/torso_slim.png
Normal file
|
After Width: | Height: | Size: 2 KiB |
BIN
Resources/Textures/Mobs/Species/Human/parts.rsi/torso_slim_f.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/eyes.png
Normal file
|
After Width: | Height: | Size: 151 B |
BIN
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/head_slim.png
Normal file
|
After Width: | Height: | Size: 413 B |
|
After Width: | Height: | Size: 413 B |
BIN
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/l_arm_slim.png
Normal file
|
After Width: | Height: | Size: 445 B |
|
After Width: | Height: | Size: 401 B |
|
After Width: | Height: | Size: 363 B |
BIN
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/l_leg_slim.png
Normal file
|
After Width: | Height: | Size: 563 B |
63
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/meta.json
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
"version": 2,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "head_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_slim_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_arm_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_foot_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_hand_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_leg_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_arm_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_foot_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_hand_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_leg_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_slim_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "eyes",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/r_arm_slim.png
Normal file
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 397 B |
|
After Width: | Height: | Size: 364 B |
BIN
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/r_leg_slim.png
Normal file
|
After Width: | Height: | Size: 552 B |
BIN
Resources/Textures/Mobs/Species/Slim/arachnid.rsi/torso_slim.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 884 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/head_slim.png
Normal file
|
After Width: | Height: | Size: 867 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/head_slim_f.png
Normal file
|
After Width: | Height: | Size: 648 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/l_arm_slim.png
Normal file
|
After Width: | Height: | Size: 547 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/l_foot_slim.png
Normal file
|
After Width: | Height: | Size: 398 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/l_hand_slim.png
Normal file
|
After Width: | Height: | Size: 347 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/l_leg_slim.png
Normal file
|
After Width: | Height: | Size: 624 B |
59
Resources/Textures/Mobs/Species/Slim/demon.rsi/meta.json
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"version": 2,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "head_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_slim_f",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_arm_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_foot_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_hand_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_leg_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_arm_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_foot_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_hand_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_leg_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_slim",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "torso_slim_f",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/r_arm_slim.png
Normal file
|
After Width: | Height: | Size: 511 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/r_foot_slim.png
Normal file
|
After Width: | Height: | Size: 405 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/r_hand_slim.png
Normal file
|
After Width: | Height: | Size: 390 B |
BIN
Resources/Textures/Mobs/Species/Slim/demon.rsi/r_leg_slim.png
Normal file
|
After Width: | Height: | Size: 580 B |