Visually updates contents of the beaker

also adds new syringe sprite from eris
also adds colors to ALL reagents
This commit is contained in:
Injazz
2020-04-09 16:43:56 +05:00
parent 4174891c87
commit 8f580ecc1b
96 changed files with 107 additions and 43 deletions

View File

@@ -9,6 +9,8 @@ using Content.Server.GameObjects.EntitySystems;
using Content.Server.Interfaces;
using Content.Shared.Chemistry;
using Content.Shared.GameObjects;
using Content.Shared.Utility;
using Robust.Server.GameObjects;
using Robust.Server.GameObjects.EntitySystems;
using Robust.Shared.GameObjects;
using Robust.Shared.Interfaces.GameObjects;
@@ -38,11 +40,17 @@ namespace Content.Server.GameObjects.Components.Chemistry
private AudioSystem _audioSystem;
private ChemistrySystem _chemistrySystem;
private SpriteComponent _spriteComponent;
[ViewVariables]
protected Solution _containedSolution = new Solution();
protected int _maxVolume;
private SolutionCaps _capabilities;
private string _fillInitState;
private int _fillInitSteps;
private string _fillPathString = "Objects/Chemistry/fillings.rsi";
private ResourcePath _fillPath;
private SpriteSpecifier _fillSprite;
/// <summary>
/// The maximum volume of the container.
/// </summary>
@@ -108,6 +116,8 @@ namespace Content.Server.GameObjects.Components.Chemistry
serializer.DataField(ref _maxVolume, "maxVol", 0);
serializer.DataField(ref _containedSolution, "contents", _containedSolution);
serializer.DataField(ref _capabilities, "caps", SolutionCaps.None);
serializer.DataField(ref _fillInitState, "fillingState", "");
serializer.DataField(ref _fillInitSteps, "fillingSteps", 7);
}
public override void Initialize()
@@ -116,23 +126,20 @@ namespace Content.Server.GameObjects.Components.Chemistry
_audioSystem = _entitySystemManager.GetEntitySystem<AudioSystem>();
_chemistrySystem = _entitySystemManager.GetEntitySystem<ChemistrySystem>();
_reactions = _prototypeManager.EnumeratePrototypes<ReactionPrototype>();
}
protected override void Startup()
{
base.Startup();
RecalculateColor();
}
/// <summary>
/// Initializes the SolutionComponent if it doesn't have an owner
/// </summary>
public void InitializeFromPrototype()
if (!string.IsNullOrEmpty(_fillInitState))
{
// Because Initialize needs an Owner, Startup isn't called, etc.
IoCManager.InjectDependencies(this);
_reactions = _prototypeManager.EnumeratePrototypes<ReactionPrototype>();
_spriteComponent = Owner.GetComponent<SpriteComponent>();
_fillPath = new ResourcePath(_fillPathString);
_fillSprite = new SpriteSpecifier.Rsi(_fillPath, _fillInitState + (_fillInitSteps - 1));
_spriteComponent.AddLayerWithSprite(_fillSprite);
UpdateFillIcon();
}
}
/// <inheritdoc />
@@ -147,7 +154,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
public void RemoveAllSolution()
{
_containedSolution.RemoveAllSolution();
OnSolutionChanged();
OnSolutionChanged(false);
}
public bool TryRemoveReagent(string reagentId, int quantity)
@@ -155,7 +162,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
if (!ContainsReagent(reagentId, out var currentQuantity)) return false;
_containedSolution.RemoveReagent(reagentId, quantity);
OnSolutionChanged();
OnSolutionChanged(false);
return true;
}
@@ -170,21 +177,24 @@ namespace Content.Server.GameObjects.Components.Chemistry
return false;
_containedSolution.RemoveSolution(quantity);
OnSolutionChanged();
OnSolutionChanged(false);
return true;
}
public Solution SplitSolution(int quantity)
{
var solutionSplit = _containedSolution.SplitSolution(quantity);
OnSolutionChanged();
OnSolutionChanged(false);
return solutionSplit;
}
protected void RecalculateColor()
{
if (_containedSolution.TotalVolume == 0)
SubstanceColor = Color.White;
{
SubstanceColor = Color.Transparent;
return;
}
Color mixColor = default;
float runningTotalQuantity = 0;
@@ -195,25 +205,15 @@ namespace Content.Server.GameObjects.Components.Chemistry
if(!_prototypeManager.TryIndex(reagent.ReagentId, out ReagentPrototype proto))
continue;
if (mixColor == default)
mixColor = proto.SubstanceColor;
mixColor = BlendRGB(mixColor, proto.SubstanceColor, reagent.Quantity / runningTotalQuantity);
}
mixColor = Color.InterpolateBetween(mixColor, proto.SubstanceColor,
(1 / runningTotalQuantity) * reagent.Quantity);
}
private Color BlendRGB(Color rgb1, Color rgb2, float amount)
{
var r = (float)Math.Round(rgb1.R + (rgb2.R - rgb1.R) * amount, 1);
var g = (float)Math.Round(rgb1.G + (rgb2.G - rgb1.G) * amount, 1);
var b = (float)Math.Round(rgb1.B + (rgb2.B - rgb1.B) * amount, 1);
var alpha = (float)Math.Round(rgb1.A + (rgb2.A - rgb1.A) * amount, 1);
return new Color(r, g, b, alpha);
SubstanceColor = mixColor;
}
/// <summary>
/// Transfers solution from the held container to the target container.
/// </summary>
@@ -400,12 +400,9 @@ namespace Content.Server.GameObjects.Components.Chemistry
}
_containedSolution.AddReagent(reagentId, acceptedQuantity);
if (!skipColor) {
RecalculateColor();
}
if(!skipReactionCheck)
CheckForReaction();
OnSolutionChanged();
OnSolutionChanged(skipColor);
return true;
}
@@ -415,12 +412,9 @@ namespace Content.Server.GameObjects.Components.Chemistry
return false;
_containedSolution.AddSolution(solution);
if (!skipColor) {
RecalculateColor();
}
if(!skipReactionCheck)
CheckForReaction();
_chemistrySystem.HandleSolutionChange(Owner);
OnSolutionChanged(skipColor);
return true;
}
@@ -519,6 +513,32 @@ namespace Content.Server.GameObjects.Components.Chemistry
return majorReagent.ReagentId;
}
protected virtual void OnSolutionChanged() => _chemistrySystem.HandleSolutionChange(Owner);
protected void UpdateFillIcon()
{
if (string.IsNullOrEmpty(_fillInitState)) return;
var percentage = (double)CurrentVolume / MaxVolume;
var level = ContentHelpers.RoundToLevels(percentage * 100, 100, _fillInitSteps);
//Transformed glass uses special fancy sprites so we don't bother
if (level == 0 || Owner.TryGetComponent<TransformableContainerComponent>(out var transformableContainerComponent)
&& transformableContainerComponent.Transformed)
{
_spriteComponent.LayerSetColor(1, Color.Transparent);
return;
}
_fillSprite = new SpriteSpecifier.Rsi(_fillPath, _fillInitState+level);
_spriteComponent.LayerSetSprite(1, _fillSprite);
_spriteComponent.LayerSetColor(1,SubstanceColor);
}
protected virtual void OnSolutionChanged(bool skipColor)
{
if (!skipColor)
RecalculateColor();
UpdateFillIcon();
_chemistrySystem.HandleSolutionChange(Owner);
}
}
}

