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