Compare commits

...

33 Commits

Author SHA1 Message Date
Red
7a4537d6c0 Merge branch 'master' into ed-21-09-2025-armor-update 2025-10-02 11:23:05 +03:00
Kit
bc60036a29 poll results (#1820)
poll
2025-10-01 21:39:50 -04:00
nukkuminen
e8ae76eae5 QOL (#1817) 2025-10-01 12:57:13 -04:00
nukkuminen
67704f953f cats now climb on tables (#1816)
* cats now climb on tables

* pulling
2025-10-01 11:49:33 -04:00
CrystallEdge Server
dece65f3a7 Automatic changelog update 2025-10-01 17:45:15 +03:00
nukkuminen
bdcd379363 Kitties! Cats! Small carcats! (#1814)
* todo finish after cbt

* alright. it's working, somehow

* colored cars

* i'll fucking smash my head against the wall

* colored cars with spots

* i can't belive my eyes

* spawners, localization and some stuff

* rat hunters

* resolving stuff

* and this one too

* car

* car 2

* car 3

* 13

* car 4

* car 5

* car 6

* i hate rats

* car 7

* finally

* alldun!

* CARCATS 2 IS REAL
2025-10-01 17:44:08 +03:00
github-actions[bot]
f2ca5a9a89 @kin98 has signed the CLA in crystallpunk-14/crystall-punk-14#1815 2025-10-01 14:19:25 +00:00
CrystallEdge Server
d812103806 Automatic changelog update 2025-10-01 14:37:12 +03:00
nukkuminen
5cd90ec7e8 Tweaks for the alchemy (#1764)
* buff the antidote poison

* fix the hallucinogenic solution

* antidote isn't antidoting now
2025-10-01 07:36:06 -04:00
CrystallEdge Server
1053a8502a Automatic changelog update 2025-09-30 19:29:04 +03:00
Nim
60946749a8 Snail (#1753)
* snail

* sack snail

* gib on step

* comment

* chance step trigger

* timed spawner

* Respirator

* GhostRole

* Speech

* Hunger

* Thirst
2025-09-30 12:27:58 -04:00
CrystallEdge Server
ef9fbbd699 Automatic changelog update 2025-09-30 15:03:56 +03:00
nukkuminen
bce80d4026 Merge pull request #1813 from oldschoolotaku/OH-GOD-IT-BURNS
Custom burning sprites
2025-09-30 08:02:49 -04:00
CrystallEdge Server
fe0853a1f3 Automatic changelog update 2025-09-28 23:54:21 +03:00
Red
621ee3fa73 Hotfix (#1811)
* fix #1809

* fairies disable
2025-09-28 23:53:15 +03:00
CrystallEdge Server
3d0b489392 Automatic changelog update 2025-09-28 11:17:58 +03:00
Red
c4087e9d5f Magic now respect physics again (#1805)
* fixes

* Update silva.yml
2025-09-28 11:16:52 +03:00
Ed
62589adb72 Update CP14RoofSystem.cs 2025-09-27 22:52:32 +03:00
CrystallEdge Server
2d91b5db65 Automatic changelog update 2025-09-27 22:18:32 +03:00
Kit
f6ef53e24e Spell/Shield tweaks (#1804)
* Spell changes

* shield changes
2025-09-27 22:17:27 +03:00
CrystallEdge Server
ae43454da2 Automatic changelog update 2025-09-27 22:15:17 +03:00
Red
51a3fb53aa God rays (#1803)
* god rays

* fix

* fix?
2025-09-27 22:14:11 +03:00
CrystallEdge Server
ec4a9a59cf Automatic changelog update 2025-09-26 19:32:08 +03:00
Kit
835cfa951f Merge pull request #1789 from KittyCat432/silva-buffs
Silva buffs and liquid mana buffs
2025-09-26 12:31:02 -04:00
CrystallEdge Server
00a9cf0fed Automatic changelog update 2025-09-26 00:27:08 +03:00
Nim
d16e4aaf2f Fixs zombie and loot (#1799)
* loot zombie

* fix
2025-09-26 00:26:03 +03:00
CrystallEdge Server
606a81d145 Automatic changelog update 2025-09-25 14:26:16 +03:00
nukkuminen
66379b65d1 added funny facial hair (#1797)
* added funny facial hair

* fixed atributions

* new mustages
2025-09-25 14:25:10 +03:00
Kit
14e1fd9247 fix 2025-09-22 18:03:21 -04:00
Kit
fa2c1968f8 Requested changes 2025-09-22 17:44:54 -04:00
Ed
a4d49a1a99 armor system 2025-09-22 20:30:41 +03:00
Kit
d6d6fa86a9 guidebook change 2025-09-17 21:02:30 -04:00
Kit
43b8c8dbb9 wow buffs 2025-09-17 20:52:57 -04:00
108 changed files with 1637 additions and 349 deletions

View File

@@ -0,0 +1,40 @@
using Robust.Client.GameObjects;
using Robust.Shared.Map.Components;
namespace Content.Client._CP14.GodRays;
public sealed partial class CP14GodRaysSystem : EntitySystem
{
[Dependency] private readonly SpriteSystem _sprite = default!;
[Dependency] private readonly PointLightSystem _pointLight = default!;
private EntityQuery<MapLightComponent> _mapLightQuery;
public override void Initialize()
{
base.Initialize();
_mapLightQuery = GetEntityQuery<MapLightComponent>();
}
public override void Update(float frameTime)
{
base.Update(frameTime);
var spriteSync = EntityQueryEnumerator<CP14SyncColorWithMapLightComponent>();
while (spriteSync.MoveNext(out var uid, out _))
{
if (!_mapLightQuery.TryComp(Transform(uid).MapUid, out var map))
continue;
//We calculate target color as map color, but transparency is based on map color brightness
var targetColor = Color.ToHsv(map.AmbientLightColor);
targetColor.W = targetColor.Z / 2;
var finalColor = Color.FromHsv(targetColor);
_sprite.SetColor(uid, finalColor);
_pointLight.SetColor(uid, finalColor);
}
}
}

View File

@@ -0,0 +1,11 @@
using Robust.Shared.GameStates;
namespace Content.Client._CP14.GodRays;
/// <summary>
/// Sync PointLight color and Sprite color with map light color
/// </summary>
[RegisterComponent]
public sealed partial class CP14SyncColorWithMapLightComponent : Component
{
}

View File

@@ -4,7 +4,10 @@ namespace Content.Server.Entry
public static class IgnoredComponents
{
public static string[] List => new[] {
"CP14WaveShader", // CP14 Wave shader
//CP14 start
"CP14SyncColorWithMapLight",
"CP14WaveShader",
//CP14 rnd
"ConstructionGhost",
"IconSmooth",
"InteractionOutline",

View File

@@ -82,6 +82,9 @@ public sealed class CP14SpawnProceduralLocationJob(
map.SetPaused(mapId, false);
//Add map components
entManager.AddComponents(MapUid, locationConfig.Components);
//Spawn modified config
await WaitAsyncTask(dungeon.GenerateDungeonAsync(dungeonConfig,
MapUid,
@@ -89,9 +92,6 @@ public sealed class CP14SpawnProceduralLocationJob(
position,
seed));
//Add map components
entManager.AddComponents(MapUid, locationConfig.Components);
return true;
}
}

View File

@@ -0,0 +1,53 @@
using Content.Shared.Light.EntitySystems;
using Robust.Shared.Map.Components;
namespace Content.Server._CP14.Roof;
/// <inheritdoc/>
public sealed class CP14RoofSystem : EntitySystem
{
[Dependency] private readonly SharedMapSystem _maps = default!;
[Dependency] private readonly SharedRoofSystem _roof = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CP14SetGridRoovedComponent, ComponentStartup>(OnRoofStartup);
SubscribeLocalEvent<CP14SetGridUnroovedComponent, ComponentStartup>(OnRoofStartup);
SubscribeLocalEvent<CP14SetGridRoovedComponent, TileChangedEvent>(OnTileChanged);
}
private void OnTileChanged(Entity<CP14SetGridRoovedComponent> ent, ref TileChangedEvent args)
{
foreach (var changed in args.Changes)
{
if (changed.OldTile.IsEmpty)
_roof.SetRoof(ent.Owner, changed.GridIndices, true);
}
}
private void OnRoofStartup(Entity<CP14SetGridRoovedComponent> ent, ref ComponentStartup args)
{
if (!TryComp<MapGridComponent>(ent.Owner, out var gridComp))
return;
var enumerator = _maps.GetAllTilesEnumerator(ent, gridComp);
while (enumerator.MoveNext(out var tileRef))
{
_roof.SetRoof(ent.Owner, tileRef.Value.GridIndices, true);
}
}
private void OnRoofStartup(Entity<CP14SetGridUnroovedComponent> ent, ref ComponentStartup args)
{
if (!TryComp<MapGridComponent>(ent.Owner, out var gridComp))
return;
var enumerator = _maps.GetAllTilesEnumerator(ent, gridComp);
while (enumerator.MoveNext(out var tileRef))
{
_roof.SetRoof(ent.Owner, tileRef.Value.GridIndices, false);
}
}
}

View File

@@ -0,0 +1,17 @@
namespace Content.Server._CP14.Roof;
/// <summary>
/// When added, marks ALL tiles on grid as rooved
/// </summary>
[RegisterComponent]
public sealed partial class CP14SetGridRoovedComponent : Component
{
}
/// <summary>
/// When added, marks ALL tiles on grid as unrooved
/// </summary>
[RegisterComponent]
public sealed partial class CP14SetGridUnroovedComponent : Component
{
}

View File

@@ -90,7 +90,7 @@ public sealed partial class CP14RoundEndSystem
var isWeekend = now.DayOfWeek is DayOfWeek.Saturday || now.DayOfWeek is DayOfWeek.Sunday;
var allowedRuPlaytime = isWeekend ? now.Hour is >= 13 and < 17 : now.Hour is >= 15 and < 19;
var allowedEngPlaytime = now.Hour is >= 19 and < 23;
var allowedEngPlaytime = isWeekend ? now.Hour is >= 17 and < 21 : now.Hour is >= 19 and < 23;
var isMonday = now.DayOfWeek is DayOfWeek.Monday;
if (((ruDays && allowedRuPlaytime) || (!ruDays && allowedEngPlaytime)) && !isMonday)

View File

@@ -1,6 +1,8 @@
using Content.Shared._CP14.Actions;
using Content.Shared.Actions.Components;
using Content.Shared.Actions.Events;
using Content.Shared.DoAfter;
using Content.Shared.Item;
namespace Content.Shared.Actions;
@@ -22,13 +24,21 @@ public abstract partial class SharedActionsSystem
var netEnt = GetNetEntity(performer);
//CP14 doAfter start event
var target = GetEntity(input.EntityTarget);
EntityUid? used = null;
if (TryComp<ActionComponent>(ent, out var action) && HasComp<ItemComponent>(action.Container))
{
used = action.Container;
}
var cp14StartEv = new CP14ActionStartDoAfterEvent(netEnt, input);
RaiseLocalEvent(ent, cp14StartEv);
//CP14 end
var actionDoAfterEvent = new ActionDoAfterEvent(netEnt, originalUseDelay, input);
var doAfterArgs = new DoAfterArgs(EntityManager, performer, delay, actionDoAfterEvent, ent.Owner, performer)
var doAfterArgs = new DoAfterArgs(EntityManager, performer, delay, actionDoAfterEvent, ent.Owner, target ?? performer, used) //CP14 edited target and added used
{
AttemptFrequency = ent.Comp.AttemptFrequency,
Broadcast = ent.Comp.Broadcast,
@@ -74,6 +84,11 @@ public abstract partial class SharedActionsSystem
SetUseDelay(action, TimeSpan.Zero);
}
//CP14 start delay after cancelling for preventing spamming
if (args.Cancelled)
StartUseDelay(action);
//CP14 end
if (args.Cancelled)
return;

View File

@@ -8,5 +8,5 @@ public sealed partial class CCVars
/// Language used for the in-game localization.
/// </summary>
public static readonly CVarDef<string> Language =
CVarDef.Create("localization.language", "en-US", CVar.SERVER | CVar.REPLICATED);
CVarDef.Create("loc.server_language", "en-US", CVar.SERVER | CVar.REPLICATED);
}

View File

@@ -394,7 +394,7 @@ namespace Content.Shared.Damage
}
}
public sealed class DamageChangedEvent : EntityEventArgs
public sealed class DamageChangedEvent : EntityEventArgs, IInventoryRelayEvent
{
/// <summary>
/// This is the component whose damage was changed.
@@ -448,5 +448,9 @@ namespace Content.Shared.Damage
}
InterruptsDoAfters = interruptsDoAfters && DamageIncreased;
}
//CP14
public SlotFlags TargetSlots => SlotFlags.All;
//CP14 end
}
}

View File

@@ -45,6 +45,7 @@ public partial class InventorySystem
SubscribeLocalEvent<InventoryComponent, CP14MagicEssenceScanEvent>(RelayInventoryEvent);
SubscribeLocalEvent<InventoryComponent, CP14CalculateManacostEvent>(RelayInventoryEvent);
SubscribeLocalEvent<InventoryComponent, CP14SkillScanEvent>(RelayInventoryEvent);
SubscribeLocalEvent<InventoryComponent, DamageChangedEvent>(RelayInventoryEvent);
//CP14 End
SubscribeLocalEvent<InventoryComponent, DamageModifyEvent>(RelayInventoryEvent);

View File

@@ -0,0 +1,15 @@
using Content.Shared._CP14.Actions;
using Content.Shared.Damage;
using Robust.Shared.GameStates;
namespace Content.Shared._CP14.Armor;
/// <summary>
/// When the wearer takes damage, part of that damage is also taken by this item of clothing.
/// </summary>
[RegisterComponent, NetworkedComponent, Access(typeof(CP14ArmorSystem))]
public sealed partial class CP14ArmorDamageAbsorptionComponent : Component
{
[DataField]
public float Absorption = 0.3f;
}

View File

@@ -0,0 +1,28 @@
using Content.Shared.Damage;
using Content.Shared.Inventory;
namespace Content.Shared._CP14.Armor;
public sealed class CP14ArmorSystem : EntitySystem
{
[Dependency] private readonly DamageableSystem _damageable = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CP14ArmorDamageAbsorptionComponent, InventoryRelayedEvent<DamageChangedEvent>>(OnDamageChanged);
}
private void OnDamageChanged(Entity<CP14ArmorDamageAbsorptionComponent> ent, ref InventoryRelayedEvent<DamageChangedEvent> args)
{
if (!args.Args.DamageIncreased)
return;
if (args.Args.DamageDelta is null)
return;
_damageable.TryChangeDamage(ent, args.Args.DamageDelta * ent.Comp.Absorption);
}
}

View File

@@ -43,7 +43,7 @@ public sealed partial class CP14ProceduralModifierPrototype : IPrototype
/// Can this modifier be generated multiple times within a single location?
/// </summary>
[DataField]
public bool Unique = false;
public bool Unique = true;
/// <summary>
/// Generation layers that will be added to the location generation after the main layers.

View File

@@ -2229,3 +2229,109 @@
id: 8271
time: '2025-09-23T10:23:39.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1773
- author: oldschoolotaku
changes:
- message: New fancy mustage "Hussar"
type: Add
id: 8272
time: '2025-09-25T11:25:10.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1797
- author: Nimfar11
changes:
- message: Adds money to the wallets of some walking dead.
type: Add
- message: Wallets can be cut into scraps of leather.
type: Tweak
- message: The walking dead can be women.
type: Fix
id: 8273
time: '2025-09-25T21:26:03.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1799
- author: KittyCat432
changes:
- message: Silva's now contain plant organs.
type: Tweak
- message: Water and life-giving moisture regenerates 0.2 and 4 mana respectively
when in a plant organ.
type: Tweak
- message: Liquid mana now regenerates 3 mana up from 1.5.
type: Tweak
id: 8274
time: '2025-09-26T16:31:02.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1789
- author: Trosling
changes:
- message: Underground demi-planes may now have holes in the ceiling, allowing sunlight
or rain to pour in. This is affect silvas, plants, vampires and others sunlight-reated
things
type: Add
id: 8275
time: '2025-09-27T19:14:11.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1803
- author: KittyCat432
changes:
- message: Most spells break when receiving damage again, excluding sprint, ballad
spells, and other pure utility spells.
type: Tweak
- message: Cure wounds/burns and blood purification cost 10 mana instead of 12 again.
type: Tweak
- message: Shields are more susceptible to breaking from blunt damage and for wooden
ones heat aswell.
type: Tweak
- message: Buckler and wooden shield damage resistances have been modified for the
shield to take less damage.
type: Tweak
- message: All shields have had their health increased by 50.
type: Tweak
id: 8276
time: '2025-09-27T19:17:27.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1804
- author: TheShuEd
changes:
- message: Spells are interrupted again if players move far away from target or
drop the item used for casting, or loses sight of the target
type: Fix
- message: After an interrupted spell cast, the cooldown begins again, preventing
spamming.
type: Fix
id: 8277
time: '2025-09-28T08:16:52.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1805
- author: TheShuEd
changes:
- message: Disabled magic fairies until fix, becaues they cause server crashes
type: Remove
- message: Fixed lurker melee stun interrupting
type: Fix
id: 8278
time: '2025-09-28T20:53:15.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1811
- author: TTTomaTTT, oldschool_otaku
changes:
- message: Added custom burning sprites
type: Add
id: 8279
time: '2025-09-30T12:02:49.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1813
- author: Nimfar11
changes:
- message: Adds snails and their shells as an appetiser. Be careful when hitting
them, they are very fragile.
type: Add
id: 8280
time: '2025-09-30T16:27:58.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1753
- author: oldschool_otaku
changes:
- message: Hallucinogenic solution is fixed
type: Fix
id: 8281
time: '2025-10-01T11:36:06.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1764
- author: oldschool_otaku
changes:
- message: Added cats!
type: Add
id: 8282
time: '2025-10-01T14:44:09.0000000+00:00'
url: https://github.com/crystallpunk-14/crystall-punk-14/pull/1814

View File

@@ -1,8 +1,8 @@
[whitelist]
enabled = true
[localization]
language = "en-US"
[loc]
server_language = "en-US"
[log]
path = "logs"

View File

@@ -12,3 +12,9 @@ cp14-ghost-role-information-description-rat = An honorable rat. Relieve tavernke
cp14-ghost-role-information-name-bone-hound = Bone hound
cp14-ghost-role-information-description-bone-hound = A bone hound created by necromantic magic, usually summoned by skeleton mages to form a pack of hunters. Obeys the skeleton that summoned it.
cp14-ghost-role-information-name-snail = Snail
cp14-ghost-role-information-description-snail = Surviving is already an achievement.
cp14-ghost-role-information-cat-name = Cat
cp14-ghost-role-information-cat-description = You're the fluffiest thing in the world. Hunt the mice/rats, be cute or stick with some adventurers!

View File

@@ -31,4 +31,5 @@ marking-CP14HumanFacialHairVandyke = evening branch
marking-CP14HumanFacialHairVolaju = steppe fringe
marking-CP14HumanFacialHairWalrus = walrus storm
marking-CP14HumanFacialHairWatson = scholarly classic
marking-CP14HumanFacialHairWise = runebound
marking-CP14HumanFacialHairWise = runebound
marking-CP14HumanFacialHairHussar = hussar

View File

@@ -12,3 +12,9 @@ cp14-ghost-role-information-description-rat = Крыса чести. Избав
cp14-ghost-role-information-name-bone-hound = Костяная гончая
cp14-ghost-role-information-description-bone-hound = Костяная гончая, созданная с помощью магии некромантии, обычно вызываемая магами скелетами для формирования стаи охотников. Подчиняется скелету, который его вызвал.
cp14-ghost-role-information-name-snail = Улитка
cp14-ghost-role-information-description-snail = Выжить это уже достижение.
cp14-ghost-role-information-cat-name = Кот
cp14-ghost-role-information-cat-description = Ты самое пушистое существо в этом мире! Охоться за мышами/крысами, будь милым или ходи вместе с авантюристами!

View File

@@ -11,4 +11,5 @@ marking-CP14HumanFacialHairMutton = Баранья
marking-CP14HumanFacialHairPigtail = Косичка
marking-CP14HumanFacialHairSage = Ман Чу
marking-CP14HumanFacialHairWatson = Ватсон
marking-CP14HumanFacialHairWhiskers = Бакенбарды
marking-CP14HumanFacialHairWhiskers = Бакенбарды
marking-CP14HumanFacialHairHussar = Гусарские

View File

@@ -108,7 +108,7 @@
- type: Item
size: Small
heldPrefix: lungs
- type: Lung
- type: Lung
- type: Metabolizer
removeEmpty: true
solutionOnBody: false
@@ -137,7 +137,7 @@
description: "The source of incredible, unending intelligence. Honk."
components:
- type: Brain
- type: Nymph # This will make the organs turn into a nymph when they're removed.
- type: Nymph # This will make the organs turn into a nymph when they're removed.
entityPrototype: OrganDionaNymphBrain
transferMind: true
@@ -176,11 +176,11 @@
- type: entity
id: OrganDionaNymphStomach
parent: MobDionaNymphAccent
parent: MobDionaNymphAccent
categories: [ HideSpawnMenu ]
name: diona nymph
suffix: Stomach
description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it.
description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it.
components:
- type: IsDeadIC
- type: Body
@@ -192,7 +192,7 @@
categories: [ HideSpawnMenu ]
name: diona nymph
suffix: Lungs
description: Contains the lungs of a formerly fully-formed Diona. Breathtaking.
description: Contains the lungs of a formerly fully-formed Diona. Breathtaking.
components:
- type: IsDeadIC
- type: Body

View File

@@ -450,6 +450,12 @@
effects:
- !type:SatiateThirst
factor: 4
- !type:CP14ManaChange #CE change
manaDelta: 0.2
safe: true
conditions:
- !type:OrganType
type: Plant
Gas:
effects:
- !type:HealthChange

View File

@@ -0,0 +1,133 @@
- type: entity
id: CP14BaseSilvaOrgan
parent: BaseItem
abstract: true
components:
- type: Sprite
sprite: Mobs/Species/Diona/organs.rsi
- type: Organ
- type: Food
- type: Extractable
grindableSolutionName: organ
- type: SolutionContainerManager
solutions:
organ:
maxVol: 10
reagents:
- ReagentId: Nutriment
Quantity: 10
food:
maxVol: 5
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 5
- type: FlavorProfile
flavors:
- people
- type: entity
id: CP14OrganSilvaBrain
parent: [CP14BaseSilvaOrgan, OrganHumanBrain]
categories: [ ForkFiltered ]
name: brain
description: "The central hub of a silva's pseudo-neurological activity, its root-like tendrils search for its former body."
components:
- type: Item
size: Small
heldPrefix: brain
- type: Sprite
state: brain
- type: SolutionContainerManager
solutions:
organ:
maxVol: 10
reagents:
- ReagentId: Nutriment
Quantity: 10
Lung:
maxVol: 100
canReact: False
food:
maxVol: 5
reagents:
- ReagentId: GreyMatter
Quantity: 5
- type: entity
id: CP14OrganSilvaEyes
parent: CP14BaseSilvaOrgan
categories: [ ForkFiltered ]
name: eyes
description: "I see you!"
components:
- type: Sprite
layers:
- state: eyeball-l
- state: eyeball-r
- type: entity
id: CP14OrganSilvaStomach
parent: CP14BaseSilvaOrgan
categories: [ ForkFiltered ]
name: stomach
description: "The silva's equivalent of a stomach, it reeks of asparagus and vinegar."
components:
- type: Sprite
state: stomach
- type: SolutionContainerManager
solutions:
stomach:
maxVol: 50
food:
maxVol: 5
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 5
- type: Stomach
- type: Metabolizer
maxReagents: 2
metabolizerTypes: [ Plant ]
removeEmpty: true
groups:
- id: Food
- id: Drink
- id: Medicine
- id: Poison
- id: Narcotic
- id: Alcohol
rateModifier: 0.1
- type: Item
size: Small
heldPrefix: stomach
- type: entity
id: CP14OrganSilvaLungs
parent: CP14BaseSilvaOrgan
categories: [ ForkFiltered ]
name: lungs
description: "A spongy mess of slimy, leaf-like structures. Capable of breathing both carbon dioxide and oxygen."
components:
- type: Sprite
state: lungs
- type: Item
size: Small
heldPrefix: lungs
- type: Lung
- type: Metabolizer
removeEmpty: true
solutionOnBody: false
solution: "Lung"
metabolizerTypes: [ Plant ]
groups:
- id: Gas
rateModifier: 100.0
- type: SolutionContainerManager
solutions:
organ:
maxVol: 10
reagents:
- ReagentId: Nutriment
Quantity: 10
Lung:
maxVol: 100
canReact: False

View File

@@ -8,21 +8,18 @@
connections:
- torso
organs:
brain: OrganHumanBrain
eyes: OrganHumanEyes
brain: CP14OrganSilvaBrain
eyes: CP14OrganSilvaEyes
torso:
part: TorsoHuman
part: TorsoDiona
connections:
- right_arm
- left_arm
- right_leg
- left_leg
organs:
heart: OrganHumanHeart
lungs: OrganHumanLungs
stomach: OrganHumanStomach
liver: OrganHumanLiver
kidneys: OrganHumanKidneys
lungs: CP14OrganSilvaLungs
stomach: CP14OrganSilvaStomach
right_arm:
part: CP14RightArmHuman
connections:

View File

@@ -126,3 +126,5 @@
- id: CP14BookTieflingGambit
- id: CP14GuidebookCooking
- id: CP14SackFarmingSeedFull
- id: CP14SackFarmingSeedSnail
prob: 0.6

View File

@@ -23,6 +23,7 @@
range: 5
- type: DoAfterArgs
delay: 2
breakOnDamage: true
- type: EntityTargetAction
canTargetSelf: false
event: !type:CP14EntityTargetModularEffectEvent
@@ -103,4 +104,4 @@
layers:
- state: medium_circle
color: "#e8ff4c"
shader: unshaded
shader: unshaded

View File

@@ -14,7 +14,7 @@
proto: CP14RuneHeat
- type: CP14ActionDangerous
- type: Action
useDelay: 8
useDelay: 4
icon:
sprite: _CP14/Actions/Spells/fire.rsi
state: heat

View File

@@ -10,8 +10,8 @@
manaCost: 5
- type: DoAfterArgs
repeat: true
delay: 1
breakOnMove: true
delay: 2
breakOnDamage: true
- type: CP14ActionDoAfterVisuals
proto: CP14RuneAirSaturation
- type: Action

View File

@@ -7,7 +7,7 @@
- type: CP14ActionDoAfterSlowdown
speedMultiplier: 0.5
- type: CP14ActionManaCost
manaCost: 12
manaCost: 10
- type: CP14ActionTargetMobStatusRequired
- type: CP14ActionSpeaking
startSpeech: "Pellis dolorem..."
@@ -21,6 +21,7 @@
state: cure_burn
- type: DoAfterArgs
delay: 1.5
breakOnDamage: true
- type: TargetAction
range: 7
interactOnMiss: false

View File

@@ -7,7 +7,7 @@
- type: CP14ActionDoAfterSlowdown
speedMultiplier: 0.5
- type: CP14ActionManaCost
manaCost: 12
manaCost: 10
- type: CP14ActionSpeaking
startSpeech: "Nella coda..."
endSpeech: "sta il veleno"
@@ -24,6 +24,7 @@
interactOnMiss: false
- type: DoAfterArgs
delay: 1.5
breakOnDamage: true
- type: EntityTargetAction
whitelist:
components:

View File

@@ -7,9 +7,10 @@
- type: CP14ActionDoAfterSlowdown
speedMultiplier: 0.5
- type: CP14ActionManaCost
manaCost: 12
manaCost: 10
- type: DoAfterArgs
delay: 1.5
breakOnDamage: true
- type: CP14ActionSpeaking
startSpeech: "Et curabuntur..."
endSpeech: "vulnera tua"

View File

@@ -27,6 +27,7 @@
interactOnMiss: false
- type: DoAfterArgs
delay: 1.5
breakOnDamage: true
- type: EntityTargetAction
whitelist:
components:
@@ -79,4 +80,4 @@
components:
- type: CP14SpellStorage
spells:
- CP14ActionSpellSheepPolymorph
- CP14ActionSpellSheepPolymorph

View File

@@ -13,6 +13,7 @@
proto: CP14RuneFlashLight
- type: DoAfterArgs
delay: 0.5
breakOnDamage: true
- type: Action
useDelay: 6
icon:

View File

@@ -14,6 +14,7 @@
proto: CP14RuneSearchOfLife
- type: DoAfterArgs
delay: 1.5
breakOnDamage: true
- type: Action
useDelay: 30
icon:

View File

@@ -19,6 +19,7 @@
- type: DoAfterArgs
delay: 1.5
hidden: true
breakOnDamage: true
- type: EntityTargetAction
canTargetSelf: false
whitelist:

View File

@@ -8,7 +8,7 @@
stamina: 20
- type: DoAfterArgs
delay: 2.5
distanceThreshold: 1.5
distanceThreshold: 2.5
breakOnDamage: true
- type: CP14ActionEmoting
startEmote: cp14-kick-lurker-start

View File

@@ -10,6 +10,7 @@
manaCost: 15
- type: DoAfterArgs
delay: 1.0
breakOnDamage: true
- type: CP14ActionDoAfterVisuals
proto: CP14RuneManaTrance
- type: Action

View File

@@ -15,6 +15,7 @@
repeat: true
breakOnMove: true
delay: 1
breakOnDamage: true
- type: TargetAction
- type: EntityTargetAction
whitelist:

View File

@@ -11,6 +11,7 @@
repeat: true
breakOnMove: true
delay: 1
breakOnDamage: true
- type: CP14ActionDoAfterVisuals
proto: CP14RuneManaGift
- type: Action

View File

@@ -12,6 +12,7 @@
delay: 1
repeat: true
breakOnMove: true
breakOnDamage: true
- type: CP14ActionDoAfterVisuals
proto: CP14RuneMagicSplitting
- type: Action
@@ -73,4 +74,4 @@
energy: 2
netsync: false
- type: LightFade
duration: 1
duration: 1

View File

@@ -17,6 +17,7 @@
state: counter_spell_small
- type: DoAfterArgs
delay: 1
breakOnDamage: true
- type: TargetAction
range: 5
- type: EntityTargetAction
@@ -37,4 +38,4 @@
effects:
- !type:CP14ManaChange
manaDelta: -5
safe: false
safe: false

View File

@@ -10,6 +10,7 @@
repeat: true
delay: 1
hidden: true
breakOnDamage: true
- type: CP14ActionDoAfterVisuals
proto: CP14RuneManaTrance
- type: Action

View File

@@ -15,7 +15,7 @@
- type: CP14ActionDangerous
- type: DoAfterArgs
repeat: true
breakOnMove: true
breakOnDamage: true
delay: 1.5
distanceThreshold: 5
- type: Action

View File

@@ -57,13 +57,6 @@
CP14Leather: 18 # 20u CP14Leather (4x5u) ~~~ and -2u for cost balance
CP14Iron: 2 # 2u CP14IronBuckle (1x2u)
# Cost: (20×1.2) + (2×2) = 24 + 4 = 28 copper coins
- type: Armor
modifiers:
coefficients:
Blunt: 0.95
Slash: 0.95
Heat: 0.90
Caustic: 0.90
- type: ExplosionResistance
damageCoefficient: 0.9

View File

@@ -108,11 +108,6 @@
CP14Iron: 12 # 12u CP14IronBuckle (6x2u)
CP14Cloth: 50 # 40u CP14Cloth (8x10u) + 10u CP14String ~~~ 15 additional coppers
# Cost: (45×1.2) + (12×2) = 54 + 24 = 78 copper coins
- type: Armor
modifiers:
coefficients:
Blunt: 0.95
Slash: 0.95
- type: StaticPrice
price: 30 # Balance with backpack
@@ -139,11 +134,6 @@
CP14Iron: 12 # 12u CP14IronBuckle (6x2u)
CP14Cloth: 50 # 40u CP14Cloth (8x10u) + 10u CP14String ~~~ 15 additional coppers
# Cost: (80×1.2) + (12×2) = 96 + 24 = 120 copper coins
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.90
- type: ExplosionResistance
damageCoefficient: 0.9
- type: ClothingSpeedModifier
@@ -180,11 +170,5 @@
CP14Leather: 45 # 15u thin (3x5u) + 30u regular (3x10u)
CP14Iron: 32 # 20 + 12u CP14IronBuckle (6x2u)
# Cost: (45×1.2) + (32×2) = 54 + 64 = 118 copper coins
- type: Armor
modifiers:
coefficients:
Blunt: 0.90
Slash: 0.90
Piercing: 0.95
- type: ExplosionResistance
damageCoefficient: 0.85

View File

@@ -127,6 +127,9 @@
sprintModifier: 0.90
- type: CP14MagicManacostModify
globalModifier: 1.2
- type: CP14ArmorDamageAbsorption
absorption: 0.5
- type: PhysicalComposition
materialComposition:
CP14Iron: 90
- type: Damageable

View File

@@ -0,0 +1,32 @@
- type: entity
id: CP14GodRays
categories: [ ForkFiltered ]
name: god rays
components:
- type: Sprite
sprite: _CP14/Effects/god_rays.rsi
drawdepth: Mobs
noRot: true
offset: -0.25, 1.5
layers:
- state: ray
shader: unshaded
- type: CP14SyncColorWithMapLight
- type: PointLight
enabled: true
energy: 1
radius: 5
netsync: true
- type: LightBehaviour
behaviours:
- !type:PulseBehaviour
interpolate: Cubic
maxDuration: 14
startValue: 0.5
endValue: 1.0
property: Energy
isLooped: true
enabled: true
- type: Tag
tags:
- HideContextMenu

View File

@@ -22,6 +22,8 @@
- id: CP14MobUndeadZombieGearEasy1
- id: CP14MobUndeadZombieGearEasy2
- id: CP14MobUndeadZombieGearEasy3
- id: CP14MobUndeadZombieGearEasy4
- id: CP14MobUndeadZombieGearEasy5
# Animal
@@ -105,6 +107,56 @@
prototypes:
- CP14MobSheep
- type: entity
name: snail spawner
id: CP14SpawnMobSnail
parent: MarkerBase
categories: [ ForkFiltered ]
components:
- type: Sprite
layers:
- sprite: Markers/cross.rsi
state: green
- sprite: _CP14/Mobs/Animals/snail.rsi
state: live
- type: ConditionalSpawner
prototypes:
- CP14MobSnail
- type: entity
name: cat spawner
id: CP14SpawnMobCatRandomColored
parent: MarkerBase
categories: [ ForkFiltered ]
suffix: "Colored"
components:
- type: Sprite
layers:
- sprite: Markers/cross.rsi
state: green
- sprite: _CP14/Mobs/Animals/cat.rsi
state: lying
- type: ConditionalSpawner
prototypes:
- CP14MobCatRandomColored
- type: entity
name: cat spawner
id: CP14SpawnMobCatRandomColoredWithSpots
parent: MarkerBase
categories: [ ForkFiltered ]
suffix: "Colored, Spotted"
components:
- type: Sprite
layers:
- sprite: Markers/cross.rsi
state: green
- sprite: _CP14/Mobs/Animals/cat.rsi
state: lying
- type: ConditionalSpawner
prototypes:
- CP14MobCatRandomColoredWithSpots
# Dino
- type: entity

View File

@@ -0,0 +1,20 @@
- type: entity
name: snail timed spawner
id: CP14SpawnTimedMobSnail
parent: MarkerBase
categories: [ ForkFiltered ]
components:
- type: Sprite
layers:
- sprite: Markers/cross.rsi
state: blue
- sprite: _CP14/Mobs/Animals/snail.rsi
state: live
- type: Timer
- type: TimedSpawner
prototypes:
- CP14MobSnail
chance: 0.5
intervalSeconds: 540
minimumEntitiesSpawned: 1
maximumEntitiesSpawned: 1

View File

@@ -0,0 +1,37 @@
- type: entity
id: CP14RoofMarker
name: Roof enable Marker
categories: [ ForkFiltered ]
parent: MarkerBase
components:
- type: SetRoof
value: true
- type: Sprite
layers:
- state: green
shader: unshaded
- type: entity
id: CP14NoRoofMarker
name: Roof disable Marker
categories: [ ForkFiltered ]
parent: MarkerBase
components:
- type: SetRoof
value: false
- type: Sprite
layers:
- state: red
shader: unshaded
- type: entity
parent: CP14NoRoofMarker
id: CP14NoRoofMarkerGodRays
suffix: God Rays (5%)
components:
- type: RandomSpawner
prototypes:
- CP14GodRays
chance: 0.05
deleteSpawnerAfterSpawn: false

View File

@@ -126,6 +126,14 @@
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
state: hogan
- type: marking
id: CP14HumanFacialHairHussar
bodyPart: FacialHair
markingCategory: FacialHair
sprites:
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
state: hussar
- type: marking
id: CP14HumanFacialHairJensen
bodyPart: FacialHair
@@ -269,4 +277,3 @@
sprites:
- sprite: _CP14/Mobs/Customization/human_facial_hair.rsi
state: wise

View File

@@ -565,4 +565,139 @@
volume: -2
variation: 0.125
- type: SoundWhileAlive
- type: FloorOcclusion
- type: entity
id: CP14MobSnail
parent: CP14SimpleMobBase
name: snail
description: A small and slow snail. It seems that any touch could crush it.
categories: [ ForkFiltered ]
components:
- type: GhostRole
makeSentient: true
allowSpeech: true
allowMovement: true
name: cp14-ghost-role-information-name-snail
description: cp14-ghost-role-information-description-snail
rules: ghost-role-information-freeagent-rules
mindRoles:
- MindRoleGhostRoleFreeAgentHarmless
- type: GhostTakeoverAvailable
- type: HTN
constantlyReplan: false
rootTask:
task: MouseCompound
- type: NpcFactionMember
factions:
- CP14PeacefulAnimals
- type: Sprite
drawdepth: SmallMobs
layers:
- sprite: _CP14/Mobs/Animals/snail.rsi
state: live
- type: Item
size: Tiny
- type: Physics
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.1
density: 20
mask:
- SmallMobMask
layer:
- SmallMobLayer
- type: MobState
- type: MobThresholds
thresholds:
0: Alive
10: Dead
- type: MovementSpeedModifier
baseWalkSpeed: 2
baseSprintSpeed: 3
- type: Speech
speechVerb: SmallMob
- type: ReplacementAccent
accent: mouse
- type: Food
- type: Thirst
baseDecayRate: 0.01
- type: Hunger
baseDecayRate: 0.01
- type: Body
prototype: null
- type: Respirator
minSaturation: 5.0
- type: SolutionContainerManager
solutions:
food:
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 3
- type: Tag
tags:
- Meat
- type: CombatMode
combatToggleAction: ActionCombatModeToggleOff
- type: Bloodstream
bloodMaxVolume: 10
bloodReagent: CP14BloodAnimal
- type: CanEscapeInventory
- type: BadFood
- type: FireVisuals
sprite: Mobs/Effects/onfire.rsi
normalState: Mouse_burning
- type: NoSlip
- type: Slippery
- type: StepTrigger
requiredTriggeredSpeed: 1
- type: TriggerOnStepTrigger
- type: RandomChanceTriggerCondition
successChance: 0.3
- type: GibOnTrigger
- type: ProtectedFromStepTriggers
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:GibBehavior
recursive: false
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
CP14FoodSnailShell:
min: 1
max: 1
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 3
behaviors:
- !type:GibBehavior
recursive: false
- trigger:
!type:DamageTypeTrigger
damageType: Slash
damage: 5
behaviors:
- !type:GibBehavior
recursive: false
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 9
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
CP14Ash1:
min: 1
max: 1
- !type:BurnBodyBehavior { }
- !type:PlaySoundBehavior
sound:
collection: MeatLaserImpact

View File

@@ -0,0 +1,173 @@
- type: entity
id: CP14MobCatBase
parent: CP14SimpleMobBase
name: cat
description: A cute small feline, that purrs when you pet it. Meow!
categories: [ ForkFiltered ]
abstract: true
components:
- type: NpcFactionMember
factions:
- CP14Cat
- type: HTN
rootTask:
task: SimpleHostileCompound
- type: MovementSpeedModifier
baseWalkSpeed: 3
baseSprintSpeed: 5
- type: Sprite
drawdepth: Mobs
sprite: _CP14/Mobs/Animals/cat.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base", "movement"]
state: walking
- type: SpriteMovement
movementLayers:
movement:
state: walking
noMovementLayers:
movement:
state: lying
- type: FireVisuals
sprite: Mobs/Effects/onfire.rsi
normalState: Mouse_burning
- type: Hands # remove when climbing on tables will be possible without hands component
- type: Puller
needsHands: false
- type: Appearance
- type: Physics
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeCircle
radius: 0.25
density: 40
mask:
- MobMask
layer:
- MobLayer
- type: MobThresholds
thresholds:
0: Alive
50: Critical
75: Dead
- type: CP14NightVision # Why do carcats have night vision, but not cats?
- type: DamageStateVisuals
states:
Alive:
Base: walking
Critical:
Base: dead
Dead:
Base: dead
- type: MeleeWeapon
damage:
types:
Slash: 7.5
attackRate: 1.5
range: 1.25
altDisarm: false
angle: 0
animation: WeaponArcClaw
soundHit:
collection: AlienClaw
wideAnimation: WeaponArcClaw
- type: GhostRole
name: cp14-ghost-role-information-cat-name
description: cp14-ghost-role-information-cat-description
rules: cp14-ghost-role-information-rules-pet
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: MessyDrinker
spillChance: 0.2
- type: Speech
speechSounds: Cat
speechVerb: SmallMob
- type: ReplacementAccent
accent: cat
- type: InteractionPopup
successChance: 0.6
interactSuccessString: petting-success-cat
interactFailureString: petting-failure-generic
interactSuccessSpawn: EffectHearts
interactSuccessSound:
path: /Audio/Animals/cat_meow.ogg
- type: PassiveDamage
allowedStates:
- Alive
damageCap: 40
damage:
groups:
Brute: -0.05
Burn: -0.02
Toxin: -0.02
- type: Bloodstream
bloodMaxVolume: 80
bloodReagent: CP14BloodAnimal
- type: Tag
tags:
- CannotSuicide
- type: entity
parent: CP14MobCatBase
id: CP14MobCatColoredWithSpotsBase
categories: [ ForkFiltered ]
abstract: true
components:
- type: Sprite
drawdepth: Mobs
sprite: _CP14/Mobs/Animals/cat.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base", "movement"]
state: walking
- map: [ "enum.DamageStateVisualLayers.BaseUnshaded", "overlay"]
state: walking-overlay
- type: SpriteMovement
movementLayers:
movement:
sprite: _CP14/Mobs/Animals/cat.rsi
state: walking
overlay:
sprite: _CP14/Mobs/Animals/cat.rsi
state: walking-overlay
noMovementLayers:
movement:
sprite: _CP14/Mobs/Animals/cat.rsi
state: lying
overlay:
sprite: _CP14/Mobs/Animals/cat.rsi
state: lying-overlay
- type: DamageStateVisuals
states:
Alive:
Base: walking
BaseUnshaded: walking-overlay
Dead:
Base: dead
BaseUnshaded: dead-overlay
- type: entity
parent: CP14MobCatBase
id: CP14MobCatRandomColored
suffix: "Colored"
categories: [ ForkFiltered ]
components:
- type: RandomSprite
available:
- enum.DamageStateVisualLayers.Base:
walking: CP14CatColors
- type: entity
parent: CP14MobCatColoredWithSpotsBase
id: CP14MobCatRandomColoredWithSpots
suffix: "Colored, Spotted"
categories: [ ForkFiltered ]
components:
- type: RandomSprite
available:
- enum.DamageStateVisualLayers.Base:
walking: CP14CatColors
- enum.DamageStateVisualLayers.BaseUnshaded:
walking-overlay: CP14CatColors

View File

@@ -3,7 +3,7 @@
parent: CP14SimpleMobBase
id: CP14MobFairy
description: It glows, squeaks and considers itself very important. It seems that ordinary weapons are incapable of killing her, and only the dissipation of magic will help.
categories: [ ForkFiltered ]
categories: [ ForkFiltered, HideSpawnMenu ] #Disable spawn in spawmenu
components:
- type: MovementSpeedModifier
baseWalkSpeed : 2

View File

@@ -10,7 +10,7 @@
task: RuminantHostileCompound
- type: NpcFactionMember
factions:
- CP14PeacefulAnimals
- CP14Rodent
- type: NPCRetaliation
attackMemoryLength: 20
- type: Sprite

View File

@@ -16,6 +16,8 @@
- type: NpcFactionMember
factions:
- CP14Monster
- type: RandomHumanoidAppearance
randomizeName: false
- type: NPCImprintingOnSpawnBehaviour
whitelist:
tags:
@@ -48,3 +50,20 @@
- type: Loadout
prototypes: [ CP14MobUndeadEasy3 ]
- type: entity
id: CP14MobUndeadZombieGearEasy4
parent: CP14MobUndeadZombie
suffix: Zombie. Easy
categories: [ HideSpawnMenu ]
components:
- type: Loadout
prototypes: [ CP14MobUndeadEasy4 ]
- type: entity
id: CP14MobUndeadZombieGearEasy5
parent: CP14MobUndeadZombie
suffix: Zombie. Easy
categories: [ HideSpawnMenu ]
components:
- type: Loadout
prototypes: [ CP14MobUndeadEasy5 ]

View File

@@ -289,7 +289,9 @@
bloodReagent: CP14Blood
# Other
- type: FireVisuals
alternateState: Standing #TODO - custom visuals
sprite: _CP14/Mobs/Effects/onfire.rsi
normalState: Small_burning
alternateState: Humanoid_burning
- type: entity
save: false
@@ -361,4 +363,4 @@
- type: UserInterface
interfaces:
enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too
type: HumanoidMarkingModifierBoundUserInterface
type: HumanoidMarkingModifierBoundUserInterface

View File

@@ -58,6 +58,8 @@
visible: false
- type: HumanoidAppearance
species: CP14Carcat
- type: FireVisuals
alternateState: Carcat_burning
- type: Icon
sprite: _CP14/Mobs/Species/Carcat/parts.rsi
state: full

View File

@@ -67,6 +67,8 @@
48:
sprite: _CP14/Mobs/Species/Goblin/displacement48.rsi
state: hair
- type: FireVisuals
alternateState: Goblin_burning
- type: Icon
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: full

View File

@@ -29,8 +29,8 @@
- map: [ "enum.HumanoidVisualLayers.RHand" ]
- map: [ "gloves" ]
- map: [ "ears" ]
- map: [ "cloak" ]
- map: [ "outerClothing" ]
- map: [ "cloak" ]
- map: [ "eyes" ]
- map: [ "belt" ]
- map: [ "belt2" ]
@@ -185,10 +185,10 @@
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
state: female_neck
- type: entity
parent: CP14BaseSpeciesDummy
@@ -238,7 +238,7 @@
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Human/displacement.rsi
state: male_neck
state: female_neck
48:
sprite: _CP14/Mobs/Species/Human/displacement48.rsi
state: male_neck
state: female_neck

View File

@@ -63,3 +63,62 @@
Quantity: 6
- type: Temperature
currentTemperature: 250
- type: entity
id: CP14FoodSnailShell
parent: FoodInjectableBase
categories: [ ForkFiltered ]
name: shell
description: A snail shell with a dead snail inside.
components:
- type: Item
size: Tiny
- type: FlavorProfile
flavors:
- meaty
- type: Sprite
sprite: _CP14/Objects/Consumable/Food/shell.rsi
layers:
- state: shell
- type: SolutionContainerManager
solutions:
food:
maxVol: 6
reagents:
- ReagentId: UncookedAnimalProteins
Quantity: 3
- type: Temperature
currentTemperature: 290
- type: InternalTemperature
thickness: 0.006
area: 0.006
- type: CP14TemperatureTransformation
entries:
- temperatureRange: 400, 500
transformTo: CP14FoodSnailShellCooked
- type: entity
id: CP14FoodSnailShellCooked
parent:
- FoodInjectableBase
- CP14BurnsAsh
categories: [ ForkFiltered ]
name: cooked snail
description: Fried shells with snails in their own juice. Excellent.
components:
- type: Item
size: Tiny
- type: FlavorProfile
flavors:
- meaty
- type: Sprite
sprite: _CP14/Objects/Consumable/Food/shell.rsi
layers:
- state: cooked_snail
- type: SolutionContainerManager
solutions:
food:
maxVol: 6
reagents:
- ReagentId: Protein
Quantity: 3

View File

@@ -39,6 +39,11 @@
slots: [belt]
- type: Item
size: Normal
- type: Butcherable
butcheringType: Knife
spawned:
- id: CP14ScrapLeather
amount: 1
- type: entity
id: CP14WalletFilledTest
@@ -69,3 +74,24 @@
- id: CP14CopperCoin
- id: CP14CopperCoin
- type: entity
id: CP14WalletFilledLootT1
parent: CP14Wallet
categories: [ HideSpawnMenu ]
components:
- type: StorageFill
contents:
- id: CP14GoldCoin1
prob: 0.001
orGroup: ZombieLootT1
- id: CP14SilverCoin5
prob: 0.1
orGroup: ZombieLootT1
- id: CP14SilverCoin1
prob: 0.3
orGroup: ZombieLootT1
- id: CP14CopperCoin5
prob: 0.6
orGroup: ZombieLootT1
- id: CP14CopperCoin1
orGroup: ZombieLootT1

View File

@@ -53,7 +53,7 @@
- 1
- 5
- 10
currentTransferAmount: 1
currentTransferAmount: 5
toggleState: 1 # draw
- type: Tag
tags:

View File

@@ -131,3 +131,13 @@
- id: CP14SeedCotton
amount: 1
prob: 0.4
- type: entity
id: CP14SackFarmingSeedSnail
parent: CP14SackFarmingSeed
suffix: Snail
components:
- type: StorageFill
contents:
- id: CP14FoodSnailShellCooked
amount: 12

View File

@@ -15,16 +15,16 @@
activeBlockFraction: 0.8
passiveBlockModifier:
coefficients:
Blunt: 0.9
Slash: 0.9
Piercing: 0.9
Heat: 0.9
Blunt: 0.75
Slash: 0.6
Piercing: 0.6
Heat: 0.75
activeBlockModifier:
coefficients:
Blunt: 0.75
Slash: 0.75
Piercing: 0.75
Heat: 0.75
Blunt: 0.5
Slash: 0.4
Piercing: 0.4
Heat: 0.5
flatReductions:
Blunt: 1
Slash: 1
@@ -63,7 +63,7 @@
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 100
damage: 150
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]

View File

@@ -15,16 +15,16 @@
activeBlockFraction: 0.6
passiveBlockModifier:
coefficients:
Blunt: 0.9
Slash: 0.9
Piercing: 0.9
Heat: 0.9
Blunt: 0.75
Slash: 0.6
Piercing: 0.6
Heat: 0.6
activeBlockModifier:
coefficients:
Blunt: 0.8
Slash: 0.8
Piercing: 0.8
Heat: 0.8
Blunt: 0.5
Slash: 0.4
Piercing: 0.4
Heat: 0.4
- type: Clothing
equipDelay: 0.5
unequipDelay: 0.5
@@ -60,7 +60,7 @@
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 75
damage: 125
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
@@ -69,9 +69,9 @@
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
CP14WoodenPlanks1:
CP14IronBar1:
min: 1
max: 2
max: 1
- type: entity
parent: CP14BaseWeaponShieldBuckler

View File

@@ -13,16 +13,16 @@
- type: Blocking
passiveBlockModifier:
coefficients:
Blunt: 0.8
Blunt: 0.9
Slash: 0.8
Piercing: 0.8
Heat: 0.8
Heat: 0.9
activeBlockModifier:
coefficients:
Blunt: 0.5
Blunt: 0.6
Slash: 0.5
Piercing: 0.5
Heat: 0.5
Heat: 0.6
flatReductions:
Blunt: 3
Slash: 3
@@ -62,7 +62,7 @@
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger
damage: 200
damage: 250
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
@@ -91,4 +91,4 @@
- type: PhysicalComposition
materialComposition:
CP14WoodenPlanks: 50
CP14Iron: 40
CP14Iron: 40

View File

@@ -3,17 +3,17 @@
slots:
# Left hotbar
# 0, y
- name: neck
slotTexture: neck
slotFlags: NECK
uiWindowPos: 0,0
strippingWindowPos: 1,2
displayName: Neck
- name: gloves
slotTexture: gloves
slotFlags: GLOVES
uiWindowPos: 0,1
strippingWindowPos: 0,2
displayName: Gloves
- name: mask
slotTexture: mask
slotFlags: MASK
uiWindowPos: 2,3
strippingWindowPos: 2,1
uiWindowPos: 0,2
strippingWindowPos: 2,0
displayName: Mask
- name: eyes
slotTexture: eyes
@@ -22,12 +22,6 @@
strippingWindowPos: 0,1
displayName: Eyes
# 1, y
- name: shoes
slotTexture: shoes
slotFlags: FEET
uiWindowPos: 1,0
strippingWindowPos: 1,5
displayName: Shoes
- name: pants
slotTexture: pants
slotFlags: PANTS
@@ -47,21 +41,18 @@
strippingWindowPos: 1,1
displayName: Head
# 2, y
- name: gloves
slotTexture: gloves
slotFlags: GLOVES
uiWindowPos: 2,0
strippingWindowPos: 0,2
displayName: Gloves
- name: shoes
slotTexture: shoes
slotFlags: FEET
uiWindowPos: 2,1
strippingWindowPos: 1,5
displayName: Shoes
- name: outerClothing
slotTexture: suit
slotFlags: OUTERCLOTHING
uiWindowPos: 2,1
strippingWindowPos: 2,3
uiWindowPos: 2,2
strippingWindowPos: 2,1
displayName: Armor
blacklist:
tags:
- PetOnly
- name: cloak
slotTexture: cloak
slotFlags: CLOAK
@@ -86,6 +77,14 @@
dependsOn: pants
displayName: Keys
stripHidden: true
- name: neck
slotTexture: neck
slotFlags: NECK
slotGroup: SecondHotbar
uiWindowPos: 0,0
strippingWindowPos: 1,2
displayName: Neck
dependsOn: shirt
# Right hand
# Left hand
- name: belt2

View File

@@ -3,10 +3,12 @@
equipment:
shirt: CP14ClothingShirtCottonBlack
pants: CP14ClothingPantsTrouserDarkBlue
belt: CP14WalletFilledLootT1
- type: startingGear
id: CP14MobUndeadEasy2
equipment:
head: CP14ClothingHeadMetalHeadband
pants: CP14ClothingPantsLoincloth
- type: startingGear
@@ -16,3 +18,15 @@
shoes: CP14ClothingShoesSandals
mask: CP14ClothingMaskSinner
- type: startingGear
id: CP14MobUndeadEasy4
equipment:
cloak: CP14ClothingCloakRitualAttireLeather
pants: CP14ClothingPantsGreen
- type: startingGear
id: CP14MobUndeadEasy5
equipment:
pants: CP14ClothingPantsBrown
outerClothing: CP14ClothingOuterClothingBrownVest1
belt: CP14WalletFilledLootT1

View File

@@ -0,0 +1,10 @@
- type: palette
id: CP14CatColors
name: CP14CatColors
colors:
black: "#333333"
gray: "#666666"
white: "#ffffff"
brown: "#595042"
lightbrown: "#654321"
orange: "#e49b0f"

View File

@@ -5,7 +5,7 @@
sprite: _CP14/Interface/Misc/demiplane_locations.rsi
state: caves
levels:
min: 1
min: 0
max: 2
locationConfig: CP14Caves
tags:
@@ -14,6 +14,12 @@
components:
- type: Biome
template: CP14CavesIndestructibleFill
- type: Roof
- type: CP14SetGridRooved
- type: SunShadow
- type: SunShadowCycle
- type: MapLight
ambientLightColor: "#BFEEFFFF"
- type: dungeonConfig
id: CP14Caves

View File

@@ -15,6 +15,12 @@
components:
- type: Biome
template: CP14IceChasmFill
- type: Roof
- type: CP14SetGridRooved
- type: SunShadow
- type: SunShadowCycle
- type: MapLight
ambientLightColor: "#BFEEFFFF"
- type: dungeonConfig
id: CP14IceCaves

View File

@@ -15,6 +15,12 @@
components:
- type: Biome
template: CP14LavaOceanFill
- type: Roof
- type: CP14SetGridRooved
- type: SunShadow
- type: SunShadowCycle
- type: MapLight
ambientLightColor: "#BFEEFFFF"
- type: dungeonConfig
id: CP14MagmaCaves

View File

@@ -15,6 +15,12 @@
components:
- type: Biome
template: CP14ChasmFill
- type: Roof
- type: CP14SetGridRooved
- type: SunShadow
- type: SunShadowCycle
- type: MapLight
ambientLightColor: "#BFEEFFFF"
- type: dungeonConfig
id: CP14MushroomCaves

View File

@@ -17,6 +17,12 @@
components:
- type: Biome
template: CP14CavesIndestructibleFill
- type: Roof
- type: CP14SetGridRooved
- type: SunShadow
- type: SunShadowCycle
- type: MapLight
ambientLightColor: "#BFEEFFFF"
- type: dungeonConfig
id: CP14SwampGeode

View File

@@ -14,14 +14,14 @@
- CP14DemiplaneOpenSky
- CP14DemiplanePeacefulAnimals
components:
- type: Biome
template: CP14SandOceanFill
- type: Roof
- type: SunShadow
- type: SunShadowCycle
- type: MapLight
ambientLightColor: "#BFEEFFFF"
- type: CP14CloudShadows
- type: Biome
template: CP14SandOceanFill
- type: SunShadow
- type: SunShadowCycle
- type: Roof
- type: dungeonConfig
id: CP14GrasslandIsland

View File

@@ -38,21 +38,21 @@
minGroupSize: 2
maxGroupSize: 6
- type: cp14LocationModifier
id: Fairy
levels:
min: 0
max: 3
categories:
Danger: 0.20
requiredTags:
- CP14DemiplaneHerbals
layers:
- !type:CP14OreDunGen
entity: CP14MobFairy
count: 4
minGroupSize: 2
maxGroupSize: 3
#- type: cp14LocationModifier #Temporarily disabled until fairies can crash server
# id: Fairy
# levels:
# min: 0
# max: 3
# categories:
# Danger: 0.20
# requiredTags:
# - CP14DemiplaneHerbals
# layers:
# - !type:CP14OreDunGen
# entity: CP14MobFairy
# count: 4
# minGroupSize: 2
# maxGroupSize: 3
- type: cp14LocationModifier
id: SmallHydra

View File

@@ -11,42 +11,6 @@
- type: MapLight
ambientLightColor: "#000000"
- type: cp14LocationModifier
id: MapLightDarkRed
levels:
min: 3
max: 10
categories:
MapLight: 1
name: cp14-modifier-night
components:
- type: MapLight
ambientLightColor: "#0f0104"
- type: cp14LocationModifier
id: MapLightDarkPurple
levels:
min: 1
max: 10
categories:
MapLight: 1
name: cp14-modifier-night
components:
- type: MapLight
ambientLightColor: "#09010f"
- type: cp14LocationModifier
id: MapLightDarkGreen
levels:
min: 1
max: 10
categories:
MapLight: 1
name: cp14-modifier-night
components:
- type: MapLight
ambientLightColor: "#000502"
- type: cp14LocationModifier
id: MapLightDarkNight
levels:
@@ -69,8 +33,6 @@
categories:
MapLight: 1
generationWeight: 2
requiredTags:
- CP14DemiplaneOpenSky
components:
- type: LightCycle
@@ -83,7 +45,6 @@
MapLight: 1
generationWeight: 2
requiredTags:
- CP14DemiplaneOpenSky
- CP14DemiplaneCold
components:
- type: LightCycle
@@ -99,7 +60,6 @@
categories:
MapLight: 1
requiredTags:
- CP14DemiplaneOpenSky
- CP14DemiplaneHot
components:
- type: LightCycle
@@ -115,7 +75,6 @@
categories:
MapLight: 1
requiredTags:
- CP14DemiplaneOpenSky
- CP14DemiplaneHot
components:
- type: LightCycle
@@ -123,3 +82,19 @@
- type: MapLight
ambientLightColor: "#d68787"
- type: cp14LocationModifier
id: CavesRoofHoles
levels:
min: 0
max: 10
generationProb: 0.8
categories:
MapLight: 0
requiredTags:
- CP14DemiplaneUnderground
layers:
- !type:CP14OreDunGen
entity: CP14NoRoofMarkerGodRays
count: 15
minGroupSize: 10
maxGroupSize: 30

View File

@@ -14,6 +14,8 @@
max: 10
categories:
Weather: 1
requiredTags:
- CP14DemiplaneOpenSky
components:
- type: CP14WeatherController
entries:
@@ -26,8 +28,6 @@
max: 10
categories:
Weather: 1
requiredTags:
- CP14DemiplaneOpenSky
components:
- type: CP14WeatherController
entries:
@@ -48,8 +48,6 @@
name: cp14-modifier-storm
categories:
Weather: 1
requiredTags:
- CP14DemiplaneOpenSky
components:
- type: CP14WeatherController
entries:
@@ -124,6 +122,8 @@
- type: CP14WeatherController
entries:
- visuals: CP14ManaMist
requiredTags:
- CP14DemiplaneOpenSky
layers:
- !type:CP14RoomsDunGen
count: 8
@@ -142,6 +142,8 @@
- type: CP14WeatherController
entries:
- visuals: CP14AntiManaMist
requiredTags:
- CP14DemiplaneOpenSky
layers:
- !type:CP14RoomsDunGen
count: 8
@@ -156,6 +158,7 @@
max: 10
requiredTags:
- CP14DemiplaneHot
- CP14DemiplaneOpenSky
categories:
Weather: 1
components:

View File

@@ -32,6 +32,12 @@
effects:
- !type:SatiateThirst
factor: 15
- !type:CP14ManaChange
manaDelta: 4
safe: true
conditions:
- !type:OrganType
type: Plant
pricePerUnit: 1.0 # Most basic effect
- type: reagent
@@ -47,7 +53,7 @@
metabolismRate: 0.05
effects:
- !type:CP14ManaChange
manaDelta: 1.5
manaDelta: 3
safe: true
pricePerUnit: 5.0 # 2×Energia (0.4) + 1×Motion (0.2) + Water (0.1) = 0.7 → x7.14 (high value)

View File

@@ -21,11 +21,10 @@
Narcotic:
metabolismRate: 0.05
effects:
- !type:GenericStatusEffect
key: SeeingRainbows
component: SeeingRainbows
type: Add
- !type:ModifyStatusEffect
effectProto: StatusEffectSeeingRainbow
time: 25
type: Add
refresh: false
pricePerUnit: 0.5 # Purely decorative effect

View File

@@ -20,5 +20,5 @@
id: CP14CarcatHues
strategy: !type:ClampedHsvColoration
hue: [0.05, 0.10]
saturation: [0.15, 0.35]
saturation: [0.15, 0.7]
value: [0.25, 0.95]

View File

@@ -17,7 +17,6 @@
sprites:
Head: CP14MobZombieHead
Chest: CP14MobZombieTorso
Eyes: CP14MobZombieEyes
LArm: CP14MobZombieLArm
RArm: CP14MobZombieRArm
LHand: CP14MobZombieLHand
@@ -27,12 +26,6 @@
LFoot: CP14MobZombieLFoot
RFoot: CP14MobZombieRFoot
- type: humanoidBaseSprite
id: CP14MobZombieEyes
baseSprite:
sprite: _CP14/Mobs/Customization/eyes.rsi
state: eyes
- type: humanoidBaseSprite
id: CP14MobZombieHead
baseSprite:

View File

@@ -19,6 +19,8 @@
- CP14Monster
- CP14Slimes
- CP14Fishies
- CP14Cat
- CP14Rodent
- type: npcFaction
id: CP14Undead
@@ -28,6 +30,8 @@
- CP14PeacefulAnimals
- CP14AggressiveAnimals
- CP14Fishies
- CP14Cat
- CP14Rodent
- type: npcFaction
id: CP14PeacefulAnimals
@@ -35,6 +39,15 @@
- type: npcFaction
id: CP14Neutrals
- type: npcFaction
id: CP14Cat
hostile:
- CP14Rodent
- CP14Fishies
- type: npcFaction
id: CP14Rodent
- type: npcFaction
id: CP14AggressiveAnimals
hostile:
@@ -45,6 +58,8 @@
- CP14Slimes
- CP14HostileEveryone
- CP14Fishies
- CP14Cat
- CP14Rodent
- type: npcFaction
id: CP14Monster
@@ -53,6 +68,8 @@
- CP14HostileEveryone
- CP14AggressiveAnimals
- CP14PeacefulAnimals
- CP14Cat
- CP14Rodent
- type: npcFaction
id: CP14Insects
@@ -69,6 +86,8 @@
- CP14HostileEveryone
- CP14PeacefulAnimals
- CP14AggressiveAnimals
- CP14Cat
- CP14Rodent
- type: npcFaction
id: CP14Fishies

View File

@@ -5,14 +5,16 @@
<GuideEntityEmbed Entity="CP14MobSilva" Caption="Silva"/>
</Box>
The Silva are a race of humanoid plants living in deep relic forests. Emerging from the mother tree in the centre of their cities, the Silvas do not travel the world very often.
The Silva are a race of humanoid plants living in deep relic forests. Emerging from the mother tree in the centre of their cities, the Silva's do not travel the world very often.
## Magical photosynthesis
Silvas regenerate [protodata="CP14MobSilva" comp="CP14MagicEnergyPhotosynthesis" member="DaylightEnergy"/] mana while in sunlight, but without it, mana regeneration is completely absent.
Silva's regenerate [protodata="CP14MobSilva" comp="CP14MagicEnergyPhotosynthesis" member="DaylightEnergy"/] mana while in sunlight, but without it, mana regeneration is completely absent.
Silva's can also drink water to regenerate small amounts of mana; life-giving moisture gives the silva a large amount of mana.
## Connection with nature
Silvas initially have basic and advanced vivification.
Silva's initially have basic and advanced vivification.
</Document>
</Document>

View File

@@ -9,9 +9,11 @@
## Магический фотосинтез
Сильвы регенерируют [protodata="CP14MobSilva" comp="CP14MagicEnergyPhotosynthesis" member="DaylightEnergy"/] маны находясь под солнечным светом, но без него регенерация маны полностью отсутствует.
Сильвы регенерируют [protodata="CP14MobSilva" comp="CP14MagicEnergyPhotosynthesis" member="DaylightEnergy"/] маны находясь под солнечным светом, но без него регенерация маны полностью отсутствует.
Сильвы также могут пить воду, чтобы восстановить небольшое количество маны, живительная влага дает сильвам большое количество маны.
## Связь с природой
Сильвы имеют базовое и продвинутое жизнетворение с начала раунда.
</Document>
</Document>

View File

@@ -0,0 +1,95 @@
{
"version": 1,
"size": {
"x": 58,
"y": 100
},
"license": "CC-BY-SA-3.0",
"copyright": "Created by TheShuEd",
"states": [
{
"name": "ray",
"delays": [
[
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
0.12,
5.12
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

View File

@@ -0,0 +1,31 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "Sprites by darksovet(discord), modified by omsoyk(discord), modified RSI by oldschool_otaku, owned by Gogenych",
"states": [
{
"name": "walking",
"directions": 4
},
{
"name": "lying"
},
{
"name": "dead"
},
{
"name": "walking-overlay",
"directions": 4
},
{
"name": "lying-overlay"
},
{
"name": "dead-overlay"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

View File

@@ -0,0 +1,15 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-4.0",
"copyright": "Created by omsoyk (github/discord)",
"states": [
{
"name": "live",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

View File

@@ -4,144 +4,148 @@
"x": 32,
"y": 32
},
"copyright": "Taken from https://github.com/tgstation/tgstation/blob/05ec94e46349c35e29ca91e5e97d0c88ae26ad44/icons/mob/species/human/human_face.dmi, adapted by Dinazewwr. goateemush by TheShuEd",
"copyright": "Taken from https://github.com/tgstation/tgstation/blob/05ec94e46349c35e29ca91e5e97d0c88ae26ad44/icons/mob/species/human/human_face.dmi, adapted by Dinazewwr. goateemush by TheShuEd, hussar taken from skyrat-tg and edited by Lugzag",
"license": "All right reserved",
"states": [
{
"name": "3oclock",
"directions": 4
},
{
"name": "5oclockmoustache",
"directions": 4
},
{
"name": "7oclock",
"directions": 4
},
{
"name": "7oclockmoustache",
"directions": 4
},
{
"name": "abe",
"directions": 4
},
{
"name": "chinlessbeard",
"directions": 4
},
{
"name": "dwarf",
"directions": 4
},
{
"name": "dwarf2",
"directions": 4
},
{
"name": "elvis",
"directions": 4
},
{
"name": "fiveoclock",
"directions": 4
},
{
"name": "fullbeard",
"directions": 4
},
{
"name": "fumanchu",
"directions": 4
},
{
"name": "goateemush",
"directions": 4
},
{
"name": "gt",
"directions": 4
},
{
"name": "hip",
"directions": 4
},
{
"name": "hogan",
"directions": 4
},
{
"name": "jensen",
"directions": 4
},
{
"name": "longbeard",
"directions": 4
},
{
"name": "martialartist",
"directions": 4
},
{
"name": "martialartist2",
"directions": 4
},
{
"name": "moonshiner",
"directions": 4
},
{
"name": "moustache",
"directions": 4
},
{
"name": "mutton",
"directions": 4
},
{
"name": "muttonmus",
"directions": 4
},
{
"name": "neckbeard",
"directions": 4
},
{
"name": "pencilstache",
"directions": 4
},
{
"name": "selleck",
"directions": 4
},
{
"name": "sideburn",
"directions": 4
},
{
"name": "smallstache",
"directions": 4
},
{
"name": "vandyke",
"directions": 4
},
{
"name": "volaju",
"directions": 4
},
{
"name": "walrus",
"directions": 4
},
{
"name": "watson",
"directions": 4
},
{
"name": "wise",
"directions": 4
}
]
}
"states": [
{
"name": "3oclock",
"directions": 4
},
{
"name": "5oclockmoustache",
"directions": 4
},
{
"name": "7oclock",
"directions": 4
},
{
"name": "7oclockmoustache",
"directions": 4
},
{
"name": "abe",
"directions": 4
},
{
"name": "chinlessbeard",
"directions": 4
},
{
"name": "dwarf",
"directions": 4
},
{
"name": "dwarf2",
"directions": 4
},
{
"name": "elvis",
"directions": 4
},
{
"name": "fiveoclock",
"directions": 4
},
{
"name": "fullbeard",
"directions": 4
},
{
"name": "fumanchu",
"directions": 4
},
{
"name": "goateemush",
"directions": 4
},
{
"name": "gt",
"directions": 4
},
{
"name": "hip",
"directions": 4
},
{
"name": "hussar",
"directions": 4
},
{
"name": "hogan",
"directions": 4
},
{
"name": "jensen",
"directions": 4
},
{
"name": "longbeard",
"directions": 4
},
{
"name": "martialartist",
"directions": 4
},
{
"name": "martialartist2",
"directions": 4
},
{
"name": "moonshiner",
"directions": 4
},
{
"name": "moustache",
"directions": 4
},
{
"name": "mutton",
"directions": 4
},
{
"name": "muttonmus",
"directions": 4
},
{
"name": "neckbeard",
"directions": 4
},
{
"name": "pencilstache",
"directions": 4
},
{
"name": "selleck",
"directions": 4
},
{
"name": "sideburn",
"directions": 4
},
{
"name": "smallstache",
"directions": 4
},
{
"name": "vandyke",
"directions": 4
},
{
"name": "volaju",
"directions": 4
},
{
"name": "walrus",
"directions": 4
},
{
"name": "watson",
"directions": 4
},
{
"name": "wise",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

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