View File

@@ -20,6 +20,9 @@ namespace Content.Server.GameObjects.Components.Chemistry
public override string Name => "TransformableContainer";
private bool _transformed = false;
public bool Transformed { get => _transformed; }
private SpriteSpecifier _initialSprite;
private string _initialName;
private string _initialDescription;
@@ -46,6 +49,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
public void CancelTransformation()
{
_currentReagent = null;
_transformed = false;
_sprite.LayerSetSprite(0, _initialSprite);
Owner.Name = _initialName;
//Owner.Description = _initialDescription;
@@ -79,6 +83,7 @@ namespace Content.Server.GameObjects.Components.Chemistry
Owner.Name = proto.Name + " glass";
//Owner.Description = proto.Description;
_currentReagent = proto;
_transformed = true;
}
}
}

View File

@@ -29,6 +29,7 @@
- type: Icon
sprite: Objects/Drinks/glass_clear.rsi
- type: Solution
fillingState: glass
maxVol: 50
caps: 16
- type: Drink

View File

@@ -9,6 +9,7 @@
- type: Icon
texture: Objects/Chemistry/chemicals.rsi/beaker.png
- type: Solution
fillingState: beaker
maxVol: 50
caps: 27
- type: Pourable
@@ -25,6 +26,7 @@
- type: Icon
texture: Objects/Chemistry/chemicals.rsi/beakerlarge.png
- type: Solution
fillingState: beakerlarge
maxVol: 100
caps: 27
- type: Pourable
@@ -41,6 +43,8 @@
- type: Icon
texture: Objects/Chemistry/chemicals.rsi/dropper.png
- type: Solution
fillingState: dropper
fillingSteps: 2
maxVol: 5
caps: 19
- type: Pourable
@@ -53,10 +57,12 @@
id: Syringe
components:
- type: Sprite
texture: Objects/Chemistry/chemicals.rsi/syringeproj.png
texture: Objects/Chemistry/syringe.rsi/0.png
- type: Icon
texture: Objects/Chemistry/chemicals.rsi/syringeproj.png
texture: Objects/Chemistry/syringe.rsi/0.png
- type: Solution
fillingState: syringe
fillingSteps: 5
maxVol: 15
caps: 19
- type: Injector

