20250508
This commit is contained in:
		
							parent
							
								
									55c03683fb
								
							
						
					
					
						commit
						ef485b76aa
					
				
										
											Binary file not shown.
										
									
								
							@ -39,6 +39,9 @@
 | 
				
			|||||||
				</lootBoxList>
 | 
									</lootBoxList>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
			<li Class="SimpleLootBox.CompProperties_LootBox">
 | 
								<li Class="SimpleLootBox.CompProperties_LootBox">
 | 
				
			||||||
 | 
									<lootBoxOpenSound>lootBoxOpenSound</lootBoxOpenSound><!-- 进入开箱界面的音效 -->
 | 
				
			||||||
 | 
									<lootBoxSpinningSound>lootBoxSpinningSound</lootBoxSpinningSound><!-- 选取物品时的音效,单曲循环sustainer -->
 | 
				
			||||||
 | 
									<lootBoxBackgroundMusicSound>lootBoxBackgroundMusicSound</lootBoxBackgroundMusicSound><!-- 开箱界面的背景音乐,单曲循环sustainer -->
 | 
				
			||||||
				<lootBoxThingDef>
 | 
									<lootBoxThingDef>
 | 
				
			||||||
					<li>
 | 
										<li>
 | 
				
			||||||
						<thingDef>Silver</thingDef><!-- 箱子可以开出的物品的定义名 -->
 | 
											<thingDef>Silver</thingDef><!-- 箱子可以开出的物品的定义名 -->
 | 
				
			||||||
@ -46,6 +49,7 @@
 | 
				
			|||||||
						<weight>5</weight><!-- 这项奖励的生成权重 -->
 | 
											<weight>5</weight><!-- 这项奖励的生成权重 -->
 | 
				
			||||||
						<rarity>2</rarity><!-- 这项奖励的稀有度(使用的颜色与文本)可用选项 0 1 2 3 4 5 ,不填默认为0,数字越大稀有度越高-->
 | 
											<rarity>2</rarity><!-- 这项奖励的稀有度(使用的颜色与文本)可用选项 0 1 2 3 4 5 ,不填默认为0,数字越大稀有度越高-->
 | 
				
			||||||
						<effecterDef>Skip_ExitNoDelay</effecterDef><!-- 生成奖励时可以播放的特效,不设置就没特效 -->
 | 
											<effecterDef>Skip_ExitNoDelay</effecterDef><!-- 生成奖励时可以播放的特效,不设置就没特效 -->
 | 
				
			||||||
 | 
											<lootBoxFinalizingRewardSound>lootBoxFinalizingRewardSound</lootBoxFinalizingRewardSound><!-- 该奖励被选中时的音效 -->
 | 
				
			||||||
					</li>
 | 
										</li>
 | 
				
			||||||
					<li>
 | 
										<li>
 | 
				
			||||||
						<thingDef>Gold</thingDef>
 | 
											<thingDef>Gold</thingDef>
 | 
				
			||||||
@ -59,7 +63,7 @@
 | 
				
			|||||||
						<quality>Masterwork</quality><!-- 如果这个物品有品质,会使用这里设置的品质,可用的品质为 Awful Poor Normal Good Excellent Masterwork Legendary-->
 | 
											<quality>Masterwork</quality><!-- 如果这个物品有品质,会使用这里设置的品质,可用的品质为 Awful Poor Normal Good Excellent Masterwork Legendary-->
 | 
				
			||||||
						<count>1</count>
 | 
											<count>1</count>
 | 
				
			||||||
						<weight>2</weight>
 | 
											<weight>2</weight>
 | 
				
			||||||
						<rarity>1</rarity>
 | 
											<rarity>2</rarity>
 | 
				
			||||||
					</li>
 | 
										</li>
 | 
				
			||||||
					<li>
 | 
										<li>
 | 
				
			||||||
						<thingDef>MeleeWeapon_MonoSword</thingDef>
 | 
											<thingDef>MeleeWeapon_MonoSword</thingDef>
 | 
				
			||||||
