diff --git a/1.5/Assemblies/SimpleLootBox.dll b/1.5/Assemblies/SimpleLootBox.dll
index f610225..9b142a2 100644
Binary files a/1.5/Assemblies/SimpleLootBox.dll and b/1.5/Assemblies/SimpleLootBox.dll differ
diff --git a/1.5/Defs/SimpleLootBoxExample.xml b/1.5/Defs/SimpleLootBoxExample.xml
index ca3182c..54811a9 100644
--- a/1.5/Defs/SimpleLootBoxExample.xml
+++ b/1.5/Defs/SimpleLootBoxExample.xml
@@ -39,6 +39,9 @@
+ lootBoxOpenSound
+ lootBoxSpinningSound
+ lootBoxBackgroundMusicSound
Silver
@@ -46,6 +49,7 @@
5
2
Skip_ExitNoDelay
+ lootBoxFinalizingRewardSound
Gold
@@ -59,7 +63,7 @@
Masterwork
1
2
- 1
+ 2
MeleeWeapon_MonoSword
@@ -104,6 +108,9 @@
+ lootBoxOpenSound
+ lootBoxSpinningSound
+ lootBoxBackgroundMusicSound
Mercenary_Gunner
@@ -159,6 +166,9 @@
+ lootBoxOpenSound
+ lootBoxSpinningSound
+ lootBoxBackgroundMusicSound
Mercenary_Gunner
@@ -173,6 +183,7 @@
5
2
Skip_ExitNoDelay
+ lootBoxFinalizingRewardSound
diff --git a/1.5/Defs/SoundDefsExample.xml b/1.5/Defs/SoundDefsExample.xml
new file mode 100644
index 0000000..bcce72e
--- /dev/null
+++ b/1.5/Defs/SoundDefsExample.xml
@@ -0,0 +1,81 @@
+
+
+
+ lootBoxOpenSound
+ 1
+ 1
+
+
+ True
+
+
+ SimpleLootBox/lootBoxOpenSound
+
+
+ 50~50
+
+
+
+
+
+
+ lootBoxSpinningSound
+ 1
+ 1
+ True
+ PrioritizeNearest
+
+
+ False
+ False
+ True
+
+
+ SimpleLootBox/lootBoxSpinningSound
+
+
+ 50~50
+
+
+
+
+
+
+ lootBoxBackgroundMusicSound
+ 1
+ 1
+ True
+ PrioritizeNearest
+
+
+ False
+ False
+ True
+
+
+ SimpleLootBox/lootBoxBackgroundMusicSound
+
+
+ 35~35
+
+
+
+
+
+ lootBoxFinalizingRewardSound
+ 1
+ 1
+
+
+ True
+
+
+ SimpleLootBox/lootBoxFinalizingRewardSound
+
+
+ 70~70
+
+
+
+
+
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/036e39de-3184-42e9-bb61-e311381e1ec1.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/036e39de-3184-42e9-bb61-e311381e1ec1.vsidx
deleted file mode 100644
index 750c179..0000000
Binary files a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/036e39de-3184-42e9-bb61-e311381e1ec1.vsidx and /dev/null differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/206470aa-01ad-4dc1-a1cc-d02916e4c66e.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/206470aa-01ad-4dc1-a1cc-d02916e4c66e.vsidx
deleted file mode 100644
index 119171a..0000000
Binary files a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/206470aa-01ad-4dc1-a1cc-d02916e4c66e.vsidx and /dev/null differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/64153279-c079-4e84-a0b0-450de2546942.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/64153279-c079-4e84-a0b0-450de2546942.vsidx
new file mode 100644
index 0000000..64dd8b7
Binary files /dev/null and b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/64153279-c079-4e84-a0b0-450de2546942.vsidx differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/91731dd4-58ca-4656-a01f-e1a014ed3a2e.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/91731dd4-58ca-4656-a01f-e1a014ed3a2e.vsidx
new file mode 100644
index 0000000..553d194
Binary files /dev/null and b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/91731dd4-58ca-4656-a01f-e1a014ed3a2e.vsidx differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/9fe804b1-ae65-4ad8-a4d5-77859c95e7a0.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/9fe804b1-ae65-4ad8-a4d5-77859c95e7a0.vsidx
new file mode 100644
index 0000000..a7796a7
Binary files /dev/null and b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/9fe804b1-ae65-4ad8-a4d5-77859c95e7a0.vsidx differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/a279f761-3f29-422e-8364-1d1a88259401.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/a279f761-3f29-422e-8364-1d1a88259401.vsidx
new file mode 100644
index 0000000..a778025
Binary files /dev/null and b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/a279f761-3f29-422e-8364-1d1a88259401.vsidx differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/a487a28a-a2ce-4e78-b53c-8b720cc1a05b.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/a487a28a-a2ce-4e78-b53c-8b720cc1a05b.vsidx
deleted file mode 100644
index 9f600c8..0000000
Binary files a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/a487a28a-a2ce-4e78-b53c-8b720cc1a05b.vsidx and /dev/null differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/ab4680a4-b761-4b25-a63b-7ed8c76c9053.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/ab4680a4-b761-4b25-a63b-7ed8c76c9053.vsidx
deleted file mode 100644
index 34c388b..0000000
Binary files a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/ab4680a4-b761-4b25-a63b-7ed8c76c9053.vsidx and /dev/null differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/d0c95e17-fce0-47f9-9a0f-429d7a3931c0.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/d0c95e17-fce0-47f9-9a0f-429d7a3931c0.vsidx
deleted file mode 100644
index 3f98bc4..0000000
Binary files a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/d0c95e17-fce0-47f9-9a0f-429d7a3931c0.vsidx and /dev/null differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/f71e8900-d0b0-40be-b2ec-17d16c4fc676.vsidx b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/f71e8900-d0b0-40be-b2ec-17d16c4fc676.vsidx
new file mode 100644
index 0000000..01bfd71
Binary files /dev/null and b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/FileContentIndex/f71e8900-d0b0-40be-b2ec-17d16c4fc676.vsidx differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/.suo b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/.suo
index a37a2a8..447af78 100644
Binary files a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/.suo and b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/.suo differ
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.backup.json b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.backup.json
index 50192ca..f5a1319 100644
--- a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.backup.json
+++ b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.backup.json
@@ -3,57 +3,64 @@
"WorkspaceRootPath": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\raritycolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:raritycolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\lootboxspinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxspinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxspinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\rarity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:rarity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compproperties_spawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compproperties_spawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Verniy\\Downloads\\LootBoxSpinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\harmonypatches\\pawn_kill.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:harmonypatches\\pawn_kill.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:HarmonyPatches\\PatchMain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
{
"AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|SimpleLootBox||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
},
@@ -69,75 +76,50 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 1,
+ "SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
- "DocumentIndex": 1,
- "Title": "LootBoxSpinner.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
- "RelativeDocumentMoniker": "LootBoxSpinner.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
- "RelativeToolTip": "LootBoxSpinner.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
+ "DocumentIndex": 0,
+ "Title": "RarityColor.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
+ "RelativeDocumentMoniker": "RarityColor.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
+ "RelativeToolTip": "RarityColor.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T20:22:09.628Z",
+ "WhenOpened": "2025-05-08T13:16:57.175Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 0,
+ "DocumentIndex": 2,
"Title": "LootBoxOpeningWindow.cs",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
"RelativeDocumentMoniker": "LootBoxOpeningWindow.cs",
"ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
"RelativeToolTip": "LootBoxOpeningWindow.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAFAAAAAAAAAA==",
+ "ViewState": "AgIAAGIAAAAAAAAAAAAuwHEAAABHAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-05-07T20:18:46.529Z",
"EditorCaption": ""
},
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "CompLootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
- "RelativeDocumentMoniker": "CompLootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
- "RelativeToolTip": "CompLootBox.cs",
- "ViewState": "AgIAAC8AAAAAAAAAAAAgwIAAAABPAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T22:42:42.073Z",
- "EditorCaption": ""
- },
{
"$type": "Document",
"DocumentIndex": 3,
- "Title": "LootBoxThingDef.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
- "RelativeDocumentMoniker": "LootBoxThingDef.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
- "RelativeToolTip": "LootBoxThingDef.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAA==",
+ "Title": "Rarity.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
+ "RelativeDocumentMoniker": "Rarity.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
+ "RelativeToolTip": "Rarity.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T22:36:06.172Z",
+ "WhenOpened": "2025-05-07T12:47:11.303Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 9,
- "Title": "Pawn_Kill.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Pawn_Kill.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
- "RelativeToolTip": "HarmonyPatches\\Pawn_Kill.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAgAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T21:58:18.923Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
+ "DocumentIndex": 4,
"Title": "LootBoxDatabase.cs",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxDatabase.cs",
"RelativeDocumentMoniker": "LootBoxDatabase.cs",
@@ -148,19 +130,6 @@
"WhenOpened": "2025-05-07T02:24:30.5Z",
"EditorCaption": ""
},
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "LootBoxPawnKindDef.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
- "RelativeDocumentMoniker": "LootBoxPawnKindDef.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
- "RelativeToolTip": "LootBoxPawnKindDef.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAcAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T22:37:54.85Z",
- "EditorCaption": ""
- },
{
"$type": "Document",
"DocumentIndex": 5,
@@ -176,20 +145,117 @@
},
{
"$type": "Document",
- "DocumentIndex": 2,
- "Title": "Rarity.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
- "RelativeDocumentMoniker": "Rarity.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
- "RelativeToolTip": "Rarity.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAFAAAAAAAAAA==",
+ "DocumentIndex": 6,
+ "Title": "CompSpawnLootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
+ "RelativeDocumentMoniker": "CompSpawnLootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
+ "RelativeToolTip": "CompSpawnLootBox.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T12:47:11.303Z",
+ "WhenOpened": "2025-05-07T01:26:54.137Z",
"EditorCaption": ""
},
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "CompProperties_SpawnLootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
+ "RelativeDocumentMoniker": "CompProperties_SpawnLootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
+ "RelativeToolTip": "CompProperties_SpawnLootBox.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-07T01:22:11.223Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "LootBoxSpinner.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
+ "RelativeDocumentMoniker": "LootBoxSpinner.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
+ "RelativeToolTip": "LootBoxSpinner.cs",
+ "ViewState": "AgIAAHkAAAAAAAAAAAAuwIgAAAAvAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-07T20:22:09.628Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "CompProperties_LootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
+ "RelativeDocumentMoniker": "CompProperties_LootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
+ "RelativeToolTip": "CompProperties_LootBox.cs",
+ "ViewState": "AgIAAAMAAAAAAAAAAAAcwBMAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T21:54:49.755Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "LootBoxPawnKindDef.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
+ "RelativeDocumentMoniker": "LootBoxPawnKindDef.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
+ "RelativeToolTip": "LootBoxPawnKindDef.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T22:37:54.85Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "LootBoxThingDef.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
+ "RelativeDocumentMoniker": "LootBoxThingDef.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
+ "RelativeToolTip": "LootBoxThingDef.cs",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAAAsAAAAEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T22:36:06.172Z"
+ },
{
"$type": "Document",
"DocumentIndex": 11,
+ "Title": "CompLootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
+ "RelativeDocumentMoniker": "CompLootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
+ "RelativeToolTip": "CompLootBox.cs",
+ "ViewState": "AgIAABcAAAAAAAAAAAAmwDAAAABJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T22:42:42.073Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "LootBoxSpinner.cs",
+ "DocumentMoniker": "C:\\Users\\Verniy\\Downloads\\LootBoxSpinner.cs",
+ "ToolTip": "C:\\Users\\Verniy\\Downloads\\LootBoxSpinner.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-07T23:49:02.745Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "Pawn_Kill.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
+ "RelativeDocumentMoniker": "HarmonyPatches\\Pawn_Kill.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
+ "RelativeToolTip": "HarmonyPatches\\Pawn_Kill.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAgAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T21:58:18.923Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 14,
"Title": "PatchMain.cs",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs",
"RelativeDocumentMoniker": "HarmonyPatches\\PatchMain.cs",
@@ -201,43 +267,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 8,
- "Title": "CompProperties_SpawnLootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
- "RelativeDocumentMoniker": "CompProperties_SpawnLootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
- "RelativeToolTip": "CompProperties_SpawnLootBox.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAsAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T01:22:11.223Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
- "Title": "CompProperties_LootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
- "RelativeDocumentMoniker": "CompProperties_LootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
- "RelativeToolTip": "CompProperties_LootBox.cs",
- "ViewState": "AgIAAAMAAAAAAAAAAAAAABQAAAA6AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T21:54:49.755Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 12,
- "Title": "CompSpawnLootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
- "RelativeDocumentMoniker": "CompSpawnLootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
- "RelativeToolTip": "CompSpawnLootBox.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T01:26:54.137Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
+ "DocumentIndex": 15,
"Title": "SimpleLootBox",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\SimpleLootBox.csproj",
"RelativeDocumentMoniker": "SimpleLootBox.csproj",
@@ -248,7 +278,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 14,
+ "DocumentIndex": 16,
"Title": "AssemblyInfo.cs",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Properties\\AssemblyInfo.cs",
"RelativeDocumentMoniker": "Properties\\AssemblyInfo.cs",
diff --git a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.json b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.json
index d7b2b3f..2848d59 100644
--- a/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.json
+++ b/1.5/Source/SimpleLootBox/.vs/SimpleLootBox/v17/DocumentLayout.json
@@ -3,57 +3,64 @@
"WorkspaceRootPath": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\",
"Documents": [
{
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\lootboxspinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\raritycolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:raritycolor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxspinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxspinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\rarity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:rarity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxopeningwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxdatabase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compproperties_spawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compproperties_spawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|d:\\steam\\steamapps\\common\\rimworld\\mods\\simplelootbox\\1.5\\source\\simplelootbox\\compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxpawnkinddef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:lootboxthingdef.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:complootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Verniy\\Downloads\\LootBoxSpinner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\harmonypatches\\pawn_kill.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:harmonypatches\\pawn_kill.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compproperties_lootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
{
"AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:HarmonyPatches\\PatchMain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
- {
- "AbsoluteMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{00FCB9AE-563C-4C61-B2E3-317C008E6254}|SimpleLootBox.csproj|solutionrelative:compspawnlootbox.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
{
"AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|SimpleLootBox||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
},
@@ -74,14 +81,14 @@
{
"$type": "Document",
"DocumentIndex": 0,
- "Title": "LootBoxSpinner.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
- "RelativeDocumentMoniker": "LootBoxSpinner.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
- "RelativeToolTip": "LootBoxSpinner.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==",
+ "Title": "RarityColor.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
+ "RelativeDocumentMoniker": "RarityColor.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
+ "RelativeToolTip": "RarityColor.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAzAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T20:22:09.628Z",
+ "WhenOpened": "2025-05-08T13:16:57.175Z",
"EditorCaption": ""
},
{
@@ -92,52 +99,27 @@
"RelativeDocumentMoniker": "LootBoxOpeningWindow.cs",
"ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
"RelativeToolTip": "LootBoxOpeningWindow.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAFAAAAAAAAAA==",
+ "ViewState": "AgIAAGIAAAAAAAAAAAAuwHEAAABHAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-05-07T20:18:46.529Z",
"EditorCaption": ""
},
- {
- "$type": "Document",
- "DocumentIndex": 7,
- "Title": "CompLootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
- "RelativeDocumentMoniker": "CompLootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
- "RelativeToolTip": "CompLootBox.cs",
- "ViewState": "AgIAAC8AAAAAAAAAAAAgwIAAAABPAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T22:42:42.073Z",
- "EditorCaption": ""
- },
{
"$type": "Document",
"DocumentIndex": 3,
- "Title": "LootBoxThingDef.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
- "RelativeDocumentMoniker": "LootBoxThingDef.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
- "RelativeToolTip": "LootBoxThingDef.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAA==",
+ "Title": "Rarity.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
+ "RelativeDocumentMoniker": "Rarity.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
+ "RelativeToolTip": "Rarity.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T22:36:06.172Z",
+ "WhenOpened": "2025-05-07T12:47:11.303Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 9,
- "Title": "Pawn_Kill.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
- "RelativeDocumentMoniker": "HarmonyPatches\\Pawn_Kill.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
- "RelativeToolTip": "HarmonyPatches\\Pawn_Kill.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAgAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T21:58:18.923Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 6,
+ "DocumentIndex": 4,
"Title": "LootBoxDatabase.cs",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxDatabase.cs",
"RelativeDocumentMoniker": "LootBoxDatabase.cs",
@@ -148,19 +130,6 @@
"WhenOpened": "2025-05-07T02:24:30.5Z",
"EditorCaption": ""
},
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "LootBoxPawnKindDef.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
- "RelativeDocumentMoniker": "LootBoxPawnKindDef.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
- "RelativeToolTip": "LootBoxPawnKindDef.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAcAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T22:37:54.85Z",
- "EditorCaption": ""
- },
{
"$type": "Document",
"DocumentIndex": 5,
@@ -176,20 +145,117 @@
},
{
"$type": "Document",
- "DocumentIndex": 1,
- "Title": "Rarity.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
- "RelativeDocumentMoniker": "Rarity.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
- "RelativeToolTip": "Rarity.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAFAAAAAAAAAA==",
+ "DocumentIndex": 6,
+ "Title": "CompSpawnLootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
+ "RelativeDocumentMoniker": "CompSpawnLootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
+ "RelativeToolTip": "CompSpawnLootBox.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T12:47:11.303Z",
+ "WhenOpened": "2025-05-07T01:26:54.137Z",
"EditorCaption": ""
},
+ {
+ "$type": "Document",
+ "DocumentIndex": 7,
+ "Title": "CompProperties_SpawnLootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
+ "RelativeDocumentMoniker": "CompProperties_SpawnLootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
+ "RelativeToolTip": "CompProperties_SpawnLootBox.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAABAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-07T01:22:11.223Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "LootBoxSpinner.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
+ "RelativeDocumentMoniker": "LootBoxSpinner.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
+ "RelativeToolTip": "LootBoxSpinner.cs",
+ "ViewState": "AgIAAHkAAAAAAAAAAAAuwIgAAAAvAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-07T20:22:09.628Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 8,
+ "Title": "CompProperties_LootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
+ "RelativeDocumentMoniker": "CompProperties_LootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
+ "RelativeToolTip": "CompProperties_LootBox.cs",
+ "ViewState": "AgIAAAMAAAAAAAAAAAAcwBMAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T21:54:49.755Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 9,
+ "Title": "LootBoxPawnKindDef.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
+ "RelativeDocumentMoniker": "LootBoxPawnKindDef.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxPawnKindDef.cs",
+ "RelativeToolTip": "LootBoxPawnKindDef.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T22:37:54.85Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 10,
+ "Title": "LootBoxThingDef.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
+ "RelativeDocumentMoniker": "LootBoxThingDef.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
+ "RelativeToolTip": "LootBoxThingDef.cs",
+ "ViewState": "AgIAAAYAAAAAAAAAAAAAAAsAAAAEAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T22:36:06.172Z"
+ },
{
"$type": "Document",
"DocumentIndex": 11,
+ "Title": "CompLootBox.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
+ "RelativeDocumentMoniker": "CompLootBox.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompLootBox.cs",
+ "RelativeToolTip": "CompLootBox.cs",
+ "ViewState": "AgIAABcAAAAAAAAAAAAmwDAAAABJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T22:42:42.073Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 12,
+ "Title": "LootBoxSpinner.cs",
+ "DocumentMoniker": "C:\\Users\\Verniy\\Downloads\\LootBoxSpinner.cs",
+ "ToolTip": "C:\\Users\\Verniy\\Downloads\\LootBoxSpinner.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-07T23:49:02.745Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 13,
+ "Title": "Pawn_Kill.cs",
+ "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
+ "RelativeDocumentMoniker": "HarmonyPatches\\Pawn_Kill.cs",
+ "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\Pawn_Kill.cs",
+ "RelativeToolTip": "HarmonyPatches\\Pawn_Kill.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAgAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-05-06T21:58:18.923Z"
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 14,
"Title": "PatchMain.cs",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs",
"RelativeDocumentMoniker": "HarmonyPatches\\PatchMain.cs",
@@ -201,43 +267,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 8,
- "Title": "CompProperties_SpawnLootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
- "RelativeDocumentMoniker": "CompProperties_SpawnLootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_SpawnLootBox.cs",
- "RelativeToolTip": "CompProperties_SpawnLootBox.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAsAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T01:22:11.223Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 10,
- "Title": "CompProperties_LootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
- "RelativeDocumentMoniker": "CompProperties_LootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompProperties_LootBox.cs",
- "RelativeToolTip": "CompProperties_LootBox.cs",
- "ViewState": "AgIAAAMAAAAAAAAAAAAAABQAAAA6AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-06T21:54:49.755Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 12,
- "Title": "CompSpawnLootBox.cs",
- "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
- "RelativeDocumentMoniker": "CompSpawnLootBox.cs",
- "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
- "RelativeToolTip": "CompSpawnLootBox.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-05-07T01:26:54.137Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 13,
+ "DocumentIndex": 15,
"Title": "SimpleLootBox",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\SimpleLootBox.csproj",
"RelativeDocumentMoniker": "SimpleLootBox.csproj",
@@ -248,7 +278,7 @@
},
{
"$type": "Document",
- "DocumentIndex": 14,
+ "DocumentIndex": 16,
"Title": "AssemblyInfo.cs",
"DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Properties\\AssemblyInfo.cs",
"RelativeDocumentMoniker": "Properties\\AssemblyInfo.cs",
diff --git a/1.5/Source/SimpleLootBox/CompLootBox.cs b/1.5/Source/SimpleLootBox/CompLootBox.cs
index 499da2d..36ec8bb 100644
--- a/1.5/Source/SimpleLootBox/CompLootBox.cs
+++ b/1.5/Source/SimpleLootBox/CompLootBox.cs
@@ -18,157 +18,96 @@ namespace SimpleLootBox
public override void DoEffect(Pawn usedBy)
{
base.DoEffect(usedBy);
-
- float thingWeightSum = 0f;
- float pawnWeightSum = 0f;
-
- if (Props.lootBoxThingDef != null)
- thingWeightSum = Props.lootBoxThingDef
- .Where(t => t.thingDef != null && t.weight > 0)
- .Sum(t => t.weight);
-
- if (Props.lootBoxPawnKindDef != null)
- pawnWeightSum = Props.lootBoxPawnKindDef
- .Where(t => t.pawnKindDef != null && t.weight > 0)
- .Sum(t => t.weight);
-
- float totalWeight = thingWeightSum + pawnWeightSum;
-
- if (totalWeight <= 0f)
- {
- Log.Warning("SimpleLootBox: No valid thingDef or pawnKindDef.");
- }
- else
- {
- float roll = Rand.Value * totalWeight;
- if (roll < thingWeightSum)
- {
- SpawnRandomThing();
- }
- else
- {
- SpawnRandomPawn();
- }
- }
-
- DeleteBox(1);
-
+ LootBoxOpeningWindow window = new LootBoxOpeningWindow(this);
+ Find.WindowStack.Add(window);
}
- private void DeleteBox(int count)
+ public bool Spawn(LootBoxSpinner.SpinItem reward)
+ {
+ if (reward.count <= 0) return false;
+
+ Map map = parent.Map;
+ IntVec3 position = parent.Position;
+
+ if (reward.thingDef != null)
+ {
+ for (int i = 0; i < reward.count; i++)
+ {
+ Thing thing;
+
+ if (reward.thingDef.MadeFromStuff && reward.stuff != null)
+ {
+ thing = ThingMaker.MakeThing(reward.thingDef, reward.stuff);
+ }
+ else
+ {
+ thing = ThingMaker.MakeThing(reward.thingDef);
+ }
+
+ if (thing.TryGetComp() != null)
+ {
+ thing.TryGetComp().SetQuality(reward.quality, ArtGenerationContext.Outsider);
+ }
+
+ if (thing.def.Minifiable)
+ {
+ Thing minifiedThing = MinifyUtility.MakeMinified(thing);
+ GenPlace.TryPlaceThing(minifiedThing, parent.Position, parent.Map, ThingPlaceMode.Near);
+ }
+ else
+ {
+ GenPlace.TryPlaceThing(thing, parent.Position, parent.Map, ThingPlaceMode.Near);
+ }
+
+ if (reward.effecterDef != null)
+ {
+ Effecter effecter = reward.effecterDef.Spawn();
+ effecter.Trigger(new TargetInfo(position, map), new TargetInfo(position, map));
+ effecter.Cleanup();
+ }
+ }
+ }
+ else if (reward.pawnKindDef != null)
+ {
+ for (int i = 0; i < reward.count; i++)
+ {
+ PawnGenerationRequest request = new PawnGenerationRequest(
+ kind: reward.pawnKindDef,
+ context: PawnGenerationContext.NonPlayer,
+ canGeneratePawnRelations: false,
+ colonistRelationChanceFactor: 0f,
+ forceGenerateNewPawn: true
+ );
+ Pawn pawn = PawnGenerator.GeneratePawn(request);
+ //Some pawns like mechaoid have no faction, so no null check
+ pawn.SetFaction(Faction.OfPlayer);
+ if (pawn.ideo != null)
+ {
+ pawn.ideo.SetIdeo(Faction.OfPlayer.ideos.PrimaryIdeo);
+ }
+ GenSpawn.Spawn(pawn, position, map, WipeMode.Vanish);
+
+ if (reward.effecterDef != null)
+ {
+ Effecter effecter = reward.effecterDef.Spawn();
+ effecter.Trigger(new TargetInfo(position, map), new TargetInfo(position, map));
+ effecter.Cleanup();
+ }
+ }
+ }
+ return true;
+ }
+
+ public void DeleteBox(int count)
{
if (parent.stackCount > count)
{
parent.stackCount -= count;
}
- else
+ else if (parent.stackCount == count)
{
parent.Destroy(DestroyMode.Vanish);
}
}
-
- private void PlayEffect(EffecterDef effecterDef, IntVec3 position, Map map)
- {
- if (effecterDef != null)
- {
- Effecter effecter = effecterDef.Spawn();
- effecter.Trigger(new TargetInfo(position, map), new TargetInfo(position, map));
- effecter.Cleanup();
- }
- }
-
- private void SpawnRandomThing()
- {
- if (Props.lootBoxThingDef == null)
- {
- Log.Message("SimpleLootBox: No lootBoxThingDef in the reward list.");
- return;
- }
-
- var validThings = Props.lootBoxThingDef
- .Where(t => t.thingDef != null && t.weight > 0)
- .ToList();
-
- if (validThings.Count == 0)
- {
- Log.Message("SimpleLootBox: No valid thingDef for the lootbox.");
- return;
- }
-
- var selectedThing = validThings.RandomElementByWeight(t => t.weight);
-
- for (int i = 0; i < selectedThing.count; i++)
- {
- Thing thing;
-
- if (selectedThing.thingDef.MadeFromStuff && selectedThing.stuff != null)
- {
- thing = ThingMaker.MakeThing(selectedThing.thingDef, selectedThing.stuff);
- }
- else
- {
- thing = ThingMaker.MakeThing(selectedThing.thingDef);
- }
-
- if (thing.TryGetComp() != null)
- {
- thing.TryGetComp().SetQuality(selectedThing.quality, ArtGenerationContext.Outsider);
- }
-
- if (thing.def.Minifiable)
- {
- Thing minifiedThing = MinifyUtility.MakeMinified(thing);
- GenPlace.TryPlaceThing(minifiedThing, parent.Position, parent.Map, ThingPlaceMode.Near);
- }
- else
- {
- GenPlace.TryPlaceThing(thing, parent.Position, parent.Map, ThingPlaceMode.Near);
- }
- }
-
- PlayEffect(selectedThing.effecterDef, parent.Position, parent.Map);
- }
-
- private void SpawnRandomPawn()
- {
- if (Props.lootBoxPawnKindDef == null)
- {
- Log.Message("SimpleLootBox: No lootBoxPawnKindDef in the reward list.");
- return;
- }
-
- var validPawns = Props.lootBoxPawnKindDef
- .Where(t => t.pawnKindDef != null && t.weight > 0)
- .ToList();
-
- if (validPawns.Count == 0)
- {
- Log.Message("SimpleLootBox: No valid pawnKind for the lootbox.");
- return;
- }
-
- var selectedPawn = validPawns.RandomElementByWeight(t => t.weight);
-
- for (int i = 0; i < selectedPawn.count; i++)
- {
- PawnGenerationRequest request = new PawnGenerationRequest(
- kind: selectedPawn.pawnKindDef,
- context: PawnGenerationContext.NonPlayer,
- canGeneratePawnRelations: false,
- colonistRelationChanceFactor: 0f,
- forceGenerateNewPawn: true
- );
- Pawn pawn = PawnGenerator.GeneratePawn(request);
- pawn.SetFaction(Faction.OfPlayer);
- if (pawn.ideo != null)
- {
- pawn.ideo.SetIdeo(Faction.OfPlayer.ideos.PrimaryIdeo);
- }
-
- GenPlace.TryPlaceThing(pawn, parent.Position, parent.Map, ThingPlaceMode.Near);
- }
-
- PlayEffect(selectedPawn.effecterDef, parent.Position, parent.Map);
- }
}
}
diff --git a/1.5/Source/SimpleLootBox/CompProperties_LootBox.cs b/1.5/Source/SimpleLootBox/CompProperties_LootBox.cs
index 019a2db..8e20318 100644
--- a/1.5/Source/SimpleLootBox/CompProperties_LootBox.cs
+++ b/1.5/Source/SimpleLootBox/CompProperties_LootBox.cs
@@ -22,5 +22,9 @@ namespace SimpleLootBox
public SoundDef lootBoxOpenSound;
+ public SoundDef lootBoxSpinningSound;
+
+ public SoundDef lootBoxBackgroundMusicSound;
+
}
}
diff --git a/1.5/Source/SimpleLootBox/LootBoxOpeningWindow.cs b/1.5/Source/SimpleLootBox/LootBoxOpeningWindow.cs
index daf7277..4c4b763 100644
--- a/1.5/Source/SimpleLootBox/LootBoxOpeningWindow.cs
+++ b/1.5/Source/SimpleLootBox/LootBoxOpeningWindow.cs
@@ -6,11 +6,181 @@ using System.Threading.Tasks;
using UnityEngine;
using RimWorld;
using Verse;
+using Verse.Sound;
namespace SimpleLootBox
{
- public class LootBoxOpeningWindow
+ public class LootBoxOpeningWindow : Window
{
+ private static Vector2 scrollPosition = Vector2.zero;
+ private readonly CompLootBox compLootBox;
+ private readonly LootBoxSpinner lootBoxSpinner;
+ private Sustainer backgroundMusicSustainer;
+ private Sustainer spinningSustainer;
+ private LootBoxSpinner.SpinItem? pendingFinalizingSoundItem = null;
+ private LootBoxSpinner.SpinItem? pendingRewardItem = null;
+ public LootBoxOpeningWindow(CompLootBox comp)
+ {
+ this.compLootBox = comp;
+ this.lootBoxSpinner = new LootBoxSpinner(comp);
+ this.doCloseX = true;
+ this.forcePause = true;
+ }
+
+ public override void PreOpen()
+ {
+ base.PreOpen();
+
+ if (compLootBox.Props.lootBoxOpenSound != null)
+ {
+ compLootBox.Props.lootBoxOpenSound.PlayOneShot(SoundInfo.InMap(new TargetInfo(compLootBox.parent.Position, compLootBox.parent.Map)));
+ }
+
+ if (compLootBox.Props.lootBoxBackgroundMusicSound != null)
+ {
+ SoundInfo info = SoundInfo.InMap(new TargetInfo(compLootBox.parent.Position, compLootBox.parent.Map), MaintenanceType.PerFrame);
+ backgroundMusicSustainer = compLootBox.Props.lootBoxBackgroundMusicSound.TrySpawnSustainer(info);
+ }
+
+ this.windowRect.width = 700f;
+ this.windowRect.height = 800f;
+ this.windowRect.x = (UI.screenWidth - this.windowRect.width) / 2f;
+ this.windowRect.y = (UI.screenHeight - this.windowRect.height) / 2f;
+ }
+
+ public override void DoWindowContents(Rect inRect)
+ {
+ GUI.BeginGroup(inRect);
+ lootBoxSpinner.Draw(new Rect(0f, 100f, inRect.width, 150f));
+ Text.Font = GameFont.Medium;
+ Text.Anchor = TextAnchor.MiddleCenter;
+ Widgets.Label(new Rect(0f, 50f, inRect.width, 40f), compLootBox.parent.LabelCap);
+
+ backgroundMusicSustainer?.Maintain();
+ spinningSustainer?.Maintain();
+
+ if (spinningSustainer != null && !lootBoxSpinner.IsSpinning)
+ {
+ spinningSustainer.End();
+ spinningSustainer = null;
+ }
+
+ if (Widgets.ButtonText(new Rect(255f, 250f, 150f, 50f), "Open Box", active: compLootBox.parent.stackCount >= 1)
+ && compLootBox.parent.stackCount >= 1)
+ {
+ LootBoxSpinner.SpinItem itemWon = lootBoxSpinner.Spin();
+ pendingFinalizingSoundItem = itemWon;
+ pendingRewardItem = itemWon;
+
+ if (compLootBox.Props.lootBoxSpinningSound != null)
+ {
+ SoundInfo info = SoundInfo.InMap(new TargetInfo(compLootBox.parent.Position, compLootBox.parent.Map), MaintenanceType.PerFrame);
+ spinningSustainer = compLootBox.Props.lootBoxSpinningSound.TrySpawnSustainer(info);
+ }
+ }
+
+ if (!lootBoxSpinner.IsSpinning && pendingRewardItem != null)
+ {
+ var item = pendingRewardItem.Value;
+
+ bool success = compLootBox.Spawn(item);
+ if (success)
+ {
+ compLootBox.DeleteBox(1);
+ }
+
+ if (item.finalizingSound != null)
+ {
+ item.finalizingSound.PlayOneShot(SoundInfo.InMap(new TargetInfo(compLootBox.parent.Position, compLootBox.parent.Map)));
+ }
+
+ pendingRewardItem = null;
+ pendingFinalizingSoundItem = null;
+ }
+
+ Rect listRect = new Rect(20f, 300f, inRect.width - 20f, inRect.height - 300f);
+ Rect contentRect = new Rect(listRect.x, listRect.y, listRect.width - 20f, 10f + lootBoxSpinner.PossibleRewards.Count * 20f);
+ Widgets.BeginScrollView(listRect, ref scrollPosition, contentRect);
+ Text.Font = GameFont.Small;
+ for (int i = 0; i < lootBoxSpinner.PossibleRewards.Count; i++)
+ {
+ var spinItem = lootBoxSpinner.PossibleRewards[i];
+
+ //Color of the background of rarity next to the available rewards
+ Rect rowRect = new Rect(listRect.x, listRect.y + i * 20f, 100f, 20f);
+ if (spinItem.rarity == Rarity.None)
+ {
+ Widgets.DrawRectFast(rowRect, RarityColors.GetColor(spinItem.rarity));
+ }
+ else if(spinItem.rarity == Rarity.Common)
+ {
+ Widgets.DrawRectFast(rowRect, RarityColors.GetColor(spinItem.rarity));
+ }
+ else if (spinItem.rarity == Rarity.Uncommon)
+ {
+ Widgets.DrawRectFast(rowRect, RarityColors.GetColor(spinItem.rarity));
+ }
+ else if (spinItem.rarity == Rarity.Rare)
+ {
+ Widgets.DrawRectFast(rowRect, RarityColors.GetColor(spinItem.rarity));
+ }
+ else if (spinItem.rarity == Rarity.Epic)
+ {
+ Widgets.DrawRectFast(rowRect, RarityColors.GetColor(spinItem.rarity));
+ }
+ else if (spinItem.rarity == Rarity.Legendary)
+ {
+ Widgets.DrawRectFast(rowRect, RarityColors.GetColor(spinItem.rarity));
+ }
+
+ //Color of the background of available reward labels
+ Rect labelRect = new Rect(listRect.x + 120f, listRect.y + i * 20f, listRect.width - 150f, 20f);
+ Color rarityColor = RarityColors.GetColor(spinItem.rarity);
+ if (spinItem.rarity == Rarity.Common)
+ rarityColor = RarityColors.GetColor(spinItem.rarity);
+ else if (spinItem.rarity == Rarity.Uncommon)
+ rarityColor = RarityColors.GetColor(spinItem.rarity);
+ else if (spinItem.rarity == Rarity.Rare)
+ rarityColor = RarityColors.GetColor(spinItem.rarity);
+ else if (spinItem.rarity == Rarity.Epic)
+ rarityColor = RarityColors.GetColor(spinItem.rarity);
+ else if (spinItem.rarity == Rarity.Legendary)
+ rarityColor = RarityColors.GetColor(spinItem.rarity);
+ Widgets.DrawRectFast(labelRect, rarityColor);
+
+ Text.Anchor = TextAnchor.MiddleCenter;
+ Widgets.Label(new Rect(listRect.x, listRect.y + i * 20f, 100f, 20f), spinItem.rarity.ToString());
+ string rewardName = spinItem.thingDef != null ? spinItem.thingDef.LabelCap : (spinItem.pawnKindDef?.LabelCap ?? "");
+ Text.Anchor = TextAnchor.MiddleLeft;
+ Widgets.Label(new Rect(listRect.x + 120f, listRect.y + i * 20f, listRect.width - 150f, 20f), rewardName);
+ if (spinItem.count > 1)
+ {
+ Text.Anchor = TextAnchor.MiddleRight;
+ Widgets.Label(new Rect(listRect.x + 120f, listRect.y + i * 20f, listRect.width - 150f, 20f), $"x{spinItem.count}");
+ }
+ }
+ Widgets.EndScrollView();
+ GUI.EndGroup();
+ Text.Anchor = TextAnchor.UpperLeft;
+ Text.Font = GameFont.Small;
+ }
+
+ public override void PostClose()
+ {
+ base.PostClose();
+ if (backgroundMusicSustainer != null)
+ {
+ backgroundMusicSustainer.End();
+ backgroundMusicSustainer = null;
+ }
+
+ if (spinningSustainer != null)
+ {
+ spinningSustainer.End();
+ spinningSustainer = null;
+ }
+ }
}
}
+
diff --git a/1.5/Source/SimpleLootBox/LootBoxPawnKindDef.cs b/1.5/Source/SimpleLootBox/LootBoxPawnKindDef.cs
index cfde6de..ce734b2 100644
--- a/1.5/Source/SimpleLootBox/LootBoxPawnKindDef.cs
+++ b/1.5/Source/SimpleLootBox/LootBoxPawnKindDef.cs
@@ -20,5 +20,7 @@ namespace SimpleLootBox
public Rarity rarity;
+ public SoundDef lootBoxFinalizingRewardSound;
+
}
}
diff --git a/1.5/Source/SimpleLootBox/LootBoxSpinner.cs b/1.5/Source/SimpleLootBox/LootBoxSpinner.cs
index db6a9c1..a5fa564 100644
--- a/1.5/Source/SimpleLootBox/LootBoxSpinner.cs
+++ b/1.5/Source/SimpleLootBox/LootBoxSpinner.cs
@@ -6,11 +6,219 @@ using System.Threading.Tasks;
using RimWorld;
using UnityEngine;
using Verse;
+using static SimpleLootBox.LootBoxSpinner;
namespace SimpleLootBox
{
- public class CaseSpinner
+ public class LootBoxSpinner
{
+ private const int CellCount = 50;
+ private float speed = 0f;
+ public bool IsSpinning => speed > 0.1f;
+ private float position = 0f;
+ private readonly System.Random rng = new System.Random();
+ private readonly CompLootBox comp;
+ private readonly SpinItem[] spinWheelItems = new SpinItem[CellCount];
+ public List PossibleRewards { get; private set; } = new List();
+
+ public LootBoxSpinner(CompLootBox comp)
+ {
+ this.comp = comp;
+ LoadPossibleRewards();
+ for (int i = 0; i < CellCount; i++)
+ {
+ spinWheelItems[i] = PickRandomReward();
+ }
+ }
+
+ private void LoadPossibleRewards()
+ {
+ PossibleRewards.Clear();
+ CompProperties_LootBox props = comp.Props;
+
+ if (props.lootBoxThingDef != null)
+ {
+ foreach (var thing in props.lootBoxThingDef)
+ {
+ if (thing.thingDef == null || thing.weight <= 0) continue;
+ SpinItem item = new SpinItem(thing.thingDef, thing.stuff, thing.quality, thing.count, thing.rarity, thing.weight, thing.effecterDef, thing.lootBoxFinalizingRewardSound);
+ PossibleRewards.Add(item);
+ }
+ }
+
+ if (props.lootBoxPawnKindDef != null)
+ {
+ foreach (var pawn in props.lootBoxPawnKindDef)
+ {
+ if (pawn.pawnKindDef == null || pawn.weight <= 0) continue;
+ SpinItem item = new SpinItem(pawn.pawnKindDef, pawn.count, pawn.rarity, pawn.weight, pawn.effecterDef, pawn.lootBoxFinalizingRewardSound);
+ PossibleRewards.Add(item);
+ }
+ }
+
+ PossibleRewards.Sort((a, b) =>
+ {
+ int r = b.rarity.CompareTo(a.rarity);
+ if (r != 0) return r;
+ string an = a.thingDef != null ? a.thingDef.label : a.pawnKindDef?.label ?? "";
+ string bn = b.thingDef != null ? b.thingDef.label : b.pawnKindDef?.label ?? "";
+ return string.Compare(an, bn, StringComparison.OrdinalIgnoreCase);
+ });
+ }
+
+ public void Draw(Rect rect)
+ {
+ if (spinWheelItems.Length == 0) return;
+
+ speed = Math.Max(speed - 0.2f, 0f);
+ position += speed;
+ float totalWidth = rect.width * CellCount * 0.2f;
+
+ for (int i = 0; i < CellCount; i++)
+ {
+ float x = totalWidth - ((position + rect.width * (i * 0.2f)) % totalWidth) + rect.x - rect.width * 0.2f;
+ Rect cellRect = new Rect(x, rect.y, rect.width * 0.2f - 5f, rect.height);
+ SpinItem item = spinWheelItems[i];
+
+ if (item.rarity == Rarity.Common)
+ {
+ Widgets.DrawRectFast(cellRect, RarityColors.GetColor(item.rarity));
+ }
+ else if (item.rarity == Rarity.Uncommon)
+ {
+ Widgets.DrawRectFast(cellRect, RarityColors.GetColor(item.rarity));
+ }
+ else if (item.rarity == Rarity.Rare)
+ {
+ Widgets.DrawRectFast(cellRect, RarityColors.GetColor(item.rarity));
+ }
+ else if (item.rarity == Rarity.Epic)
+ {
+ Widgets.DrawRectFast(cellRect, RarityColors.GetColor(item.rarity));
+ }
+ else if (item.rarity == Rarity.Legendary)
+ {
+ Widgets.DrawRectFast(cellRect, RarityColors.GetColor(item.rarity));
+ }
+
+ Rect iconRect = new Rect(x, rect.y + 5f, rect.width * 0.2f - 5f, rect.width * 0.2f - 5f);
+ Texture iconTex = item.thingDef?.uiIcon;
+ if (item.pawnKindDef != null)
+ {
+ iconTex = item.portrait;
+ }
+
+ if (iconTex != null)
+ {
+ Widgets.DrawTextureFitted(iconRect, iconTex, 1f);
+ }
+ else
+ {
+ Text.Anchor = TextAnchor.MiddleCenter;
+ Text.Font = GameFont.Tiny;
+ string label = item.thingDef?.LabelCap ?? item.pawnKindDef?.LabelCap ?? "";
+ Widgets.Label(iconRect, label);
+ }
+
+ if (item.count > 1)
+ {
+ Rect countRect = new Rect(x, rect.y + 20f, rect.width * 0.2f - 5f, rect.width * 0.2f - 5f);
+ Text.Anchor = TextAnchor.LowerRight;
+ Text.Font = GameFont.Medium;
+ Widgets.Label(countRect, "x" + item.count);
+ }
+
+ Text.Font = GameFont.Small;
+ Text.Anchor = TextAnchor.UpperLeft;
+ }
+
+ Rect bar = new Rect(rect.x + rect.width / 2f - 1f, rect.y, 2f, rect.height);
+ Widgets.DrawRectFast(bar, new Color(0.0823f, 0.098f, 0.1137f, 1f));
+ }
+
+ public SpinItem Spin()
+ {
+ speed = 100.3f;
+ position = 0f;
+
+ for (int i = 0; i < CellCount; i++)
+ {
+ spinWheelItems[i] = PickRandomReward();
+ }
+
+ return spinWheelItems[8];
+ }
+
+ public void Stop()
+ {
+ speed = 0f;
+ position = 0f;
+ }
+
+ private SpinItem PickRandomReward()
+ {
+ if (PossibleRewards.Count == 0) return default;
+
+ double totalWeight = 0;
+ foreach (var item in PossibleRewards)
+ {
+ totalWeight += item.weight;
+ }
+
+ double pick = rng.NextDouble() * totalWeight;
+ foreach (var item in PossibleRewards)
+ {
+ pick -= item.weight;
+ if (pick <= 0)
+ return item;
+ }
+
+ return PossibleRewards[PossibleRewards.Count - 1];
+ }
+
+ public struct SpinItem
+ {
+ public ThingDef thingDef;
+ public PawnKindDef pawnKindDef;
+ public ThingDef stuff;
+ public QualityCategory quality;
+ public int count;
+ public Rarity rarity;
+ public float weight;
+ public EffecterDef effecterDef;
+ public RenderTexture portrait;
+ public SoundDef finalizingSound;
+
+ public SpinItem(ThingDef thingDef, ThingDef stuff, QualityCategory quality, int count, Rarity rarity, float weight, EffecterDef effecter, SoundDef finalizingSound)
+ {
+ this.thingDef = thingDef;
+ this.pawnKindDef = null;
+ this.stuff = stuff;
+ this.quality = quality;
+ this.count = count;
+ this.rarity = rarity;
+ this.weight = weight;
+ this.effecterDef = effecter;
+ this.portrait = null;
+ this.finalizingSound = finalizingSound;
+ }
+
+ public SpinItem(PawnKindDef pawnKindDef, int count, Rarity rarity, float weight, EffecterDef effecter, SoundDef finalizingSound)
+ {
+ this.thingDef = null;
+ this.pawnKindDef = pawnKindDef;
+ this.stuff = null;
+ this.quality = QualityCategory.Normal;
+ this.count = count;
+ this.rarity = rarity;
+ this.weight = weight;
+ this.effecterDef = effecter;
+ this.finalizingSound = finalizingSound;
+
+ Pawn pawn = PawnGenerator.GeneratePawn(pawnKindDef);
+ this.portrait = PortraitsCache.Get(pawn, new Vector2(128f, 128f), Rot4.South, new Vector3(0f, 0f, 0.1f), 1.5f);
+ }
+ }
}
}
diff --git a/1.5/Source/SimpleLootBox/LootBoxThingDef.cs b/1.5/Source/SimpleLootBox/LootBoxThingDef.cs
index 696ceda..af514c8 100644
--- a/1.5/Source/SimpleLootBox/LootBoxThingDef.cs
+++ b/1.5/Source/SimpleLootBox/LootBoxThingDef.cs
@@ -24,5 +24,7 @@ namespace SimpleLootBox
public QualityCategory quality;
public Rarity rarity = 0;
+
+ public SoundDef lootBoxFinalizingRewardSound;
}
}
diff --git a/1.5/Source/SimpleLootBox/RarityColor.cs b/1.5/Source/SimpleLootBox/RarityColor.cs
new file mode 100644
index 0000000..03656e8
--- /dev/null
+++ b/1.5/Source/SimpleLootBox/RarityColor.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using UnityEngine;
+
+namespace SimpleLootBox
+{
+ public static class RarityColors
+ {
+ public static Dictionary rarityColorMap = new Dictionary
+ {
+ { Rarity.None, new Color(0.6f, 0.6f, 0.6f) },
+ { Rarity.Common, new Color(0.3f, 0.3f, 1f) },
+ { Rarity.Uncommon, new Color(0.8f, 0.3f, 1f) },
+ { Rarity.Rare, new Color(1f, 0.3f, 0.8f) },
+ { Rarity.Epic, new Color(1f, 0.3f, 0.3f) },
+ { Rarity.Legendary, new Color(0.85f, 0.7f, 0.2f) }
+ };
+
+ public static Color GetColor(Rarity rarity)
+ {
+ return rarityColorMap.TryGetValue(rarity, out var color) ? color : Color.white;
+ }
+ }
+}
diff --git a/1.5/Source/SimpleLootBox/SimpleLootBox.csproj b/1.5/Source/SimpleLootBox/SimpleLootBox.csproj
index 7b9a100..3357835 100644
--- a/1.5/Source/SimpleLootBox/SimpleLootBox.csproj
+++ b/1.5/Source/SimpleLootBox/SimpleLootBox.csproj
@@ -71,6 +71,7 @@
+
\ No newline at end of file
diff --git a/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.csproj.CoreCompileInputs.cache b/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.csproj.CoreCompileInputs.cache
index 6ab1e44..52a75e8 100644
--- a/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.csproj.CoreCompileInputs.cache
+++ b/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-705e218464d7300a4f75cf5799c059d7889b490b575db1d6f450c55e9775b6b3
+e5bf3b320bda89aae16e54c514e180e5e6fc8694d412236eb7aecb06adbb9c82
diff --git a/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.dll b/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.dll
index f610225..9b142a2 100644
Binary files a/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.dll and b/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.dll differ
diff --git a/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.pdb b/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.pdb
index 841603a..b271ce2 100644
Binary files a/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.pdb and b/1.5/Source/SimpleLootBox/obj/Debug/SimpleLootBox.pdb differ
diff --git a/Sounds/SimpleLootBox/lootBoxBackgroundMusicSound.ogg b/Sounds/SimpleLootBox/lootBoxBackgroundMusicSound.ogg
new file mode 100644
index 0000000..0c456f1
Binary files /dev/null and b/Sounds/SimpleLootBox/lootBoxBackgroundMusicSound.ogg differ
diff --git a/Sounds/SimpleLootBox/lootBoxFinalizingRewardSound.ogg b/Sounds/SimpleLootBox/lootBoxFinalizingRewardSound.ogg
new file mode 100644
index 0000000..1e4ade2
Binary files /dev/null and b/Sounds/SimpleLootBox/lootBoxFinalizingRewardSound.ogg differ
diff --git a/Sounds/SimpleLootBox/lootBoxOpenSound.ogg b/Sounds/SimpleLootBox/lootBoxOpenSound.ogg
new file mode 100644
index 0000000..a92f46e
Binary files /dev/null and b/Sounds/SimpleLootBox/lootBoxOpenSound.ogg differ
diff --git a/Sounds/SimpleLootBox/lootBoxSpinningSound.ogg b/Sounds/SimpleLootBox/lootBoxSpinningSound.ogg
new file mode 100644
index 0000000..4a8c5cf
Binary files /dev/null and b/Sounds/SimpleLootBox/lootBoxSpinningSound.ogg differ