View File

@@ -2,6 +2,7 @@
id: chem.Nutriment
name: Nutriment
desc: Generic nutrition
color: "#664330"
metabolism:
- !type:DefaultFood
rate: 1
@@ -10,11 +11,13 @@
id: chem.H2SO4
name: Sulfuric Acid
desc: A highly corrosive, oily, colorless liquid.
color: "#BF8C00"
- type: reagent
id: chem.H2O
name: Water
desc: A tasty colorless liquid.
color: "#808080"
metabolism:
- !type:DefaultDrink
rate: 1
@@ -29,6 +32,7 @@
id: chem.Plasma
name: Plasma
desc: Funky, space-magic pixie dust. You probably shouldn't eat this, but we both know you will anyways.
color: "#500064"
- type: reagent
id: chem.Ethanol

View File

@@ -2,101 +2,118 @@
id: chem.Whiskey
name: Whiskey
desc: An alcoholic beverage made from fermented grain mash
color: "#664300"
spritePath: whiskeyglass.rsi
- type: reagent
id: chem.Ale
name: Ale
desc: A type of beer brewed using a warm fermentation method, resulting in a sweet, full-bodied and fruity taste.
color: "#664300"
spritePath: aleglass.rsi
- type: reagent
id: chem.Wine
name: Wine
desc: An alcoholic drink made from fermented grapes
color: "#7E4043"
spritePath: wineglass.rsi
- type: reagent
id: chem.Beer
name: Beer
desc: A cold pint of pale lager.
color: "#664300"
spritePath: beerglass.rsi
- type: reagent
id: chem.Vodka
name: Vodka
desc: The glass contain wodka. Xynta.
color: "#664300"
- type: reagent
id: chem.Kahlua
name: Kahlua
desc: A widely known, Mexican coffee-flavoured liqueur. In production since 1936!
color: "#664300"
spritePath: kahluaglass.rsi
- type: reagent
id: chem.Cognac
name: Cognac
desc: A sweet and strongly alcoholic drink, twice distilled and left to mature for several years. Classy as fornication.
color: "#AB3C05"
spritePath: cognacglass.rsi
- type: reagent
id: chem.ManlyDorf
name: Manly Dorf
desc: A dwarfy concoction made from ale and beer. Intended for stout dwarves only.
color: "#664300"
spritePath: manlydorfglass.rsi
- type: reagent
id: chem.CubaLibre
name: Cuba Libre
desc: A classic mix of rum and cola.
color: "#3E1B00"
spritePath: cubalibreglass.rsi
- type: reagent
id: chem.IrishCarBomb
name: Irish Car Bomb
desc: A troubling mixture of irish cream and ale.
color: "#2E6671"
spritePath: irishcarbomb.rsi
- type: reagent
id: chem.IrishCoffee
name: Irish Coffee
desc: Coffee served with irish cream. Regular cream just isn't the same!
color: "#664300"
spritePath: irishcoffeeglass.rsi
- type: reagent
id: chem.IrishCream
name: Irish Cream
desc: Whiskey-imbued cream. What else could you expect from the Irish.
color: "#664300"
spritePath: irishcreamglass.rsi
- type: reagent
id: chem.B52
name: B-52
desc: Coffee, irish cream, and cognac. You will get bombed.
color: "#664300"
spritePath: b52glass.rsi
- type: reagent
id: chem.AtomicBomb
name: Atomic Bomb
desc: Nuclear proliferation never tasted so good.
color: "#666300"
spritePath: atomicbombglass.rsi
- type: reagent
id: chem.WhiskeyCola
name: Whiskey Cola
desc: An innocent-looking mixture of cola and whiskey. Delicious.
color: "#3E1B00"
spritePath: whiskeycolaglass.rsi
- type: reagent
id: chem.SyndicateBomb
name: Syndicate Bomb
desc: Somebody set us up the bomb!
color: "#2E6671"
spritePath: syndicatebomb.rsi
- type: reagent
id: chem.Antifreeze
name: Antifreeze
desc: The ultimate refreshment.
color: "#664300"
spritePath: antifreeze.rsi
@@ -104,6 +121,7 @@
id: chem.Cola
name: Cola
desc: A sweet, carbonated soft drink. Caffeine free.
color: "#100800"
metabolism:
- !type:DefaultDrink
rate: 1
@@ -112,6 +130,7 @@
id: chem.Coffee
name: Coffee
desc: A drink made from brewed coffee beans. Contains a moderate amount of caffeine.
color: "#664300"
metabolism:
- !type:DefaultDrink
rate: 1
@@ -120,6 +139,7 @@
id: chem.Tea
name: Tea
desc: A made by boiling leaves of the tea tree, Camellia sinensis.
color: "#101000"
metabolism:
- !type:DefaultDrink
rate: 1
@@ -128,6 +148,7 @@
id: chem.Cream
name: Cream
desc: The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?
color: "#DFD7AF"
metabolism:
- !type:DefaultDrink
rate: 1
@@ -136,6 +157,7 @@
id: chem.Milk
name: Milk
desc: An opaque white liquid produced by the mammary glands of mammals.
color: "#DFDFDF"
metabolism:
- !type:DefaultDrink
rate: 1