@ -104,6 +108,9 @@
 | 
				
			|||||||
				</lootBoxList>
 | 
									</lootBoxList>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
			<li Class="SimpleLootBox.CompProperties_LootBox">
 | 
								<li Class="SimpleLootBox.CompProperties_LootBox">
 | 
				
			||||||
 | 
									<lootBoxOpenSound>lootBoxOpenSound</lootBoxOpenSound>
 | 
				
			||||||
 | 
									<lootBoxSpinningSound>lootBoxSpinningSound</lootBoxSpinningSound>
 | 
				
			||||||
 | 
									<lootBoxBackgroundMusicSound>lootBoxBackgroundMusicSound</lootBoxBackgroundMusicSound>
 | 
				
			||||||
				<lootBoxPawnKindDef>
 | 
									<lootBoxPawnKindDef>
 | 
				
			||||||
					<li>
 | 
										<li>
 | 
				
			||||||
						<pawnKindDef>Mercenary_Gunner</pawnKindDef><!-- 箱子可以开出的人物的定义名 -->
 | 
											<pawnKindDef>Mercenary_Gunner</pawnKindDef><!-- 箱子可以开出的人物的定义名 -->
 | 
				
			||||||
@ -159,6 +166,9 @@
 | 
				
			|||||||
				</lootBoxList>
 | 
									</lootBoxList>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
			<li Class="SimpleLootBox.CompProperties_LootBox">
 | 
								<li Class="SimpleLootBox.CompProperties_LootBox">
 | 
				
			||||||
 | 
									<lootBoxOpenSound>lootBoxOpenSound</lootBoxOpenSound>
 | 
				
			||||||
 | 
									<lootBoxSpinningSound>lootBoxSpinningSound</lootBoxSpinningSound>
 | 
				
			||||||
 | 
									<lootBoxBackgroundMusicSound>lootBoxBackgroundMusicSound</lootBoxBackgroundMusicSound>
 | 
				
			||||||
				<lootBoxPawnKindDef><!-- 箱子开出的奖励可以混合人物和物品 -->
 | 
									<lootBoxPawnKindDef><!-- 箱子开出的奖励可以混合人物和物品 -->
 | 
				
			||||||
					<li>
 | 
										<li>
 | 
				
			||||||
						<pawnKindDef>Mercenary_Gunner</pawnKindDef>
 | 
											<pawnKindDef>Mercenary_Gunner</pawnKindDef>
 | 
				
			||||||
