Compare commits
@@ -414,3 +414,10 @@ FodyWeavers.xsd
|
||||
# Built Visual Studio Code Extensions
|
||||
*.vsix
|
||||
|
||||
|
||||
# LittleSim
|
||||
Cache/
|
||||
# Рантайм-файлы (пишутся игрой в рабочем каталоге) — не версионируем
|
||||
/settings.json
|
||||
/Saves/
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"editor.defaultFormatter": "csharpier.csharpier-vscode",
|
||||
"editor.formatOnPaste": true,
|
||||
"editor.formatOnSave": true
|
||||
}
|
||||
@@ -4,16 +4,28 @@ A god-game: minimal graphics, deep simulation. Built on the **mrgameeng** engine
|
||||
(MonoGame + Friflo ECS), vendored as the git submodule `engine/` so the game and the
|
||||
engine are developed side by side in one editor window.
|
||||
|
||||
This game is also the **engine's showcase**: mrgameeng has no sample project, so every
|
||||
new engine feature gets demonstrated here (a scene, a console command, or a system
|
||||
using it) as part of landing the feature.
|
||||
|
||||
Game design docs live in `docs/` and are written in **Russian**. Engine rules live in
|
||||
`engine/CLAUDE.md` — read it before touching engine code; both rule sets apply here.
|
||||
|
||||
## Layout
|
||||
|
||||
```
|
||||
engine/ mrgameeng git submodule (own repo, own CLAUDE.md)
|
||||
src/LittleSim the game (net8.0); references engine projects directly
|
||||
docs/ концепт, симуляция, roadmap (Russian)
|
||||
LittleSim.sln game + engine sources + engine tests — one window for everything
|
||||
engine/ mrgameeng git submodule (own repo, own CLAUDE.md)
|
||||
src/LittleSim the game (net8.0); references engine projects directly
|
||||
src/LittleSim.Server dedicated server: the world headless (engine HeadlessHost) +
|
||||
WebSocket replication (MrGameEng.Net); also fast-forward and probe modes
|
||||
src/LittleSim.Web browser client (Blazor WASM + KNI/WebGL): connects to the dedicated
|
||||
server, renders replicated pawns; mirrors the net contract (NetContract.cs)
|
||||
because KNI and DesktopGL assemblies can't mix — keep in sync with
|
||||
src/LittleSim/Net/NetSchema.cs. Outside LittleSim.sln's test flow.
|
||||
Mods/Core the game's own content as a mod: About, Defs, Languages, Textures
|
||||
Cache/ runtime-built atlases (gitignored)
|
||||
docs/ концепт, симуляция, моды, roadmap (Russian)
|
||||
LittleSim.sln game + engine sources + engine tests — one window for everything
|
||||
```
|
||||
|
||||
## Commands
|
||||
@@ -22,21 +34,27 @@ LittleSim.sln game + engine sources + engine tests — one window for everythin
|
||||
git submodule update --init # after fresh clone
|
||||
dotnet build LittleSim.sln
|
||||
dotnet run --project src/LittleSim -c Release # measure perf in Release only
|
||||
dotnet run --project src/LittleSim.Server -- --days 10 --tps 60 # headless fast-forward
|
||||
dotnet run --project src/LittleSim.Server -- --listen # multiplayer world (WebSocket)
|
||||
dotnet run --project src/LittleSim -- --connect # client → ws://localhost:9050
|
||||
dotnet run --project src/LittleSim.Server -- --probe # CLI check of a running server
|
||||
dotnet run --project src/LittleSim.Web # browser client (?server=ws://…)
|
||||
dotnet test LittleSim.sln # runs the engine test suites
|
||||
```
|
||||
|
||||
## Texture atlases
|
||||
## Content and mods
|
||||
|
||||
Source images live in `textures/` (committed); the game only loads packed atlases from
|
||||
`src/LittleSim/Assets/Atlases` (also committed — the asset generator emits
|
||||
`GameAssets.Atlases.*` handles for them). After changing `textures/`, rebuild with:
|
||||
All game content is data in mods (`MrGameEng.Mods`): the game itself ships as the
|
||||
`Core` mod. `Mods/Core/Defs` holds JSON defs (terrain, plants, pawns — see
|
||||
`docs/mods.md`), `Mods/Core/Languages/{ru,en}` holds UI strings (default language is
|
||||
`ru`), `Mods/Core/Textures` holds source images. New mechanics get defs + localization
|
||||
keys, not hardcoded arrays; UI strings go through `LanguageManager`, never inline.
|
||||
|
||||
```
|
||||
dotnet run --project engine/tools/MrGameEng.AtlasTool -c Release -- textures src/LittleSim/Assets/Atlases --group-depth 2
|
||||
```
|
||||
|
||||
Rebuilds are incremental (unchanged groups are skipped). Region keys are paths relative
|
||||
to `textures/` without extension: `atlas.GetRegion("things/plant/treeoak/TreeOakA")`.
|
||||
Atlases are built **at game start** from the merged texture tree of all active mods
|
||||
into `Cache/Atlases` (incremental: unchanged groups are skipped, a clean first run
|
||||
takes ~20 s). Region keys are paths relative to `Textures/` without extension:
|
||||
`atlases.GetRegion(device, "things/plant/treeoak/TreeOakA")`. Console commands:
|
||||
`mods`, `lang [code]`, `defs [type]`, `atlas [name]`.
|
||||
|
||||
## Submodule workflow
|
||||
|
||||
@@ -53,4 +71,10 @@ Never commit a pointer to an unpushed engine commit.
|
||||
- Simulation/presentation split: simulation systems mutate components only;
|
||||
rendering reads them. No draw calls or UI from simulation systems.
|
||||
- ECS-first per the engine: plain `struct : IComponent` data, logic in systems.
|
||||
- Content as data: numbers, textures and balance live in `Mods/Core/Defs`, user-facing
|
||||
strings in `Mods/Core/Languages` — code only defines systems and def classes.
|
||||
- Every new mechanic gets a dev-console command for testing (`regen`, `timescale`, …).
|
||||
- Formatting: all C# code is formatted with **CSharpier** (`editor.defaultFormatter`
|
||||
is `csharpier.csharpier-vscode`, format-on-save is on). Match CSharpier's output —
|
||||
run `csharpier format .` (or let format-on-save handle it) before committing; never
|
||||
hand-format against it.
|
||||
|
||||
@@ -15,16 +15,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Core", "engine\sr
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Graphics", "engine\src\MrGameEng.Graphics\MrGameEng.Graphics.csproj", "{F35A5F1A-9A1B-4F57-BC81-BF16BC574DED}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Input", "engine\src\MrGameEng.Input\MrGameEng.Input.csproj", "{7D7E001D-72ED-4204-94D5-B8A0F706D544}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Audio", "engine\src\MrGameEng.Audio\MrGameEng.Audio.csproj", "{A2620CBF-3404-4583-AD55-FCC8A704BD9A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Assets", "engine\src\MrGameEng.Assets\MrGameEng.Assets.csproj", "{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.UI", "engine\src\MrGameEng.UI\MrGameEng.UI.csproj", "{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.DevConsole", "engine\src\MrGameEng.DevConsole\MrGameEng.DevConsole.csproj", "{0C370DCA-18AB-4A79-9C60-BE00E7A57180}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Assets.Generator", "engine\src\MrGameEng.Assets.Generator\MrGameEng.Assets.Generator.csproj", "{BA456A86-0960-45C3-B48E-5882D7A3873F}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CD3B5CE5-C23F-38B4-04AA-A303F94731A5}"
|
||||
@@ -33,19 +27,31 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Assets.Generator.
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Core.Tests", "engine\tests\MrGameEng.Core.Tests\MrGameEng.Core.Tests.csproj", "{2994C301-DFD3-48D1-B44C-F01ED28FBE93}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.DevConsole.Tests", "engine\tests\MrGameEng.DevConsole.Tests\MrGameEng.DevConsole.Tests.csproj", "{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Graphics.Tests", "engine\tests\MrGameEng.Graphics.Tests\MrGameEng.Graphics.Tests.csproj", "{21B1878F-2532-4D48-95DD-1C7268DCF1D5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Input.Tests", "engine\tests\MrGameEng.Input.Tests\MrGameEng.Input.Tests.csproj", "{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Content", "engine\src\MrGameEng.Content\MrGameEng.Content.csproj", "{EC5504F5-483B-4197-AA19-E8FD710583F4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Pathfinding", "engine\src\MrGameEng.Pathfinding\MrGameEng.Pathfinding.csproj", "{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Simulation", "engine\src\MrGameEng.Simulation\MrGameEng.Simulation.csproj", "{9E653B28-0060-46DA-84D0-DA8655B07AF6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Collisions", "engine\src\MrGameEng.Collisions\MrGameEng.Collisions.csproj", "{9406DB4C-FABF-48FE-BEA7-25AD319D2172}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Content.Tests", "engine\tests\MrGameEng.Content.Tests\MrGameEng.Content.Tests.csproj", "{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Pathfinding.Tests", "engine\tests\MrGameEng.Pathfinding.Tests\MrGameEng.Pathfinding.Tests.csproj", "{47E5E756-64F9-4B5A-8EC3-B016745166C4}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Simulation.Tests", "engine\tests\MrGameEng.Simulation.Tests\MrGameEng.Simulation.Tests.csproj", "{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Collisions.Tests", "engine\tests\MrGameEng.Collisions.Tests\MrGameEng.Collisions.Tests.csproj", "{B9161776-32FE-415E-9401-DC5BB87FC225}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.UI.Tests", "engine\tests\MrGameEng.UI.Tests\MrGameEng.UI.Tests.csproj", "{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Audio.Tests", "engine\tests\MrGameEng.Audio.Tests\MrGameEng.Audio.Tests.csproj", "{E0E37D87-4F62-41E9-9CD1-3E7432301508}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Host", "engine\src\MrGameEng.Host\MrGameEng.Host.csproj", "{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Host.Tests", "engine\tests\MrGameEng.Host.Tests\MrGameEng.Host.Tests.csproj", "{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Net", "engine\src\MrGameEng.Net\MrGameEng.Net.csproj", "{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MrGameEng.Net.Tests", "engine\tests\MrGameEng.Net.Tests\MrGameEng.Net.Tests.csproj", "{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LittleSim.Server", "src\LittleSim.Server\LittleSim.Server.csproj", "{95630217-333B-4263-84AE-5EE5961FC307}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LittleSim.Web", "src\LittleSim.Web\LittleSim.Web.csproj", "{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -93,18 +99,6 @@ Global
|
||||
{F35A5F1A-9A1B-4F57-BC81-BF16BC574DED}.Release|x64.Build.0 = Release|Any CPU
|
||||
{F35A5F1A-9A1B-4F57-BC81-BF16BC574DED}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{F35A5F1A-9A1B-4F57-BC81-BF16BC574DED}.Release|x86.Build.0 = Release|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Release|x64.Build.0 = Release|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A2620CBF-3404-4583-AD55-FCC8A704BD9A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A2620CBF-3404-4583-AD55-FCC8A704BD9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A2620CBF-3404-4583-AD55-FCC8A704BD9A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
@@ -117,18 +111,6 @@ Global
|
||||
{A2620CBF-3404-4583-AD55-FCC8A704BD9A}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A2620CBF-3404-4583-AD55-FCC8A704BD9A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A2620CBF-3404-4583-AD55-FCC8A704BD9A}.Release|x86.Build.0 = Release|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Release|x64.Build.0 = Release|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
@@ -141,18 +123,6 @@ Global
|
||||
{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D}.Release|x86.Build.0 = Release|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Release|x64.Build.0 = Release|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180}.Release|x86.Build.0 = Release|Any CPU
|
||||
{BA456A86-0960-45C3-B48E-5882D7A3873F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BA456A86-0960-45C3-B48E-5882D7A3873F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BA456A86-0960-45C3-B48E-5882D7A3873F}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
@@ -189,18 +159,6 @@ Global
|
||||
{2994C301-DFD3-48D1-B44C-F01ED28FBE93}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2994C301-DFD3-48D1-B44C-F01ED28FBE93}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2994C301-DFD3-48D1-B44C-F01ED28FBE93}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C}.Release|x86.Build.0 = Release|Any CPU
|
||||
{21B1878F-2532-4D48-95DD-1C7268DCF1D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{21B1878F-2532-4D48-95DD-1C7268DCF1D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{21B1878F-2532-4D48-95DD-1C7268DCF1D5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
@@ -213,66 +171,150 @@ Global
|
||||
{21B1878F-2532-4D48-95DD-1C7268DCF1D5}.Release|x64.Build.0 = Release|Any CPU
|
||||
{21B1878F-2532-4D48-95DD-1C7268DCF1D5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{21B1878F-2532-4D48-95DD-1C7268DCF1D5}.Release|x86.Build.0 = Release|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Release|x64.Build.0 = Release|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4}.Release|x86.Build.0 = Release|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Release|x64.Build.0 = Release|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30}.Release|x86.Build.0 = Release|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Release|x64.Build.0 = Release|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172}.Release|x86.Build.0 = Release|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Release|x64.Build.0 = Release|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4}.Release|x86.Build.0 = Release|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Release|x64.Build.0 = Release|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225}.Release|x86.Build.0 = Release|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Release|x64.Build.0 = Release|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4}.Release|x86.Build.0 = Release|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Release|x64.Build.0 = Release|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F}.Release|x86.Build.0 = Release|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Release|x64.Build.0 = Release|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050}.Release|x86.Build.0 = Release|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Release|x64.Build.0 = Release|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD}.Release|x86.Build.0 = Release|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Release|x64.Build.0 = Release|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508}.Release|x86.Build.0 = Release|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6}.Release|x86.Build.0 = Release|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Release|x64.Build.0 = Release|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A}.Release|x86.Build.0 = Release|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Release|x64.Build.0 = Release|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7}.Release|x86.Build.0 = Release|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Release|x64.Build.0 = Release|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA}.Release|x86.Build.0 = Release|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Release|x64.Build.0 = Release|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{95630217-333B-4263-84AE-5EE5961FC307}.Release|x86.Build.0 = Release|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Release|x64.Build.0 = Release|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@@ -282,21 +324,24 @@ Global
|
||||
{F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519} = {D585295F-7994-3649-1065-7AA403C41681}
|
||||
{FE6C04D3-E619-4C77-A971-1357463676B7} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{F35A5F1A-9A1B-4F57-BC81-BF16BC574DED} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{7D7E001D-72ED-4204-94D5-B8A0F706D544} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{A2620CBF-3404-4583-AD55-FCC8A704BD9A} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{4FCD860B-F8E1-42F5-8A53-EA9AFCCE5A27} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{A90690FB-E3A8-4C92-94E2-33D8E1F27D9D} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{0C370DCA-18AB-4A79-9C60-BE00E7A57180} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{BA456A86-0960-45C3-B48E-5882D7A3873F} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{CD3B5CE5-C23F-38B4-04AA-A303F94731A5} = {D585295F-7994-3649-1065-7AA403C41681}
|
||||
{83548DF5-75BC-45EF-8911-83BE5173CD2D} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{2994C301-DFD3-48D1-B44C-F01ED28FBE93} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{A3C128F7-6CCD-46CD-B935-C30E15EC7E1C} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{21B1878F-2532-4D48-95DD-1C7268DCF1D5} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{E9B94072-798E-4E09-BD9E-1FE6165D7EA4} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{DC52F36D-2729-42DD-B1ED-B0D0CF95DC30} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{9406DB4C-FABF-48FE-BEA7-25AD319D2172} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{47E5E756-64F9-4B5A-8EC3-B016745166C4} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{B9161776-32FE-415E-9401-DC5BB87FC225} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{EC5504F5-483B-4197-AA19-E8FD710583F4} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{9E653B28-0060-46DA-84D0-DA8655B07AF6} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{A09593B2-82BD-468F-AC0C-52B8DEFE8E0F} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{86ECA4A0-46A2-45F4-8CF4-8FB8BB5DC050} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{BC64F7AF-0FC3-4608-A4FF-1273AB8F2ABD} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{E0E37D87-4F62-41E9-9CD1-3E7432301508} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{6EFAFBB4-F11A-42B9-A8AB-B98E735431F6} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{BE18D2E0-B8AD-4632-AA0F-F9C80BE5D83A} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{841EAE51-E86B-4BFB-A70C-A67E4D492DD7} = {F4A69A46-AF86-AB4E-7D23-4CCCB7B9A519}
|
||||
{D66A7D37-A1F1-473D-A5FA-9F121CCCC0CA} = {CD3B5CE5-C23F-38B4-04AA-A303F94731A5}
|
||||
{95630217-333B-4263-84AE-5EE5961FC307} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
|
||||
{1FF0DF78-22E4-4169-A9DC-233FFAEA5B14} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"id": "Core",
|
||||
"name": "LittleSim Core",
|
||||
"author": "mrleo1nid",
|
||||
"version": "0.1.0",
|
||||
"description": "Базовый контент LittleSim: рельеф, растения, существа, текстуры и локализация. Игра целиком описана как мод — любой другой мод может переопределить её содержимое.",
|
||||
"dependencies": []
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
"type": "Animal",
|
||||
// Виды-животные: подтип Pawn (kind=animal) + базовый геном вида из общих Gene-дефов (см. Defs/Genes/).
|
||||
// Особь при спавне получает аллели вокруг этих баз, фенотип — формулами генов. Диета задаётся ГЕНАМИ
|
||||
// (herbivory/carnivory/omnivory): олень — травоядный, волк — хищник, кабан — всеядный. Хищники несут
|
||||
// боевые параметры (attack*) и охотятся на добычу не крупнее себя; жертвы убегают (см. AnimalSystems).
|
||||
"defs": [
|
||||
{
|
||||
"defName": "Deer",
|
||||
"label": "pawn.deer",
|
||||
"kind": "animal",
|
||||
"texture": "things/pawn/animal/deer/DeerFemale_east",
|
||||
"maleTexture": "things/pawn/animal/deer/DeerMale_east",
|
||||
"babyTexture": "things/pawn/animal/deer/DeerBaby_east",
|
||||
"corpseTexture": "things/pawn/animal/deer/Dessicated_DeerFemale_east",
|
||||
"body": "Quadruped",
|
||||
"diet": ["plant"],
|
||||
"spawnPer1000Cells": 2.5,
|
||||
"baseMassKg": 70,
|
||||
"genome": {
|
||||
"GeneMaxBodySize": 1.5,
|
||||
"GeneMetabolism": 1.0,
|
||||
"GeneMoveSpeed": 1.2,
|
||||
"GeneBloodVolume": 1.4,
|
||||
"GeneVision": 1.3,
|
||||
"GeneHearing": 1.4,
|
||||
"GeneSmell": 1.2,
|
||||
"GeneTouch": 1.0,
|
||||
"GeneCamouflage": 0.35,
|
||||
"GeneScent": 0.5,
|
||||
"GeneNoise": 0.4,
|
||||
"GeneBrainSize": 0.45,
|
||||
"GeneInsulation": 0.55,
|
||||
"GeneFurColor": 0.45,
|
||||
"GeneMaturityAge": 90,
|
||||
"GeneLifespan": 360,
|
||||
"GeneBreedingSeason": 2,
|
||||
"GeneGestationDays": 30,
|
||||
"GeneLitterSize": 1,
|
||||
"GeneHerbivory": 1.0,
|
||||
"GeneToxinTolerance": 0.1,
|
||||
"GeneFeedingStyle": 0.15,
|
||||
"GeneSociability": 0.8
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"defName": "Wolf",
|
||||
"label": "pawn.wolf",
|
||||
"kind": "animal",
|
||||
"texture": "things/pawn/animal/wolf_timber/Wolf_Timber_east",
|
||||
"maleTexture": "things/pawn/animal/wolf_timber/Wolf_Timber3_east",
|
||||
"body": "Quadruped",
|
||||
"diet": ["meat"],
|
||||
"spawnPer1000Cells": 0.8,
|
||||
"baseSpeed": 32,
|
||||
"visionCells": 18,
|
||||
"attackRangeCells": 1.3,
|
||||
"attackIntervalSec": 1.4,
|
||||
"attackDamage": 16,
|
||||
"attackBleed": 0.16,
|
||||
"attackBloodLoss": 0.06,
|
||||
"baseMassKg": 45,
|
||||
"genome": {
|
||||
"GeneMaxBodySize": 1.6,
|
||||
"GeneMetabolism": 1.1,
|
||||
"GeneMoveSpeed": 1.4,
|
||||
"GeneBloodVolume": 1.3,
|
||||
"GeneVision": 1.5,
|
||||
"GeneHearing": 1.5,
|
||||
"GeneSmell": 1.8,
|
||||
"GeneTouch": 1.0,
|
||||
"GeneCamouflage": 0.2,
|
||||
"GeneScent": 0.6,
|
||||
"GeneNoise": 0.5,
|
||||
"GeneBrainSize": 0.5,
|
||||
"GeneInsulation": 0.6,
|
||||
"GeneFurColor": 0.7,
|
||||
"GeneMaturityAge": 70,
|
||||
"GeneLifespan": 240,
|
||||
"GeneBreedingSeason": 3,
|
||||
"GeneGestationDays": 35,
|
||||
"GeneLitterSize": 4,
|
||||
"GeneCarnivory": 1.0,
|
||||
"GeneFeedingStyle": 0.9,
|
||||
"GeneSociability": 0.6
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"defName": "WildBoar",
|
||||
"label": "pawn.boar",
|
||||
"kind": "animal",
|
||||
"texture": "things/pawn/animal/wildboar/WildBoar_east",
|
||||
"body": "Quadruped",
|
||||
"diet": ["plant", "meat"],
|
||||
"spawnPer1000Cells": 1.0,
|
||||
"baseSpeed": 26,
|
||||
"visionCells": 13,
|
||||
"attackRangeCells": 1.2,
|
||||
"attackIntervalSec": 2.0,
|
||||
"attackDamage": 9,
|
||||
"attackBleed": 0.1,
|
||||
"attackBloodLoss": 0.035,
|
||||
"baseMassKg": 80,
|
||||
"genome": {
|
||||
"GeneMaxBodySize": 1.3,
|
||||
"GeneMetabolism": 1.2,
|
||||
"GeneMoveSpeed": 1.0,
|
||||
"GeneBloodVolume": 1.2,
|
||||
"GeneVision": 1.0,
|
||||
"GeneHearing": 1.2,
|
||||
"GeneSmell": 1.6,
|
||||
"GeneTouch": 1.0,
|
||||
"GeneCamouflage": 0.2,
|
||||
"GeneScent": 0.7,
|
||||
"GeneNoise": 0.7,
|
||||
"GeneBrainSize": 0.42,
|
||||
"GeneInsulation": 0.5,
|
||||
"GeneFurColor": 0.85,
|
||||
"GeneMaturityAge": 80,
|
||||
"GeneLifespan": 280,
|
||||
"GeneBreedingSeason": 0,
|
||||
"GeneGestationDays": 28,
|
||||
"GeneLitterSize": 5,
|
||||
"GeneHerbivory": 0.4,
|
||||
"GeneCarnivory": 0.2,
|
||||
"GeneOmnivory": 0.85,
|
||||
"GeneToxinTolerance": 0.25,
|
||||
"GeneFeedingStyle": 0.55,
|
||||
"GeneSociability": 0.3
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"defName": "Chicken",
|
||||
"label": "pawn.chicken",
|
||||
"kind": "animal",
|
||||
"texture": "things/pawn/animal/chicken/Chicken_east",
|
||||
"body": "Quadruped",
|
||||
"diet": ["plant"],
|
||||
"spawnPer1000Cells": 1.5,
|
||||
"baseSpeed": 22,
|
||||
"visionCells": 10,
|
||||
"baseMassKg": 2.5,
|
||||
"genome": {
|
||||
"GeneMaxBodySize": 0.5,
|
||||
"GeneMetabolism": 1.3,
|
||||
"GeneMoveSpeed": 0.9,
|
||||
"GeneBloodVolume": 0.7,
|
||||
"GeneVision": 1.1,
|
||||
"GeneHearing": 1.0,
|
||||
"GeneSmell": 0.6,
|
||||
"GeneTouch": 1.0,
|
||||
"GeneCamouflage": 0.2,
|
||||
"GeneScent": 0.4,
|
||||
"GeneNoise": 0.6,
|
||||
"GeneBrainSize": 0.3,
|
||||
"GeneInsulation": 0.45,
|
||||
"GeneFurColor": 0.6,
|
||||
"GeneMaturityAge": 50,
|
||||
"GeneLifespan": 180,
|
||||
"GeneBreedingSeason": 1,
|
||||
"GeneGestationDays": 12,
|
||||
"GeneLitterSize": 6,
|
||||
"GeneHerbivory": 0.8,
|
||||
"GeneToxinTolerance": 0.15,
|
||||
"GeneEggLaying": 1.0,
|
||||
"GeneFeedingStyle": 0.2,
|
||||
"GeneSociability": 0.55
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"type": "Body",
|
||||
// Анатомия видов (фаза A5): дерево частей/органов. Вклады в способности (capacities) по телу
|
||||
// суммируются ≈1 у здоровой особи. maxHp умножается на размер тела особи при создании.
|
||||
// Источников урона пока нет — части на полном HP, способности = 1; каркас под болезни/хищников.
|
||||
"defs": [
|
||||
{
|
||||
"defName": "Quadruped",
|
||||
"parts": [
|
||||
{ "name": "torso", "coverage": 0.3, "maxHp": 40, "vital": true },
|
||||
{ "name": "heart", "parent": "torso", "coverage": 0.02, "maxHp": 12, "vital": true,
|
||||
"capacities": { "BloodPumping": 1.0 } },
|
||||
{ "name": "lungLeft", "parent": "torso", "coverage": 0.03, "maxHp": 12,
|
||||
"capacities": { "Breathing": 0.5 } },
|
||||
{ "name": "lungRight", "parent": "torso", "coverage": 0.03, "maxHp": 12,
|
||||
"capacities": { "Breathing": 0.5 } },
|
||||
{ "name": "liver", "parent": "torso", "coverage": 0.03, "maxHp": 14, "vital": true,
|
||||
"capacities": { "BloodFiltration": 0.4 } },
|
||||
{ "name": "kidneyLeft", "parent": "torso", "coverage": 0.02, "maxHp": 10,
|
||||
"capacities": { "BloodFiltration": 0.3 } },
|
||||
{ "name": "kidneyRight", "parent": "torso", "coverage": 0.02, "maxHp": 10,
|
||||
"capacities": { "BloodFiltration": 0.3 } },
|
||||
{ "name": "stomach", "parent": "torso", "coverage": 0.03, "maxHp": 12,
|
||||
"capacities": { "Digestion": 1.0 } },
|
||||
{ "name": "head", "coverage": 0.08, "maxHp": 25 },
|
||||
{ "name": "brain", "parent": "head", "coverage": 0.02, "maxHp": 12, "vital": true,
|
||||
"capacities": { "Consciousness": 1.0 } },
|
||||
{ "name": "eyeLeft", "parent": "head", "coverage": 0.015, "maxHp": 8,
|
||||
"capacities": { "Sight": 0.5 } },
|
||||
{ "name": "eyeRight", "parent": "head", "coverage": 0.015, "maxHp": 8,
|
||||
"capacities": { "Sight": 0.5 } },
|
||||
{ "name": "earLeft", "parent": "head", "coverage": 0.01, "maxHp": 8,
|
||||
"capacities": { "Hearing": 0.5 } },
|
||||
{ "name": "earRight", "parent": "head", "coverage": 0.01, "maxHp": 8,
|
||||
"capacities": { "Hearing": 0.5 } },
|
||||
{ "name": "nose", "parent": "head", "coverage": 0.01, "maxHp": 8,
|
||||
"capacities": { "Smell": 1.0 } },
|
||||
{ "name": "skin", "coverage": 0.05, "maxHp": 20,
|
||||
"capacities": { "Touch": 1.0 } },
|
||||
{ "name": "jaw", "parent": "head", "coverage": 0.02, "maxHp": 10,
|
||||
"capacities": { "Eating": 1.0, "Talking": 0.5 } },
|
||||
{ "name": "tongue", "parent": "head", "coverage": 0.01, "maxHp": 8,
|
||||
"capacities": { "Talking": 0.5 } },
|
||||
{ "name": "legFrontLeft", "coverage": 0.08, "maxHp": 15, "capacities": { "Moving": 0.25 } },
|
||||
{ "name": "legFrontRight", "coverage": 0.08, "maxHp": 15, "capacities": { "Moving": 0.25 } },
|
||||
{ "name": "legBackLeft", "coverage": 0.08, "maxHp": 15, "capacities": { "Moving": 0.25 } },
|
||||
{ "name": "legBackRight", "coverage": 0.08, "maxHp": 15, "capacities": { "Moving": 0.25 } }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"type": "Gene",
|
||||
// Гены животных: организм-агностичные гены зверя (их несёт геном животного). Тело/обмен/движение/
|
||||
// чувства/мозг + пол (локус) и размножение. Признаки читают системы животных (рост, ИИ, здоровье).
|
||||
"defs": [
|
||||
{ "defName": "GeneMaxBodySize", "parent": "BaseNumericGene", "label": "gene.bodySize",
|
||||
"default": 1.0, "min": 0.1, "max": 4.0, "tags": ["animal", "body"],
|
||||
"effects": { "bodySize": "value" } },
|
||||
{ "defName": "GeneMetabolism", "parent": "BaseNumericGene", "label": "gene.metabolism",
|
||||
"default": 1.0, "min": 0.2, "max": 3.0, "tags": ["animal", "metabolism"],
|
||||
"effects": { "metabolism": "value" } },
|
||||
{ "defName": "GeneMoveSpeed", "parent": "BaseNumericGene", "label": "gene.moveSpeed",
|
||||
"default": 1.0, "min": 0.2, "max": 3.0, "tags": ["animal", "movement"],
|
||||
"effects": { "moveSpeed": "value" } },
|
||||
{ "defName": "GeneBloodVolume", "parent": "BaseNumericGene", "label": "gene.bloodVolume",
|
||||
"default": 1.0, "min": 0.2, "max": 3.0, "tags": ["animal", "health"],
|
||||
"effects": { "bloodVolume": "value" } },
|
||||
{ "defName": "GeneVision", "parent": "BaseNumericGene", "label": "gene.vision",
|
||||
"default": 1.0, "min": 0.2, "max": 3.0, "tags": ["animal", "senses"],
|
||||
"effects": { "vision": "value" } },
|
||||
|
||||
// --- Чувства (острота = множитель радиуса восприятия) и заметность (как видят/слышат/чуют ЭТУ особь) ---
|
||||
// Острота работает вместе со способностью органа (глаза/уши/нос/кожа): ген × capacity × радиус чувства.
|
||||
{ "defName": "GeneHearing", "parent": "BaseNumericGene", "label": "gene.hearing",
|
||||
"default": 1.0, "min": 0.2, "max": 3.0, "tags": ["animal", "senses"],
|
||||
"effects": { "hearing": "value" } },
|
||||
{ "defName": "GeneSmell", "parent": "BaseNumericGene", "label": "gene.smell",
|
||||
"default": 1.0, "min": 0.2, "max": 3.0, "tags": ["animal", "senses"],
|
||||
"effects": { "smell": "value" } },
|
||||
{ "defName": "GeneTouch", "parent": "BaseNumericGene", "label": "gene.touch",
|
||||
"default": 1.0, "min": 0.2, "max": 3.0, "tags": ["animal", "senses"],
|
||||
"effects": { "touch": "value" } },
|
||||
// Заметность цели: камуфляж снижает обнаружение зрением (1−camouflage), запах повышает обонянием,
|
||||
// шум при движении повышает обнаружение слухом. См. формулу радиуса в системе восприятия.
|
||||
{ "defName": "GeneCamouflage", "parent": "BaseNumericGene", "label": "gene.camouflage",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "stealth"],
|
||||
"effects": { "camouflage": "value" } },
|
||||
{ "defName": "GeneScent", "parent": "BaseNumericGene", "label": "gene.scent",
|
||||
"default": 0.5, "min": 0.0, "max": 1.0, "tags": ["animal", "stealth"],
|
||||
"effects": { "scent": "value" } },
|
||||
{ "defName": "GeneNoise", "parent": "BaseNumericGene", "label": "gene.noise",
|
||||
"default": 0.5, "min": 0.0, "max": 1.0, "tags": ["animal", "stealth"],
|
||||
"effects": { "noise": "value" } },
|
||||
{ "defName": "GeneBrainSize", "parent": "BaseNumericGene", "label": "gene.brainSize",
|
||||
"default": 0.45, "min": 0.0, "max": 1.0, "spread": 0.03, "tags": ["animal", "brain"],
|
||||
"effects": { "brainSize": "value" } },
|
||||
{ "defName": "GeneInsulation", "parent": "BaseNumericGene", "label": "gene.insulation",
|
||||
"default": 0.5, "min": 0.0, "max": 1.0, "tags": ["animal", "temperature"],
|
||||
"effects": { "insulation": "value" } },
|
||||
{ "defName": "GeneFurColor", "parent": "BaseNumericGene", "label": "gene.furColor",
|
||||
"default": 0.5, "min": 0.0, "max": 1.0, "spread": 0.06, "tags": ["animal", "morphology", "color"],
|
||||
"effects": { "furHue": "value" } },
|
||||
{ "defName": "GeneMaturityAge", "parent": "BaseNumericGene", "label": "gene.maturityAge",
|
||||
"default": 90, "min": 1, "max": 400, "tags": ["animal", "lifecycle"],
|
||||
"effects": { "maturityAge": "value" } },
|
||||
|
||||
// --- Диета как ГЕНЫ (хищничество/травоядство/всеядство) ---
|
||||
// Каждый ген выражает свой признак [0..1]; рацион выводится порогами: ест растения, если
|
||||
// max(herbivory, omnivory) ≥ порога; ест мясо (охота/падаль), если max(carnivory, omnivory) ≥ порога.
|
||||
// Поэтому всеядность — отдельный ген, который включает ОБА источника пищи (генералист), а
|
||||
// специалисты задаются высоким herbivory ЛИБО carnivory. См. AnimalFactory.Diet.
|
||||
{ "defName": "GeneHerbivory", "parent": "BaseNumericGene", "label": "gene.herbivory",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "diet"],
|
||||
"effects": { "herbivory": "value" } },
|
||||
{ "defName": "GeneCarnivory", "parent": "BaseNumericGene", "label": "gene.carnivory",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "diet"],
|
||||
"effects": { "carnivory": "value" } },
|
||||
{ "defName": "GeneOmnivory", "parent": "BaseNumericGene", "label": "gene.omnivory",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "diet"],
|
||||
"effects": { "omnivory": "value" } },
|
||||
|
||||
// Устойчивость к растительным ядам (коэволюция): снижает дозу отравления при поедании токсичных
|
||||
// растений (effectivePoison = toxicity × (1 − toxinTolerance), см. AnimalActionSystem). Растёт под
|
||||
// давлением ядовитого корма — другая сторона гонки вооружений с GeneToxicity растений.
|
||||
{ "defName": "GeneToxinTolerance", "parent": "BaseNumericGene", "label": "gene.toxinTolerance",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["animal", "diet"],
|
||||
"effects": { "toxinTolerance": "value" } },
|
||||
|
||||
// Стиль питания [0..1]: 0 — пастьба (graze, частые мелкие приёмы, держит сытость высокой),
|
||||
// 1 — обжорство (gorge, ищет еду лишь при сильном голоде и ест до полного — редкие крупные приёмы,
|
||||
// как у хищников). Задаёт пороги начала/конца кормёжки в AnimalDecisionSystem. Эволюционирует.
|
||||
{ "defName": "GeneFeedingStyle", "parent": "BaseNumericGene", "label": "gene.feedingStyle",
|
||||
"default": 0.5, "min": 0.0, "max": 1.0, "spread": 0.05, "tags": ["animal", "diet"],
|
||||
"effects": { "feedingStyle": "value" } },
|
||||
|
||||
// Пол как локус (фаза A3): аллели {X=0, Y=1}; самка XX, самец XY. Эффекта нет — пол читается из
|
||||
// самих аллелей (наличие Y), не из выраженного значения. mutationChance 0 (X не мутирует в Y).
|
||||
// Генерация особи-основателя задаёт пол явно (XX или XY), чтобы не возник невозможный YY.
|
||||
{ "defName": "GeneSex", "kind": "Discrete", "label": "gene.sex",
|
||||
"variants": 2, "variantWeights": [0.5, 0.5], "mutationChance": 0, "tags": ["animal", "sex"] },
|
||||
|
||||
// Социальность [0..1]: стадные/стайные виды держатся вместе (когезия при блуждании) и спокойнее в
|
||||
// группе («безопасность в числе» снижает дальность реакции на хищника). См. AnimalDecisionSystem.
|
||||
{ "defName": "GeneSociability", "parent": "BaseNumericGene", "label": "gene.sociability",
|
||||
"default": 0.3, "min": 0.0, "max": 1.0, "spread": 0.05, "tags": ["animal", "behaviour"],
|
||||
"effects": { "sociability": "value" } },
|
||||
|
||||
// Тип рождения (цикл зачатия): живородящие (eggLaying < 0.5) вынашивают и рожают живых детёнышей;
|
||||
// яйцекладущие (≥ 0.5) после вынашивания ОТКЛАДЫВАЮТ яйца-сущности, которые инкубируются и
|
||||
// вылупляются (см. AnimalPregnancySystem/EggSystem). Признак фиксирован по виду (spread/mutation 0).
|
||||
{ "defName": "GeneEggLaying", "parent": "BaseNumericGene", "label": "gene.eggLaying",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "spread": 0, "mutationChance": 0, "tags": ["animal", "reproduction"],
|
||||
"effects": { "eggLaying": "value" } },
|
||||
|
||||
// Размножение (фаза A4): сезон гона фиксирован по виду (0 весна … 3 зима), срок вынашивания и помёт.
|
||||
{ "defName": "GeneBreedingSeason", "parent": "BaseNumericGene", "label": "gene.breedingSeason",
|
||||
"default": 2, "min": 0, "max": 3, "spread": 0, "mutationChance": 0, "tags": ["animal", "reproduction"],
|
||||
"effects": { "breedingSeason": "value" } },
|
||||
{ "defName": "GeneGestationDays", "parent": "BaseNumericGene", "label": "gene.gestationDays",
|
||||
"default": 30, "min": 1, "max": 200, "tags": ["animal", "reproduction"],
|
||||
"effects": { "gestationDays": "value" } },
|
||||
{ "defName": "GeneLitterSize", "parent": "BaseNumericGene", "label": "gene.litterSize",
|
||||
"default": 1, "min": 1, "max": 12, "tags": ["animal", "reproduction"],
|
||||
"effects": { "litterSize": "value" } }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"type": "Gene",
|
||||
// Контент-гены (фаза G4+): плодоношение, добыча, цвет, производные и дискретные морфы.
|
||||
"defs": [
|
||||
{ "defName": "GeneFruitYield", "parent": "BaseNumericGene", "label": "gene.fruitYield",
|
||||
"default": 0, "min": 0, "max": 12, "tags": ["fruiting"],
|
||||
"effects": { "fruitYield": "value" } },
|
||||
{ "defName": "GeneFruitSeason", "parent": "BaseNumericGene", "label": "gene.fruitSeason",
|
||||
"default": 1, "min": 0, "max": 3, "spread": 0, "mutationChance": 0, "tags": ["fruiting"],
|
||||
"effects": { "fruitSeason": "value" } },
|
||||
{ "defName": "GeneHarvestAmount", "parent": "BaseNumericGene", "label": "gene.harvestAmount",
|
||||
"default": 1, "min": 0, "max": 50, "tags": ["harvest"],
|
||||
"effects": { "harvestAmount": "value" } },
|
||||
{ "defName": "GeneLeafHue", "parent": "BaseNumericGene", "label": "gene.leafHue",
|
||||
"default": 0.33, "min": 0, "max": 1, "spread": 0.04, "tags": ["morphology", "color"],
|
||||
"effects": { "leafHue": "value" } },
|
||||
|
||||
// --- Защита растения (коэволюция с травоядными) ---
|
||||
// Токсичность отравляет поедателя (hediff Poisoned, тем сильнее, чем ниже его устойчивость к яду);
|
||||
// шипы наносят поедателю лёгкую травму; вкусность (palatability) — обратная привлекательность для
|
||||
// умных травоядных (избегание появится в C2). У защиты ЕСТЬ ЦЕНА: токсичность/шипы тормозят рост
|
||||
// (см. PlantGrowthSystem), иначе все растения дошли бы до максимума и коэволюция бы встала.
|
||||
{ "defName": "GeneToxicity", "parent": "BaseNumericGene", "label": "gene.toxicity",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["defense"],
|
||||
"effects": { "toxicity": "value" } },
|
||||
{ "defName": "GeneThorns", "parent": "BaseNumericGene", "label": "gene.thorns",
|
||||
"default": 0.0, "min": 0.0, "max": 1.0, "tags": ["defense"],
|
||||
"effects": { "thorns": "value" } },
|
||||
{ "defName": "GenePalatability", "parent": "BaseNumericGene", "label": "gene.palatability",
|
||||
"default": 1.0, "min": 0.0, "max": 1.0, "tags": ["defense"],
|
||||
"effects": { "palatability": "value" } },
|
||||
|
||||
// Производный ген: признак собирается группировкой по регэкспу — сумма всех генов-толерантностей
|
||||
// (демонстрация gsom-функций фазы G5). Собственное значение гена не используется.
|
||||
{ "defName": "GeneHardiness", "parent": "BaseNumericGene", "label": "gene.hardiness",
|
||||
"default": 0, "min": 0, "max": 1, "spread": 0, "mutationChance": 0, "tags": ["derived"],
|
||||
"effects": { "hardiness": "gsum('Gene.*Tolerance')" } },
|
||||
|
||||
// Дискретный ген морфы: вариант 0 доминирует, 1 (рецессивный) виден только в гомозиготе.
|
||||
{ "defName": "GeneMorph", "kind": "Discrete", "label": "gene.morph",
|
||||
"variants": 2, "variantWeights": [0.82, 0.18], "mutationChance": 0.05, "tags": ["morphology"],
|
||||
"effects": { "variant": "value" } }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"type": "Gene",
|
||||
// Гены среды: свет, температура, почва. Покрывают экологические измерения генома растения,
|
||||
// которые читают системы роста/жизненного цикла.
|
||||
"defs": [
|
||||
{ "defName": "GeneOptimalLight", "parent": "BaseNumericGene", "label": "gene.optimalLight",
|
||||
"default": 0.6, "min": 0.0, "max": 1.0, "tags": ["environment", "light"],
|
||||
"effects": { "optimalLight": "value" } },
|
||||
{ "defName": "GeneLightTolerance", "parent": "BaseNumericGene", "label": "gene.lightTolerance",
|
||||
"default": 0.5, "min": 0.05, "max": 1.0, "tags": ["environment", "light"],
|
||||
"effects": { "lightTolerance": "value" } },
|
||||
{ "defName": "GeneOptimalTemperature", "parent": "BaseNumericGene", "label": "gene.optimalTemperature",
|
||||
"default": 14, "min": -20, "max": 45, "tags": ["environment", "temperature"],
|
||||
"effects": { "optimalTemperature": "value" } },
|
||||
{ "defName": "GeneTemperatureTolerance", "parent": "BaseNumericGene", "label": "gene.temperatureTolerance",
|
||||
"default": 16, "min": 2, "max": 40, "tags": ["environment", "temperature"],
|
||||
"effects": { "temperatureTolerance": "value" } },
|
||||
// Жёсткие края диапазона роста (модель RimWorld): на сколько °C ниже/выше плато оптимума рост
|
||||
// спадает до нуля. Ниже (optimal-tolerance-coldHardiness) или выше (optimal+tolerance+heatHardiness)
|
||||
// растение дормантно и копит температурный стресс. Асимметрично: вид может терпеть жару лучше холода.
|
||||
{ "defName": "GeneColdHardiness", "parent": "BaseNumericGene", "label": "gene.coldHardiness",
|
||||
"default": 8, "min": 0, "max": 40, "tags": ["environment", "temperature"],
|
||||
"effects": { "coldHardiness": "value" } },
|
||||
{ "defName": "GeneHeatHardiness", "parent": "BaseNumericGene", "label": "gene.heatHardiness",
|
||||
"default": 10, "min": 0, "max": 40, "tags": ["environment", "temperature"],
|
||||
"effects": { "heatHardiness": "value" } },
|
||||
{ "defName": "GeneOptimalFertility", "parent": "BaseNumericGene", "label": "gene.optimalFertility",
|
||||
"default": 1.4, "min": 0.1, "max": 3.0, "tags": ["environment", "soil"],
|
||||
"effects": { "optimalFertility": "value" } },
|
||||
{ "defName": "GeneFertilityTolerance", "parent": "BaseNumericGene", "label": "gene.fertilityTolerance",
|
||||
"default": 0.9, "min": 0.1, "max": 3.0, "tags": ["environment", "soil"],
|
||||
"effects": { "fertilityTolerance": "value" } }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"type": "Gene",
|
||||
// Гены роста и размножения: бодрость, продолжительность жизни, расселение, репродукция.
|
||||
"defs": [
|
||||
{ "defName": "GeneVigor", "parent": "BaseNumericGene", "label": "gene.vigor",
|
||||
"default": 1.0, "min": 0.1, "max": 3.0, "tags": ["growth"],
|
||||
"effects": { "vigor": "value" } },
|
||||
{ "defName": "GeneLifespan", "parent": "BaseNumericGene", "label": "gene.lifespan",
|
||||
"default": 160, "min": 5, "max": 500, "tags": ["lifecycle"],
|
||||
"effects": { "lifespan": "value" } },
|
||||
{ "defName": "GeneDispersalRange", "parent": "BaseNumericGene", "label": "gene.dispersalRange",
|
||||
"default": 2, "min": 1, "max": 8, "tags": ["lifecycle", "reproduction"],
|
||||
"effects": { "dispersalRange": "value" } },
|
||||
{ "defName": "GeneReproduceInterval", "parent": "BaseNumericGene", "label": "gene.reproduceInterval",
|
||||
"default": 14, "min": 1, "max": 60, "tags": ["lifecycle", "reproduction"],
|
||||
"effects": { "reproduceInterval": "value" } },
|
||||
{ "defName": "GeneSelfPollination", "parent": "BaseNumericGene", "label": "gene.selfPollination",
|
||||
"default": 0.2, "min": 0.0, "max": 1.0, "tags": ["reproduction"],
|
||||
"effects": { "selfPollination": "value" } },
|
||||
{ "defName": "GeneMutationRate", "parent": "BaseNumericGene", "label": "gene.mutationRate",
|
||||
"default": 0.05, "min": 0.0, "max": 1.0, "tags": ["reproduction"],
|
||||
"effects": { "mutationRate": "value" } }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"type": "Gene",
|
||||
// Общие (абстрактные) гены: база наследования для конкретных генов. Каждый ген задаёт, как
|
||||
// генерируются/мутируют аллели и как ген вкладывается в признаки (effects: имя признака →
|
||||
// формула; value — выраженное значение гена). Конкретные гены лежат рядом по подтемам.
|
||||
"defs": [
|
||||
{ "defName": "BaseNumericGene", "abstract": true, "kind": "Numeric",
|
||||
"spread": 0.08, "mutationChance": 0.05, "mutationMagnitude": 0.12 }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"type": "Hediff",
|
||||
// Хедифы — состояния организма (фаза A4: лёгкий каркас). Гон (Rut) навешивается сезонно на взрослых
|
||||
// и поднимает половое влечение. Раны/болезни/возрастные эффекты со стадиями придут в A5/A6.
|
||||
"defs": [
|
||||
{ "defName": "Rut", "label": "hediff.rut" },
|
||||
|
||||
// Болезнь (фаза A6): прогрессирует, параллельно растёт иммунитет (гонка). Обычно иммунитет
|
||||
// успевает победить (~3 дня), но больной зверь медленнее и слабее; слабые/невезучие гибнут.
|
||||
{
|
||||
"defName": "Fever", "label": "hediff.fever",
|
||||
"initialSeverity": 0.05, "severityPerDay": 0.25, "immunityPerDay": 0.32,
|
||||
"lethalSeverity": 1.0, "pain": 0.3, "ambientPerDay": 0.03,
|
||||
"capMods": { "Moving": 0.6, "Consciousness": 0.85, "Digestion": 0.8 }
|
||||
},
|
||||
|
||||
// Рана/кровотечение (предатор-кластер): первый травматический урон. Не прогрессирует сама
|
||||
// (severityPerDay 0), но immunityPerDay её «сворачивает» (рана заживает ~за 2 дня). Пока активна —
|
||||
// теряется кровь (bloodLossPerDay × тяжесть); кровь на нуле = смерть. Боль и капмоды от тяжёлых ран.
|
||||
// Каждый укус усиливает тяжесть и сбрасывает заживление (см. HealthState.Intensify).
|
||||
{
|
||||
"defName": "Bleeding", "label": "hediff.bleeding",
|
||||
"initialSeverity": 0.3, "immunityPerDay": 0.5, "bloodLossPerDay": 0.8,
|
||||
"pain": 0.25, "capMods": { "Moving": 0.92, "Consciousness": 0.95 }
|
||||
},
|
||||
|
||||
// Отравление растительным ядом (коэволюция): сама не прогрессирует (severityPerDay 0) — тяжесть
|
||||
// копится при поедании токсичных растений (HealthState.Intensify в AnimalActionSystem). Иммунитет
|
||||
// её рассасывает (~1.5 дня), но если зверь ест яд быстрее, чем выводит, тяжесть доходит до 1 → смерть.
|
||||
// Это селективное давление: ядовитый корм опасен для травоядных с низкой устойчивостью.
|
||||
{
|
||||
"defName": "Poisoned", "label": "hediff.poisoned",
|
||||
"initialSeverity": 0.0, "immunityPerDay": 0.65, "lethalSeverity": 1.0, "pain": 0.2,
|
||||
"capMods": { "Moving": 0.85, "Consciousness": 0.9, "Digestion": 0.7 }
|
||||
},
|
||||
|
||||
// Терморегуляция (как Poisoned-паттерн): сами не прогрессируют — тяжесть копится, пока зверю
|
||||
// холодно/жарко (см. AnimalHealthSystem, зависит от GeneInsulation + размера тела), а в комфорте
|
||||
// immunityPerDay их рассасывает. Тяжесть 1 = смерть от переохлаждения/перегрева.
|
||||
{
|
||||
"defName": "Hypothermia", "label": "hediff.hypothermia",
|
||||
"initialSeverity": 0.0, "immunityPerDay": 0.5, "lethalSeverity": 1.0, "pain": 0.15,
|
||||
"capMods": { "Moving": 0.7, "Consciousness": 0.8 }
|
||||
},
|
||||
{
|
||||
"defName": "Heatstroke", "label": "hediff.heatstroke",
|
||||
"initialSeverity": 0.0, "immunityPerDay": 0.5, "lethalSeverity": 1.0, "pain": 0.15,
|
||||
"capMods": { "Moving": 0.75, "Consciousness": 0.8 }
|
||||
},
|
||||
|
||||
// Заражение раны (предатор/шипы → кровотечение → инфекция): прогрессирует, иммунитет (× фильтрация
|
||||
// крови) душит. Слабая фильтрация/много ран → выше риск и хуже исход.
|
||||
{
|
||||
"defName": "Infection", "label": "hediff.infection",
|
||||
"initialSeverity": 0.08, "severityPerDay": 0.2, "immunityPerDay": 0.28,
|
||||
"lethalSeverity": 1.0, "pain": 0.25,
|
||||
"capMods": { "Moving": 0.8, "Consciousness": 0.85, "BloodFiltration": 0.8 }
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "Need",
|
||||
// Нужды как данные (фаза A2, рефактор расширяемости): добавить нужду виду = добавить запись здесь.
|
||||
// kind=deplete убывает и утоляется действием; kind=drive растёт под хедифом (гон) и сбрасывается им.
|
||||
// action — id поведения-исполнителя (реестр в коде). minBrain — гейт интеллектом (активен с A7):
|
||||
// нужда, чей minBrain выше эффективного интеллекта особи (brainSize × Consciousness), в выбор ИИ не
|
||||
// входит. Пороги — тиры мозга: 0.0 голод-рефлекс, 0.25 жажда (низший позвоночный), 0.40 сон/секс
|
||||
// (зверь). У оленя мозг ~0.45: здоров — весь набор; повреждение мозга/болезнь роняют сознание →
|
||||
// эффективный интеллект падает → первыми отключаются сон/спаривание (обратная связь A7).
|
||||
"defs": [
|
||||
{ "defName": "Hunger", "label": "need.hunger", "kind": "deplete", "action": "Eat",
|
||||
"decayPerDay": 0.55, "feedPerDay": 4, "lethal": true, "minBrain": 0.0 },
|
||||
{ "defName": "Thirst", "label": "need.thirst", "kind": "deplete", "action": "Drink",
|
||||
"decayPerDay": 0.9, "feedPerDay": 8, "lethal": true, "minBrain": 0.25 },
|
||||
{ "defName": "Rest", "label": "need.rest", "kind": "deplete", "action": "Sleep",
|
||||
"decayPerDay": 0.7, "feedPerDay": 3, "lethal": false, "minBrain": 0.40 },
|
||||
{ "defName": "Mating", "label": "need.mating", "kind": "drive", "action": "Mate",
|
||||
"decayPerDay": 1.0, "risePerDay": 1.2, "risesUnder": "Rut", "minBrain": 0.40 }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"type": "Patch",
|
||||
// Контент-патчи (фаза G5): применяются ко всем дефам типа defType, чьё имя подходит под regex match,
|
||||
// проставляя поля set. Демонстрация: даём кустам древесину при сборе (веточки).
|
||||
"patches": [
|
||||
{ "defType": "Plant", "match": "Bush.*", "set": { "harvestProduct": "ProductWood" } }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "Pawn",
|
||||
// Животные.
|
||||
"defs": [
|
||||
{ "defName": "Bear", "parent": "BaseAnimal", "label": "pawn.bear", "texture": "things/pawn/animal/bear/Bear_east", "sizeCells": 1.7 },
|
||||
{ "defName": "DeerDoe", "parent": "BaseAnimal", "label": "pawn.deer", "texture": "things/pawn/animal/deer/DeerFemale_east", "sizeCells": 1.4 },
|
||||
{ "defName": "DeerBuck", "parent": "BaseAnimal", "label": "pawn.deer", "texture": "things/pawn/animal/deer/DeerMale_east", "sizeCells": 1.6 },
|
||||
{ "defName": "FoxRed", "parent": "BaseAnimal", "label": "pawn.fox", "texture": "things/pawn/animal/fox_red/Fox_Red_east", "sizeCells": 1.0 },
|
||||
{ "defName": "Hare", "parent": "BaseAnimal", "label": "pawn.hare", "texture": "things/pawn/animal/hare/Hare_east", "sizeCells": 0.7 },
|
||||
{ "defName": "WildBoar", "parent": "BaseAnimal", "label": "pawn.boar", "texture": "things/pawn/animal/wildboar/WildBoar_east", "sizeCells": 1.2 },
|
||||
{ "defName": "Wolf", "parent": "BaseAnimal", "label": "pawn.wolf", "texture": "things/pawn/animal/wolf_timber/Wolf_Timber_east", "sizeCells": 1.4 },
|
||||
{ "defName": "Muffalo", "parent": "BaseAnimal", "label": "pawn.muffalo", "texture": "things/pawn/animal/muffalo/Muffalo_east", "sizeCells": 1.8 },
|
||||
{ "defName": "Squirrel", "parent": "BaseAnimal", "label": "pawn.squirrel", "texture": "things/pawn/animal/squirrel/Squirrel_east", "sizeCells": 0.6 }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"type": "Pawn",
|
||||
// Жители: варианты тел.
|
||||
"defs": [
|
||||
{ "defName": "BeingMale", "parent": "BaseBeing", "label": "pawn.being", "texture": "things/pawn/humanlike/bodies/FurCovered_Male_south" },
|
||||
{ "defName": "BeingFemale", "parent": "BaseBeing", "label": "pawn.being", "texture": "things/pawn/humanlike/bodies/FurCovered_Female_south" },
|
||||
{ "defName": "BeingThin", "parent": "BaseBeing", "label": "pawn.being", "texture": "things/pawn/humanlike/bodies/FurCovered_Thin_south" },
|
||||
{ "defName": "BeingFat", "parent": "BaseBeing", "label": "pawn.being", "texture": "things/pawn/humanlike/bodies/FurCovered_Fat_south" },
|
||||
{ "defName": "BeingHulk", "parent": "BaseBeing", "label": "pawn.being", "texture": "things/pawn/humanlike/bodies/FurCovered_Hulk_south" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"type": "Pawn",
|
||||
// Общие (абстрактные) существа: база для жителей и животных.
|
||||
"defs": [
|
||||
{ "defName": "BaseBeing", "abstract": true, "kind": "being", "sizeCells": 1.1 },
|
||||
{ "defName": "BaseAnimal", "abstract": true, "kind": "animal" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Ягодный почвопокров луга (еда).
|
||||
"defs": [
|
||||
{ "defName": "Strawberry", "parent": "BaseBerryBush", "label": "plant.strawberry", "sizeCells": 1.0, "texture": "things/plant/strawberryplant/StrawberryPlant" },
|
||||
{ "defName": "Raspberry", "parent": "BaseBerryBush", "label": "plant.raspberry", "texture": "things/plant/raspberryplant/raspberrybusha" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Кусты: ягодный подлесок. Патч даёт им древесину при сборе (веточки) — см. Patches/Patches.json.
|
||||
"defs": [
|
||||
{ "defName": "BushA", "parent": "BaseBush", "texture": "things/plant/bush/BushA" },
|
||||
{ "defName": "BushB", "parent": "BaseBush", "texture": "things/plant/bush/BushB" },
|
||||
{ "defName": "BushC", "parent": "BaseBush", "texture": "things/plant/bush/BushC" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Пустыня: кактусы и агава на песке. Большинство без плодов; сагуаро/агава плодоносят.
|
||||
"defs": [
|
||||
{ "defName": "SaguaroCactusA", "parent": "BaseCactus", "label": "plant.saguaro", "sizeCells": 2.2, "trunkRadiusCells": 0.18,
|
||||
"fruitProduct": "ProductBerry", "texture": "things/plant/saguarocactus/SaguaroCactusA" },
|
||||
{ "defName": "SaguaroCactusB", "parent": "BaseCactus", "label": "plant.saguaro", "sizeCells": 2.2, "trunkRadiusCells": 0.18,
|
||||
"fruitProduct": "ProductBerry", "texture": "things/plant/saguarocactus/SaguaroCactusB" },
|
||||
{ "defName": "PebbleCactusA", "parent": "BaseCactus", "sizeCells": 1.0, "texture": "things/plant/pebblecactus/PebbleCactusA" },
|
||||
{ "defName": "PebbleCactusB", "parent": "BaseCactus", "sizeCells": 1.0, "texture": "things/plant/pebblecactus/PebbleCactusB" },
|
||||
{ "defName": "PincushionCactusA", "parent": "BaseCactus", "sizeCells": 0.9, "texture": "things/plant/pincushioncactus/PincushionCactusA" },
|
||||
{ "defName": "AgaveA", "parent": "BaseCactus", "label": "plant.agave", "sizeCells": 1.3, "fruitProduct": "ProductBerry", "texture": "things/plant/agave/AgaveA" },
|
||||
{ "defName": "AgaveB", "parent": "BaseCactus", "label": "plant.agave", "sizeCells": 1.3, "fruitProduct": "ProductBerry", "texture": "things/plant/agave/AgaveB" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Луг: декоративные цветы с быстрым расселением.
|
||||
"defs": [
|
||||
{ "defName": "DandelionA", "parent": "BaseFlower", "label": "plant.dandelion", "texture": "things/plant/dandelion/Dandelion" },
|
||||
{ "defName": "DandelionB", "parent": "BaseFlower", "label": "plant.dandelion", "texture": "things/plant/dandelion/DandelionB" },
|
||||
{ "defName": "DandelionC", "parent": "BaseFlower", "label": "plant.dandelion", "texture": "things/plant/dandelion/DandelionC" },
|
||||
{ "defName": "DaylilyA", "parent": "BaseFlower", "label": "plant.daylily", "texture": "things/plant/daylily/DaylilyA" },
|
||||
{ "defName": "DaylilyB", "parent": "BaseFlower", "label": "plant.daylily", "texture": "things/plant/daylily/DaylilyB" },
|
||||
{ "defName": "RoseA", "parent": "BaseFlower", "label": "plant.rose", "sizeCells": 1.1, "texture": "things/plant/rose/RoseA" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Трава: быстрый почвопокров, основной скаттер лугов и леса.
|
||||
"defs": [
|
||||
{ "defName": "GrassA", "label": "plant.grass", "texture": "things/plant/grass/grassa", "sizeCells": 1.5,
|
||||
"baseMassKg": 0.4,
|
||||
"harvestProduct": "ProductGrass",
|
||||
"genome": { "optimalLight": 0.85, "lightTolerance": 0.35, "optimalTemperature": 19, "temperatureTolerance": 8,
|
||||
"coldHardiness": 9, "heatHardiness": 6,
|
||||
"optimalFertility": 1.0, "fertilityTolerance": 1.0, "vigor": 1.3,
|
||||
"lifespan": 22, "dispersalRange": 3, "reproduceInterval": 3, "selfPollination": 0.8,
|
||||
"mutationRate": 0.06, "variantChance": 0.2, "spread": 0.1,
|
||||
"harvestAmount": 2, "leafHue": 0.36 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.5, "growDays": 2, "label": "plant.stage.sprout" },
|
||||
{ "sizeCells": 1.5, "label": "plant.stage.mature" }
|
||||
] }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Грибы: подлесок леса, растут в тени крон.
|
||||
"defs": [
|
||||
{ "defName": "GlowstoolA", "parent": "BaseMushroom", "sizeCells": 0.9, "texture": "things/plant/glowstool/GlowstoolA" },
|
||||
{ "defName": "GlowstoolB", "parent": "BaseMushroom", "sizeCells": 0.9, "texture": "things/plant/glowstool/GlowstoolB" },
|
||||
{ "defName": "TimbershroomA", "parent": "BaseMushroom", "sizeCells": 1.1, "texture": "things/plant/timbershroom/TimbershroomA" },
|
||||
{ "defName": "TimbershroomB", "parent": "BaseMushroom", "sizeCells": 1.1, "texture": "things/plant/timbershroom/TimbershroomB" },
|
||||
{ "defName": "NutrifungusA", "parent": "BaseMushroom", "sizeCells": 0.9, "texture": "things/plant/nutrifungus/NutrifungusA" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Деревья: умеренные (BaseTree), тёплые (BaseWarmTree) и холодные (BaseColdTree) ниши.
|
||||
"defs": [
|
||||
{ "defName": "TreeOakA", "parent": "BaseTree", "label": "plant.oak", "texture": "things/plant/treeoak/TreeOakA" },
|
||||
{ "defName": "TreeOakB", "parent": "BaseTree", "label": "plant.oak", "texture": "things/plant/treeoak/TreeOakB" },
|
||||
{ "defName": "TreeBirchA", "parent": "BaseTree", "label": "plant.birch", "texture": "things/plant/treebirch/TreeBirchA" },
|
||||
{ "defName": "TreeGrayPineA", "parent": "BaseTree", "label": "plant.pine", "texture": "things/plant/treegraypine/TreeGrayPineA" },
|
||||
{ "defName": "TreeMapleA", "parent": "BaseTree", "label": "plant.maple", "texture": "things/plant/treemaple/TreeMapleA" },
|
||||
{ "defName": "TreeMapleB", "parent": "BaseTree", "label": "plant.maple", "texture": "things/plant/treemaple/TreeMapleB" },
|
||||
{ "defName": "TreePoplarA", "parent": "BaseTree", "label": "plant.poplar", "texture": "things/plant/treepoplar/TreePoplarA" },
|
||||
{ "defName": "TreeTeakA", "parent": "BaseWarmTree", "label": "plant.teak", "texture": "things/plant/treeteak/TreeTeakA" },
|
||||
{ "defName": "TreeTeakB", "parent": "BaseWarmTree", "label": "plant.teak", "texture": "things/plant/treeteak/TreeTeakB" },
|
||||
{ "defName": "TreeCypressA", "parent": "BaseColdTree", "label": "plant.cypress", "texture": "things/plant/treecypress/TreeCypressA" },
|
||||
{ "defName": "TreeCypressB", "parent": "BaseColdTree", "label": "plant.cypress", "texture": "things/plant/treecypress/TreeCypressB" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
{
|
||||
"type": "Plant",
|
||||
// Общие (абстрактные) растения: базовые геномы по типам ниш. Конкретные виды наследуют их
|
||||
// через "parent" и лежат рядом в файлах по семействам (Trees, Bushes, Cacti, …).
|
||||
"defs": [
|
||||
{ "defName": "BaseTree", "abstract": true, "sizeCells": 2.0, "trunkRadiusCells": 0.28,
|
||||
"baseMassKg": 450,
|
||||
"harvestProduct": "ProductWood", "fruitProduct": "ProductAcorn",
|
||||
"genome": { "optimalLight": 0.6, "lightTolerance": 0.5, "optimalTemperature": 14, "temperatureTolerance": 10,
|
||||
"coldHardiness": 14, "heatHardiness": 12,
|
||||
"optimalFertility": 1.4, "fertilityTolerance": 0.9, "vigor": 1.0,
|
||||
"lifespan": 160, "dispersalRange": 2, "reproduceInterval": 14, "selfPollination": 0.2,
|
||||
"mutationRate": 0.05, "variantChance": 0.15, "spread": 0.08,
|
||||
"fruitYield": 5, "fruitSeason": 2, "harvestAmount": 10, "leafHue": 0.30 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.6, "growDays": 4, "label": "plant.stage.seedling" },
|
||||
{ "sizeCells": 1.2, "growDays": 9, "label": "plant.stage.sapling" },
|
||||
{ "sizeCells": 2.0, "label": "plant.stage.mature" }
|
||||
] },
|
||||
|
||||
// Деревья тёплой и холодной температурных ниш (showcase температурных генов).
|
||||
{ "defName": "BaseWarmTree", "abstract": true, "sizeCells": 2.0, "trunkRadiusCells": 0.28,
|
||||
"baseMassKg": 420,
|
||||
"harvestProduct": "ProductWood", "fruitProduct": "ProductAcorn",
|
||||
"genome": { "optimalLight": 0.65, "lightTolerance": 0.5, "optimalTemperature": 23, "temperatureTolerance": 9,
|
||||
"coldHardiness": 8, "heatHardiness": 16,
|
||||
"optimalFertility": 1.5, "fertilityTolerance": 0.9, "vigor": 1.1,
|
||||
"lifespan": 150, "dispersalRange": 2, "reproduceInterval": 14, "selfPollination": 0.2,
|
||||
"mutationRate": 0.05, "variantChance": 0.15, "spread": 0.08,
|
||||
"fruitYield": 5, "fruitSeason": 2, "harvestAmount": 10, "leafHue": 0.22 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.6, "growDays": 4, "label": "plant.stage.seedling" },
|
||||
{ "sizeCells": 1.2, "growDays": 9, "label": "plant.stage.sapling" },
|
||||
{ "sizeCells": 2.0, "label": "plant.stage.mature" }
|
||||
] },
|
||||
{ "defName": "BaseColdTree", "abstract": true, "sizeCells": 2.0, "trunkRadiusCells": 0.26,
|
||||
"baseMassKg": 500,
|
||||
"harvestProduct": "ProductWood", "fruitProduct": "ProductAcorn",
|
||||
"genome": { "optimalLight": 0.55, "lightTolerance": 0.5, "optimalTemperature": 8, "temperatureTolerance": 12,
|
||||
"coldHardiness": 18, "heatHardiness": 8,
|
||||
"optimalFertility": 1.2, "fertilityTolerance": 1.0, "vigor": 0.9,
|
||||
"lifespan": 220, "dispersalRange": 2, "reproduceInterval": 16, "selfPollination": 0.2,
|
||||
"mutationRate": 0.05, "variantChance": 0.12, "spread": 0.08,
|
||||
"fruitYield": 4, "fruitSeason": 2, "harvestAmount": 12, "leafHue": 0.45 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.6, "growDays": 4, "label": "plant.stage.seedling" },
|
||||
{ "sizeCells": 1.2, "growDays": 9, "label": "plant.stage.sapling" },
|
||||
{ "sizeCells": 2.0, "label": "plant.stage.mature" }
|
||||
] },
|
||||
|
||||
{ "defName": "BaseBush", "abstract": true, "label": "plant.bush", "sizeCells": 1.4,
|
||||
"baseMassKg": 6,
|
||||
"fruitProduct": "ProductBerry",
|
||||
"genome": { "optimalLight": 0.6, "lightTolerance": 0.5, "optimalTemperature": 17, "temperatureTolerance": 9,
|
||||
"coldHardiness": 10, "heatHardiness": 8,
|
||||
"optimalFertility": 1.1, "fertilityTolerance": 1.0, "vigor": 1.0,
|
||||
"lifespan": 60, "dispersalRange": 2, "reproduceInterval": 7, "selfPollination": 0.5,
|
||||
"mutationRate": 0.05, "variantChance": 0.18, "spread": 0.1,
|
||||
"fruitYield": 3, "fruitSeason": 1, "harvestAmount": 3, "leafHue": 0.32 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.6, "growDays": 3, "label": "plant.stage.sprout" },
|
||||
{ "sizeCells": 1.4, "label": "plant.stage.mature" }
|
||||
] },
|
||||
|
||||
// Кактусы: жаролюбивы, засухоустойчивы (низкий оптимум почвы), морозо-нестойки → гибнут в морозы.
|
||||
{ "defName": "BaseCactus", "abstract": true, "label": "plant.cactus", "sizeCells": 1.2, "trunkRadiusCells": 0,
|
||||
"baseMassKg": 35,
|
||||
"harvestProduct": "ProductFiber",
|
||||
"genome": { "optimalLight": 0.95, "lightTolerance": 0.35, "optimalTemperature": 26, "temperatureTolerance": 8,
|
||||
"coldHardiness": 20, "heatHardiness": 18,
|
||||
"optimalFertility": 0.4, "fertilityTolerance": 0.5, "vigor": 0.5,
|
||||
"lifespan": 300, "dispersalRange": 2, "reproduceInterval": 25, "selfPollination": 0.6,
|
||||
"mutationRate": 0.05, "variantChance": 0.15, "spread": 0.08,
|
||||
"fruitYield": 3, "fruitSeason": 1, "harvestAmount": 3, "leafHue": 0.5,
|
||||
"thorns": 0.6, "palatability": 0.5 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.5, "growDays": 5, "label": "plant.stage.sprout" },
|
||||
{ "label": "plant.stage.mature" }
|
||||
] },
|
||||
|
||||
// Грибы: подлесок леса. Низкий оптимум света (0.15) → растут в тени крон, где другим темно
|
||||
// (showcase световой пригодности). Богатая почва, короткая жизнь, быстрое спороношение.
|
||||
{ "defName": "BaseMushroom", "abstract": true, "label": "plant.mushroom", "sizeCells": 0.9, "trunkRadiusCells": 0,
|
||||
"baseMassKg": 0.3,
|
||||
"harvestProduct": "ProductMushroom",
|
||||
"genome": { "optimalLight": 0.15, "lightTolerance": 0.22, "optimalTemperature": 14, "temperatureTolerance": 11,
|
||||
"coldHardiness": 12, "heatHardiness": 8,
|
||||
"optimalFertility": 1.6, "fertilityTolerance": 1.1, "vigor": 1.2,
|
||||
"lifespan": 25, "dispersalRange": 3, "reproduceInterval": 4, "selfPollination": 0.9,
|
||||
"mutationRate": 0.06, "variantChance": 0.2, "spread": 0.1,
|
||||
"fruitYield": 0, "fruitSeason": 1, "harvestAmount": 3, "leafHue": 0.5,
|
||||
"toxicity": 0.5, "palatability": 0.4 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.4, "growDays": 2, "label": "plant.stage.sprout" },
|
||||
{ "label": "plant.stage.mature" }
|
||||
] },
|
||||
|
||||
// Луг: цветы (декоративные, быстрое расселение) и ягодный почвопокров (еда).
|
||||
{ "defName": "BaseFlower", "abstract": true, "label": "plant.flower", "sizeCells": 1.0, "trunkRadiusCells": 0,
|
||||
"baseMassKg": 0.15,
|
||||
"genome": { "optimalLight": 0.9, "lightTolerance": 0.35, "optimalTemperature": 20, "temperatureTolerance": 9,
|
||||
"coldHardiness": 8, "heatHardiness": 8,
|
||||
"optimalFertility": 1.0, "fertilityTolerance": 1.1, "vigor": 1.4,
|
||||
"lifespan": 18, "dispersalRange": 4, "reproduceInterval": 3, "selfPollination": 0.85,
|
||||
"mutationRate": 0.08, "variantChance": 0.3, "spread": 0.1,
|
||||
"fruitYield": 0, "fruitSeason": 0, "harvestAmount": 0, "leafHue": 0.2 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.4, "growDays": 2, "label": "plant.stage.sprout" },
|
||||
{ "label": "plant.stage.mature" }
|
||||
] },
|
||||
|
||||
{ "defName": "BaseBerryBush", "abstract": true, "label": "plant.berrybush", "sizeCells": 1.2, "trunkRadiusCells": 0,
|
||||
"baseMassKg": 5,
|
||||
"fruitProduct": "ProductBerry",
|
||||
"genome": { "optimalLight": 0.8, "lightTolerance": 0.4, "optimalTemperature": 18, "temperatureTolerance": 9,
|
||||
"coldHardiness": 10, "heatHardiness": 7,
|
||||
"optimalFertility": 1.2, "fertilityTolerance": 1.0, "vigor": 1.1,
|
||||
"lifespan": 40, "dispersalRange": 2, "reproduceInterval": 6, "selfPollination": 0.6,
|
||||
"mutationRate": 0.05, "variantChance": 0.18, "spread": 0.1,
|
||||
"fruitYield": 4, "fruitSeason": 2, "harvestAmount": 0, "leafHue": 0.33 },
|
||||
"stages": [
|
||||
{ "texture": "things/plant/seed_default", "sizeCells": 0.5, "growDays": 3, "label": "plant.stage.sprout" },
|
||||
{ "label": "plant.stage.mature" }
|
||||
] }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"type": "Product",
|
||||
// Продукты сбора/плодоношения растений. На них ссылаются PlantDef.harvestProduct / fruitProduct;
|
||||
// количество задаётся генами (harvestAmount / fruitYield).
|
||||
"defs": [
|
||||
{ "defName": "ProductWood", "label": "product.wood", "kind": "material", "massKg": 1.0 },
|
||||
{ "defName": "ProductGrass", "label": "product.grass", "kind": "material", "massKg": 0.1 },
|
||||
{ "defName": "ProductFiber", "label": "product.fiber", "kind": "material", "massKg": 0.2 },
|
||||
{ "defName": "ProductBerry", "label": "product.berry", "kind": "food", "massKg": 0.05 },
|
||||
{ "defName": "ProductAcorn", "label": "product.acorn", "kind": "food", "massKg": 0.05 },
|
||||
{ "defName": "ProductMushroom", "label": "product.mushroom", "kind": "food", "massKg": 0.1 },
|
||||
|
||||
// Животные продукты (фаза A5): добываются из трупа (разделка/гниение). Инвентарь/добыча — позже.
|
||||
{ "defName": "ProductMeat", "label": "product.meat", "kind": "food", "massKg": 0.5 },
|
||||
{ "defName": "ProductBone", "label": "product.bone", "kind": "material", "massKg": 0.3 },
|
||||
{ "defName": "ProductLeather", "label": "product.leather", "kind": "material", "massKg": 0.4 }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"type": "Skill",
|
||||
// Навыки как данные: уровень особи [0..1] растёт от практики (XP при соответствующем действии,
|
||||
// ускоряется страстью) и медленно угасает к floorLevel. Эффект навыка — код по его id (добыча→выпас,
|
||||
// охота→урон, уклонение→бегство). Сейчас навыки у животных; те же дефы пригодятся будущему человеку.
|
||||
"defs": [
|
||||
{ "defName": "Foraging", "label": "skill.foraging", "category": "survival",
|
||||
"learnRate": 0.6, "decayPerDay": 0.015, "floorLevel": 0.0 },
|
||||
{ "defName": "Hunting", "label": "skill.hunting", "category": "survival",
|
||||
"learnRate": 0.5, "decayPerDay": 0.02, "floorLevel": 0.0 },
|
||||
{ "defName": "Evasion", "label": "skill.evasion", "category": "survival",
|
||||
"learnRate": 0.7, "decayPerDay": 0.02, "floorLevel": 0.0 }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"type": "Terrain",
|
||||
"defs": [
|
||||
{ "defName": "DeepWater", "label": "terrain.deepwater", "maxHeight": 0.30, "color": [23, 63, 95] },
|
||||
{ "defName": "Water", "label": "terrain.water", "maxHeight": 0.42, "color": [32, 99, 155] },
|
||||
{ "defName": "Sand", "label": "terrain.sand", "maxHeight": 0.46, "color": [237, 201, 120],
|
||||
"isLand": true, "surface": "terrain/surfaces/sand", "fertility": 0.4,
|
||||
"scatter": [
|
||||
{ "chance": 0.05, "options": ["SaguaroCactusA", "SaguaroCactusB"] },
|
||||
{ "chance": 0.10, "options": ["PebbleCactusA", "PebbleCactusB", "PincushionCactusA"] },
|
||||
{ "chance": 0.04, "options": ["AgaveA", "AgaveB"] }
|
||||
] },
|
||||
{ "defName": "Grass", "label": "terrain.grass", "maxHeight": 0.72, "color": [90, 160, 70],
|
||||
"isLand": true, "surface": "terrain/surfaces/mossy", "fertility": 1.0,
|
||||
"scatter": [
|
||||
{ "chance": 1.0, "options": ["GrassA"] },
|
||||
{ "chance": 0.5, "options": ["GrassA"] },
|
||||
{ "chance": 0.22, "options": ["BushA", "BushB", "BushC"] },
|
||||
{ "chance": 0.20, "options": ["Strawberry", "Raspberry"] },
|
||||
{ "chance": 0.14, "options": ["DandelionA", "DandelionB", "DandelionC", "DaylilyA", "DaylilyB", "RoseA"] }
|
||||
] },
|
||||
{ "defName": "Forest", "label": "terrain.forest", "maxHeight": 1.01, "color": [44, 110, 50],
|
||||
"isLand": true, "surface": "terrain/surfaces/soil", "fertility": 1.6,
|
||||
"scatter": [
|
||||
{ "chance": 0.35, "options": ["TreeOakA", "TreeOakB", "TreeBirchA", "TreeGrayPineA",
|
||||
"TreeMapleA", "TreeMapleB", "TreePoplarA", "TreeCypressA", "TreeCypressB", "TreeTeakA", "TreeTeakB"] },
|
||||
{ "chance": 0.6, "options": ["GrassA"] },
|
||||
{ "chance": 0.16, "options": ["BushA", "BushB", "BushC"] },
|
||||
{ "chance": 0.14, "options": ["Strawberry", "Raspberry"] },
|
||||
{ "chance": 0.16, "options": ["GlowstoolA", "GlowstoolB", "TimbershroomA", "TimbershroomB", "NutrifungusA"] }
|
||||
] }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"type": "Thought",
|
||||
// Мысли настроения (фаза A8): событие вешает на зверя временный сдвиг настроения, затухающий за
|
||||
// durationDays. Триггер события — код (реестр AnimalThoughts), сила/длительность/метка — данные.
|
||||
// Настроение есть только у тира 4+ (мозг ≥ 0.40); непрерывный фон (голод/жажда/усталость/боль)
|
||||
// считается отдельно, мысли — поверх него. Негативные событийные мысли (потеря детёныша) придут с
|
||||
// родительской опекой (горизонт) — пока горе идёт через непрерывный фон.
|
||||
"defs": [
|
||||
{ "defName": "GaveBirth", "label": "thought.gaveBirth", "moodOffset": 0.25, "durationDays": 3 },
|
||||
{ "defName": "Mated", "label": "thought.mated", "moodOffset": 0.15, "durationDays": 1.5 },
|
||||
{ "defName": "QuenchedThirst", "label": "thought.quenchedThirst", "moodOffset": 0.1, "durationDays": 0.5 }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"type": "WorldPreset",
|
||||
"defs": [
|
||||
{ "defName": "Small", "label": "preset.small", "order": 0, "width": 128, "height": 80, "population": 60 },
|
||||
{ "defName": "Medium", "label": "preset.medium", "order": 1, "width": 200, "height": 120, "population": 110 },
|
||||
{ "defName": "Large", "label": "preset.large", "order": 2, "width": 300, "height": 180, "population": 180 }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
{
|
||||
"hud.world": "LittleSim | seed {0} | {1} | {2} FPS",
|
||||
"hud.datetime": "day {0}, {1:00}:{2:00}",
|
||||
"hud.climate": "{0} {1}°C",
|
||||
"season.spring": "spring",
|
||||
"season.summer": "summer",
|
||||
"season.autumn": "autumn",
|
||||
"season.winter": "winter",
|
||||
"hud.controls": "WASD — camera, wheel — zoom, LMB — select, ` — console, F1 — inspector",
|
||||
"hud.inspector": "F1 — inspector",
|
||||
"hud.spawner": "F9 — spawner",
|
||||
"inspect.tab.overview": "Overview",
|
||||
"inspect.tab.genes": "Genes",
|
||||
"inspect.tab.products": "Products",
|
||||
"inspect.tab.needs": "Needs",
|
||||
"inspect.tab.skills": "Skills",
|
||||
"inspect.tab.health": "Health",
|
||||
"inspect.tab.mood": "Mood",
|
||||
"inspect.stage": "Stage: {0} ({1}/{2})",
|
||||
"inspect.growing": "Growth: {0:0}% to next stage",
|
||||
"inspect.mature": "Fully grown",
|
||||
"inspect.age": "Age: {0:0.0} d · lives to {1:0}",
|
||||
"inspect.mass": "Weight: {0:0.#} kg · carries up to {1:0.#} kg",
|
||||
"inspect.plantmass": "Weight: {0:0.##} kg",
|
||||
"inspect.state": "State: {0}",
|
||||
"inspect.state.growing": "growing",
|
||||
"inspect.state.mature": "mature",
|
||||
"inspect.state.dormantcold": "dormant — too cold",
|
||||
"inspect.state.dormanthot": "dormant — too hot",
|
||||
"inspect.stress": "Stress: {0:0.0} d to death",
|
||||
"inspect.temp": "Temperature: grows {0:0}…{1:0}°C, optimal {2:0}…{3:0}°C",
|
||||
"inspect.genes": "Genes",
|
||||
"inspect.gene.vigor": "Vigor {0:0.00} · lifespan {1:0} d",
|
||||
"inspect.gene.env": "Opt. light {0:0.00} · opt. soil {1:0.00}",
|
||||
"inspect.gene.repro": "Dispersal {0:0.0} · interval {1:0.0} d",
|
||||
"inspect.gene.repro2": "Self-pollin. {0:0.00} · mutation {1:0.00}",
|
||||
"inspect.gene.hardy": "Cold/heat {0:0}/{1:0} · leaf hue {2:0.00}",
|
||||
"inspect.gene.defense": "Defense: toxin {0:0.00} · thorns {1:0.00}",
|
||||
"inspect.gene.variant": "Morph: recessive variant",
|
||||
"inspect.harvest": "Harvest: {0} ×{1:0.#}",
|
||||
"inspect.fruit": "Fruit: {0} ×{1:0.#} ({2}) · ripe {3:0.#}",
|
||||
"inspect.barren": "Bears no fruit",
|
||||
"inspect.sex.male": "male",
|
||||
"inspect.sex.female": "female",
|
||||
"inspect.animal.sex": "Sex: {0} · generation {1}",
|
||||
"inspect.animal.pregnant": "Pregnant: {0:0.0} d to birth",
|
||||
"inspect.needline": "{0}: {1:0}%",
|
||||
"inspect.skillline": "{0}: {1:0}% {2}",
|
||||
"skill.foraging": "foraging",
|
||||
"skill.hunting": "hunting",
|
||||
"skill.evasion": "evasion",
|
||||
"inspect.health.blood": "Blood: {0:0}% · pain: {1:0}%",
|
||||
"inspect.health.vitals": "Vitals",
|
||||
"inspect.vital.blood": "blood",
|
||||
"inspect.vital.pain": "pain",
|
||||
"inspect.health.caps": "Capacities",
|
||||
"inspect.health.cap": "{0}: {1:0}%",
|
||||
"inspect.health.hediffs": "Conditions",
|
||||
"inspect.health.hediffline": "{0}: severity {1:0}%",
|
||||
"inspect.health.none": "Healthy, no wounds or illness",
|
||||
"inspect.mood.value": "Mood: {0:0}%",
|
||||
"inspect.mood.none": "No mood (primitive brain)",
|
||||
"inspect.mood.thoughts": "Thoughts",
|
||||
"inspect.mood.thoughtline": "{0}: {1}",
|
||||
"inspect.mood.calm": "Calm, nothing on its mind",
|
||||
"animalstage.baby": "baby",
|
||||
"animalstage.juvenile": "juvenile",
|
||||
"animalstage.adult": "adult",
|
||||
"animalstage.senior": "senior",
|
||||
"need.hunger": "hunger",
|
||||
"need.thirst": "thirst",
|
||||
"need.rest": "rest",
|
||||
"need.mating": "mating",
|
||||
"cap.consciousness": "consciousness",
|
||||
"cap.moving": "moving",
|
||||
"cap.sight": "sight",
|
||||
"cap.hearing": "hearing",
|
||||
"cap.smell": "smell",
|
||||
"cap.touch": "touch",
|
||||
"cap.talking": "talking",
|
||||
"cap.eating": "eating",
|
||||
"cap.breathing": "breathing",
|
||||
"cap.bloodpumping": "blood pumping",
|
||||
"cap.bloodfiltration": "blood filtration",
|
||||
"cap.digestion": "digestion",
|
||||
"hediff.rut": "rut",
|
||||
"hediff.fever": "fever",
|
||||
"hediff.bleeding": "bleeding",
|
||||
"hediff.poisoned": "poisoned",
|
||||
"hediff.hypothermia": "hypothermia",
|
||||
"hediff.heatstroke": "heatstroke",
|
||||
"hediff.infection": "infection",
|
||||
"inspect.hint": "LMB — select · RMB/Esc — clear",
|
||||
"hud.paused": "PAUSED",
|
||||
"menu.title": "LittleSim",
|
||||
"menu.subtitle": "a god-game: minimal graphics, deep simulation",
|
||||
"menu.newworld": "New World",
|
||||
"menu.load": "Load",
|
||||
"menu.settings": "Settings",
|
||||
"menu.credits": "Credits",
|
||||
"menu.quit": "Quit",
|
||||
"loading.world": "Generating world",
|
||||
"newworld.title": "New World",
|
||||
"newworld.name": "Name",
|
||||
"newworld.defaultname": "New World",
|
||||
"newworld.size": "Size",
|
||||
"newworld.seed": "Seed",
|
||||
"newworld.random": "Random",
|
||||
"newworld.smoothing": "Terrain smoothing",
|
||||
"newworld.create": "Create",
|
||||
"newworld.back": "Back",
|
||||
"load.title": "Load",
|
||||
"load.empty": "No saves yet",
|
||||
"load.load": "Load",
|
||||
"load.delete": "Delete",
|
||||
"load.back": "Back",
|
||||
"settings.title": "Settings",
|
||||
"settings.language": "Language",
|
||||
"settings.fullscreen": "Fullscreen",
|
||||
"settings.vsync": "Vertical sync",
|
||||
"settings.resolution": "Resolution",
|
||||
"settings.volume": "Volume",
|
||||
"settings.uiscale": "UI scale",
|
||||
"settings.devmode": "Developer mode",
|
||||
"settings.on": "On",
|
||||
"settings.off": "Off",
|
||||
"dev.title": "Dev spawner",
|
||||
"dev.hint": "Pick an entry · F9 to hide",
|
||||
"dev.armed": "In hand: {0} · LMB to spawn, RMB to clear",
|
||||
"dev.tools": "Tools",
|
||||
"dev.damage": "Injure selected",
|
||||
"dev.kill": "Kill selected",
|
||||
"dev.infect": "Infect selected",
|
||||
"dev.animals": "Animals",
|
||||
"dev.plants": "Plants",
|
||||
"settings.apply": "Apply",
|
||||
"settings.back": "Back",
|
||||
"pause.title": "Paused",
|
||||
"pause.resume": "Resume",
|
||||
"pause.settings": "Settings",
|
||||
"pause.save": "Save",
|
||||
"pause.mainmenu": "Main menu",
|
||||
"pause.quit": "Quit",
|
||||
"pause.saved": "Saved: {0}",
|
||||
"speed.pause": "Pause",
|
||||
"credits.title": "Credits",
|
||||
"credits.author": "mrleo1nid",
|
||||
"credits.role": "Concept, code, mrgameeng engine",
|
||||
"credits.back": "Back",
|
||||
"preset.small": "Small",
|
||||
"preset.medium": "Medium",
|
||||
"preset.large": "Large",
|
||||
"terrain.deepwater": "deep water",
|
||||
"terrain.water": "water",
|
||||
"terrain.sand": "sand",
|
||||
"terrain.grass": "grass",
|
||||
"terrain.forest": "forest",
|
||||
"plant.oak": "oak",
|
||||
"plant.birch": "birch",
|
||||
"plant.pine": "pine",
|
||||
"plant.grass": "grass tuft",
|
||||
"plant.bush": "bush",
|
||||
"plant.maple": "maple",
|
||||
"plant.poplar": "poplar",
|
||||
"plant.teak": "teak",
|
||||
"plant.cypress": "cypress",
|
||||
"plant.cactus": "cactus",
|
||||
"plant.saguaro": "saguaro",
|
||||
"plant.agave": "agave",
|
||||
"plant.mushroom": "mushroom",
|
||||
"plant.flower": "flower",
|
||||
"plant.dandelion": "dandelion",
|
||||
"plant.daylily": "daylily",
|
||||
"plant.rose": "rose",
|
||||
"plant.berrybush": "berry bush",
|
||||
"plant.strawberry": "strawberry",
|
||||
"plant.raspberry": "raspberry",
|
||||
"plant.stage.seedling": "seedling",
|
||||
"plant.stage.sprout": "sprout",
|
||||
"plant.stage.sapling": "sapling",
|
||||
"plant.stage.mature": "mature",
|
||||
"product.wood": "wood",
|
||||
"product.grass": "grass",
|
||||
"product.fiber": "fiber",
|
||||
"product.berry": "berries",
|
||||
"product.acorn": "acorn",
|
||||
"product.mushroom": "mushrooms",
|
||||
"pawn.being": "being",
|
||||
"pawn.bear": "bear",
|
||||
"pawn.deer": "deer",
|
||||
"pawn.fox": "fox",
|
||||
"pawn.hare": "hare",
|
||||
"pawn.boar": "boar",
|
||||
"pawn.wolf": "wolf",
|
||||
"pawn.chicken": "chicken",
|
||||
"pawn.muffalo": "muffalo",
|
||||
"pawn.squirrel": "squirrel",
|
||||
"thought.gaveBirth": "gave birth",
|
||||
"thought.mated": "mated",
|
||||
"thought.quenchedThirst": "drank its fill",
|
||||
"gene.feedingStyle": "feeding style",
|
||||
"inspect.animal.feeding": "Feeding: {0}",
|
||||
"feeding.gorge": "gorger (rare, to the full)",
|
||||
"feeding.graze": "grazer (often, little by little)",
|
||||
"feeding.mixed": "moderate",
|
||||
"inspect.tab.log": "Log",
|
||||
"log.empty": "No history yet",
|
||||
"log.stamp": "D{0} {1:00}:{2:00}",
|
||||
"hud.events": "Events",
|
||||
"hud.perf": "Perf",
|
||||
"events.title": "Event log",
|
||||
"events.empty": "Nothing has happened yet",
|
||||
"events.hint": "Double-click — jump to the creature",
|
||||
"perf.title": "Performance",
|
||||
"perf.fps": "{0} FPS · {1:0.0} ms/frame",
|
||||
"perf.root": "{0}: {1:0.000} ms · systems {2}",
|
||||
"perf.systemline": "{0} {1:0.000} ms {2:0}%",
|
||||
"perf.hint": "Refreshes ~5/s · costliest systems shown",
|
||||
"event.mated": "Pair: {0} + {1}",
|
||||
"event.pregnant": "{0}: pregnant",
|
||||
"event.birth": "{0}: birth ×{1}",
|
||||
"event.hatch": "{0}: hatched ×{1}",
|
||||
"event.hunt": "Hunt: {0} → {1}",
|
||||
"event.injured": "Wound: {0} → {1}",
|
||||
"event.struck": "Hit: {0} → {1} ({2:0})",
|
||||
"event.tookhit": "Hit: {1} → {0} ({2:0})",
|
||||
"event.killed": "Kill: {0} → {1}",
|
||||
"event.ate": "{0} is feeding",
|
||||
"event.drank": "{0} is drinking",
|
||||
"event.rest": "{0} is resting",
|
||||
"event.dig": "{0} digs for food",
|
||||
"event.wallow": "{0} wallows in mud",
|
||||
"event.fled": "{0} is fleeing",
|
||||
"event.grew": "{0}: new stage — {1}",
|
||||
"event.death.starve": "Death: {0} (hunger/thirst)",
|
||||
"event.death.age": "Death: {0} (old age)",
|
||||
"event.death.disease": "Death: {0} (disease)",
|
||||
"net.hud": "Multiplayer: {0} | beings: {1} | Esc — back to menu",
|
||||
"net.connecting": "connecting…",
|
||||
"net.connected": "connected",
|
||||
"net.failed": "connection failed",
|
||||
"net.lost": "connection lost",
|
||||
"net.reconnecting": "reconnecting…"
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
{
|
||||
"hud.world": "LittleSim | сид {0} | {1} | {2} FPS",
|
||||
"hud.datetime": "день {0}, {1:00}:{2:00}",
|
||||
"hud.climate": "{0} {1}°C",
|
||||
"season.spring": "весна",
|
||||
"season.summer": "лето",
|
||||
"season.autumn": "осень",
|
||||
"season.winter": "зима",
|
||||
"hud.controls": "WASD — камера, колесо — зум, ЛКМ — выбрать, ` — консоль, F1 — инспектор",
|
||||
"hud.inspector": "F1 — инспектор",
|
||||
"hud.spawner": "F9 — спавнер",
|
||||
"inspect.tab.overview": "Обзор",
|
||||
"inspect.tab.genes": "Гены",
|
||||
"inspect.tab.products": "Продукты",
|
||||
"inspect.tab.needs": "Нужды",
|
||||
"inspect.tab.skills": "Навыки",
|
||||
"inspect.tab.health": "Здоровье",
|
||||
"inspect.tab.mood": "Настроение",
|
||||
"inspect.stage": "Стадия: {0} ({1}/{2})",
|
||||
"inspect.growing": "Рост: {0:0}% до следующей стадии",
|
||||
"inspect.mature": "Полностью выросло",
|
||||
"inspect.age": "Возраст: {0:0.0} дн · живёт до {1:0}",
|
||||
"inspect.mass": "Вес: {0:0.#} кг · несёт до {1:0.#} кг",
|
||||
"inspect.plantmass": "Вес: {0:0.##} кг",
|
||||
"inspect.state": "Состояние: {0}",
|
||||
"inspect.state.growing": "растёт",
|
||||
"inspect.state.mature": "созрело",
|
||||
"inspect.state.dormantcold": "покой — слишком холодно",
|
||||
"inspect.state.dormanthot": "покой — слишком жарко",
|
||||
"inspect.stress": "Стресс: {0:0.0} дн до гибели",
|
||||
"inspect.temp": "Температура: рост {0:0}…{1:0}°C, оптимум {2:0}…{3:0}°C",
|
||||
"inspect.genes": "Гены",
|
||||
"inspect.gene.vigor": "Бодрость {0:0.00} · жизнь {1:0} дн",
|
||||
"inspect.gene.env": "Опт. свет {0:0.00} · опт. почва {1:0.00}",
|
||||
"inspect.gene.repro": "Расселение {0:0.0} кл · период {1:0.0} дн",
|
||||
"inspect.gene.repro2": "Самоопыление {0:0.00} · мутации {1:0.00}",
|
||||
"inspect.gene.hardy": "Морозо/жаро {0:0}/{1:0} · оттенок {2:0.00}",
|
||||
"inspect.gene.defense": "Защита: яд {0:0.00} · шипы {1:0.00}",
|
||||
"inspect.gene.variant": "Морфа: рецессивный вариант",
|
||||
"inspect.harvest": "Сбор: {0} ×{1:0.#}",
|
||||
"inspect.fruit": "Плоды: {0} ×{1:0.#} ({2}) · зрелых {3:0.#}",
|
||||
"inspect.barren": "Не плодоносит",
|
||||
"inspect.sex.male": "самец",
|
||||
"inspect.sex.female": "самка",
|
||||
"inspect.animal.sex": "Пол: {0} · поколение {1}",
|
||||
"inspect.animal.pregnant": "Беременна: {0:0.0} дн до родов",
|
||||
"inspect.needline": "{0}: {1:0}%",
|
||||
"inspect.skillline": "{0}: {1:0}% {2}",
|
||||
"skill.foraging": "добыча корма",
|
||||
"skill.hunting": "охота",
|
||||
"skill.evasion": "уклонение",
|
||||
"inspect.health.blood": "Кровь: {0:0}% · боль: {1:0}%",
|
||||
"inspect.health.vitals": "Жизненные показатели",
|
||||
"inspect.vital.blood": "кровь",
|
||||
"inspect.vital.pain": "боль",
|
||||
"inspect.health.caps": "Способности",
|
||||
"inspect.health.cap": "{0}: {1:0}%",
|
||||
"inspect.health.hediffs": "Состояния",
|
||||
"inspect.health.hediffline": "{0}: тяжесть {1:0}%",
|
||||
"inspect.health.none": "Здоров, ран и болезней нет",
|
||||
"inspect.mood.value": "Настроение: {0:0}%",
|
||||
"inspect.mood.none": "Настроения нет (примитивный мозг)",
|
||||
"inspect.mood.thoughts": "Мысли",
|
||||
"inspect.mood.thoughtline": "{0}: {1}",
|
||||
"inspect.mood.calm": "Спокоен, особых мыслей нет",
|
||||
"animalstage.baby": "детёныш",
|
||||
"animalstage.juvenile": "подросток",
|
||||
"animalstage.adult": "взрослый",
|
||||
"animalstage.senior": "старый",
|
||||
"need.hunger": "голод",
|
||||
"need.thirst": "жажда",
|
||||
"need.rest": "отдых",
|
||||
"need.mating": "влечение",
|
||||
"cap.consciousness": "сознание",
|
||||
"cap.moving": "движение",
|
||||
"cap.sight": "зрение",
|
||||
"cap.hearing": "слух",
|
||||
"cap.smell": "обоняние",
|
||||
"cap.touch": "осязание",
|
||||
"cap.talking": "речь",
|
||||
"cap.eating": "питание",
|
||||
"cap.breathing": "дыхание",
|
||||
"cap.bloodpumping": "кровоснабжение",
|
||||
"cap.bloodfiltration": "фильтрация крови",
|
||||
"cap.digestion": "пищеварение",
|
||||
"hediff.rut": "гон",
|
||||
"hediff.fever": "лихорадка",
|
||||
"hediff.bleeding": "кровотечение",
|
||||
"hediff.poisoned": "отравление",
|
||||
"hediff.hypothermia": "переохлаждение",
|
||||
"hediff.heatstroke": "тепловой удар",
|
||||
"hediff.infection": "заражение",
|
||||
"inspect.hint": "ЛКМ — выбрать · ПКМ/Esc — снять",
|
||||
"hud.paused": "ПАУЗА",
|
||||
"menu.title": "LittleSim",
|
||||
"menu.subtitle": "бог-игра: минимум графики, максимум симуляции",
|
||||
"menu.newworld": "Новый мир",
|
||||
"menu.load": "Загрузка",
|
||||
"menu.settings": "Настройки",
|
||||
"menu.credits": "Авторы",
|
||||
"menu.quit": "Выход",
|
||||
"loading.world": "Создание мира",
|
||||
"newworld.title": "Новый мир",
|
||||
"newworld.name": "Название",
|
||||
"newworld.defaultname": "Новый мир",
|
||||
"newworld.size": "Размер",
|
||||
"newworld.seed": "Сид",
|
||||
"newworld.random": "Случайно",
|
||||
"newworld.smoothing": "Сглаживание рельефа",
|
||||
"newworld.create": "Создать",
|
||||
"newworld.back": "Назад",
|
||||
"load.title": "Загрузка",
|
||||
"load.empty": "Сохранений пока нет",
|
||||
"load.load": "Загрузить",
|
||||
"load.delete": "Удалить",
|
||||
"load.back": "Назад",
|
||||
"settings.title": "Настройки",
|
||||
"settings.language": "Язык",
|
||||
"settings.fullscreen": "Полный экран",
|
||||
"settings.vsync": "Вертикальная синхронизация",
|
||||
"settings.resolution": "Разрешение",
|
||||
"settings.volume": "Громкость",
|
||||
"settings.uiscale": "Масштаб UI",
|
||||
"settings.devmode": "Режим разработчика",
|
||||
"settings.on": "Вкл",
|
||||
"settings.off": "Откл",
|
||||
"dev.title": "Дев-спавнер",
|
||||
"dev.hint": "Выбери пункт · F9 — скрыть",
|
||||
"dev.armed": "В руке: {0} · ЛКМ — спавн, ПКМ — снять",
|
||||
"dev.tools": "Инструменты",
|
||||
"dev.damage": "Ранить выбранного",
|
||||
"dev.kill": "Убить выбранного",
|
||||
"dev.infect": "Заразить выбранного",
|
||||
"dev.animals": "Животные",
|
||||
"dev.plants": "Растения",
|
||||
"settings.apply": "Применить",
|
||||
"settings.back": "Назад",
|
||||
"pause.title": "Пауза",
|
||||
"pause.resume": "Продолжить",
|
||||
"pause.settings": "Настройки",
|
||||
"pause.save": "Сохранить",
|
||||
"pause.mainmenu": "Главное меню",
|
||||
"pause.quit": "Выход",
|
||||
"pause.saved": "Сохранено: {0}",
|
||||
"speed.pause": "Пауза",
|
||||
"credits.title": "Авторы",
|
||||
"credits.author": "mrleo1nid",
|
||||
"credits.role": "Идея, код, движок mrgameeng",
|
||||
"credits.back": "Назад",
|
||||
"preset.small": "Маленький",
|
||||
"preset.medium": "Средний",
|
||||
"preset.large": "Большой",
|
||||
"terrain.deepwater": "глубокая вода",
|
||||
"terrain.water": "вода",
|
||||
"terrain.sand": "песок",
|
||||
"terrain.grass": "трава",
|
||||
"terrain.forest": "лес",
|
||||
"plant.oak": "дуб",
|
||||
"plant.birch": "берёза",
|
||||
"plant.pine": "сосна",
|
||||
"plant.grass": "пучок травы",
|
||||
"plant.bush": "куст",
|
||||
"plant.maple": "клён",
|
||||
"plant.poplar": "тополь",
|
||||
"plant.teak": "тик",
|
||||
"plant.cypress": "кипарис",
|
||||
"plant.cactus": "кактус",
|
||||
"plant.saguaro": "сагуаро",
|
||||
"plant.agave": "агава",
|
||||
"plant.mushroom": "гриб",
|
||||
"plant.flower": "цветок",
|
||||
"plant.dandelion": "одуванчик",
|
||||
"plant.daylily": "лилейник",
|
||||
"plant.rose": "роза",
|
||||
"plant.berrybush": "ягодный куст",
|
||||
"plant.strawberry": "земляника",
|
||||
"plant.raspberry": "малина",
|
||||
"plant.stage.seedling": "росток",
|
||||
"plant.stage.sprout": "всходы",
|
||||
"plant.stage.sapling": "саженец",
|
||||
"plant.stage.mature": "взрослое",
|
||||
"product.wood": "древесина",
|
||||
"product.grass": "трава",
|
||||
"product.fiber": "волокно",
|
||||
"product.berry": "ягоды",
|
||||
"product.acorn": "жёлудь",
|
||||
"product.mushroom": "грибы",
|
||||
"pawn.being": "житель",
|
||||
"pawn.bear": "медведь",
|
||||
"pawn.deer": "олень",
|
||||
"pawn.fox": "лиса",
|
||||
"pawn.hare": "заяц",
|
||||
"pawn.boar": "кабан",
|
||||
"pawn.wolf": "волк",
|
||||
"pawn.chicken": "курица",
|
||||
"pawn.muffalo": "муффало",
|
||||
"pawn.squirrel": "белка",
|
||||
"thought.gaveBirth": "родила потомство",
|
||||
"thought.mated": "спарилась",
|
||||
"thought.quenchedThirst": "напилась вволю",
|
||||
"gene.feedingStyle": "стиль питания",
|
||||
"inspect.animal.feeding": "Питание: {0}",
|
||||
"feeding.gorge": "обжора (редко, до отвала)",
|
||||
"feeding.graze": "пастьба (часто, понемногу)",
|
||||
"feeding.mixed": "умеренное",
|
||||
"inspect.tab.log": "История",
|
||||
"log.empty": "История пуста",
|
||||
"log.stamp": "Д{0} {1:00}:{2:00}",
|
||||
"hud.events": "События",
|
||||
"hud.perf": "Произв.",
|
||||
"events.title": "Журнал событий",
|
||||
"events.empty": "Пока ничего не произошло",
|
||||
"events.hint": "Двойной клик — перейти к существу",
|
||||
"perf.title": "Производительность",
|
||||
"perf.fps": "{0} FPS · {1:0.0} мс/кадр",
|
||||
"perf.root": "{0}: {1:0.000} мс · систем {2}",
|
||||
"perf.systemline": "{0} {1:0.000} мс {2:0}%",
|
||||
"perf.hint": "Обновляется ~5 раз/с · показаны самые дорогие системы",
|
||||
"event.mated": "Пара: {0} + {1}",
|
||||
"event.pregnant": "{0}: беременность",
|
||||
"event.birth": "{0}: роды ×{1}",
|
||||
"event.hatch": "{0}: вылупление ×{1}",
|
||||
"event.hunt": "Охота: {0} → {1}",
|
||||
"event.injured": "Ранение: {0} → {1}",
|
||||
"event.struck": "Удар: {0} → {1} ({2:0})",
|
||||
"event.tookhit": "Удар: {1} → {0} ({2:0})",
|
||||
"event.killed": "Добыча: {0} → {1}",
|
||||
"event.ate": "{0} кормится",
|
||||
"event.drank": "{0} пьёт воду",
|
||||
"event.rest": "{0} отдыхает",
|
||||
"event.dig": "{0} роет землю в поисках корма",
|
||||
"event.wallow": "{0} валяется в грязи",
|
||||
"event.fled": "{0} спасается бегством",
|
||||
"event.grew": "{0}: новая стадия — {1}",
|
||||
"event.death.starve": "Гибель: {0} (голод/жажда)",
|
||||
"event.death.age": "Гибель: {0} (старость)",
|
||||
"event.death.disease": "Гибель: {0} (болезнь)",
|
||||
"net.hud": "Мультиплеер: {0} | жителей: {1} | Esc — в меню",
|
||||
"net.connecting": "подключение…",
|
||||
"net.connected": "подключено",
|
||||
"net.failed": "не удалось подключиться",
|
||||
"net.lost": "соединение потеряно",
|
||||
"net.reconnecting": "переподключение…"
|
||||
}
|
||||
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 1013 B After Width: | Height: | Size: 1013 B |
|
Before Width: | Height: | Size: 683 B After Width: | Height: | Size: 683 B |
|
Before Width: | Height: | Size: 839 B After Width: | Height: | Size: 839 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 798 B After Width: | Height: | Size: 798 B |
|
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 633 B |
|
Before Width: | Height: | Size: 520 B After Width: | Height: | Size: 520 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 656 B After Width: | Height: | Size: 656 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 999 B After Width: | Height: | Size: 999 B |
|
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 489 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 843 B After Width: | Height: | Size: 843 B |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 832 KiB After Width: | Height: | Size: 832 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 203 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 863 KiB After Width: | Height: | Size: 863 KiB |
|
Before Width: | Height: | Size: 873 KiB After Width: | Height: | Size: 873 KiB |
|
Before Width: | Height: | Size: 962 KiB After Width: | Height: | Size: 962 KiB |
|
Before Width: | Height: | Size: 207 KiB After Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 872 KiB After Width: | Height: | Size: 872 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 899 KiB After Width: | Height: | Size: 899 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 987 KiB After Width: | Height: | Size: 987 KiB |
|
Before Width: | Height: | Size: 932 KiB After Width: | Height: | Size: 932 KiB |
|
Before Width: | Height: | Size: 853 KiB After Width: | Height: | Size: 853 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 867 KiB After Width: | Height: | Size: 867 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 576 KiB After Width: | Height: | Size: 576 KiB |
|
Before Width: | Height: | Size: 120 B After Width: | Height: | Size: 120 B |
|
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 509 B |
|
Before Width: | Height: | Size: 512 KiB After Width: | Height: | Size: 512 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |