Port Allulalo from Impstation (#6172)

* Allulalo: finally finishing the ancient raptor species project (#3504)

* well, it loads

* sprite's

* names + starting on displacements

* more displacements

* displacements

* left hand only

* displacements

* yup

* ooa

* inhand displacements

* blood

* accent

* iv bags

* placeholder clarification

* Revert "iv bags"

This reverts commit c2aa504eab8d0673604b33e0ccaf79b406979da6.

* whitespace

* adds tooshortforUI and removes the damage modifier set

* speechsounds

* typing indicator

* basic customisation

* guidebook 1

* fixed full

* markings, displacements, speech verb

* displacement fixes

* trailing newlines

* spelling moment

* brute damage sprites and blood fix

* guidebook iteration

* injection melee + ethanotoxin + guidebook rewrite

* guidebook

* guidebook

* nitpicks + roundstart

---------

Co-authored-by: starlighthowls <starlighthowls7@gmail.com>
Co-authored-by: mqole <anactualpanacea@gmail.com>

* Allulalo tooshotforui bugfix (#3598)

* yay

* p[leebnmar

* oops

* Allulalo Markings (#3602)

* eye markings and two tails

* more

* almost got ya

* yup

* wings yay

* thank you landshark for my life btw

* still needs loc files

* Update allulalo.ftl

* I lost so much progress to git bullshit

* and who can forget dear rat boy

* touch up speech indicator at yesters request

---------

Co-authored-by: starlighthowls <starlighthowls7@gmail.com>

* Allulalo Roundstart (#3621)

* yup

* shock blanket + pleebnar fixes

* yuuup (#3655)

* Allulalo fix pass 1 (#3661)

* what if I did it all in one commit like a total moron

* yup

* untuch

* i love you spriting tool

* my birdsty

* Update allulalo.yml

* Update Species.xml

* let allulalo use holopads. (#3669)

* adds a white list for the too small component to add specific allowed entities. e.g holopads

* imp comment

* i love forgetting white space!!!!

---------

Co-authored-by: sev7ves <soapedzone@gmail.com>
Co-authored-by: beck <163376292+widgetbeck@users.noreply.github.com>

* fix (#3693)

* I need to learn to not do everything in one commit (#3750)

* mime on again (#4243)

* Small fix

* Add them to our accentless trait

* Add unable to wield system

* Fix too short for UI using old blacklist methods

* Fix duplicated localization line

* Add heavyweight drunk comp (might merge this with lightweight later)

* Why was this even added

* Revert "Add unable to wield system"

This reverts commit cbe3a10fc7.

* Revert "Fix too short for UI using old blacklist methods"

This reverts commit 833743f029.

* add TooShortForUIComponent (#3495)

* add TooShortForUIComponent

* correct documentation

* incomplete documentation

* add UnableToWieldComponent (#3496)

* Fixing this again I am dumb I cherrypicked things in the wrong order

* WHY WAS THIS EVEN ADDED THERE'S NO SPRITE EVEN ON IMPSTATION???

* Port Allulalos to Nubody

* Fix for Allulalo chems doing nothing

* Add allulalo to the guidebook species list

* Restore some accidentally deleted effects and comments

* Fix typo that made allu blood 10x more alcoholic than normal

* Delete random misplaced sprites from cherrypicking

* More of the random sprites removal (this time from the meta)

* Add missing allulalo flavor

* Removed some nonexistant fields from the species

* Add unisex cough/sneeze, comment out Wuhey and Ungh emotes

* Fix guidebook not using loc string

* I THINK this fixes that test error and it doesn't seem to break anything either so let's try

* Remove unsupported unshaded shader from eyes

* Ok last one didn't work (sorry for trial and error)

* Removed mention of HARMPACKs and Tether Guns from the guidebook.

* Blacklist allulalos from random humanoid spawns

* Add missing allulalo gulp sound

* Carriable in 1 hand allulalos, fix carrying system blocking both hands always

* Remove DV comments

---------

Co-authored-by: Kip <32859367+kipdotnet@users.noreply.github.com>
Co-authored-by: starlighthowls <starlighthowls7@gmail.com>
Co-authored-by: mqole <anactualpanacea@gmail.com>
Co-authored-by: sev7ves <58966116+sev7ves@users.noreply.github.com>
Co-authored-by: sev7ves <soapedzone@gmail.com>
Co-authored-by: beck <163376292+widgetbeck@users.noreply.github.com>
Co-authored-by: Yesteryear <208338078+yesteryuri@users.noreply.github.com>
This commit is contained in:
Astra 2026-07-04 09:28:31 +02:00 committed by GitHub
parent 7b77d25068
commit f22266d51f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
180 changed files with 2296 additions and 6 deletions

View File

@ -0,0 +1,7 @@
namespace Content.Server.Speech.Components;
/// <summary>
/// Scraw!!
/// </summary>
[RegisterComponent]
public sealed partial class AllulaloAccentComponent : Component { }

View File

@ -0,0 +1,52 @@
using System.Text.RegularExpressions;
using Content.Server.Speech.Components;
using Content.Shared.Speech;
namespace Content.Server._Impstation.Speech.EntitySystems;
public sealed class AllulaloAccentSystem : EntitySystem
{
private static readonly Regex RegexLowerslurR = new Regex("r{1,3}");
private static readonly Regex RegexUpperslurR = new Regex("R{1,3}");
private static readonly Regex RegexLowerdoubleCK = new Regex("ck{1,3}");
private static readonly Regex RegexUpperdoubleCK = new Regex("CK{1,3}");
private static readonly Regex RegexCasedoubleCK = new Regex("Ck{1,3}");
private static readonly Regex RegexCameldoubleCK = new Regex("cK{1,3}");
private static readonly Regex RegexLowerdoubleCKT = new Regex("ct{1,3}");
private static readonly Regex RegexUpperdoubleCKT = new Regex("CT{1,3}");
private static readonly Regex RegexCasedoubleCKT = new Regex("Ct{1,3}");
private static readonly Regex RegexCameldoubleCKT = new Regex("cT{1,3}");
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<AllulaloAccentComponent, AccentGetEvent>(OnAccent);
}
private void OnAccent(EntityUid uid, AllulaloAccentComponent component, AccentGetEvent args)
{
var message = args.Message;
// Im not writing music in this one
message = RegexLowerslurR.Replace(message, "rr");
// Sorry to the snalienaccentsystem fans
message = RegexUpperslurR.Replace(message, "RR");
//
message = RegexLowerdoubleCK.Replace(message, "ck-ck");
//
message = RegexUpperdoubleCK.Replace(message, "CK-CK");
//
message = RegexCasedoubleCK.Replace(message, "Ck-ck");
//
message = RegexCameldoubleCK.Replace(message, "cK-CK");
//
message = RegexLowerdoubleCKT.Replace(message, "ck-ct");
//
message = RegexUpperdoubleCKT.Replace(message, "CK-CT");
//
message = RegexCasedoubleCKT.Replace(message, "Ck-ct");
//
message = RegexCameldoubleCKT.Replace(message, "cK-CT");
args.Message = message;
}
}

View File

@ -10,9 +10,11 @@ public abstract class SharedDrunkSystem : EntitySystem
[Dependency] protected readonly StatusEffectsSystem Status = default!;
public override void Initialize()
{
SubscribeLocalEvent<LightweightDrunkComponent, DrunkEvent>(OnLightweightDrinking);
SubscribeLocalEvent<HeavyweightDrunkComponent, DrunkEvent>(OnHeavyweightDrinking); //imp
}
public void TryApplyDrunkenness(EntityUid uid, TimeSpan boozePower)
@ -38,6 +40,12 @@ public abstract class SharedDrunkSystem : EntitySystem
args.Duration *= entity.Comp.BoozeStrengthMultiplier;
}
//imp addition, repeated code bad, i know, but it seems excessive to make a whole other new method that both methods use
private void OnHeavyweightDrinking(Entity<HeavyweightDrunkComponent> entity, ref DrunkEvent args)
{
args.Duration *= entity.Comp.BoozeStrengthMultiplier;
}
[ByRefEvent]
public record struct DrunkEvent(TimeSpan Duration);
}

View File

@ -0,0 +1,8 @@
namespace Content.Shared._DV.Carrying;
/// <summary>
/// Entities with this component will override the number of free hands required to carry an entity, always requiring one hand instead.
/// Used primarily for entities which only have one hand, but still need to be able to carry.
/// </summary>
[RegisterComponent, Access(typeof(CarryingSystem))]
public sealed partial class CarrierOneHandComponent : Component;

View File

@ -297,8 +297,10 @@ public sealed class CarryingSystem : EntitySystem
if (_net.IsClient) // no spawning prediction
return;
_virtualItem.TrySpawnVirtualItemInHand(carried, carrier);
_virtualItem.TrySpawnVirtualItemInHand(carried, carrier);
for (var x = 0; x < Comp<CarriableComponent>(carried).FreeHandsRequired; x++)
{
_virtualItem.TrySpawnVirtualItemInHand(carried, carrier);
}
}
public bool TryCarry(EntityUid carrier, Entity<CarriableComponent?> toCarry)
@ -358,6 +360,10 @@ public sealed class CarryingSystem : EntitySystem
public bool CanCarry(EntityUid carrier, Entity<CarriableComponent> carried)
{
var handsRequired = carried.Comp.FreeHandsRequired; // imp
if (TryComp<CarrierOneHandComponent>(carrier, out _))// && !carried.Comp.OneHandOverride)
handsRequired = 1;
return
carrier != carried.Owner &&
// can't carry multiple people, even if you have 4 hands it will break invariants when removing carryingcomponent for first carried person
@ -368,7 +374,7 @@ public sealed class CarryingSystem : EntitySystem
!HasComp<BeingCarriedComponent>(carrier) &&
!HasComp<BeingCarriedComponent>(carried) &&
// finally check that there are enough free hands
TryComp<HandsComponent>(carrier, out var hands) && _hands.CountFreeHands((carrier, hands)) >= carried.Comp.FreeHandsRequired;
TryComp<HandsComponent>(carrier, out var hands) && _hands.CountFreeHands((carrier, hands)) >= handsRequired;
}
private float MassContest(EntityUid roller, EntityUid target)

View File

@ -0,0 +1,12 @@
using Robust.Shared.GameStates;
namespace Content.Shared._Impstation.TooShortForUI;
/// <summary>
/// Tag component that denotes an object as a valid target for the TooShortForUI component.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class TooShortForUIBlacklistComponent : Component
{
//weh!
};

View File

@ -0,0 +1,31 @@
using Content.Shared.Whitelist;
using Robust.Shared.GameStates;
namespace Content.Shared._Impstation.TooShortForUI;
/// <summary>
/// Blocks the use of machine UI on blacklisted or non-whitelisted machines if the entity is not:
/// 1) buckled into something, like a chair or a bed
/// 2) weightless
/// or 3) vaulted on a table.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class TooShortForUIComponent : Component
{
/// <summary>
/// These entities will *not* be allowed.
/// If the blacklist is null, blocks all entities.
/// </summary>
[DataField]
public EntityWhitelist? Blacklist = null;
/// <summary>
/// These entities will be allowed.
/// Takes priority over Blacklist
/// </summary>
[DataField]
public EntityWhitelist? Whitelist = null;
[DataField]
public LocId? PopupText = "too-short-for-ui-cant-use";
}

View File

@ -0,0 +1,58 @@
using Content.Shared.Buckle.Components;
using Content.Shared.Climbing.Components;
using Content.Shared.Gravity;
using Content.Shared.Popups;
using Content.Shared.UserInterface;
using Content.Shared.Whitelist;
using Robust.Shared.Network;
using Robust.Shared.Physics.Components;
using Robust.Shared.Timing;
namespace Content.Shared._Impstation.TooShortForUI;
public sealed class TooShortForUI : EntitySystem
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly INetManager _net = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelist = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
[Dependency] private readonly SharedGravitySystem _gravity = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<TooShortForUIComponent, UserOpenActivatableUIAttemptEvent>(OnUIOpenAttempt);
}
public void OnUIOpenAttempt(Entity<TooShortForUIComponent> ent, ref UserOpenActivatableUIAttemptEvent args)
{
// first, check if we're buckled to something, and if we are, return
if (TryComp<BuckleComponent>(ent, out var buckle) && buckle.Buckled)
return;
// next, check if we're in the air. if we are, return
if (TryComp<PhysicsComponent>(ent, out var physics) && physics.BodyStatus != BodyStatus.OnGround)
return;
// next, check if we're weightless. you get the idea
if (TryComp<GravityAffectedComponent>(ent, out var gravityAffected) && _gravity.IsWeightless((ent.Owner, gravityAffected)))
return;
// check if we're on a table.
if (TryComp<ClimbingComponent>(ent, out var climbing) && climbing.IsClimbing)
return;
// finally, if the target entity is on the whitelist, return if true
if (_whitelist.IsWhitelistPass(ent.Comp.Whitelist, args.Target))
return;
// if the target entity is on the blacklist or no blacklist is defined, cancel the event
if (_whitelist.IsWhitelistPass(ent.Comp.Blacklist, args.Target))
args.Cancel();
// if the event has been cancelled and there is popup text, popup
if (args.Cancelled && ent.Comp.PopupText != null && _net.IsClient && _timing.IsFirstTimePredicted)
_popup.PopupEntity(Loc.GetString(ent.Comp.PopupText), ent, ent);
}
}

View File

@ -0,0 +1,12 @@
using Robust.Shared.GameStates;
namespace Content.Shared._Impstation.TooShortForUI;
/// <summary>
/// Tag component that denotes an object as an invalid target for the TooShortForUI component.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class TooShortForUIWhitelistComponent : Component
{
//weh!
};

View File

@ -0,0 +1,15 @@
using Robust.Shared.GameStates;
using Content.Shared.Drunk;
namespace Content.Shared.Traits.Assorted;
/// <summary>
/// Used for the heavyweight trait. DrunkSystem will check for this component and modify the boozePower accordingly if it finds it.
/// </summary>
[RegisterComponent, NetworkedComponent]
[Access(typeof(SharedDrunkSystem))]
public sealed partial class HeavyweightDrunkComponent : Component
{
[DataField("boozeStrengthMultiplier"), ViewVariables(VVAccess.ReadWrite)]
public float BoozeStrengthMultiplier = 0.80f;
}

View File

@ -0,0 +1,29 @@
using Content.Shared.Mobs;
using Content.Shared.Popups;
using Content.Shared.Wieldable;
using Robust.Shared.Network;
using Robust.Shared.Timing;
namespace Content.Shared._Impstation.UnableToWield;
public sealed class UnableToWieldSystem : EntitySystem
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly INetManager _net = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<UnableToWieldComponent, WieldAttemptEvent>(OnWieldAttempt);
}
private void OnWieldAttempt(Entity<UnableToWieldComponent> ent, ref WieldAttemptEvent args)
{
args.Cancel();
if (_net.IsClient && _timing.IsFirstTimePredicted && ent.Comp.PopupText != null)
_popup.PopupEntity(Loc.GetString(ent.Comp.PopupText), ent, ent);
}
}

View File

@ -0,0 +1,10 @@
using Robust.Shared.GameStates;
namespace Content.Shared._Impstation.UnableToWield;
[RegisterComponent, NetworkedComponent]
public sealed partial class UnableToWieldComponent : Component
{
[DataField]
public LocId? PopupText = "unable-to-wield-cant-do";
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
211123 Red-tailed Hawk call, pretty close, noisy roof, Toronto 10am.wav by TRP -- https://freesound.org/s/616995/ -- License: Creative Commons 0
Utahraptor Hiss by NaturesTemper -- https://freesound.org/s/622809/ -- License: Creative Commons 0
RaptorintheKitchen.wav by Nerdwizard78 -- https://freesound.org/s/643927/ -- License: Creative Commons 0
raptorshreak by Nerdwizard78 -- https://freesound.org/s/643850/ -- License: Creative Commons 0
Sumatran laughingthrush (Garrulax bicolor) by Breviceps -- https://freesound.org/s/535813/ -- License: Creative Commons 0

View File

@ -0,0 +1,5 @@
chat-speech-verb-name-allulalo = Allulalo
chat-speech-verb-allulalo-1 = whistles
chat-speech-verb-allulalo-2 = clicks
chat-speech-verb-allulalo-3 = chitters
chat-speech-verb-allulalo-4 = knocks

View File

@ -0,0 +1,42 @@
names-allulalo-first-1 = Lepti
names-allulalo-first-2 = Bronto
names-allulalo-first-3 = Apato
names-allulalo-first-4 = Cera
names-allulalo-first-5 = Canorus
names-allulalo-first-6 = Luro
names-allulalo-first-7 = Mimus
names-allulalo-first-8 = Nycho
names-allulalo-first-9 = Velox
names-allulalo-first-10 = Affinis
names-allulalo-first-11 = Alatus
names-allulalo-first-12 = Amabilis
names-allulalo-first-13 = Brachy
names-allulalo-first-14 = Communis
names-allulalo-first-15 = Deino
names-allulalo-first-16 = Dulcis
names-allulalo-first-17 = Erio
names-allulalo-first-18 = Garrulus
names-allulalo-first-19 = Halio
names-allulalo-first-20 = Haplo
names-allulalo-first-21 = Cursor
names-allulalo-last-1 = Inin-Sada
names-allulalo-last-2 = Aono-ni
names-allulalo-last-3 = Nana-Sana
names-allulalo-last-4 = Ourn-far
names-allulalo-last-5 = Ran-ran
names-allulalo-last-6 = Nera-Ina
names-allulalo-last-7 = Dyan-kata
names-allulalo-last-8 = Beca-howl
names-allulalo-last-9 = Xena-tasa
names-allulalo-last-10 = Lopi-den
names-allulalo-last-11 = Colo-pota
names-allulalo-last-12 = Valo-dexa
names-allulalo-last-13 = Jama-valt
names-allulalo-last-14 = Mera-ban
names-allulalo-last-15 = Loga-nab
names-allulalo-last-16 = Quana-bua
names-allulalo-last-17 = Pota-pota
names-allulalo-last-18 = Hera-Nofa
names-allulalo-last-19 = Noro-Mon
names-allulalo-last-20 = Sepa-dex

View File

@ -1,3 +1,5 @@
flavor-complex-cigarettes = like cigarettes
flavor-complex-echion = like radiation and poor choices
flavor-complex-allulalo = like hand sanitizer

View File

@ -0,0 +1,126 @@
# Chest
marking-AllulaloUnderbelly = Underbelly
marking-AllulaloUnderbelly-allulaloChestUnderbelly = Underbelly
marking-AllulaloChestHeartMonitor = Heart Monitor
marking-AllulaloChestHeartMonitor-allulaloChestHeartMonitor = Heart monitor
# Head
marking-AllulaloHeadUnderbelly = Chin
marking-AllulaloHeadUnderbelly-allulaloHeadUnderbelly = Chin
marking-AllulaloHeadNeckFluff = Neck Plumage
marking-AllulaloHeadNeckFluff-allulaloHeadNeckFluff = Plumage
marking-AllulaloHeadSpikes = Head Spikes
marking-AllulaloHeadSpikes-allulaloHeadSpikes = Head spikes
marking-AllulaloHeadNeckPlumageOutrageous = Neck Plumage (Outrageous)
marking-AllulaloHeadNeckPlumageOutrageous-allulaloHeadNeckPlumageOutrageous = Plumage
# Snout
# Eyes
marking-AllulaloEyesDefault = Eyes (Default)
marking-AllulaloEyesDefault-allulaloEyesDefaultLeft = Left eye
marking-AllulaloEyesDefault-allulaloEyesDefaultRight = Right eye
marking-AllulaloEyesUnshaded = Eyes (Glowing)
marking-AllulaloEyesUnshaded-allulaloEyesUnshadedLeft = Left eye
marking-AllulaloEyesUnshaded-allulaloEyesUnshadedRight = Right eye
# RArm
marking-AllulaloWingsDefault = Default Wings
marking-AllulaloWingsDefault-allulaloArmDefaultRight = Wing (Right)
marking-AllulaloWingsDefault-allulaloArmDefaultLeft = Wing (Left)
marking-AllulaloWingsSplit = Split Wings
marking-AllulaloWingsSplit-allulaloArmSplit1 = Lower feathers
marking-AllulaloWingsSplit-allulaloArmSplit2 = Upper feathers
marking-AllulaloWingsOwl = Diving Wings
marking-AllulaloWingsOwl-allulaloArmOwl1 = Middle feathers
marking-AllulaloWingsOwl-allulaloArmOwl2 = Pattern feathers
marking-AllulaloWingsOwl-allulaloArmOwl3 = Flight feathers
# LArm
# RLeg
# LLeg
marking-AllulaloLegUnderbellyDefault= Underbelly
marking-AllulaloLegUnderbellyDefault-allulaloLegUnderbellyDefaultLeft = left leg underbelly
marking-AllulaloLegUnderbellyDefault-allulaloLegUnderbellyDefaultRight = right leg underbelly
# UndergarmentBottom
# UndergarmentTop
# LFoot
marking-AllulaloLegPlumage= Excessive Feathers
marking-AllulaloLegPlumage-allulaloLegPlumage = plumage
# RFoot
# LHand
# RHand
# FacialHair
# Hair
# HeadSide
# HeadTop
marking-AllulaloHeadTopHorn = Horn
marking-AllulaloHeadTopHorn-allulaloHeadTopHorn = Horn
marking-AllulaloHeadTopFeathers = Fancy Feathers
marking-AllulaloHeadTopFeathers-allulaloHeadTopFeathers = Feathers
marking-AllulaloHeadTopCurvedHorns = Curved Horns
marking-AllulaloHeadTopCurvedHorns-allulaloHeadTopCurvedHorns = Horns
marking-AllulaloHeadTopSweptHorns = Swept horns
marking-AllulaloHeadTopSweptHorns-allulaloHeadTopSweptHorns = Horns
marking-AllulaloHeadTopStubHorns = Stub Horns
marking-AllulaloHeadTopStubHorns-allulaloHeadTopStubHorns = Horns
marking-AllulaloHeadTopPlumage1 = Plumage (Bold)
marking-AllulaloHeadTopPlumage1-allulaloHeadTopPlumage1 = feathers
marking-AllulaloHeadTopPlumage2 = Plumage (Brash)
marking-AllulaloHeadTopPlumage2-allulaloHeadTopPlumage2 = feathers
# Tail
marking-AllulaloTailDefault = Tail (default)
marking-AllulaloTailDefault-allulaloTailDefault = Tail
marking-AllulaloTailDefault-allulaloTailDefault2 = Feathers
marking-AllulaloTailDefault-allulaloTailDefault3 = Underbelly
marking-AllulaloTailThick = Thick Tail
marking-AllulaloTailThick-allulaloTailLarge = Tail
marking-AllulaloTailThick-allulaloTailLarge2 = Underbelly
marking-AllulaloTailThick-allulaloTailLarge3 = Spikes
marking-AllulaloTailThickSpikes = Thick Tail with Spikes
marking-AllulaloTailThickSpikes-allulaloTailLarge = Tail
marking-AllulaloTailThickSpikes-allulaloTailLarge2 = Underbelly
marking-AllulaloTailThickSpikes-allulaloTailLarge3 = Spikes
marking-AllulaloTailTuft = Tuft Tail
marking-AllulaloTailTuft-allulaloTailTuft = Tail
marking-AllulaloTailTuft-allulaloTailTuft2 = Underbelly
marking-AllulaloTailTuft-allulaloTailTuft3 = Feathers
# RArmExtension

View File

@ -0,0 +1 @@
metabolizer-type-allulalo = Allulalo

View File

@ -0,0 +1,2 @@
reagent-name-bloodallulalo = methylated blood
reagent-desc-bloodallulalo = An ancient alkylate form of blood. Known to rapidly evaporate if spilled.

View File

@ -0,0 +1,2 @@
reagent-name-ethanotoxin = ethanotoxin
reagent-desc-ethanotoxin = A medicinal venom from the jaw of an Allulalo. Contains a blood-clotting agent and adreno-stimulants, but your heart wont like it.

View File

@ -1,3 +1,3 @@
## Species Names
species-name-thaven = Thaven
species-name-allulalo = Allulalo
species-name-thaven = Thaven

View File

@ -0,0 +1 @@
too-short-for-ui-cant-use = You're too short to reach the controls! Try getting up higher.

View File

@ -0,0 +1 @@
unable-to-wield-cant-do = You can't wield this, it's too big!

View File

@ -2,6 +2,7 @@
- type: randomHumanoidSettings
id: EventHumanoid
speciesBlacklist: [Allulalo] # Delta V - Allulalos are very limiting and it can suck to be randomized into one
components:
- type: RandomHumanoidAppearance
randomizeName: false
@ -626,6 +627,7 @@
- type: randomHumanoidSettings
id: SyndicateAgent
speciesBlacklist: [Allulalo] # Delta V - Allulalos are very limiting and it can suck to be randomized into one
components:
- type: RandomHumanoidAppearance
randomizeName: false
@ -645,6 +647,7 @@
- type: randomHumanoidSettings
id: NukeOp
speciesBlacklist: [Allulalo] # Delta V - Allulalos are very limiting and it can suck to be randomized into one
components:
- type: RandomHumanoidAppearance
randomizeName: false

View File

@ -375,6 +375,11 @@
visible: false
- type: Item
size: Huge
shape: #imp
- 0,0,3,0
storedSprite: #imp
sprite: Structures/Furniture/folding_chair.rsi
state: storage
- type: Appearance
- type: MeleeWeapon
damage:

View File

@ -96,6 +96,7 @@
# interfaces:
# enum.WiresUiKey.Key:
# type: WiresBoundUserInterface
- type: TooShortForUIBlacklist #imp
- type: entity
parent: BaseComputer

View File

@ -58,6 +58,7 @@
prob: 0.25
count: 2
# ES End
- type: TooShortForUIBlacklist #imp
- type: entity
abstract: true

View File

@ -115,7 +115,7 @@
transmitFrequencyId: NTNet
- type: PageSender
# End DeltaV
- type: TooShortForUIWhitelist #imp change
- type: entity
name: long-range holopad

View File

@ -113,6 +113,7 @@
enum.RadioDeviceVisualLayers.Speaker:
True: { visible: true }
False: { visible: false }
- type: TooShortForUIBlacklist #imp
- type: entity
parent: BaseWallmountMetallic

View File

@ -60,3 +60,4 @@
prob: 0.25
count: 2
# ES End
- type: TooShortForUIBlacklist #imp

View File

@ -22,6 +22,7 @@
- Kitsune
- Avali
# ImpStation additions
- Allulalo
- Thaven
# Den addition
- Ovinia

View File

@ -30,6 +30,7 @@
- Avali
- Ovinia
# End DeltaV additions
- Allulalo #imp
- type: loadoutEffectGroup
id: EffectSpeciesVox
@ -88,6 +89,7 @@
- Human
- Reptilian
# Begin DeltaV additions
- Allulalo
- Felinid
- Harpy
- Oni

View File

@ -32,8 +32,18 @@
# Main effects
- !type:MovementSpeedModifier
conditions: #imp
- !type:MetabolizerTypeCondition #imp # Delta V - changed to Nubody equivalent
type: [ Allulalo ]
inverted: true
walkSpeedModifier: 1.20
sprintSpeedModifier: 1.20
- !type:MovementSpeedModifier
conditions: #imp
- !type:MetabolizerTypeCondition #imp # Delta V - changed to Nubody equivalent
type: [ Allulalo ]
walkSpeedModifier: 1.10 # Delta V - Lowering these due to base modifier also being lower
sprintSpeedModifier: 1.10 # Delta V
- !type:ModifyStatusEffect
effectProto: StatusEffectDesoxyStamina # You are on meth. You keep going.
time: 3
@ -88,8 +98,18 @@
effects:
# Main effects
- !type:MovementSpeedModifier
conditions: #imp
- !type:MetabolizerTypeCondition #imp # Delta V - changed to Nubody equivalent
type: [Allulalo]
inverted: true
walkSpeedModifier: 1.15
sprintSpeedModifier: 1.15
- !type:MovementSpeedModifier #imp
conditions:
- !type:MetabolizerTypeCondition #imp # Delta V - changed to Nubody equivalent
type: [Allulalo]
walkSpeedModifier: 1.08 # Delta V - Lowering these due our base modifier also being lower
sprintSpeedModifier: 1.08 # Delta V
- !type:ModifyStatusEffect
effectProto: StatusEffectStunned
time: 1
@ -146,8 +166,18 @@
effects:
# Main effects
- !type:MovementSpeedModifier
conditions: #imp
- !type:MetabolizerTypeCondition #imp # Delta V - changed to Nubody equivalent
type: [ Allulalo ]
inverted: true
walkSpeedModifier: 1.25
sprintSpeedModifier: 1.25
- !type:MovementSpeedModifier #imp
conditions:
- !type:MetabolizerTypeCondition #imp # Delta V - changed to Nubody equivalent
type: [ Allulalo ]
walkSpeedModifier: 1.12 # Delta V - Lowering these due to base modifier also being lower
sprintSpeedModifier: 1.12 # Delta V
- !type:ModifyStatusEffect
effectProto: StatusEffectStimulantsStamina # You are on meth. You keep going.
time: 3

View File

@ -130,6 +130,7 @@
removes:
- type: LizardAccent
- type: MothAccent
- type: AllulaloAccent
- type: ReplacementAccent
accent: dwarf

View File

@ -0,0 +1,3 @@
- type: metabolizerType
id: Allulalo
name: metabolizer-type-allulalo

View File

@ -0,0 +1,6 @@
- type: damageModifierSet
id: Allulalo
coefficients:
Blunt: 1.15
Slash: 1.15
Piercing: 1.15

View File

@ -0,0 +1,11 @@
- type: localizedDataset
id: AllulaloFirstNames
values:
prefix: names-allulalo-first-
count: 21
- type: localizedDataset
id: AllulaloLastNames
values:
prefix: names-allulalo-last-
count: 20

View File

@ -0,0 +1,12 @@
- type: entity
id: WeaponArcAllulaloBite
parent: WeaponArcStatic
categories: [ HideSpawnMenu ]
components:
- type: WeaponArcVisuals
fadeOut: false
- type: Sprite
sprite: _Impstation/Effects/arcs.rsi
state: allulalo_bite
- type: TimedDespawn
lifetime: 0.299

View File

@ -0,0 +1,295 @@
# Chest
- type: marking
id: AllulaloUnderbelly
bodyPart: Chest
# # markingCategory: Chest # Delta V - no longer necessary with Nubody # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/chest.rsi
state: allulaloChestUnderbelly
- type: marking
id: AllulaloChestHeartMonitor
bodyPart: Chest
# markingCategory: Chest # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/chest.rsi
state: allulaloChestHeartMonitor
# shader: unshaded # Delta V - We don't have support for unshaded markings yet
# Head
- type: marking
id: AllulaloHeadUnderbelly
bodyPart: Head
# markingCategory: Head # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/head.rsi
state: allulaloHeadUnderbelly
- type: marking
id: AllulaloHeadNeckFluff
bodyPart: Head #Delta V - Was Tail due to layering, not an issue now
# markingCategory: Head # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/head.rsi
state: allulaloHeadNeckFluff
- type: marking
id: AllulaloHeadSpikes
bodyPart: Head
# markingCategory: Head # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/head.rsi
state: allulaloHeadSpikes
#- type: marking #I think this one might be too much
# id: AllulaloHeadNeckPlumageOutrageous
# bodyPart: Tail #layering sucks
# markingCategory: Head
# speciesRestriction: [ Allulalo ]
# sprites:
# - sprite: _Impstation/Mobs/Customization/Allulalo/head.rsi
# state: allulaloHeadNeckPlumageOutrageous
# Snout
# Eyes
- type: marking
id: AllulaloEyesDefault
bodyPart: Eyes
# markingCategory: Eyes # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
coloring:
default:
type:
!type:SimpleColoring
color: "#78bfc2"
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/eyes.rsi
state: allulaloEyesDefaultLeft
- sprite: _Impstation/Mobs/Customization/Allulalo/eyes.rsi
state: allulaloEyesDefaultRight
- type: marking
id: AllulaloEyesUnshaded
bodyPart: Eyes
# markingCategory: Eyes # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
coloring:
default:
type:
!type:SimpleColoring
color: "#78bfc2"
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/eyes.rsi
state: allulaloEyesUnshadedLeft
- sprite: _Impstation/Mobs/Customization/Allulalo/eyes.rsi
state: allulaloEyesUnshadedRight
#shader: unshaded # Delta V - We don't have support for unshaded markings yet
# RArm
- type: marking
id: AllulaloWingsDefault
bodyPart: RArm
# markingCategory: Arms # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/arms.rsi
state: allulaloArmDefaultRight
- sprite: _Impstation/Mobs/Customization/Allulalo/arms.rsi
state: allulaloArmDefaultLeft
- type: marking
id: AllulaloWingsSplit
bodyPart: RArm
# markingCategory: Arms # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/arms.rsi
state: allulaloArmSplit1
- sprite: _Impstation/Mobs/Customization/Allulalo/arms.rsi
state: allulaloArmSplit2
- type: marking
id: AllulaloWingsOwl
bodyPart: RArm
# markingCategory: Arms # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/arms.rsi
state: allulaloArmOwl1
- sprite: _Impstation/Mobs/Customization/Allulalo/arms.rsi
state: allulaloArmOwl2
- sprite: _Impstation/Mobs/Customization/Allulalo/arms.rsi
state: allulaloArmOwl3
# LArm
# RLeg
# LLeg
- type: marking
id: AllulaloLegUnderbellyDefault
bodyPart: LLeg
# markingCategory: Legs # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/legs.rsi
state: allulaloLegUnderbellyDefaultRight
- sprite: _Impstation/Mobs/Customization/Allulalo/legs.rsi
state: allulaloLegUnderbellyDefaultLeft
- type: marking
id: AllulaloLegPlumage
bodyPart: LFoot #dont look at me
# markingCategory: Legs # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/legs.rsi
state: allulaloLegPlumage
# UndergarmentBottom
# UndergarmentTop
# LFoot
# RFoot
# LHand
# RHand
# FacialHair
# Hair
# HeadSide
# HeadTop
- type: marking
id: AllulaloHeadTopHorn
bodyPart: HeadTop
# markingCategory: HeadTop # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/headtop.rsi
state: allulaloHeadTopHorn
- type: marking
id: AllulaloHeadTopFeathers
bodyPart: HeadTop
# markingCategory: HeadTop # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/headtop.rsi
state: allulaloHeadTopFeathers
- type: marking
id: AllulaloHeadTopCurvedHorns
bodyPart: HeadTop
# markingCategory: HeadTop # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/headtop.rsi
state: allulaloHeadTopCurvedHorns
- type: marking
id: AllulaloHeadTopSweptHorns
bodyPart: HeadTop
# markingCategory: HeadTop # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/headtop.rsi
state: allulaloHeadTopSweptHorns
- type: marking
id: AllulaloHeadTopStubHorns
bodyPart: HeadTop
# markingCategory: HeadTop # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/headtop.rsi
state: allulaloHeadTopStubHorns
- type: marking
id: AllulaloHeadTopPlumage1
bodyPart: HeadTop
# markingCategory: HeadTop # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/headtop.rsi
state: allulaloHeadTopPlumage1
- type: marking
id: AllulaloHeadTopPlumage2
bodyPart: HeadTop
# markingCategory: HeadTop # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/headtop.rsi
state: allulaloHeadTopPlumage2
# Tail
- type: marking
id: AllulaloTailDefault
bodyPart: Tail
# markingCategory: Tail # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailDefault
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailDefault2
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailDefault3
- type: marking
id: AllulaloTailThick
bodyPart: Tail
# markingCategory: Tail # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailLarge
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailLarge2
- type: marking
id: AllulaloTailThickSpikes
bodyPart: Tail
# markingCategory: Tail # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailLarge
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailLarge2
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailLarge3
- type: marking
id: AllulaloTailTuft
bodyPart: Tail
# markingCategory: Tail # Delta V - no longer necessary with Nubody
groupWhitelist: [ Allulalo ] # Delta V - speciesRestriction to groupWhitelist due to Nubody
sprites:
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailTuft
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailTuft2
- sprite: _Impstation/Mobs/Customization/Allulalo/tail.rsi
state: allulaloTailTuft3
# RArmExtension

View File

@ -0,0 +1,5 @@
- type: entity
save: false
name: Uristia Mc-hands
parent: BaseMobAllulalo
id: MobAllulalo

View File

@ -0,0 +1,469 @@
- type: entity
save: false
name: Uristia Mc-Hands
parent:
- AppearanceAllulalo
- BaseSpeciesMobOrganic
id: BaseMobAllulalo
abstract: true
components:
# - type: GoobAbsorbable # Delta V - not a system we have
# biomassRestored: 1.0
- type: Hunger
baseDecayRate: 0.02 # 30% ish more than default
- type: Thirst
baseDecayRate: 0.02 # 30% ish more than default
- type: Fixtures
fixtures: # TODO: This needs a second fixture just for mob collisions.
fix1:
shape:
!type:PhysShapeCircle
radius: 0.32
density: 75 #this is half the normal and makes them very light
restitution: 0.0
mask:
- MobMask
layer:
- MobLayer
- type: Icon
sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
state: full
- type: UnableToWield
- type: CarrierOneHand # good luck.
- type: TooShortForUI
blacklist:
components:
- TooShortForUIBlacklist
whitelist:
components:
- TooShortForUIWhitelist
- type: AllulaloAccent
- type: HeavyweightDrunk #Their blood is alcoholic. also a bird drinking you under the table is funny
- type: CanEscapeInventory
baseResistTime: 1.0 #they break out of grabs FAST
- type: Damageable
damageContainer: Biological
damageModifierSet: Allulalo #stops them from being oppressive hopefully
- type: Bloodstream
bloodReferenceSolution: # Delta V - updated to Nubody
reagents:
- ReagentId: BloodAllulalo
Quantity: 250
- type: DamageVisuals
damageOverlayGroups:
Brute:
sprite: _Impstation/Mobs/Effects/allulalo_brute_damage.rsi
color: "#e5efff"
- type: MobThresholds
thresholds:
0: Alive
100: Critical
200: Dead
- type: MeleeWeapon #bites you
soundHit:
collection: AlienClaw
angle: 30
animation: WeaponArcAllulaloBite
damage:
types:
Piercing: 4
- type: SolutionContainerManager
solutions:
melee:
reagents:
- ReagentId: Ethanotoxin
Quantity: 4 #you can bite someone four times. upped from two based on feedback
- type: MeleeChemicalInjector
solution: melee
- type: SolutionRegeneration
solution: melee
generated:
reagents:
- ReagentId: Ethanotoxin
Quantity: 0.05 #20 second cooldown between bites working full power
- type: StaminaResistance
damageCoefficient: 1.25 #takes the disabler/batong hits needed to stun from 4 > 3
- type: Butcherable
butcheringType: Spike
spawned:
- id: FoodMeatChicken #this was yesters idea, not mine
amount: 5
- type: FireVisuals
sprite: Mobs/Effects/onfire.rsi
normalState: Monkey_burning
- type: Tag
tags:
- VimPilot #fuck it, theyre small enough
- DoorBumpOpener
- AnomalyHost
- CanPilot
- FootstepSound
- type: TypingIndicator
proto: allulalo
- type: Vocal
sounds:
Male: Allulalo
Female: Allulalo
Unsexed: Allulalo
- type: Speech
speechSounds: Allulalo
speechVerb: Allulalo
allowedEmotes: ['Chitter', 'Hiss']
- type: MovementSpeedModifier # DeltaV - Moved here from legs body part due to Nubody.
baseWalkSpeed: 3
baseSprintSpeed: 5
- type: Carriable # Delta V - grips the bird
freeHandsRequired: 1
# Begin Delta V Removals - Nubody
# - type: HumanoidAppearance
# species: Allulalo
# hideLayersOnEquip:
# - Hair
# - Snout
# - HeadTop
# - HeadSide
# - LLeg
# - RLeg
# - LFoot
# - RFoot
#- type: entity
# parent: BaseSpeciesDummy
# id: MobAllulaloDummy
# categories: [ HideSpawnMenu ]
# components:
# - type: Sprite
# scale: 1, 1
# - type: Inventory
# speciesId: allulalo
# templateId: allulalo
# displacements:
# jumpsuit:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: jumpsuit
# head:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: head
# eyes:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: glasses
# ears:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: ears
# mask:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: mask
# neck:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: neck
# outerClothing:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: outerClothing
# gloves:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: hands
# shoes:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: feet
# belt:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: belt
# back:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: back
# suitstorage:
# sizeMaps:
# 32:
# sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
# state: suitstorage
# - type: Hands
# leftHandDisplacement:
# sizeMaps:
# 32:
# sprite: Mobs/Species/Vox/displacement.rsi
# state: hand_l
# rightHandDisplacement:
# sizeMaps:
# 32:
# sprite: Mobs/Species/Vox/displacement.rsi
# state: hand_r
# End Delta V Removals
# Begin Delta V addition - Nubody
- type: entity
parent: BaseSpeciesAppearance
id: AppearanceAllulalo
name: allulalo appearance
components:
- type: Inventory
speciesId: allulalo
displacements:
jumpsuit:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: jumpsuit
head:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: head
eyes:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: glasses
ears:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: ears
mask:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: mask
neck:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: neck
outerClothing:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: outerClothing
gloves:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: hands
shoes:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: feet
belt:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: belt
back:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: back
suitstorage:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: suitstorage
- type: Hands
leftHandDisplacement:
sizeMaps:
32:
sprite: _Impstation/Mobs/Species/Allulalo/displacement.rsi
state: hand_l
rightHandDisplacement:
sizeMaps:
32:
sprite: Mobs/Species/Vox/displacement.rsi
state: hand_r
- type: InitialBody
organs:
Torso: OrganAllulaloTorso
Head: OrganAllulaloHead
ArmLeft: OrganAllulaloArmLeft
HandLeft: OrganAllulaloHandLeft
ArmRight: OrganAllulaloArmRight
LegLeft: OrganAllulaloLegLeft
LegRight: OrganAllulaloLegRight
FootLeft: OrganAllulaloFootLeft
FootRight: OrganAllulaloFootRight
Brain: OrganHumanBrain
Eyes: OrganAllulaloEyes
Tongue: OrganHumanTongue
Ears: OrganHumanEars
Appendix: OrganHumanAppendix
Lungs: OrganHumanLungs
Heart: OrganAllulaloHeart
Stomach: OrganAnimalStomach
Liver: OrganAnimalLiver
Kidneys: OrganHumanKidneys
- type: HumanoidProfile
species: Allulalo
- type: entity
parent: OrganBase
id: OrganAllulalo
abstract: true
suffix: Allulalo
- type: entity
parent: OrganAllulalo
id: OrganAllulaloInternal
abstract: true
components:
- type: Sprite
sprite: Mobs/Species/Human/organs.rsi
- type: entity
parent: OrganAllulalo
id: OrganAllulaloExternal
abstract: true
components:
- type: Sprite
sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
- type: VisualOrgan
data:
sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
- type: VisualOrganMarkings
markingData:
group: Allulalo
- type: entity
parent: [ OrganBaseEyes, OrganAllulaloExternal, OrganAllulaloInternal ]
id: OrganAllulaloEyes
components:
- type: Sprite
sprite: Mobs/Species/Human/organs.rsi
- type: VisualOrgan
layer: enum.HumanoidVisualLayers.Eyes
data:
sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
state: eyes
- type: entity
parent: [ OrganBaseHead, OrganAllulaloExternal ]
id: OrganAllulaloHead
components:
- type: VisualOrganMarkings
hideableLayers:
- enum.HumanoidVisualLayers.HeadTop
- enum.HumanoidVisualLayers.HeadSide
- type: entity
parent: [ OrganBaseTorso, OrganAllulaloExternal ]
id: OrganAllulaloTorso
- type: entity
parent: [ OrganBaseLegLeft, OrganAllulaloExternal ]
id: OrganAllulaloLegLeft
- type: entity
parent: [ OrganBaseArmLeft, OrganAllulaloExternal ]
id: OrganAllulaloArmLeft
- type: entity
parent: [ OrganBaseHandLeft, OrganAllulaloExternal ]
id: OrganAllulaloHandLeft
components:
- type: Sprite
state: hands
- type: VisualOrgan
layer: enum.HumanoidVisualLayers.LHand
data:
state: hands
- type: entity
parent: [ OrganBaseFootLeft, OrganAllulaloExternal ]
id: OrganAllulaloFootLeft
- type: entity
parent: [ OrganBaseLegRight, OrganAllulaloExternal ]
id: OrganAllulaloLegRight
- type: entity
parent: [ OrganBaseArmRight, OrganAllulaloExternal ]
id: OrganAllulaloArmRight
- type: entity
parent: [ OrganBaseFootRight, OrganAllulaloExternal ]
id: OrganAllulaloFootRight
- type: entity
parent: [ OrganBaseBrain, OrganAllulaloInternal ]
id: OrganAllulaloBrain
- type: entity
parent: [ OrganBaseHeart, OrganAllulaloInternal ]
id: OrganAllulaloHeart
components:
- type: Metabolizer
maxReagents: 2
stages: [ Bloodstream ]
metabolizerTypes: [ Allulalo ]
updateIntervalMultiplier: 0.66 # 50% faster means 66% time taken
- type: markingsGroup
parent: Undergarments
id: Allulalo
onlyGroupWhitelisted: true
limits:
enum.HumanoidVisualLayers.Hair:
limit: 0
required: false
enum.HumanoidVisualLayers.FacialHair:
limit: 0
required: false
enum.HumanoidVisualLayers.Head:
limit: 3
required: false
enum.HumanoidVisualLayers.Eyes:
limit: 1
required: true
default: [ AllulaloEyesDefault ]
enum.HumanoidVisualLayers.HeadTop:
limit: 1
required: false
enum.HumanoidVisualLayers.Snout:
limit: 1
required: false
enum.HumanoidVisualLayers.Tail:
limit: 1
required: true
default: [ AllulaloTailDefault ]
enum.HumanoidVisualLayers.LArm:
limit: 2
required: false
enum.HumanoidVisualLayers.RArm:
limit: 1
required: true
default: [ AllulaloWingsDefault ]
enum.HumanoidVisualLayers.LLeg:
limit: 2
required: false
enum.HumanoidVisualLayers.RLeg:
limit: 2
required: false
enum.HumanoidVisualLayers.LFoot:
limit: 2
required: false
enum.HumanoidVisualLayers.RFoot:
limit: 2
required: false
# End Delta V Additions

View File

@ -7,3 +7,8 @@
id: echion
flavorType: Complex
description: flavor-complex-echion
- type: flavor
id: allulalo
flavorType: Complex
description: flavor-complex-allulalo

View File

@ -2,3 +2,8 @@
id: Thaven
name: species-name-thaven
text: "/ServerInfo/_Impstation/Guidebook/Mobs/Thaven.xml"
- type: guideEntry
id: Allulalo
name: species-name-allulalo
text: "/ServerInfo/_Impstation/Guidebook/Mobs/Allulalo.xml"

View File

@ -0,0 +1,126 @@
- type: inventoryTemplate #copy of human. made its own file for posterity
id: allulalo
slots:
- name: shoes
slotTexture: shoes
slotFlags: FEET
stripTime: 3
uiWindowPos: 1,0
strippingWindowPos: 1,3
displayName: Shoes
- name: jumpsuit
slotTexture: uniform
slotFlags: INNERCLOTHING
stripTime: 6
uiWindowPos: 0,1
strippingWindowPos: 0,2
displayName: Jumpsuit
- name: outerClothing
slotTexture: suit
slotFlags: OUTERCLOTHING
stripTime: 6
uiWindowPos: 1,1
strippingWindowPos: 1,2
displayName: Suit
- name: gloves
slotTexture: gloves
slotFlags: GLOVES
uiWindowPos: 2,1
strippingWindowPos: 2,2
displayName: Gloves
- name: neck
slotTexture: neck
slotFlags: NECK
uiWindowPos: 0,2
strippingWindowPos: 0,1
displayName: Neck
- name: mask
slotTexture: mask
slotFlags: MASK
uiWindowPos: 1,2
strippingWindowPos: 1,1
displayName: Mask
- name: eyes
slotTexture: glasses
slotFlags: EYES
stripTime: 3
uiWindowPos: 0,3
strippingWindowPos: 0,0
displayName: Eyes
- name: ears
slotTexture: ears
slotFlags: EARS
stripTime: 3
uiWindowPos: 2,2
strippingWindowPos: 2,0
displayName: Ears
- name: head
slotTexture: head
slotFlags: HEAD
uiWindowPos: 1,3
strippingWindowPos: 1,0
displayName: Head
- name: pocket1
slotTexture: pocket
fullTextureName: template_small
slotFlags: POCKET
slotGroup: MainHotbar
stripTime: 3
uiWindowPos: 0,3
strippingWindowPos: 0,4
dependsOn: jumpsuit
displayName: Pocket 1
stripHidden: true
- name: pocket2
slotTexture: pocket
fullTextureName: template_small
slotFlags: POCKET
slotGroup: MainHotbar
stripTime: 3
uiWindowPos: 2,3
strippingWindowPos: 1,4
dependsOn: jumpsuit
displayName: Pocket 2
stripHidden: true
- name: suitstorage
slotTexture: suit_storage
slotFlags: SUITSTORAGE
slotGroup: MainHotbar
stripTime: 3
uiWindowPos: 2,0
strippingWindowPos: 2,5
dependsOn: outerClothing
dependsOnComponents:
- type: AllowSuitStorage
displayName: Suit Storage
- name: id
slotTexture: id
fullTextureName: template_small
slotFlags: IDCARD
slotGroup: SecondHotbar
stripTime: 6
uiWindowPos: 2,1
strippingWindowPos: 2,4
dependsOn: jumpsuit
displayName: ID
- name: belt
slotTexture: belt
fullTextureName: template_small
slotFlags: BELT
slotGroup: SecondHotbar
stripTime: 6
uiWindowPos: 3,1
strippingWindowPos: 1,5
displayName: Belt
- name: back
slotTexture: back
fullTextureName: template_small
slotFlags: BACK
slotGroup: SecondHotbar
stripTime: 6
uiWindowPos: 3,0
strippingWindowPos: 0,5
displayName: Back
blacklist:
tags:
- PetOnly

View File

@ -0,0 +1,29 @@
- type: reagent
id: BloodAllulalo
name: reagent-name-bloodallulalo
group: Biological
desc: reagent-desc-bloodallulalo
physicalDesc: reagent-physical-desc-thin
flavor: allulalo
color: "#c1c7d3"
evaporationSpeed: 0.3 #same as water
metabolisms: #have to redefine from basealcohol otherwise its slippery which is a hell of a can of worms for a species
Digestion: # Delta V - Was Drink, update for Nubody
effects:
- !type:SatiateThirst
factor: 2
metabolites: # Delta V - update for Nubody
Ethanol: 0.06
reactiveEffects:
Flammable:
methods: [ Touch ]
effects:
- !type:Flammable
tileReactions:
- !type:FlammableTileReaction
temperatureMultiplier: 1.35
plantMetabolism:
- !type:PlantAdjustNutrition
amount: 0.25
- !type:PlantAdjustWater
amount: 0.7

View File

@ -0,0 +1,33 @@
- type: reagent
id: Ethanotoxin #allulalo bite toxin. does poison damage but injects adrenaline, reduces bleeding and reduces stun time
name: reagent-name-ethanotoxin
group: Toxins
desc: reagent-desc-ethanotoxin
flavor: sour
color: "#cbbfe6"
physicalDesc: reagent-physical-desc-acrid
metabolisms:
# Should you be injecting this in a friendly? maybe
Bloodstream: # Delta V - Was Medicine, update for Nubody
effects:
- !type:HealthChange
damage:
types:
Poison: 1
- !type:ModifyBleed # Delta V - was ModifyBleedAmount
amount: -2
- !type:AdjustReagent
reagent: Ethanol
amount: 0.1
- !type:GenericStatusEffect
key: Adrenaline # This is half-ish strength epi
component: IgnoreSlowOnDamage
time: 1.5
- !type:GenericStatusEffect
key: Stun
time: 0.5
type: Remove
- !type:GenericStatusEffect
key: KnockedDown
time: 0.5
type: Remove

View File

@ -0,0 +1,13 @@
- type: soundCollection
id: UnisexSneezes
files:
- /Audio/Voice/Human/male_sneeze_1.ogg
- /Audio/Voice/Human/female_sneeze_1.ogg
- type: soundCollection
id: UnisexCoughs
files:
- /Audio/Voice/Human/male_cough_1.ogg
- /Audio/Voice/Human/male_cough_2.ogg
- /Audio/Voice/Human/female_cough_1.ogg
- /Audio/Voice/Human/female_cough_2.ogg

View File

@ -0,0 +1,163 @@
- type: species
id: Allulalo
name: species-name-allulalo
roundStart: true
prototype: MobAllulalo
defaultSkinTone: "#385878"
#markingLimits: MobAllulaloMarkingLimits # Delta V - Nubody
dollPrototype: AppearanceAllulalo # Delta V - Nubody
skinColoration: Hues
maleFirstNames: AllulaloFirstNames
femaleFirstNames: AllulaloFirstNames
lastNames: AllulaloLastNames
sexes:
- Male
- Female
- Unsexed
# Begin Delta V Removals - Changes for Nubody
#- type: speciesBaseSprites
# id: MobAllulaloSprites
# sprites:
# TailBehind: MobHumanoidAnyMarking # floof
# TailOversuit: MobHumanoidAnyMarking # floof
# Eyes: MobAllulaloEyes
# Head: MobAllulaloHead
# HeadTop: MobHumanoidAnyMarking
# Hair: MobHumanoidAnyMarking
# Chest: MobAllulaloTorso
# LArm: MobAllulaloLArm
# RArm: MobAllulaloRArm
# LHand: MobAllulaloLHand
# LLeg: MobAllulaloLLeg
# RLeg: MobAllulaloRLeg
# LFoot: MobAllulaloLFoot
# RFoot: MobAllulaloRFoot
# Tail: MobHumanoidAnyMarking
# Snout: MobHumanoidAnyMarking
#
#- type: markingPoints
# id: MobAllulaloMarkingLimits
# onlyWhitelisted: true
# points:
# Hair:
# points: 1
# required: false
# Eyes:
# points: 1
# required: true
# defaultMarkings: [ AllulaloEyesDefault ]
# Head:
# points: 3
# required: false
# HeadTop:
# points: 1
# required: false
# UndergarmentTop:
# points: 1
# required: false
# Chest:
# points: 2
# required: false
# Tail:
# points: 1
# required: true
# defaultMarkings: [ AllulaloTailDefault ]
# Snout:
# points: 1
# required: false
# Overlay:
# points: 1
# required: false
# Arms:
# points: 1
# required: true
# defaultMarkings: [ AllulaloWingsDefault ]
# Legs:
# points: 2
# required: false
#
#- type: humanoidBaseSprite
# id: MobAllulaloEyes
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: eyes
#
#- type: humanoidBaseSprite
# id: MobAllulaloHead
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: head
#
#- type: humanoidBaseSprite
# id: MobAllulaloHeadMale
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: head
#
#- type: humanoidBaseSprite
# id: MobAllulaloHeadFemale
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: head
#
#- type: humanoidBaseSprite
# id: MobAllulaloTorso
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: torso
#
#- type: humanoidBaseSprite
# id: MobAllulaloTorsoMale
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: torso
#
#- type: humanoidBaseSprite
# id: MobAllulaloTorsoFemale
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: torso
#
#- type: humanoidBaseSprite
# id: MobAllulaloLLeg
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: l_leg
#
#- type: humanoidBaseSprite
# id: MobAllulaloLHand
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: hands
#
#- type: humanoidBaseSprite
# id: MobAllulaloLArm
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: l_arm
#
#- type: humanoidBaseSprite
# id: MobAllulaloLFoot
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: l_foot
#
#- type: humanoidBaseSprite
# id: MobAllulaloRLeg
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: r_leg
#
#- type: humanoidBaseSprite
# id: MobAllulaloRArm
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: r_arm
#
#- type: humanoidBaseSprite
# id: MobAllulaloRFoot
# baseSprite:
# sprite: _Impstation/Mobs/Species/Allulalo/parts.rsi
# state: r_foot
# End Delta V Removals

View File

@ -127,3 +127,45 @@
params:
variation: 0.05
pitch: 1.25
- type: emoteSounds
id: Allulalo
params:
variation: 0.125
sounds:
Scream:
path: /Audio/_Impstation/Allulalo/allulalo_scream.ogg
Laugh:
path: /Audio/_Impstation/Allulalo/allulalo_laugh.ogg
Hiss:
collection: VoxHiss
params:
volume: -5
Chitter:
path: /Audio/_Impstation/Allulalo/allulalo_chitter.ogg
Sneeze:
collection: UnisexSneezes #placeholder
Cough:
collection: UnisexCoughs #placeholder
Yawn:
path: /Audio/_Impstation/Allulalo/allulalo_say.ogg
Honk:
collection: BikeHorn
Sigh:
path: /Audio/_Impstation/Allulalo/allulalo_say.ogg #placeholder
Whistle:
collection: Whistles
Crying:
path: /Audio/_Impstation/Allulalo/allulalo_cry.ogg
Weh:
collection: Weh
# Wuhey: # Delta V - We just don't have these I think
# collection: Wuhey
# Ungh:
# collection: Ungh
Gasp:
path: /Audio/_Impstation/Allulalo/allulalo_say.ogg
DefaultDeathgasp:
/Audio/_Impstation/Allulalo/allulalo_deathgasp.ogg
Gulp: # Delta V
path: /Audio/_Goobstation/Voice/gulpexotic.ogg

View File

@ -6,3 +6,12 @@
collection: ToySqueak
exclaimSound:
collection: ToySqueak
- type: speechSounds
id: Allulalo
saySound:
path: /Audio/_Impstation/Allulalo/allulalo_say.ogg
askSound:
path: /Audio/_Impstation/Allulalo/allulalo_ask.ogg
exclaimSound:
path: /Audio/_Impstation/Allulalo/allulalo_exclaim.ogg

View File

@ -0,0 +1,8 @@
- type: speechVerb
id: Allulalo
name: chat-speech-verb-name-allulalo
speechVerbStrings:
- chat-speech-verb-allulalo-1
- chat-speech-verb-allulalo-2
- chat-speech-verb-allulalo-3
- chat-speech-verb-allulalo-4

View File

@ -0,0 +1,6 @@
- type: typingIndicator
id: allulalo
spritePath: /Textures/_Impstation/Effects/speech.rsi
typingState: allulalo
idleState: allulalo-idle
offset: -0.45, 0.35

View File

@ -28,5 +28,6 @@
<GuideEntityEmbed Entity="AppearanceFeroxi" Caption="Feroxi"/>
<GuideEntityEmbed Entity="AppearanceKitsune" Caption="Kitsune"/>
<GuideEntityEmbed Entity="AppearanceOvinia" Caption="Ovinia"/>
<GuideEntityEmbed Entity="AppearanceAllulalo" Caption="Allulalo"/>
</Box>
</Document>

View File

@ -0,0 +1,57 @@
<Document>
# Allulalo
<Box>
<GuideEntityEmbed Entity="MobAllulalo" Caption=""/>
</Box>
[color=red]Caution! This species has several SEVERELY limiting game mechanics and is only recommended for highly experienced players. Some jobs and tasks may be difficult or impossible to perform by yourself with only one hand.[/color]
Allulalo are a reclusive species of saurians native to the IMP-sector outer nebulae. They are rarely seen, preferring to conceal their cities deep inside asteroid fields and mask their movements with stealth fields or radio jammers. Although investigations into whether they pose a security risk to nearby stations is ongoing, successful agreements have been brokered to enable small-scale contact and occasional employment of Allulalo among Nanotrasen staff.
Observation records confirm higher land-speeds than traditionally seen among humanoids, but the unusual, pentafurcated beak they use for manipulating in the place of traditional "hands" seems to [color=#ffa500]prevent them from wielding any large weaponry.[/color] Their height also makes them unable to interface with most NT standard devices, and they are frequently seen [color=#ffa500]standing on chairs and tables or using anti-gravity technology to reach the controls.[/color]
<Box>
<GuideEntityEmbed Entity="ComputerAlert" Caption=""/>
<GuideEntityEmbed Entity="VendingMachineCigs" Caption=""/>
<GuideEntityEmbed Entity="Autolathe" Caption=""/>
</Box>
# Biology
Allulalo have hollow bones, which results in them taking [color=#ffa500]15% more brute damage[/color]. They are also [color=#ffa500]25% more vulnerable to stuns, and their low body mass causes them to be thrown farther by impacts[/color].
Allulalo also have hyperactive hearts, which results in them [color=#ffa500]metabolising Medicine, Poisons and Narcotics 50% faster[/color]. Their heart's already-strained musculature also causes speed-increasing reagents to be [color=#ffa500]Significantly less effective.[/color], as well as causing them to burn energy faster and become [color=#ffa500]hungry and thirsty sooner than their peers[/color].
It is easy to underestimate Allulalo due to these drawbacks, but they have a major strength: [color=#1e90ff]They are incredibly mobile, and can easily outpace most humanoid species[/color].
Allulalo are also in unique posession of a highly methylated bloodstream. Due to this, [color=#1e90ff]their blood naturally evaporates on its own[/color], as well as making them [color=#1e90ff]remarkably heavyweight drinkers[/color] for their body weight.
In addition to their methylated blood, their beak saliva contains [color=#1e90ff]small amounts[/color] of the [color=#1e90ff]blood clotting agent and adreno-stimulant ethanotoxin[/color]. Allulalo have been recorded biting eachother in critical situations in order to clot wounds and boost adrenaline, but there appears to be [color=#ffa500]a lengthy delay to the toxin replenishing after repeated use[/color].
<Box>
<GuideEntityEmbed Entity="DrinkAbsintheBottleFull" Caption=""/>
</Box>
# Physical Strength
Allulalo have naturally lower body mass due to their small stature, and as such have difficulty dragging things larger than themselves.
Additionally, their smaller size [color=#1e90ff]allows them to pilot VIMs[/color].
<Box>
<GuideEntityEmbed Entity="MechVimBattery" Caption=""/>
</Box>
## Allulalo Naming Conventions
Allulalo names are comprised of two parts. The first half is similar in function to a human's, while the last half is a conjunction of the first syllables of both of their parent's names.
- [color=#449944]Acceptable:[/color] Halio Hera-Nofa
- [color=#449944]Acceptable:[/color] Sadita Ona-Rona
- [color=#449944]Acceptable:[/color] Unira Lota-Pota
- [color=#994444]Bad:[/color] Waga Baga-Bobo
- [color=#994444]Bad:[/color] Pete Pee-Pee
- [color=#994444]Bad:[/color] Benry
</Document>

View File

@ -0,0 +1,59 @@
<Document>
# CLASSIFIED
<Box>
<GuideEntityEmbed Entity="ClothingHeadHatCentcomcap" Caption="FOR YOUR EYES ONLY"/>
</Box>
# DESTROY AFTER READING.
[color=red]Caution! This species has several SEVERELY limiting game mechanics and is only recommended for highly experienced players. Some jobs and tasks may be difficult or impossible to perform by yourself with only one hand.[/color]
████████ ███ █ reclusive species of sauropods native to the ███-██████ outer nebulae. ████ ███ rarely seen, █████████ ██ conceal their cities ████ ██████ asteroid fields and mask their movements with ███████ ██████ or █████ ██████. Investigations into whether they pose a security risk to nearby stations is ongoing, but outside of rare sightings among shuttle crews, █████ ███████ ██████ ███ ████████████ ████████ ████████.
█████████ ██████ ███████ higher land-speeds than traditionally seen █████ █████████, ███ ███ unusual, pentafurcated beak ████ ███ ███ ███████████ ██ ███ █████ ██ ██████████ "█████" █████ ██ [color=#ffa500]prevent them from wielding any large weaponry.[/color] Their height ████ █████ ████ █████ ██ interface with most NT standard devices, ███ ████ ███ ████████ seen [color=#ffa500]standing on chairs and tables[/color] ██ █████ [color=#ffa500]anti-gravity technology [/color]██ █████ ███ ███████.
<Box>
<GuideEntityEmbed Entity="ComputerAlert" Caption=""/>
<GuideEntityEmbed Entity="VendingMachineCigs" Caption=""/>
<GuideEntityEmbed Entity="Autolathe" Caption=""/>
</Box>
# Biology
████████ do not have any abnormalities in their resistance to damage, but are [color=#ffa500]25% more vulnerable to stuns, and their low body mass causes them to be thrown farther by impacts[/color].
██ ██ easy to underestimate ████████ due to these drawbacks, but ████ ████ █ major strength: [color=#1e90ff]They are incredibly mobile, and can easily outpace most humanoid species[/color].
████████ ███ ████ ██ unique posession of a highly methylated bloodstream. Due to this, [color=#1e90ff]their blood naturally evaporates on its own[/color], ██ ████ ██ ██████ ████ [color=#1e90ff]remarkably heavyweight drinkers[/color] for their body weight.
██ ████████ ██ █████ ███████████ █████, their beak saliva ████████ small amounts of the [color=#1e90ff]blood clotting agent and adreno-stimulant ethanotoxin[/color], ███████ ████ ████ ████████ ██████ ████████ ██ ████████ █████████ in order to clot wounds and boost adrenaline.
<Box>
<GuideEntityEmbed Entity="DrinkAbsintheBottleFull" Caption=""/>
</Box>
# Physical Strength
████████ ████ naturally lower body mass due to █████ █████ ██████, ███ ██ ████ ████ difficulty dragging things larger than themselves.
As a result of both this and their lack of ███████ "█████", ████████ ███ uniquely poised to benefit from science research such as [color=#1e90ff]HARMpacks[/color] and [color=#1e90ff]tether guns[/color], ███ █████ ██████ ████ [color=#1e90ff]allows them to pilot VIMs[/color].
<Box>
<GuideEntityEmbed Entity="MechVimBattery" Caption=""/>
<GuideEntityEmbed Entity="ClothingBackpackHarmpack" Caption=""/>
<GuideEntityEmbed Entity="WeaponTetherGun" Caption=""/>
</Box>
## Naming Conventions
████████ names are comprised of two parts. ███ first half ██ similar in function to a human's, █████ ███ last half ██ █ conjunction ██ ███ █████ ████████ ██ ████ ██ █████ ███████ █████.
- [color=#449944]Acceptable:[/color] Halio Hera-Nofa
- [color=#449944]Acceptable:[/color] Sadita Ona-Rona
- [color=#449944]Acceptable:[/color] Unira Lota-Pota
- [color=#994444]Bad:[/color] Waga Baga-Bobo
- [color=#994444]Bad:[/color] Pete Pee-Pee
- [color=#994444]Bad:[/color] Benry
</Document>

View File

@ -21,6 +21,9 @@
{
"name": "inhand-right",
"directions": 4
},
{
"name": "storage"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

View File

@ -0,0 +1,21 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "sprited by kipdotnet (github) for Impstation",
"states": [
{
"name": "allulalo_bite",
"delays": [
[
0.1,
0.1,
0.1
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

View File

@ -0,0 +1,31 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "gray and ungu typing indicators by starlighthowls for impstation, snail typing indicators by widgetbeck for impstation, kodepiia typing indicators by LazyRiverfolk for impstation.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "allulalo",
"delays": [
[
0.3,
0.3,
0.3,
0.3
]
]
},
{
"name": "allulalo-idle",
"delays": [
[
1.0,
1.0
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

View File

@ -0,0 +1,39 @@
{
"version": 1,
"copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
"license": "CC-BY-SA-4.0",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "allulaloArmDefaultLeft",
"directions": 4
},
{
"name": "allulaloArmDefaultRight",
"directions": 4
},
{
"name": "allulaloArmSplit1",
"directions": 4
},
{
"name": "allulaloArmSplit2",
"directions": 4
},
{
"name": "allulaloArmOwl1",
"directions": 4
},
{
"name": "allulaloArmOwl2",
"directions": 4
},
{
"name": "allulaloArmOwl3",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

View File

@ -0,0 +1,19 @@
{
"version": 1,
"copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
"license": "CC-BY-SA-4.0",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "allulaloChestUnderbelly",
"directions": 4
},
{
"name": "allulaloChestHeartMonitor",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

View File

@ -0,0 +1,27 @@
{
"version": 1,
"copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
"license": "CC-BY-SA-4.0",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "allulaloEyesDefaultLeft",
"directions": 4
},
{
"name": "allulaloEyesDefaultRight",
"directions": 4
},
{
"name": "allulaloEyesUnshadedLeft",
"directions": 4
},
{
"name": "allulaloEyesUnshadedRight",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

View File

@ -0,0 +1,31 @@
{
"version": 1,
"copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation, plumage sprites by LandsharkRAWR",
"license": "CC-BY-SA-4.0",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "allulaloHeadUnderbelly",
"directions": 4
},
{
"name": "allulaloHeadNeckFluff",
"directions": 4
},
{
"name": "allulaloHeadSpikes",
"directions": 4
},
{
"name": "allulaloHeadNeckPlumageProud",
"directions": 4
},
{
"name": "allulaloHeadNeckPlumageOutrageous",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 B

Some files were not shown because too many files have changed in this diff Show More