@ -173,6 +183,7 @@
 | 
				
			|||||||
						<weight>5</weight>
 | 
											<weight>5</weight>
 | 
				
			||||||
						<rarity>2</rarity>
 | 
											<rarity>2</rarity>
 | 
				
			||||||
						<effecterDef>Skip_ExitNoDelay</effecterDef>
 | 
											<effecterDef>Skip_ExitNoDelay</effecterDef>
 | 
				
			||||||
 | 
											<lootBoxFinalizingRewardSound>lootBoxFinalizingRewardSound</lootBoxFinalizingRewardSound>
 | 
				
			||||||
					</li>
 | 
										</li>
 | 
				
			||||||
				</lootBoxThingDef>
 | 
									</lootBoxThingDef>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										81
									
								
								1.5/Defs/SoundDefsExample.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								1.5/Defs/SoundDefsExample.xml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?><Defs>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<SoundDef>
 | 
				
			||||||
 | 
						<defName>lootBoxOpenSound</defName>    
 | 
				
			||||||
 | 
						<maxVoices>1</maxVoices>  
 | 
				
			||||||
 | 
						<maxSimultaneous>1</maxSimultaneous>  
 | 
				
			||||||
 | 
						<subSounds>
 | 
				
			||||||
 | 
							<li>
 | 
				
			||||||
 | 
								<onCamera>True</onCamera>      
 | 
				
			||||||
 | 
								<grains>
 | 
				
			||||||
 | 
									<li Class="AudioGrain_Clip">
 | 
				
			||||||
 | 
										<clipPath>SimpleLootBox/lootBoxOpenSound</clipPath><!-- 音频路径-->
 | 
				
			||||||
 | 
									</li>
 | 
				
			||||||
 | 
								</grains>      
 | 
				
			||||||
 | 
								<volumeRange>50~50</volumeRange><!-- 音量-->
 | 
				
			||||||
 | 
							</li>
 | 
				
			||||||
 | 
						</subSounds>
 | 
				
			||||||
 | 
					</SoundDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!-- Sustainer 如果该音频需要持续播放,需要设置为sustainer-->
 | 
				
			||||||
 | 
					<SoundDef>
 | 
				
			||||||
 | 
						<defName>lootBoxSpinningSound</defName>    
 | 
				
			||||||
 | 
						<maxVoices>1</maxVoices>  
 | 
				
			||||||
 | 
						<maxSimultaneous>1</maxSimultaneous> 
 | 
				
			||||||
 | 
						<sustain>True</sustain> 
 | 
				
			||||||
 | 
						<priorityMode>PrioritizeNearest</priorityMode>
 | 
				
			||||||
 | 
						<subSounds>
 | 
				
			||||||
 | 
							<li>
 | 
				
			||||||
 | 
								<muteWhenPaused>False</muteWhenPaused>
 | 
				
			||||||
 | 
								<sustainLoop>False</sustainLoop>
 | 
				
			||||||
 | 
								<onCamera>True</onCamera>      
 | 
				
			||||||
 | 
								<grains>
 | 
				
			||||||
 | 
									<li Class="AudioGrain_Clip">
 | 
				
			||||||
 | 
										<clipPath>SimpleLootBox/lootBoxSpinningSound</clipPath>
 | 
				
			||||||
 | 
									</li>
 | 
				
			||||||
 | 
								</grains>      
 | 
				
			||||||
 | 
								<volumeRange>50~50</volumeRange>
 | 
				
			||||||
 | 
							</li>
 | 
				
			||||||
 | 
						</subSounds>
 | 
				
			||||||
 | 
					</SoundDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!-- Sustainer-->
 | 
				
			||||||
 | 
					<SoundDef>
 | 
				
			||||||
 | 
						<defName>lootBoxBackgroundMusicSound</defName>    
 | 
				
			||||||
 | 
						<maxVoices>1</maxVoices>  
 | 
				
			||||||
 | 
						<maxSimultaneous>1</maxSimultaneous> 
 | 
				
			||||||
 | 
						<sustain>True</sustain> 
 | 
				
			||||||
 | 
						<priorityMode>PrioritizeNearest</priorityMode>
 | 
				
			||||||
 | 
						<subSounds>
 | 
				
			||||||
 | 
							<li>
 | 
				
			||||||
 | 
								<muteWhenPaused>False</muteWhenPaused>
 | 
				
			||||||
 | 
								<sustainLoop>False</sustainLoop>
 | 
				
			||||||
 | 
								<onCamera>True</onCamera>      
 | 
				
			||||||
 | 
								<grains>
 | 
				
			||||||
 | 
									<li Class="AudioGrain_Clip">
 | 
				
			||||||
 | 
										<clipPath>SimpleLootBox/lootBoxBackgroundMusicSound</clipPath>
 | 
				
			||||||
 | 
									</li>
 | 
				
			||||||
 | 
								</grains>      
 | 
				
			||||||
 | 
								<volumeRange>35~35</volumeRange>
 | 
				
			||||||
 | 
							</li>
 | 
				
			||||||
 | 
						</subSounds>
 | 
				
			||||||
 | 
					</SoundDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<SoundDef>
 | 
				
			||||||
 | 
						<defName>lootBoxFinalizingRewardSound</defName>    
 | 
				
			||||||
 | 
						<maxVoices>1</maxVoices>  
 | 
				
			||||||
 | 
						<maxSimultaneous>1</maxSimultaneous>  
 | 
				
			||||||
 | 
						<subSounds>
 | 
				
			||||||
 | 
							<li>
 | 
				
			||||||
 | 
								<onCamera>True</onCamera>      
 | 
				
			||||||
 | 
								<grains>
 | 
				
			||||||
 | 
									<li Class="AudioGrain_Clip">
 | 
				
			||||||
 | 
										<clipPath>SimpleLootBox/lootBoxFinalizingRewardSound</clipPath>
 | 
				
			||||||
 | 
									</li>
 | 
				
			||||||
 | 
								</grains>      
 | 
				
			||||||
 | 
								<volumeRange>70~70</volumeRange>
 | 
				
			||||||
 | 
							</li>
 | 
				
			||||||
 | 
						</subSounds>
 | 
				
			||||||
 | 
					</SoundDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</Defs>
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@ -3,57 +3,64 @@
 | 
				
			|||||||
  "WorkspaceRootPath": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\",
 | 
					  "WorkspaceRootPath": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\",
 | 
				
			||||||
  "Documents": [
 | 
					  "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}",
 | 
					      "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:lootboxopeningwindow.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}"
 | 
					      "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}",
 | 
					      "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}"
 | 
					      "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}",
 | 
					      "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:lootboxthingdef.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\\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\\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\\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}"
 | 
					      "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}",
 | 
					      "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:lootboxdatabase.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\\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\\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_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}"
 | 
					      "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}",
 | 
					      "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}"
 | 
					      "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}",
 | 
					      "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}"
 | 
					      "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}|"
 | 
					      "AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|SimpleLootBox||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -69,75 +76,50 @@
 | 
				
			|||||||
      "DocumentGroups": [
 | 
					      "DocumentGroups": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          "DockedWidth": 200,
 | 
					          "DockedWidth": 200,
 | 
				
			||||||
          "SelectedChildIndex": 1,
 | 
					          "SelectedChildIndex": 0,
 | 
				
			||||||
          "Children": [
 | 
					          "Children": [
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 1,
 | 
					              "DocumentIndex": 0,
 | 
				
			||||||
              "Title": "LootBoxSpinner.cs",
 | 
					              "Title": "RarityColor.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "LootBoxSpinner.cs",
 | 
					              "RelativeDocumentMoniker": "RarityColor.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
 | 
				
			||||||
              "RelativeToolTip": "LootBoxSpinner.cs",
 | 
					              "RelativeToolTip": "RarityColor.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-07T20:22:09.628Z",
 | 
					              "WhenOpened": "2025-05-08T13:16:57.175Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "EditorCaption": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 0,
 | 
					              "DocumentIndex": 2,
 | 
				
			||||||
              "Title": "LootBoxOpeningWindow.cs",
 | 
					              "Title": "LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "LootBoxOpeningWindow.cs",
 | 
					              "RelativeDocumentMoniker": "LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "RelativeToolTip": "LootBoxOpeningWindow.cs",
 | 
					              "RelativeToolTip": "LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAFAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAGIAAAAAAAAAAAAuwHEAAABHAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-07T20:18:46.529Z",
 | 
					              "WhenOpened": "2025-05-07T20:18:46.529Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "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",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 3,
 | 
					              "DocumentIndex": 3,
 | 
				
			||||||
              "Title": "LootBoxThingDef.cs",
 | 
					              "Title": "Rarity.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "LootBoxThingDef.cs",
 | 
					              "RelativeDocumentMoniker": "Rarity.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
				
			||||||
              "RelativeToolTip": "LootBoxThingDef.cs",
 | 
					              "RelativeToolTip": "Rarity.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-06T22:36:06.172Z",
 | 
					              "WhenOpened": "2025-05-07T12:47:11.303Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "EditorCaption": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 9,
 | 
					              "DocumentIndex": 4,
 | 
				
			||||||
              "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,
 | 
					 | 
				
			||||||
              "Title": "LootBoxDatabase.cs",
 | 
					              "Title": "LootBoxDatabase.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxDatabase.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxDatabase.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "LootBoxDatabase.cs",
 | 
					              "RelativeDocumentMoniker": "LootBoxDatabase.cs",
 | 
				
			||||||
@ -148,19 +130,6 @@
 | 
				
			|||||||
              "WhenOpened": "2025-05-07T02:24:30.5Z",
 | 
					              "WhenOpened": "2025-05-07T02:24:30.5Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "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",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 5,
 | 
					              "DocumentIndex": 5,
 | 
				
			||||||
@ -176,20 +145,117 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 2,
 | 
					              "DocumentIndex": 6,
 | 
				
			||||||
              "Title": "Rarity.cs",
 | 
					              "Title": "CompSpawnLootBox.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "Rarity.cs",
 | 
					              "RelativeDocumentMoniker": "CompSpawnLootBox.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
 | 
				
			||||||
              "RelativeToolTip": "Rarity.cs",
 | 
					              "RelativeToolTip": "CompSpawnLootBox.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAFAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-07T12:47:11.303Z",
 | 
					              "WhenOpened": "2025-05-07T01:26:54.137Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "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",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 11,
 | 
					              "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",
 | 
					              "Title": "PatchMain.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "HarmonyPatches\\PatchMain.cs",
 | 
					              "RelativeDocumentMoniker": "HarmonyPatches\\PatchMain.cs",
 | 
				
			||||||
@ -201,43 +267,7 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 8,
 | 
					              "DocumentIndex": 15,
 | 
				
			||||||
              "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,
 | 
					 | 
				
			||||||
              "Title": "SimpleLootBox",
 | 
					              "Title": "SimpleLootBox",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\SimpleLootBox.csproj",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\SimpleLootBox.csproj",
 | 
				
			||||||
              "RelativeDocumentMoniker": "SimpleLootBox.csproj",
 | 
					              "RelativeDocumentMoniker": "SimpleLootBox.csproj",
 | 
				
			||||||
@ -248,7 +278,7 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 14,
 | 
					              "DocumentIndex": 16,
 | 
				
			||||||
              "Title": "AssemblyInfo.cs",
 | 
					              "Title": "AssemblyInfo.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Properties\\AssemblyInfo.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Properties\\AssemblyInfo.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "Properties\\AssemblyInfo.cs",
 | 
					              "RelativeDocumentMoniker": "Properties\\AssemblyInfo.cs",
 | 
				
			||||||
 | 
				
			|||||||
@ -3,57 +3,64 @@
 | 
				
			|||||||
  "WorkspaceRootPath": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\",
 | 
					  "WorkspaceRootPath": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\",
 | 
				
			||||||
  "Documents": [
 | 
					  "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}"
 | 
					      "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}",
 | 
					      "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}"
 | 
					      "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}",
 | 
					      "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:lootboxopeningwindow.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\\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\\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\\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}"
 | 
					      "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}",
 | 
					      "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:lootboxdatabase.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\\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\\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_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}"
 | 
					      "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}",
 | 
					      "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}"
 | 
					      "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}",
 | 
					      "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}"
 | 
					      "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}|"
 | 
					      "AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|SimpleLootBox||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -74,14 +81,14 @@
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 0,
 | 
					              "DocumentIndex": 0,
 | 
				
			||||||
              "Title": "LootBoxSpinner.cs",
 | 
					              "Title": "RarityColor.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "LootBoxSpinner.cs",
 | 
					              "RelativeDocumentMoniker": "RarityColor.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxSpinner.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\RarityColor.cs",
 | 
				
			||||||
              "RelativeToolTip": "LootBoxSpinner.cs",
 | 
					              "RelativeToolTip": "RarityColor.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAzAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-07T20:22:09.628Z",
 | 
					              "WhenOpened": "2025-05-08T13:16:57.175Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "EditorCaption": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@ -92,52 +99,27 @@
 | 
				
			|||||||
              "RelativeDocumentMoniker": "LootBoxOpeningWindow.cs",
 | 
					              "RelativeDocumentMoniker": "LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "RelativeToolTip": "LootBoxOpeningWindow.cs",
 | 
					              "RelativeToolTip": "LootBoxOpeningWindow.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAFAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAGIAAAAAAAAAAAAuwHEAAABHAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-07T20:18:46.529Z",
 | 
					              "WhenOpened": "2025-05-07T20:18:46.529Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "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",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 3,
 | 
					              "DocumentIndex": 3,
 | 
				
			||||||
              "Title": "LootBoxThingDef.cs",
 | 
					              "Title": "Rarity.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "LootBoxThingDef.cs",
 | 
					              "RelativeDocumentMoniker": "Rarity.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxThingDef.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
				
			||||||
              "RelativeToolTip": "LootBoxThingDef.cs",
 | 
					              "RelativeToolTip": "Rarity.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-06T22:36:06.172Z",
 | 
					              "WhenOpened": "2025-05-07T12:47:11.303Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "EditorCaption": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 9,
 | 
					              "DocumentIndex": 4,
 | 
				
			||||||
              "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,
 | 
					 | 
				
			||||||
              "Title": "LootBoxDatabase.cs",
 | 
					              "Title": "LootBoxDatabase.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxDatabase.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\LootBoxDatabase.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "LootBoxDatabase.cs",
 | 
					              "RelativeDocumentMoniker": "LootBoxDatabase.cs",
 | 
				
			||||||
@ -148,19 +130,6 @@
 | 
				
			|||||||
              "WhenOpened": "2025-05-07T02:24:30.5Z",
 | 
					              "WhenOpened": "2025-05-07T02:24:30.5Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "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",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 5,
 | 
					              "DocumentIndex": 5,
 | 
				
			||||||
@ -176,20 +145,117 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 1,
 | 
					              "DocumentIndex": 6,
 | 
				
			||||||
              "Title": "Rarity.cs",
 | 
					              "Title": "CompSpawnLootBox.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "Rarity.cs",
 | 
					              "RelativeDocumentMoniker": "CompSpawnLootBox.cs",
 | 
				
			||||||
              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Rarity.cs",
 | 
					              "ToolTip": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\CompSpawnLootBox.cs",
 | 
				
			||||||
              "RelativeToolTip": "Rarity.cs",
 | 
					              "RelativeToolTip": "CompSpawnLootBox.cs",
 | 
				
			||||||
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAFAAAAAAAAAA==",
 | 
					              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA==",
 | 
				
			||||||
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
					              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
 | 
				
			||||||
              "WhenOpened": "2025-05-07T12:47:11.303Z",
 | 
					              "WhenOpened": "2025-05-07T01:26:54.137Z",
 | 
				
			||||||
              "EditorCaption": ""
 | 
					              "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",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 11,
 | 
					              "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",
 | 
					              "Title": "PatchMain.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\HarmonyPatches\\PatchMain.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "HarmonyPatches\\PatchMain.cs",
 | 
					              "RelativeDocumentMoniker": "HarmonyPatches\\PatchMain.cs",
 | 
				
			||||||
@ -201,43 +267,7 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 8,
 | 
					              "DocumentIndex": 15,
 | 
				
			||||||
              "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,
 | 
					 | 
				
			||||||
              "Title": "SimpleLootBox",
 | 
					              "Title": "SimpleLootBox",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\SimpleLootBox.csproj",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\SimpleLootBox.csproj",
 | 
				
			||||||
              "RelativeDocumentMoniker": "SimpleLootBox.csproj",
 | 
					              "RelativeDocumentMoniker": "SimpleLootBox.csproj",
 | 
				
			||||||
@ -248,7 +278,7 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              "$type": "Document",
 | 
					              "$type": "Document",
 | 
				
			||||||
              "DocumentIndex": 14,
 | 
					              "DocumentIndex": 16,
 | 
				
			||||||
              "Title": "AssemblyInfo.cs",
 | 
					              "Title": "AssemblyInfo.cs",
 | 
				
			||||||
              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Properties\\AssemblyInfo.cs",
 | 
					              "DocumentMoniker": "D:\\Steam\\steamapps\\common\\RimWorld\\Mods\\SimpleLootBox\\1.5\\Source\\SimpleLootBox\\Properties\\AssemblyInfo.cs",
 | 
				
			||||||
              "RelativeDocumentMoniker": "Properties\\AssemblyInfo.cs",
 | 
					              "RelativeDocumentMoniker": "Properties\\AssemblyInfo.cs",
 | 
				
			||||||
 | 
				
			|||||||
@ -18,157 +18,96 @@ namespace SimpleLootBox
 | 
				
			|||||||
        public override void DoEffect(Pawn usedBy)
 | 
					        public override void DoEffect(Pawn usedBy)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            base.DoEffect(usedBy);
 | 
					            base.DoEffect(usedBy);
 | 
				
			||||||
 | 
					            LootBoxOpeningWindow window = new LootBoxOpeningWindow(this);
 | 
				
			||||||
            float thingWeightSum = 0f;
 | 
					            Find.WindowStack.Add(window);
 | 
				
			||||||
            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);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        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<CompQuality>() != null)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        thing.TryGetComp<CompQuality>().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)
 | 
					            if (parent.stackCount > count)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                parent.stackCount -= count;
 | 
					                parent.stackCount -= count;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else if (parent.stackCount == count)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                parent.Destroy(DestroyMode.Vanish);
 | 
					                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<CompQuality>() != null)
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    thing.TryGetComp<CompQuality>().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);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -22,5 +22,9 @@ namespace SimpleLootBox
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        public SoundDef lootBoxOpenSound;
 | 
					        public SoundDef lootBoxOpenSound;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public SoundDef lootBoxSpinningSound;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public SoundDef lootBoxBackgroundMusicSound;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -6,11 +6,181 @@ using System.Threading.Tasks;
 | 
				
			|||||||