View File

@@ -2,11 +2,13 @@
id: chem.H
name: Hydrogen
desc: A light, flammable gas.
color: "#808080"
- type: reagent
id: chem.O
name: Oxygen
desc: An oxidizing, colorless gas.
color: "#808080"
- type: reagent
id: chem.S
@@ -36,6 +38,7 @@
id: chem.N
name: Nitrogen
desc: A colorless, odorless unreactive gas. Highly stable.
color: "#808080"
- type: reagent
id: chem.Fe
@@ -47,6 +50,7 @@
id: chem.F
name: Fluorine
desc: A highly toxic pale yellow gas. Extremely reactive.
color: "#808080"
- type: reagent
id: chem.Si

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

View File

@@ -0,0 +1 @@
{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "backpack1", "directions": 1, "delays": [[1.0]]}, {"name": "backpack2", "directions": 1, "delays": [[1.0]]}, {"name": "backpackmob1", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "backpackmob2", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "beaker1", "directions": 1, "delays": [[1.0]]}, {"name": "beaker2", "directions": 1, "delays": [[1.0]]}, {"name": "beaker3", "directions": 1, "delays": [[1.0]]}, {"name": "beaker4", "directions": 1, "delays": [[1.0]]}, {"name": "beaker5", "directions": 1, "delays": [[1.0]]}, {"name": "beaker6", "directions": 1, "delays": [[1.0]]}, {"name": "beakerlarge1", "directions": 1, "delays": [[1.0]]}, {"name": "beakerlarge2", "directions": 1, "delays": [[1.0]]}, {"name": "beakerlarge3", "directions": 1, "delays": [[1.0]]}, {"name": "beakerlarge4", "directions": 1, "delays": [[1.0]]}, {"name": "beakerlarge5", "directions": 1, "delays": [[1.0]]}, {"name": "beakerlarge6", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-1-1", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-1-2", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-1-3", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-1-4", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-1-5", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-1-6", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-2-1", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-2-2", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-2-3", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-2-4", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-2-5", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-2-6", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-3-1", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-3-2", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-3-3", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-3-4", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-3-5", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-3-6", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-4-1", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-4-2", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-4-3", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-4-4", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-4-5", "directions": 1, "delays": [[1.0]]}, {"name": "bottle-4-6", "directions": 1, "delays": [[1.0]]}, {"name": "dropper1", "directions": 1, "delays": [[1.0]]}, {"name": "glass1", "directions": 1, "delays": [[1.0]]}, {"name": "glass2", "directions": 1, "delays": [[1.0]]}, {"name": "glass3", "directions": 1, "delays": [[1.0]]}, {"name": "glass4", "directions": 1, "delays": [[1.0]]}, {"name": "glass5", "directions": 1, "delays": [[1.0]]}, {"name": "glass6", "directions": 1, "delays": [[1.0]]}, {"name": "largebottle1", "directions": 1, "delays": [[1.0]]}, {"name": "largebottle2", "directions": 1, "delays": [[1.0]]}, {"name": "largebottle3", "directions": 1, "delays": [[1.0]]}, {"name": "largebottle4", "directions": 1, "delays": [[1.0]]}, {"name": "largebottle5", "directions": 1, "delays": [[1.0]]}, {"name": "largebottle6", "directions": 1, "delays": [[1.0]]}, {"name": "smallbottle1", "directions": 1, "delays": [[1.0]]}, {"name": "smallbottle2", "directions": 1, "delays": [[1.0]]}, {"name": "smallbottle3", "directions": 1, "delays": [[1.0]]}, {"name": "smallbottle4", "directions": 1, "delays": [[1.0]]}, {"name": "smallbottle5", "directions": 1, "delays": [[1.0]]}, {"name": "smallbottle6", "directions": 1, "delays": [[1.0]]}, {"name": "syringe1", "directions": 1, "delays": [[1.0]]}, {"name": "syringe2", "directions": 1, "delays": [[1.0]]}, {"name": "syringe3", "directions": 1, "delays": [[1.0]]}, {"name": "syringe4", "directions": 1, "delays": [[1.0]]}, {"name": "vial1", "directions": 1, "delays": [[1.0]]}, {"name": "vial2", "directions": 1, "delays": [[1.0]]}, {"name": "vial3", "directions": 1, "delays": [[1.0]]}, {"name": "vial4", "directions": 1, "delays": [[1.0]]}, {"name": "vial5", "directions": 1, "delays": [[1.0]]}, {"name": "vial6", "directions": 1, "delays": [[1.0]]}]}

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

View File

@@ -0,0 +1 @@
{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "0", "directions": 1, "delays": [[1.0]]}, {"name": "1", "directions": 1, "delays": [[1.0]]}, {"name": "10", "directions": 1, "delays": [[1.0]]}, {"name": "15", "directions": 1, "delays": [[1.0]]}, {"name": "5", "directions": 1, "delays": [[1.0]]}, {"name": "autoinjector", "directions": 1, "delays": [[1.0]]}, {"name": "autoinjector0", "directions": 1, "delays": [[1.0]]}, {"name": "autoinjector_black", "directions": 1, "delays": [[1.0]]}, {"name": "autoinjector_black0", "directions": 1, "delays": [[1.0]]}, {"name": "autoinjector_red", "directions": 1, "delays": [[1.0]]}, {"name": "autoinjector_red0", "directions": 1, "delays": [[1.0]]}, {"name": "borghypo", "directions": 1, "delays": [[1.0]]}, {"name": "borghypo_s", "directions": 1, "delays": [[1.0]]}, {"name": "broken", "directions": 1, "delays": [[1.0]]}, {"name": "combat_hypo", "directions": 1, "delays": [[1.0]]}, {"name": "draw", "directions": 1, "delays": [[1.0]]}, {"name": "hypo", "directions": 1, "delays": [[1.0]]}, {"name": "inject", "directions": 1, "delays": [[1.0]]}]}