using UnityEngine;
 | 
					using UnityEngine;
 | 
				
			||||||
using RimWorld;
 | 
					using RimWorld;
 | 
				
			||||||
using Verse;
 | 
					using Verse;
 | 
				
			||||||
 | 
					using Verse.Sound;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace SimpleLootBox
 | 
					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;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -20,5 +20,7 @@ namespace SimpleLootBox
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        public Rarity rarity;
 | 
					        public Rarity rarity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public SoundDef lootBoxFinalizingRewardSound;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -6,11 +6,219 @@ using System.Threading.Tasks;
 | 
				
			|||||||
using RimWorld;
 | 
					using RimWorld;
 | 
				
			||||||
using UnityEngine;
 | 
					using UnityEngine;
 | 
				
			||||||
using Verse;
 | 
					using Verse;
 | 
				
			||||||
 | 
					using static SimpleLootBox.LootBoxSpinner;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace SimpleLootBox
 | 
					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<SpinItem> PossibleRewards { get; private set; } = new List<SpinItem>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -24,5 +24,7 @@ namespace SimpleLootBox
 | 
				
			|||||||
        public QualityCategory quality;
 | 
					        public QualityCategory quality;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Rarity rarity = 0;
 | 
					        public Rarity rarity = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public SoundDef lootBoxFinalizingRewardSound;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										27
									
								
								1.5/Source/SimpleLootBox/RarityColor.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								1.5/Source/SimpleLootBox/RarityColor.cs
									
									
									
									
									
										Normal file
									
								
							@ -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<Rarity, Color> rarityColorMap = new Dictionary<Rarity, Color>
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        { 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;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -71,6 +71,7 @@
 | 
				
			|||||||
    <Compile Include="LootBoxPawnKindDef.cs" />
 | 
					    <Compile Include="LootBoxPawnKindDef.cs" />
 | 
				
			||||||
    <Compile Include="LootBoxThingDef.cs" />
 | 
					    <Compile Include="LootBoxThingDef.cs" />
 | 
				
			||||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
					    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="RarityColor.cs" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
					  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
				
			||||||
</Project>
 | 
					</Project>
 | 
				
			||||||
@ -1 +1 @@
 | 
				
			|||||||
705e218464d7300a4f75cf5799c059d7889b490b575db1d6f450c55e9775b6b3
 | 
					e5bf3b320bda89aae16e54c514e180e5e6fc8694d412236eb7aecb06adbb9c82
 | 
				
			||||||
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxBackgroundMusicSound.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxBackgroundMusicSound.ogg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxFinalizingRewardSound.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxFinalizingRewardSound.ogg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxOpenSound.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxOpenSound.ogg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxSpinningSound.ogg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Sounds/SimpleLootBox/lootBoxSpinningSound.ogg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user