Advertisement
Liusad

Noita beta update diff 20210226

Feb 26th, 2021
1,704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 115.75 KB | None | 0 0
  1. HOW TO READ:
  2.  
  3.  FILE CHANGED => +++ b/biome/rainforest_dark.xml
  4.  
  5.  REMOVED CODE => - background_edge_priority='10'
  6.  
  7.  NEW OR CHANGED CODE => + background_edge_priority='9'
  8.  
  9.  ---
  10.  
  11.  Actual changes below:
  12.  
  13. diff --git a/biome/_biomes_all.xml b/biome/_biomes_all.xml
  14. index 00c2cdc..9698466 100644
  15. --- a/biome/_biomes_all.xml
  16. +++ b/biome/_biomes_all.xml
  17. @@ -924,4 +924,16 @@
  18.         height_index="0"
  19.         color="ff375c00" >
  20.     </Biome>
  21. +  
  22. +   <Biome
  23. +       biome_filename="data/biome/funroom.xml"
  24. +       height_index="0"
  25. +       color="ff0a95a4" >
  26. +   </Biome>
  27. +  
  28. +   <Biome
  29. +       biome_filename="data/biome/rock_room.xml"
  30. +       height_index="0"
  31. +       color="ff326655" >
  32. +   </Biome>
  33.  </BiomesToLoad>
  34. diff --git a/biome/_pixel_scenes.xml b/biome/_pixel_scenes.xml
  35. index 5c53879..6724365 100644
  36. --- a/biome/_pixel_scenes.xml
  37. +++ b/biome/_pixel_scenes.xml
  38. @@ -139,6 +139,9 @@
  39.         </PixelScene>
  40.         <PixelScene DEBUG_RELOAD_ME="0" background_filename="" clean_area_before="0" colors_filename="data/biome_impl/eyespot_visual.png" material_filename="data/biome_impl/eyespot.png" pos_x="12976" pos_y="9904" skip_biome_checks="1" skip_edge_textures="0" >
  41.         </PixelScene>
  42. +      
  43. +       <PixelScene DEBUG_RELOAD_ME="0" background_filename="" clean_area_before="0" colors_filename="data/biome_impl/overworld/desert_ruins_base_01_visual_fungus.png" material_filename="data/biome_impl/overworld/desert_ruins_base_01.png" pos_x="5890" pos_y="0" skip_biome_checks="1" skip_edge_textures="0" >
  44. +       </PixelScene>
  45.  
  46.         <!-- just load an entity -->
  47.        
  48. diff --git a/biome/funroom.xml b/biome/funroom.xml
  49. new file mode 100644
  50. index 0000000..aa17644
  51. --- /dev/null
  52. +++ b/biome/funroom.xml
  53. @@ -0,0 +1,328 @@
  54. +<Biome>
  55. +  <Topology
  56. +    name="???"
  57. +    type="BIOME_WANG_TILE"
  58. +   background_use_neighbor="0"
  59. +    background_image="data/weather_gfx/background_crypt.png"
  60. +   background_edge_left="data/weather_gfx/edges/background_crypt_left.png"
  61. +   background_edge_right="data/weather_gfx/edges/background_crypt_right.png"
  62. +   background_edge_top="data/weather_gfx/edges/background_crypt_top.png"
  63. +   background_edge_bottom="data/weather_gfx/edges/background_crypt_bottom.png"
  64. +    background_edge_priority="12"    
  65. +
  66. +    wang_template_file=""
  67. +    lua_script="data/scripts/biomes/funroom.lua"
  68. +    wang_map_width="256"
  69. +    wang_map_height="256"
  70. +    audio_ambience="temple"
  71. +  >
  72. +  <BitmapCaves
  73. +      size_x="256"
  74. +      size_y="256"
  75. +      spawn_percent="0"
  76. +      blob_caves_count_min="0"
  77. +      blob_caves_count_max="1"
  78. +      blob_caves_radius_min="1"
  79. +      blob_caves_radius_max="1"
  80. +      blob_caves_strength_min="1.2"
  81. +      blob_caves_strength_max="2"
  82. +      cave_childs_min="0"
  83. +      cave_childs_max="1"
  84. +      cave_count_min="1"
  85. +      cave_count_max="2"
  86. +      cave_strength_min="0.2"
  87. +      cave_strength_max="1.8"
  88. +      mountain_count_min="0"
  89. +      mountain_count_max="0"
  90. +      mountain_size_min="1"
  91. +      mountain_size_max="10"
  92. +      surface_cave_childs_min="0"
  93. +      surface_cave_childs_max="0"
  94. +      surface_caves_count_min="0"
  95. +      surface_caves_count_max="0"
  96. +     >
  97. +    </BitmapCaves>
  98. +  </Topology>
  99. +
  100. +  <Materials
  101. +       name="desert"
  102. +       >
  103. +
  104. +       <MaterialComponent
  105. +           _enabled="1"
  106. +           is_rare="0"
  107. +           limit_max_y="424.229"
  108. +           limit_min_y="-1024"
  109. +           limit_y="1"
  110. +           material_index="10"
  111. +           material_max="0.48"
  112. +           material_min="0.45"
  113. +           material_name="sand_surface"
  114. +           rare_polka_is_boxed="1"
  115. +           rare_polka_probability="0.2"
  116. +           rare_polka_radius_high="0.65"
  117. +           rare_polka_radius_low="0.2"
  118. +           rare_required_max="10"
  119. +           rare_required_min="0.2"
  120. +           rare_scale_x="0.05"
  121. +           rare_scale_y="0.05"
  122. +           rare_use_perlin="0"
  123. +           rare_use_polka="1" >
  124. +       </MaterialComponent>
  125. +
  126. +       <MaterialComponent
  127. +           _enabled="1"
  128. +           is_rare="0"
  129. +           limit_max_y="424.229"
  130. +           limit_min_y="-1024"
  131. +           limit_y="1"
  132. +           material_index="10"
  133. +           material_max="0.6"
  134. +           material_min="0.48"
  135. +           material_name="sandstone_surface"
  136. +           rare_polka_is_boxed="1"
  137. +           rare_polka_probability="0.2"
  138. +           rare_polka_radius_high="0.65"
  139. +           rare_polka_radius_low="0.2"
  140. +           rare_required_max="10"
  141. +           rare_required_min="0.2"
  142. +           rare_scale_x="0.05"
  143. +           rare_scale_y="0.05"
  144. +           rare_use_perlin="0"
  145. +           rare_use_polka="1" >
  146. +       </MaterialComponent>
  147. +
  148. +       <MaterialComponent
  149. +           _enabled="1"
  150. +           is_rare="0"
  151. +           limit_max_y="600"
  152. +           limit_min_y="-1024"
  153. +           limit_y="1"
  154. +           material_index="10"
  155. +           material_max="0.73"
  156. +           material_min="0.59"
  157. +           material_name="sand_static_bright"
  158. +           >
  159. +       </MaterialComponent>
  160. +
  161. +       <MaterialComponent
  162. +           _enabled="1"
  163. +           is_rare="0"
  164. +           limit_max_y="700"
  165. +           limit_min_y="-1024"
  166. +           limit_y="0"
  167. +           material_index="10"
  168. +           material_max="0.95"
  169. +           material_min="0.72"
  170. +           material_name="sand_static"
  171. +           >
  172. +       </MaterialComponent>
  173. +
  174. +       <MaterialComponent
  175. +           _enabled="1"
  176. +           is_rare="1"
  177. +           limit_max_y="2048"
  178. +           limit_min_y="750"
  179. +           limit_y="1"
  180. +           material_index="10"
  181. +           material_max="1.25"
  182. +           material_min="1.05"
  183. +           material_name="copper"
  184. +           rare_polka_is_boxed="0"
  185. +           rare_polka_probability="0.357143"
  186. +           rare_polka_radius_high="0.764286"
  187. +           rare_polka_radius_low="0.328571"
  188. +           rare_required_max="10"
  189. +           rare_required_min="0.019"
  190. +           rare_scale_x="0.007514286"
  191. +           rare_scale_y="0.007514286"
  192. +           rare_use_perlin="1"
  193. +           rare_use_polka="1" >
  194. +       </MaterialComponent>
  195. +
  196. +       <MaterialComponent
  197. +           _enabled="1"
  198. +           is_rare="0"
  199. +           limit_max_y="2048"
  200. +           limit_min_y="100"
  201. +           limit_y="0"
  202. +           material_index="10"
  203. +           material_max="0.95"
  204. +           material_min="0.68"
  205. +           material_name="sand_static"
  206. +           rare_polka_is_boxed="1"
  207. +           rare_polka_probability="0.2"
  208. +           rare_polka_radius_high="0.65"
  209. +           rare_polka_radius_low="0.2"
  210. +           rare_required_max="10"
  211. +           rare_required_min="0.2"
  212. +           rare_scale_x="0.05"
  213. +           rare_scale_y="0.05"
  214. +           rare_use_perlin="0"
  215. +           rare_use_polka="1" >
  216. +       </MaterialComponent>
  217. +
  218. +       <MaterialComponent
  219. +           _enabled="1"
  220. +           is_rare="0"
  221. +           limit_max_y="2048"
  222. +           limit_min_y="100"
  223. +           limit_y="0"
  224. +           material_index="10"
  225. +           material_max="3.5"
  226. +           material_min="0.9"
  227. +           material_name="rock_static"
  228. +           rare_polka_is_boxed="1"
  229. +           rare_polka_probability="0.2"
  230. +           rare_polka_radius_high="0.65"
  231. +           rare_polka_radius_low="0.2"
  232. +           rare_required_max="10"
  233. +           rare_required_min="0.2"
  234. +           rare_scale_x="0.05"
  235. +           rare_scale_y="0.05"
  236. +           rare_use_perlin="0"
  237. +           rare_use_polka="1" >
  238. +       </MaterialComponent>
  239. +
  240. +
  241. +       <MaterialComponent
  242. +           _enabled="1"
  243. +           is_rare="0"
  244. +           limit_max_y="2048"
  245. +           limit_min_y="100"
  246. +           limit_y="0"
  247. +           material_index="10"
  248. +           material_max="3.5"
  249. +           material_min="0.9"
  250. +           material_name="rock_static"
  251. +           add_perlin_scale_x="0.041"
  252. +           add_perlin_scale_y="0.041"
  253. +           add_perlin="0"
  254. +           >
  255. +       </MaterialComponent>
  256. +
  257. +       <VegetationComponent
  258. +           _enabled="1"
  259. +           is_visual="1"
  260. +           rand_seed="1248"
  261. +           tree_extra_y="0"
  262. +           tree_image_file="data/vegetation/vine_growth_1.xml"
  263. +           tree_image_visual=""
  264. +           tree_material="ceiling_plant_material"
  265. +           tree_probability="0.24571"
  266. +           tree_radius_high="0.635286"
  267. +           tree_radius_low="0.146757"
  268. +           tree_width="110.123"
  269. +           visual_color="0x00b89f6c"
  270. +           visual_offset_x="3"
  271. +           visual_offset_y="0"
  272. +           is_ceiling_plant="1"
  273. +           >
  274. +       </VegetationComponent>
  275. +       <VegetationComponent
  276. +           _enabled="1"
  277. +           is_visual="1"
  278. +           rand_seed="4575"
  279. +           tree_extra_y="-1"
  280. +           tree_image_file="data/vegetation/ceiling_vegetation_00$[2-8].png"
  281. +           tree_image_visual=""
  282. +           tree_material="ceiling_plant_material"
  283. +           tree_probability="0.54571"
  284. +           tree_radius_high="0.635286"
  285. +           tree_radius_low="0.146757"
  286. +           tree_width="11.123"
  287. +           visual_color="0x00b89f6c"
  288. +           visual_offset_x="3"
  289. +           visual_offset_y="0"
  290. +           is_ceiling_plant="1"
  291. +           >
  292. +       </VegetationComponent>
  293. +
  294. +       <VegetationComponent
  295. +           _enabled="1"
  296. +           is_visual="0"
  297. +           rand_seed="8576.86"
  298. +           tree_extra_y="25"
  299. +           tree_image_file="data/vegetation/cactus_0$[2-5].png"
  300. +           tree_image_visual=""
  301. +           tree_material="cactus"
  302. +           tree_probability="0.228571"
  303. +           tree_radius_high="0.614286"
  304. +           tree_radius_low="0.228571"
  305. +           tree_width="66.1143"
  306. +           visual_color="0x00FFFF"
  307. +           visual_offset_x="0"
  308. +           visual_offset_y="7"
  309. +           max_y="256" >
  310. +       </VegetationComponent>
  311. +
  312. +       <VegetationComponent
  313. +           _enabled="1"
  314. +           is_visual="0"
  315. +           rand_seed="34676.86"
  316. +           tree_extra_y="25"
  317. +           tree_image_file="data/vegetation/cactus_0$[6-7].png"
  318. +           tree_image_visual=""
  319. +           tree_material="cactus"
  320. +           tree_probability="0.328571"
  321. +           tree_radius_high="0.414286"
  322. +           tree_radius_low="0.228571"
  323. +           tree_width="58.1143"
  324. +           visual_color="0x00FFFF"
  325. +           visual_offset_x="0"
  326. +           visual_offset_y="7"
  327. +           max_y="256"
  328. +           >
  329. +       </VegetationComponent>
  330. +
  331. +       <VegetationComponent
  332. +           _enabled="1"
  333. +           is_visual="0"
  334. +           rand_seed="34676.86"
  335. +           tree_extra_y="25"
  336. +           tree_image_file="data/vegetation/drygrass_$[1-4].png"
  337. +           tree_image_visual=""
  338. +           tree_material="wood_loose"
  339. +           tree_probability="0.428571"
  340. +           tree_radius_high="0.514286"
  341. +           tree_radius_low="0.128571"
  342. +           tree_width="50.1143"
  343. +           visual_color="0x00FFFF"
  344. +           visual_offset_x="0"
  345. +           visual_offset_y="3"
  346. +           max_y="256"
  347. +           >
  348. +       </VegetationComponent>
  349. +
  350. +       <VegetationComponent
  351. +           _enabled="1"
  352. +           is_visual="0"
  353. +           rand_seed="853676.86"
  354. +           tree_extra_y="25"
  355. +           tree_image_file="data/vegetation/swamp_tree_0$[1-6].png"
  356. +           tree_image_visual=""
  357. +           tree_material="wood_loose"
  358. +           tree_probability="0.028571"
  359. +           tree_radius_high="0.714286"
  360. +           tree_radius_low="0.528571"
  361. +           tree_width="66.1143"
  362. +           visual_color="0x00FFFF"
  363. +           visual_offset_x="0"
  364. +           visual_offset_y="7"
  365. +           max_y="256"
  366. +           >
  367. +       </VegetationComponent>
  368. +
  369. +       <FossilComponent
  370. +           count_min="1"
  371. +           count_max="3"
  372. +           seed="68745"
  373. +           material="bone"
  374. +           image_file="data/vegetation/desert_bone_$[1-8].png"
  375. +           >
  376. +       </FossilComponent>
  377. +    
  378. +  </Materials>
  379. +
  380. +</Biome>
  381. +
  382. diff --git a/biome/rock_room.xml b/biome/rock_room.xml
  383. new file mode 100644
  384. index 0000000..39a3e83
  385. --- /dev/null
  386. +++ b/biome/rock_room.xml
  387. @@ -0,0 +1,148 @@
  388. +<Biome>
  389. +  <Topology
  390. +    name="???"
  391. +    type="BIOME_WANG_TILE"
  392. +   background_use_neighbor="0"
  393. +    background_image="data/weather_gfx/background_rainforest_dark.png"
  394. +    background_edge_left="data/weather_gfx/edges/background_rainforest_dark_left.png"
  395. +    background_edge_right="data/weather_gfx/edges/background_rainforest_dark_right.png"
  396. +    background_edge_top="data/weather_gfx/edges/background_rainforest_dark_top.png"
  397. +    background_edge_bottom="data/weather_gfx/edges/background_rainforest_dark_bottom.png"
  398. +    background_edge_priority="12"    
  399. +
  400. +    wang_template_file=""
  401. +    lua_script="data/scripts/biomes/rock_room.lua"
  402. +    wang_map_width="256"
  403. +    wang_map_height="256"
  404. +    audio_music_2="wandcave"
  405. +    audio_ambience="cave"
  406. +  >
  407. +  <BitmapCaves
  408. +      size_x="256"
  409. +      size_y="256"
  410. +      spawn_percent="0"
  411. +      blob_caves_count_min="0"
  412. +      blob_caves_count_max="1"
  413. +      blob_caves_radius_min="1"
  414. +      blob_caves_radius_max="1"
  415. +      blob_caves_strength_min="1.2"
  416. +      blob_caves_strength_max="2"
  417. +      cave_childs_min="0"
  418. +      cave_childs_max="1"
  419. +      cave_count_min="1"
  420. +      cave_count_max="2"
  421. +      cave_strength_min="0.2"
  422. +      cave_strength_max="1.8"
  423. +      mountain_count_min="0"
  424. +      mountain_count_max="0"
  425. +      mountain_size_min="1"
  426. +      mountain_size_max="10"
  427. +      surface_cave_childs_min="0"
  428. +      surface_cave_childs_max="0"
  429. +      surface_caves_count_min="0"
  430. +      surface_caves_count_max="0"
  431. +     >
  432. +    </BitmapCaves>
  433. +  </Topology>
  434. +
  435. +  <Materials
  436. +    name="???"
  437. +     >
  438. +    <MaterialComponent
  439. +      _enabled="1"
  440. +      is_rare="0"
  441. +      limit_max_y="424.229"
  442. +      limit_min_y="-1024"
  443. +      limit_y="1"
  444. +      material_index="10"
  445. +      material_max="0.55"
  446. +      material_min="0.45"
  447. +      material_name="sand_static"
  448. +      rare_polka_is_boxed="1"
  449. +      rare_polka_probability="0.2"
  450. +      rare_polka_radius_high="0.65"
  451. +      rare_polka_radius_low="0.2"
  452. +      rare_required_max="10"
  453. +      rare_required_min="0.2"
  454. +      rare_scale_x="0.05"
  455. +      rare_scale_y="0.05"
  456. +      rare_use_perlin="0"
  457. +      rare_use_polka="1" >
  458. +    </MaterialComponent>
  459. +
  460. +    <MaterialComponent
  461. +      _enabled="1"
  462. +      is_rare="1"
  463. +      limit_max_y="2048"
  464. +      limit_min_y="100"
  465. +      limit_y="0"
  466. +      material_index="10"
  467. +      material_max="1.2"
  468. +      material_min="1.1"
  469. +      material_name="diamond"
  470. +      rare_polka_is_boxed="1"
  471. +      rare_polka_probability="0.757143"
  472. +      rare_polka_radius_high="0.464286"
  473. +      rare_polka_radius_low="0.1428571"
  474. +      rare_required_max="10"
  475. +      rare_required_min="0.371429"
  476. +      rare_scale_x="0.0214286"
  477. +      rare_scale_y="0.0214286"
  478. +      rare_use_perlin="0"
  479. +      rare_use_polka="1" >
  480. +    </MaterialComponent>
  481. +    
  482. +    <MaterialComponent
  483. +      _enabled="1"
  484. +      is_rare="0"
  485. +      limit_max_y="2048"
  486. +      limit_min_y="100"
  487. +      limit_y="0"
  488. +      material_index="10"
  489. +      material_max="1.0"
  490. +      material_min="0.6"
  491. +      material_name="rock_hard"
  492. +      add_perlin="1"
  493. +      add_perlin_scale_y="0.01"
  494. +      add_perlin_scale_x="0.01"
  495. +      rare_polka_is_boxed="1"
  496. +      rare_polka_probability="0.2"
  497. +      rare_polka_radius_high="0.65"
  498. +      rare_polka_radius_low="0.2"
  499. +      rare_required_max="10"
  500. +      rare_required_min="0.2"
  501. +      rare_scale_x="0.05"
  502. +      rare_scale_y="0.05"
  503. +      rare_use_perlin="0"
  504. +      rare_use_polka="1" >
  505. +    </MaterialComponent>
  506. +  
  507. +   <MaterialComponent
  508. +      _enabled="1"
  509. +      is_rare="0"
  510. +      limit_max_y="2048"
  511. +      limit_min_y="100"
  512. +      limit_y="0"
  513. +      material_index="11"
  514. +      material_max="3.6"
  515. +      material_min="0.8"
  516. +      material_name="templebrickdark_static"
  517. +      add_perlin="1"
  518. +      add_perlin_scale_y="0.01"
  519. +      add_perlin_scale_x="0.01"
  520. +      rare_polka_is_boxed="1"
  521. +      rare_polka_probability="0.2"
  522. +      rare_polka_radius_high="0.65"
  523. +      rare_polka_radius_low="0.2"
  524. +      rare_required_max="10"
  525. +      rare_required_min="0.2"
  526. +      rare_scale_x="0.05"
  527. +      rare_scale_y="0.05"
  528. +      rare_use_perlin="0"
  529. +      rare_use_polka="1" >
  530. +    </MaterialComponent>
  531. +    
  532. +  </Materials>
  533. +
  534. +</Biome>
  535. +
  536. diff --git a/biome_impl/biome_map.png b/biome_impl/biome_map.png
  537. index d729de9..3e3ba2a 100644
  538. Binary files a/biome_impl/biome_map.png and b/biome_impl/biome_map.png differ
  539. diff --git a/biome_impl/funroom.png b/biome_impl/funroom.png
  540. new file mode 100644
  541. index 0000000..0682d18
  542. Binary files /dev/null and b/biome_impl/funroom.png differ
  543. diff --git a/biome_impl/overworld/desert_ruins_base_01_visual_fungus.png b/biome_impl/overworld/desert_ruins_base_01_visual_fungus.png
  544. new file mode 100644
  545. index 0000000..d202270
  546. Binary files /dev/null and b/biome_impl/overworld/desert_ruins_base_01_visual_fungus.png differ
  547. diff --git a/biome_impl/pillars/pillar_part_dsun.png b/biome_impl/pillars/pillar_part_dsun.png
  548. new file mode 100644
  549. index 0000000..b49c3db
  550. Binary files /dev/null and b/biome_impl/pillars/pillar_part_dsun.png differ
  551. diff --git a/biome_impl/pillars/pillar_part_minigh.png b/biome_impl/pillars/pillar_part_minigh.png
  552. new file mode 100644
  553. index 0000000..be009fd
  554. Binary files /dev/null and b/biome_impl/pillars/pillar_part_minigh.png differ
  555. diff --git a/biome_impl/pillars/pillar_part_sun.png b/biome_impl/pillars/pillar_part_sun.png
  556. new file mode 100644
  557. index 0000000..2a86547
  558. Binary files /dev/null and b/biome_impl/pillars/pillar_part_sun.png differ
  559. diff --git a/entities/_debug/wand_debug.lua b/entities/_debug/wand_debug.lua
  560. index ca2ae1e..cb554aa 100644
  561. --- a/entities/_debug/wand_debug.lua
  562. +++ b/entities/_debug/wand_debug.lua
  563. @@ -15,6 +15,7 @@ function DEBUG_wand_add_random_cards( gun, entity_id, level )
  564.  
  565.     local deck_capacity = gun["deck_capacity"]
  566.     local card = ""
  567. +   local is_rare = 0
  568.  
  569.     if( Random( 0, 100 ) < 4 or is_rare == 1 ) then
  570.         local p = Random(0,100)
  571. diff --git a/entities/animals/boss_ghost/boss_ghost.xml b/entities/animals/boss_ghost/boss_ghost.xml
  572. index 6f39de7..7864ca7 100644
  573. --- a/entities/animals/boss_ghost/boss_ghost.xml
  574. +++ b/entities/animals/boss_ghost/boss_ghost.xml
  575. @@ -64,6 +64,7 @@
  576.         can_fly="1"
  577.         aggressiveness_min="1"
  578.         aggressiveness_max="100"
  579. +       sense_creatures_through_walls="1"
  580.         >
  581.     </AnimalAIComponent>
  582.  
  583. diff --git a/entities/animals/boss_ghost/ghost_spawn_check.xml b/entities/animals/boss_ghost/ghost_spawn_check.xml
  584. new file mode 100644
  585. index 0000000..c2930fe
  586. --- /dev/null
  587. +++ b/entities/animals/boss_ghost/ghost_spawn_check.xml
  588. @@ -0,0 +1,7 @@
  589. +<Entity>
  590. +   <LuaComponent
  591. +       script_source_file="data/entities/animals/boss_ghost/spawn_ghost.lua"
  592. +       execute_every_n_frame="36"
  593. +       >
  594. +   </LuaComponent>
  595. +</Entity>
  596. \ No newline at end of file
  597. diff --git a/entities/animals/boss_ghost/spawn_ghost.lua b/entities/animals/boss_ghost/spawn_ghost.lua
  598. new file mode 100644
  599. index 0000000..a4f154f
  600. --- /dev/null
  601. +++ b/entities/animals/boss_ghost/spawn_ghost.lua
  602. @@ -0,0 +1,12 @@
  603. +dofile_once( "data/scripts/lib/utilities.lua" )
  604. +
  605. +local entity_id = GetUpdatedEntityID()
  606. +local root_id = EntityGetRootEntity( entity_id )
  607. +local x,y = EntityGetTransform( root_id )
  608. +
  609. +local players = EntityGetInRadiusWithTag( x, y, 300, "player_unit" )
  610. +
  611. +if ( #players > 0 ) then
  612. +   EntityLoad( "data/entities/animals/boss_ghost/boss_ghost.xml", x, y )
  613. +   EntityKill( root_id )
  614. +end
  615. \ No newline at end of file
  616. diff --git a/entities/animals/boss_limbs/boss_limbs_death.lua b/entities/animals/boss_limbs/boss_limbs_death.lua
  617. index 3119694..6a2c148 100644
  618. --- a/entities/animals/boss_limbs/boss_limbs_death.lua
  619. +++ b/entities/animals/boss_limbs/boss_limbs_death.lua
  620. @@ -4,6 +4,7 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  621.     -- kill self
  622.     local entity_id    = GetUpdatedEntityID()
  623.     local pos_x, pos_y = EntityGetTransform( entity_id )
  624. +   local flag_status = HasFlagPersistent( "card_unlocked_pyramid" )
  625.  
  626.     -- do some kind of an effect? throw some particles into the air?
  627.     EntityLoad( "data/entities/items/pickup/heart.xml", pos_x - 16, pos_y )
  628. @@ -12,10 +13,22 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  629.     local pw = check_parallel_pos( pos_x )
  630.     SetRandomSeed( pw, 44 )
  631.    
  632. -   local opts = { "ADD_TRIGGER", "ADD_TIMER", "ADD_DEATH_TRIGGER", "DAMAGE_RANDOM" }
  633. +   local opts = { "NOLLA", "DAMAGE_RANDOM", "RANDOM_SPELL", "RANDOM_PROJECTILE", "RANDOM_MODIFIER", "RANDOM_STATIC_PROJECTILE", "DRAW_RANDOM", "DRAW_RANDOM_X3", "DRAW_3_RANDOM" }
  634. +   local rnd = Random( 1, #opts )
  635.    
  636. -   for i=1,4 do
  637. -       CreateItemActionEntity( opts[i], pos_x - 8 * 4 + (i-1) * 16, pos_y )
  638. +   if flag_status then
  639. +       for i=1,4 do
  640. +           rnd = Random( 1, #opts )
  641. +           CreateItemActionEntity( opts[rnd], x - 8 * 4 + (i-1) * 16, y )
  642. +           table.remove( opts, rnd )
  643. +       end
  644. +   else
  645. +       for i=1,4 do
  646. +           rnd = Random( 1, #opts )
  647. +           CreateItemActionEntity( opts[rnd], x - 8 * 4 + (i-1) * 16, y )
  648. +           table.remove( opts, rnd )
  649. +       end
  650. +       EntityLoad( "data/entities/items/pickup/heart_fullhp.xml",  x, y )
  651.     end
  652.    
  653.     AddFlagPersistent( "card_unlocked_pyramid" )
  654. diff --git a/entities/animals/boss_wizard/death.lua b/entities/animals/boss_wizard/death.lua
  655. index 118ef6e..0361e59 100644
  656. --- a/entities/animals/boss_wizard/death.lua
  657. +++ b/entities/animals/boss_wizard/death.lua
  658. @@ -3,29 +3,16 @@ dofile_once("data/scripts/lib/utilities.lua")
  659.  function death( damage_type_bit_field, damage_message, entity_thats_responsible, drop_items )
  660.     local entity_id = GetUpdatedEntityID()
  661.     local x, y = EntityGetTransform( entity_id )
  662. -   local flag_status = HasFlagPersistent( "card_unlocked_mestari" )
  663.    
  664.     -- StatsLogPlayerKill( GetUpdatedEntityID() )
  665.    
  666.     local pw = check_parallel_pos( x )
  667.     SetRandomSeed( pw, 30 )
  668.    
  669. -   local opts = { "DUPLICATE", "RANDOM_SPELL", "RANDOM_PROJECTILE", "RANDOM_MODIFIER", "RANDOM_STATIC_PROJECTILE", "DRAW_RANDOM", "DRAW_RANDOM_X3", "DRAW_3_RANDOM", "NOLLA", "RESET" }
  670. -   local rnd = Random( 1, #opts )
  671. +   local opts = { "ADD_TRIGGER", "ADD_TIMER", "ADD_DEATH_TRIGGER", "RESET", "DUPLICATE" }
  672.    
  673. -   if flag_status then
  674. -       for i=1,4 do
  675. -           rnd = Random( 1, #opts )
  676. -           CreateItemActionEntity( opts[rnd], x - 8 * 4 + (i-1) * 16, y )
  677. -           table.remove( opts, rnd )
  678. -       end
  679. -   else
  680. -       for i=1,4 do
  681. -           rnd = Random( 1, #opts )
  682. -           CreateItemActionEntity( opts[rnd], x - 8 * 4 + (i-1) * 16, y )
  683. -           table.remove( opts, rnd )
  684. -       end
  685. -       EntityLoad( "data/entities/items/pickup/heart_fullhp.xml",  x, y )
  686. +   for i=1,4 do
  687. +       CreateItemActionEntity( opts[i], pos_x - 8 * 4 + (i-1) * 16, pos_y )
  688.     end
  689.    
  690.     EntityLoad( "data/entities/items/books/book_mestari.xml",  x - 16, y )
  691. diff --git a/entities/animals/wizard_wither.xml b/entities/animals/wizard_wither.xml
  692. index 120595f..6aa9e46 100644
  693. --- a/entities/animals/wizard_wither.xml
  694. +++ b/entities/animals/wizard_wither.xml
  695. @@ -13,7 +13,7 @@
  696.             sense_creatures="1"
  697.             attack_ranged_enabled="1"
  698.             can_fly="1"
  699. -           attack_ranged_entity_file="data/entities/projectiles/orb_wither.xml"
  700. +           attack_ranged_entity_file="data/entities/projectiles/orb_weaken.xml"
  701.             attack_ranged_action_frame="5"
  702.             attack_ranged_frames_between="120"
  703.             attack_ranged_offset_y="0"
  704. diff --git a/entities/buildings/funroom_check.xml b/entities/buildings/funroom_check.xml
  705. new file mode 100644
  706. index 0000000..23ae5e9
  707. --- /dev/null
  708. +++ b/entities/buildings/funroom_check.xml
  709. @@ -0,0 +1,7 @@
  710. +<Entity>
  711. +   <LuaComponent
  712. +       script_source_file="data/scripts/buildings/funroom_check.lua"
  713. +       execute_every_n_frame="5"
  714. +       >
  715. +   </LuaComponent>
  716. +</Entity>
  717. \ No newline at end of file
  718. diff --git a/entities/buildings/sun/spot_1_process.xml b/entities/buildings/sun/spot_1_process.xml
  719. index 1f16cb2..9c4ab56 100644
  720. --- a/entities/buildings/sun/spot_1_process.xml
  721. +++ b/entities/buildings/sun/spot_1_process.xml
  722. @@ -1,5 +1,6 @@
  723.  <Entity tags="seed_a_process">
  724. -
  725. +   <InheritTransformComponent />
  726. +  
  727.     <!-- buildup -->
  728.     <ParticleEmitterComponent
  729.         _tags="buildup_particles"
  730. diff --git a/entities/items/pickup/brimstone.xml b/entities/items/pickup/brimstone.xml
  731. index 3b60529..5d87056 100644
  732. --- a/entities/items/pickup/brimstone.xml
  733. +++ b/entities/items/pickup/brimstone.xml
  734. @@ -1,4 +1,4 @@
  735. -<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup" >
  736. +<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup,brimstone" >
  737.    <Base file="data/entities/base_item_projectile.xml">
  738.      <ProjectileComponent>
  739.        <damage_by_type
  740. diff --git a/entities/items/pickup/musicstone.xml b/entities/items/pickup/musicstone.xml
  741. new file mode 100644
  742. index 0000000..4a924cc
  743. --- /dev/null
  744. +++ b/entities/items/pickup/musicstone.xml
  745. @@ -0,0 +1,157 @@
  746. +<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup" >
  747. +   <Base file="data/entities/base_item_projectile.xml" />
  748. +
  749. +   <!-- physical presence -->
  750. +  
  751. +   <PhysicsBodyComponent
  752. +       _tags="enabled_in_world"
  753. +       uid="1"
  754. +       allow_sleep="1"
  755. +       angular_damping="0"
  756. +       fixed_rotation="0"
  757. +       is_bullet="1"
  758. +       linear_damping="0"
  759. +       auto_clean="0"
  760. +       on_death_leave_physics_body="1"
  761. +       hax_fix_going_through_ground="1"
  762. +   ></PhysicsBodyComponent>
  763. +  
  764. +   <PhysicsImageShapeComponent
  765. +       body_id="1"
  766. +       centered="1"
  767. +       image_file="data/items_gfx/musicstone.png"
  768. +       material="gem_box2d_turquoise"
  769. +   ></PhysicsImageShapeComponent>
  770. +  
  771. +   <PhysicsThrowableComponent
  772. +       max_throw_speed="180"
  773. +       throw_force_coeff="1.5"
  774. +   ></PhysicsThrowableComponent>
  775. +
  776. +   <VelocityComponent
  777. +       _tags="enabled_in_world"
  778. +   ></VelocityComponent>
  779. +
  780. +   <!-- effects -->
  781. +
  782. +   <MusicEnergyAffectorComponent
  783. +       _tags="enabled_in_hand"
  784. +       _enabled="0"
  785. +       energy_target="1.0"
  786. +       trigger_danger_music="1"
  787. +       is_enemy="0"
  788. +       fog_of_war_threshold="255"
  789. +       >
  790. +   </MusicEnergyAffectorComponent>
  791. +  
  792. +   <SpriteParticleEmitterComponent
  793. +       _tags="enabled_in_hand"
  794. +       _enabled="0"
  795. +       sprite_file="data/particles/note_$[1-4].xml"
  796. +       delay="0"
  797. +       lifetime="1.5"
  798. +       color.r="0.8" color.g="1" color.b="1" color.a="1"
  799. +       color_change.r="0" color_change.g="0" color_change.b="0" color_change.a="-1"
  800. +       velocity.x="0" velocity.y="0"
  801. +       gravity.x="0" gravity.y="0"
  802. +       velocity_slowdown="0"
  803. +       rotation="0"
  804. +       angular_velocity="0"
  805. +       use_velocity_as_rotation="0"
  806. +       scale.x="1" scale.y="1"
  807. +       scale_velocity.x="0" scale_velocity.y="0"
  808. +       emission_interval_min_frames="15"
  809. +       emission_interval_max_frames="30"
  810. +       count_min="1" count_max="1"
  811. +       randomize_rotation.min="-0.3415"
  812. +       randomize_rotation.max="0.3415"
  813. +       randomize_angular_velocity.min="-0.1415"
  814. +       randomize_angular_velocity.max="0.1415"
  815. +       randomize_velocity.min_x="-12"
  816. +       randomize_velocity.max_x="12"
  817. +       randomize_velocity.min_y="-12"
  818. +       randomize_velocity.max_y="12"
  819. +       entity_velocity_multiplier="0.1"
  820. +   >
  821. +   </SpriteParticleEmitterComponent>
  822. +  
  823. +
  824. +   <!-- item -->
  825. +
  826. +   <SpriteComponent
  827. +       _tags="enabled_in_hand"
  828. +       _enabled="0"
  829. +       offset_x="5"
  830. +       offset_y="5"
  831. +       image_file="data/items_gfx/in_hand/musicstone.png"
  832. +   ></SpriteComponent>
  833. +
  834. +   <ItemComponent
  835. +       _tags="enabled_in_world"
  836. +       item_name="$item_musicstone"
  837. +       ui_description="$itemdesc_musicstone"
  838. +       ui_sprite="data/ui_gfx/items/musicstone.png"
  839. +       max_child_items="0"
  840. +       is_pickable="1"
  841. +       is_equipable_forced="1"
  842. +       preferred_inventory="QUICK"
  843. +   ></ItemComponent>
  844. +
  845. +   <UIInfoComponent
  846. +       _tags="enabled_in_world"
  847. +       name="$item_musicstone">
  848. +   </UIInfoComponent>
  849. +  
  850. +   <SpriteParticleEmitterComponent
  851. +       sprite_file="data/particles/ray.xml"
  852. +       delay="0"
  853. +       lifetime="1.5"
  854. +       color.r="1" color.g="0.5" color.b="1" color.a="1.0"
  855. +       color_change.r="0" color_change.g="0" color_change.b="0" color_change.a="-3.5"
  856. +       velocity.x="0" velocity.y="0"
  857. +       gravity.x="0" gravity.y="0"
  858. +       velocity_slowdown="0"
  859. +       rotation="0"
  860. +       angular_velocity="0"
  861. +       scale.x="1" scale.y="0"
  862. +       scale_velocity.x="-0.3" scale_velocity.y="3"
  863. +       emission_interval_min_frames="3"
  864. +       emission_interval_max_frames="6"
  865. +       emissive="1"
  866. +       additive="1"
  867. +       count_min="1" count_max="1"
  868. +       use_velocity_as_rotation="1"
  869. +       randomize_position.min_x="-2"
  870. +       randomize_position.max_x="2"
  871. +       randomize_position.min_y="-2"
  872. +       randomize_position.max_y="2"
  873. +       randomize_velocity.min_x="-40"
  874. +       randomize_velocity.max_x="40"
  875. +       randomize_velocity.min_y="-40"
  876. +       randomize_velocity.max_y="40"
  877. +       velocity_always_away_from_center="1">
  878. +   </SpriteParticleEmitterComponent>
  879. +  
  880. +   <AbilityComponent
  881. +       ui_name="$item_musicstone"
  882. +       throw_as_item="1"
  883. +       ><gun_config
  884. +           deck_capacity="0"
  885. +       ></gun_config>
  886. +   </AbilityComponent>
  887. +  
  888. +   <MagicConvertMaterialComponent
  889. +       _tags="enabled_in_world,enabled_in_hand"
  890. +       kill_when_finished="1"
  891. +       from_material=""
  892. +       from_material_tag="[water]"
  893. +       steps_per_frame="2"
  894. +       to_material="steam"
  895. +       clean_stains="0"
  896. +       is_circle="1"
  897. +       radius="64"
  898. +       loop="1"
  899. +       >
  900. +   </MagicConvertMaterialComponent>
  901. +  
  902. +</Entity>
  903. diff --git a/entities/items/pickup/poopstone.xml b/entities/items/pickup/poopstone.xml
  904. index c2239e0..fd27c3f 100644
  905. --- a/entities/items/pickup/poopstone.xml
  906. +++ b/entities/items/pickup/poopstone.xml
  907. @@ -1,4 +1,4 @@
  908. -<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup" >
  909. +<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup,poopstone" >
  910.     <Base file="data/entities/base_item_projectile.xml" />
  911.  
  912.     <!-- physical presence -->
  913. diff --git a/entities/items/pickup/powder_stash.xml b/entities/items/pickup/powder_stash.xml
  914. index 57f2c53..8fbb66d 100644
  915. --- a/entities/items/pickup/powder_stash.xml
  916. +++ b/entities/items/pickup/powder_stash.xml
  917. @@ -1,7 +1,4 @@
  918. -<Entity tags="hittable,teleportable_NOT,item_physics" >
  919. -
  920. -  <!-- tested would it be viable to add a pouch to the game that sucks up powders ... ? -->
  921. -  <!-- it kinda works, but there's a bunch of polish that would have to be done for it -->
  922. +<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup" >
  923.  
  924.    <!-- physical presence -->
  925.    
  926. @@ -41,7 +38,6 @@
  927.    ></VelocityComponent>
  928.    
  929.    <!-- potion logic -->
  930. -  
  931.    <!--
  932.    <LuaComponent
  933.      execute_on_added="1"
  934. @@ -50,7 +46,6 @@
  935.      script_source_file="data/scripts/items/potion.lua"
  936.    ></LuaComponent>
  937.    -->
  938. -
  939.     <LuaComponent
  940.         remove_after_executed="1"
  941.         script_item_picked_up="data/scripts/items/potion_effect.lua"
  942. diff --git a/entities/items/pickup/stonestone.xml b/entities/items/pickup/stonestone.xml
  943. index 6c880ee..ce9aa3f 100644
  944. --- a/entities/items/pickup/stonestone.xml
  945. +++ b/entities/items/pickup/stonestone.xml
  946. @@ -1,4 +1,4 @@
  947. -<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup" >
  948. +<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup,stonestone" >
  949.    <Base file="data/entities/base_item_projectile.xml">
  950.      <ProjectileComponent>
  951.        <damage_by_type
  952. diff --git a/entities/items/pickup/sun/newsun.xml b/entities/items/pickup/sun/newsun.xml
  953. new file mode 100644
  954. index 0000000..e3a4b6d
  955. --- /dev/null
  956. +++ b/entities/items/pickup/sun/newsun.xml
  957. @@ -0,0 +1,245 @@
  958. +<Entity tags="hittable,teleportable_NOT,item_physics,seed_e" >
  959. +   <Base file="data/entities/base_item_projectile.xml" />
  960. +
  961. +   <!-- physical presence -->
  962. +  
  963. +   <PhysicsBodyComponent
  964. +       _tags="enabled_in_world"
  965. +       uid="1"
  966. +       allow_sleep="1"
  967. +       angular_damping="0"
  968. +       fixed_rotation="0"
  969. +       is_bullet="0"
  970. +       linear_damping="0"
  971. +       auto_clean="0"
  972. +       on_death_leave_physics_body="1"
  973. +       gravity_scale_if_has_no_image_shapes="0"
  974. +   ></PhysicsBodyComponent>
  975. +  
  976. +   <PhysicsShapeComponent
  977. +       is_circle="1"
  978. +       radius_x="64"
  979. +       radius_y="64"
  980. +       >
  981. +   </PhysicsShapeComponent>
  982. +
  983. +   <VelocityComponent
  984. +       _tags="enabled_in_world"
  985. +   ></VelocityComponent>
  986. +  
  987. +   <SpriteComponent
  988. +       _tags="enabled_in_hand,enabled_in_world"
  989. +       _enabled="1"
  990. +       offset_x="98"
  991. +       offset_y="98"
  992. +       image_file="data/particles/fog_of_war_hole_huge.png"
  993. +       smooth_filtering="1"
  994. +       fog_of_war_hole="1"
  995. +   ></SpriteComponent>
  996. +  
  997. +   <SpriteComponent
  998. +       _tags="enabled_in_hand,enabled_in_world"
  999. +       _enabled="1"
  1000. +       offset_x="105"
  1001. +       offset_y="105"
  1002. +       emissive="1"
  1003. +       additive="1"
  1004. +       image_file="data/props_gfx/sun_big.png"
  1005. +       smooth_filtering="1"
  1006. +   ></SpriteComponent>
  1007. +
  1008. +   <UIInfoComponent
  1009. +       _tags="enabled_in_world"
  1010. +       name="$item_seed_e">
  1011. +   </UIInfoComponent>
  1012. +  
  1013. +   <MagicConvertMaterialComponent
  1014. +       _tags="enabled_in_world,enabled_in_hand"
  1015. +       kill_when_finished="0"
  1016. +       steps_per_frame="16"
  1017. +       to_material="lava"
  1018. +       convert_entities="1"
  1019. +       clean_stains="0"
  1020. +       is_circle="1"
  1021. +       radius="100"
  1022. +       loop="1"
  1023. +       >
  1024. +   </MagicConvertMaterialComponent>
  1025. +  
  1026. +   <MagicConvertMaterialComponent
  1027. +       _tags="enabled_in_world,enabled_in_hand"
  1028. +       kill_when_finished="0"
  1029. +       from_material_tag="[alchemy]"
  1030. +       steps_per_frame="16"
  1031. +       to_material="lava"
  1032. +       clean_stains="0"
  1033. +       is_circle="1"
  1034. +       radius="230"
  1035. +       loop="1"
  1036. +       >
  1037. +   </MagicConvertMaterialComponent>
  1038. +  
  1039. +   <MagicConvertMaterialComponent
  1040. +       _tags="enabled_in_world,enabled_in_hand"
  1041. +       kill_when_finished="0"
  1042. +       ignite_materials="1"
  1043. +       steps_per_frame="16"
  1044. +       fan_the_flames="1"
  1045. +       clean_stains="0"
  1046. +       is_circle="1"
  1047. +       radius="270"
  1048. +       loop="1"
  1049. +       >
  1050. +   </MagicConvertMaterialComponent>
  1051. +  
  1052. +   <CellEaterComponent
  1053. +       radius="190"
  1054. +       eat_probability="80"
  1055. +       ignored_material="gem_box2d_yellow_sun"
  1056. +       >
  1057. +   </CellEaterComponent>
  1058. +  
  1059. +   <AreaDamageComponent
  1060. +       aabb_min.x="-122"
  1061. +       aabb_min.y="-122"
  1062. +       aabb_max.x="122"
  1063. +       aabb_max.y="122"
  1064. +       damage_per_frame="2.14"
  1065. +       update_every_n_frame="1"
  1066. +       entities_with_tag="mortal"
  1067. +       death_cause="$damage_sun"
  1068. +       damage_type="DAMAGE_CURSE"
  1069. +       >
  1070. +   </AreaDamageComponent>
  1071. +  
  1072. +   <AreaDamageComponent
  1073. +       aabb_min.x="-190"
  1074. +       aabb_min.y="-190"
  1075. +       aabb_max.x="190"
  1076. +       aabb_max.y="190"
  1077. +       damage_per_frame="1.05"
  1078. +       update_every_n_frame="1"
  1079. +       entities_with_tag="mortal"
  1080. +       death_cause="$damage_sun"
  1081. +       damage_type="DAMAGE_EXPLOSION"
  1082. +       >
  1083. +   </AreaDamageComponent>
  1084. +  
  1085. +   <AreaDamageComponent
  1086. +       aabb_min.x="-280"
  1087. +       aabb_min.y="-280"
  1088. +       aabb_max.x="280"
  1089. +       aabb_max.y="280"
  1090. +       damage_per_frame="0.61"
  1091. +       update_every_n_frame="1"
  1092. +       entities_with_tag="mortal"
  1093. +       death_cause="$damage_sun"
  1094. +       damage_type="DAMAGE_FIRE"
  1095. +       >
  1096. +   </AreaDamageComponent>
  1097. +  
  1098. +   <ParticleEmitterComponent
  1099. +       _tags="enabled_in_world,enabled_in_hand"
  1100. +       emitted_material_name="spark_yellow"
  1101. +       fade_based_on_lifetime="1"
  1102. +       x_pos_offset_min="0"
  1103. +       x_pos_offset_max="0"
  1104. +       y_pos_offset_min="0"
  1105. +       y_pos_offset_max="0"
  1106. +       x_vel_min="-80"
  1107. +       x_vel_max="80"
  1108. +       y_vel_min="-80"
  1109. +       y_vel_max="80"
  1110. +       area_circle_radius.min="32"
  1111. +       area_circle_radius.max="64"
  1112. +       velocity_always_away_from_center="500"
  1113. +       gravity.y="0"
  1114. +       friction="0.1"
  1115. +       airflow_force="0.9"
  1116. +       airflow_time="0.101"
  1117. +       airflow_scale="0.81"
  1118. +       count_min="40"
  1119. +       count_max="60"
  1120. +       lifetime_min="0.1"
  1121. +       lifetime_max="2.4"
  1122. +       create_real_particles="0"
  1123. +       emit_cosmetic_particles="1"
  1124. +       draw_as_long="1"
  1125. +       collide_with_grid="0"
  1126. +       render_on_grid="1"
  1127. +       emission_interval_min_frames="1"
  1128. +       emission_interval_max_frames="1"
  1129. +       render_ultrabright="1"
  1130. +       is_emitting="1" >
  1131. +   </ParticleEmitterComponent>
  1132. +  
  1133. +   <ParticleEmitterComponent
  1134. +       _tags="enabled_in_world,enabled_in_hand"
  1135. +       emitted_material_name="spark"
  1136. +       fade_based_on_lifetime="1"
  1137. +       x_pos_offset_min="0"
  1138. +       x_pos_offset_max="0"
  1139. +       y_pos_offset_min="0"
  1140. +       y_pos_offset_max="0"
  1141. +       x_vel_min="-80"
  1142. +       x_vel_max="80"
  1143. +       y_vel_min="-80"
  1144. +       y_vel_max="80"
  1145. +       area_circle_radius.min="32"
  1146. +       area_circle_radius.max="64"
  1147. +       velocity_always_away_from_center="500"
  1148. +       gravity.y="0"
  1149. +       friction="0.1"
  1150. +       airflow_force="0.9"
  1151. +       airflow_time="0.101"
  1152. +       airflow_scale="0.81"
  1153. +       count_min="40"
  1154. +       count_max="60"
  1155. +       lifetime_min="0.1"
  1156. +       lifetime_max="2.4"
  1157. +       create_real_particles="0"
  1158. +       emit_cosmetic_particles="1"
  1159. +       draw_as_long="1"
  1160. +       collide_with_grid="0"
  1161. +       render_on_grid="1"
  1162. +       emission_interval_min_frames="1"
  1163. +       emission_interval_max_frames="1"
  1164. +       render_ultrabright="1"
  1165. +       is_emitting="1" >
  1166. +   </ParticleEmitterComponent>
  1167. +  
  1168. +   <BlackHoleComponent
  1169. +       particle_attractor_force="6"
  1170. +       damage_probability="0.25"
  1171. +       radius="280">
  1172. +   </BlackHoleComponent>
  1173. +  
  1174. +   <AudioLoopComponent
  1175. +       file="data/audio/Desktop/misc.bank"
  1176. +       event_name="misc/sun/size_3_loop"
  1177. +       auto_play="1">
  1178. +    </AudioLoopComponent>
  1179. +  
  1180. +   <MusicEnergyAffectorComponent
  1181. +       energy_target="1.0">
  1182. +   </MusicEnergyAffectorComponent>
  1183. +  
  1184. +   <Entity>
  1185. +       <LooseGroundComponent
  1186. +           max_distance="240"
  1187. +           probability="0.2"
  1188. +           max_angle="3.1415926535"
  1189. +           chunk_max_angle="3.1415926535"
  1190. +           chunk_probability="0.03" >
  1191. +       </LooseGroundComponent>
  1192. +
  1193. +       <InheritTransformComponent>
  1194. +       </InheritTransformComponent>
  1195. +   </Entity>
  1196. +  
  1197. +   <LuaComponent
  1198. +       script_source_file="data/scripts/buildings/sun/sun_controls.lua"
  1199. +       execute_every_n_frame="10"
  1200. +       >
  1201. +   </LuaComponent>
  1202. +</Entity>
  1203. diff --git a/entities/items/pickup/sun/newsun_dark.xml b/entities/items/pickup/sun/newsun_dark.xml
  1204. new file mode 100644
  1205. index 0000000..9a912a3
  1206. --- /dev/null
  1207. +++ b/entities/items/pickup/sun/newsun_dark.xml
  1208. @@ -0,0 +1,240 @@
  1209. +<Entity tags="hittable,teleportable_NOT,item_physics,seed_f" >
  1210. +   <Base file="data/entities/base_item_projectile.xml" />
  1211. +
  1212. +   <!-- physical presence -->
  1213. +  
  1214. +   <PhysicsBodyComponent
  1215. +       _tags="enabled_in_world"
  1216. +       uid="1"
  1217. +       allow_sleep="1"
  1218. +       angular_damping="0"
  1219. +       fixed_rotation="0"
  1220. +       is_bullet="0"
  1221. +       linear_damping="0"
  1222. +       auto_clean="0"
  1223. +       on_death_leave_physics_body="1"
  1224. +       gravity_scale_if_has_no_image_shapes="0"
  1225. +   ></PhysicsBodyComponent>
  1226. +  
  1227. +   <PhysicsShapeComponent
  1228. +       is_circle="1"
  1229. +       radius_x="64"
  1230. +       radius_y="64"
  1231. +       >
  1232. +   </PhysicsShapeComponent>
  1233. +
  1234. +   <VelocityComponent
  1235. +       _tags="enabled_in_world"
  1236. +   ></VelocityComponent>
  1237. +  
  1238. +   <SpriteComponent
  1239. +       _tags="enabled_in_hand,enabled_in_world"
  1240. +       _enabled="1"
  1241. +       offset_x="160"
  1242. +       offset_y="160"
  1243. +       emissive="1"
  1244. +       z_index="-1"
  1245. +       image_file="data/props_gfx/sun_big_dark.png"
  1246. +       smooth_filtering="1"
  1247. +   ></SpriteComponent>
  1248. +
  1249. +   <UIInfoComponent
  1250. +       _tags="enabled_in_world"
  1251. +       name="$item_seed_f">
  1252. +   </UIInfoComponent>
  1253. +  
  1254. +   <MagicConvertMaterialComponent
  1255. +       _tags="enabled_in_world,enabled_in_hand"
  1256. +       kill_when_finished="0"
  1257. +       steps_per_frame="16"
  1258. +       to_material="material_darkness"
  1259. +       convert_entities="1"
  1260. +       clean_stains="0"
  1261. +       is_circle="1"
  1262. +       radius="100"
  1263. +       loop="1"
  1264. +       >
  1265. +   </MagicConvertMaterialComponent>
  1266. +  
  1267. +   <MagicConvertMaterialComponent
  1268. +       _tags="enabled_in_world,enabled_in_hand"
  1269. +       kill_when_finished="0"
  1270. +       from_material_tag="[alchemy]"
  1271. +       steps_per_frame="16"
  1272. +       to_material="material_darkness"
  1273. +       clean_stains="0"
  1274. +       is_circle="1"
  1275. +       radius="230"
  1276. +       loop="1"
  1277. +       >
  1278. +   </MagicConvertMaterialComponent>
  1279. +  
  1280. +   <MagicConvertMaterialComponent
  1281. +       _tags="enabled_in_world,enabled_in_hand"
  1282. +       kill_when_finished="0"
  1283. +       extinguish_fire="1"
  1284. +       steps_per_frame="16"
  1285. +       clean_stains="0"
  1286. +       is_circle="1"
  1287. +       radius="270"
  1288. +       loop="1"
  1289. +       >
  1290. +   </MagicConvertMaterialComponent>
  1291. +  
  1292. +   <CellEaterComponent
  1293. +       radius="130"
  1294. +       eat_probability="80"
  1295. +       ignored_material="gem_box2d_yellow_sun"
  1296. +       >
  1297. +   </CellEaterComponent>
  1298. +  
  1299. +   <AreaDamageComponent
  1300. +       aabb_min.x="-122"
  1301. +       aabb_min.y="-122"
  1302. +       aabb_max.x="122"
  1303. +       aabb_max.y="122"
  1304. +       damage_per_frame="2.14"
  1305. +       update_every_n_frame="1"
  1306. +       entities_with_tag="mortal"
  1307. +       death_cause="$damage_sun"
  1308. +       damage_type="DAMAGE_CURSE"
  1309. +       >
  1310. +   </AreaDamageComponent>
  1311. +  
  1312. +   <AreaDamageComponent
  1313. +       aabb_min.x="-190"
  1314. +       aabb_min.y="-190"
  1315. +       aabb_max.x="190"
  1316. +       aabb_max.y="190"
  1317. +       damage_per_frame="1.05"
  1318. +       update_every_n_frame="1"
  1319. +       entities_with_tag="mortal"
  1320. +       death_cause="$damage_sun"
  1321. +       damage_type="DAMAGE_ICE"
  1322. +       >
  1323. +   </AreaDamageComponent>
  1324. +  
  1325. +   <AreaDamageComponent
  1326. +       aabb_min.x="-280"
  1327. +       aabb_min.y="-280"
  1328. +       aabb_max.x="280"
  1329. +       aabb_max.y="280"
  1330. +       damage_per_frame="0.61"
  1331. +       update_every_n_frame="1"
  1332. +       entities_with_tag="mortal"
  1333. +       death_cause="$damage_sun"
  1334. +       damage_type="DAMAGE_ELECTRICITY"
  1335. +       >
  1336. +   </AreaDamageComponent>
  1337. +  
  1338. +   <ParticleEmitterComponent
  1339. +       _tags="enabled_in_world,enabled_in_hand"
  1340. +       emitted_material_name="spark_purple_bright"
  1341. +       fade_based_on_lifetime="1"
  1342. +       x_pos_offset_min="0"
  1343. +       x_pos_offset_max="0"
  1344. +       y_pos_offset_min="0"
  1345. +       y_pos_offset_max="0"
  1346. +       x_vel_min="-80"
  1347. +       x_vel_max="80"
  1348. +       y_vel_min="-80"
  1349. +       y_vel_max="80"
  1350. +       area_circle_radius.min="64"
  1351. +       area_circle_radius.max="96"
  1352. +       velocity_always_away_from_center="500"
  1353. +       gravity.y="0"
  1354. +       friction="0.1"
  1355. +       airflow_force="0.9"
  1356. +       airflow_time="0.101"
  1357. +       airflow_scale="0.81"
  1358. +       count_min="40"
  1359. +       count_max="60"
  1360. +       lifetime_min="0.1"
  1361. +       lifetime_max="2.4"
  1362. +       create_real_particles="0"
  1363. +       emit_cosmetic_particles="1"
  1364. +       draw_as_long="1"
  1365. +       collide_with_grid="0"
  1366. +       render_on_grid="1"
  1367. +       emission_interval_min_frames="1"
  1368. +       emission_interval_max_frames="1"
  1369. +       render_ultrabright="1"
  1370. +       is_emitting="1" >
  1371. +   </ParticleEmitterComponent>
  1372. +  
  1373. +   <ParticleEmitterComponent
  1374. +       _tags="enabled_in_world,enabled_in_hand"
  1375. +       emitted_material_name="spark_blue_dark"
  1376. +       fade_based_on_lifetime="1"
  1377. +       x_pos_offset_min="0"
  1378. +       x_pos_offset_max="0"
  1379. +       y_pos_offset_min="0"
  1380. +       y_pos_offset_max="0"
  1381. +       x_vel_min="-80"
  1382. +       x_vel_max="80"
  1383. +       y_vel_min="-80"
  1384. +       y_vel_max="80"
  1385. +       area_circle_radius.min="64"
  1386. +       area_circle_radius.max="96"
  1387. +       velocity_always_away_from_center="500"
  1388. +       gravity.y="0"
  1389. +       friction="0.1"
  1390. +       airflow_force="0.9"
  1391. +       airflow_time="0.101"
  1392. +       airflow_scale="0.81"
  1393. +       count_min="40"
  1394. +       count_max="60"
  1395. +       lifetime_min="0.1"
  1396. +       lifetime_max="2.4"
  1397. +       create_real_particles="0"
  1398. +       emit_cosmetic_particles="1"
  1399. +       draw_as_long="1"
  1400. +       collide_with_grid="0"
  1401. +       render_on_grid="1"
  1402. +       emission_interval_min_frames="1"
  1403. +       emission_interval_max_frames="1"
  1404. +       render_ultrabright="1"
  1405. +       is_emitting="1" >
  1406. +   </ParticleEmitterComponent>
  1407. +  
  1408. +   <BlackHoleComponent
  1409. +       particle_attractor_force="8"
  1410. +       damage_probability="0.25"
  1411. +       radius="280">
  1412. +   </BlackHoleComponent>
  1413. +  
  1414. +   <AudioLoopComponent
  1415. +       file="data/audio/Desktop/misc.bank"
  1416. +       event_name="misc/sun/size_3_loop"
  1417. +       auto_play="1">
  1418. +    </AudioLoopComponent>
  1419. +  
  1420. +   <MusicEnergyAffectorComponent
  1421. +       energy_target="1.0">
  1422. +   </MusicEnergyAffectorComponent>
  1423. +  
  1424. +   <Entity>
  1425. +       <LooseGroundComponent
  1426. +           max_distance="260"
  1427. +           probability="0.2"
  1428. +           max_angle="3.1415926535"
  1429. +           chunk_max_angle="3.1415926535"
  1430. +           chunk_probability="0.03" >
  1431. +       </LooseGroundComponent>
  1432. +
  1433. +       <InheritTransformComponent>
  1434. +       </InheritTransformComponent>
  1435. +   </Entity>
  1436. +  
  1437. +   <LuaComponent
  1438. +       script_source_file="data/scripts/buildings/sun/sun_controls.lua"
  1439. +       execute_every_n_frame="10"
  1440. +       >
  1441. +   </LuaComponent>
  1442. +  
  1443. +   <LuaComponent
  1444. +       script_source_file="data/scripts/buildings/sun/sun_dark_effect.lua"
  1445. +       execute_every_n_frame="40"
  1446. +       >
  1447. +   </LuaComponent>
  1448. +</Entity>
  1449. diff --git a/entities/items/pickup/sun/sunbaby.xml b/entities/items/pickup/sun/sunbaby.xml
  1450. index c21a8df..a7ff7ed 100644
  1451. --- a/entities/items/pickup/sun/sunbaby.xml
  1452. +++ b/entities/items/pickup/sun/sunbaby.xml
  1453. @@ -38,13 +38,13 @@
  1454.     ></SpriteComponent>
  1455.    
  1456.     <SpriteComponent
  1457. -       _tags="enabled_in_hand,enabled_in_world"
  1458. +       _tags="enabled_in_hand,enabled_in_world,sunbaby_sprite"
  1459.         _enabled="1"
  1460. -       offset_x="70"
  1461. -       offset_y="70"
  1462. +       offset_x="50"
  1463. +       offset_y="50"
  1464.         emissive="1"
  1465.         additive="1"
  1466. -       image_file="data/props_gfx/sun.png"
  1467. +       image_file="data/props_gfx/sun_small.png"
  1468.         smooth_filtering="1"
  1469.     ></SpriteComponent>
  1470.  
  1471. @@ -54,7 +54,8 @@
  1472.     </UIInfoComponent>
  1473.    
  1474.     <MagicConvertMaterialComponent
  1475. -       _tags="enabled_in_world,enabled_in_hand"
  1476. +       _enabled="0"
  1477. +       _tags="water"
  1478.         kill_when_finished="0"
  1479.         from_material_tag="[alchemy]"
  1480.         steps_per_frame="8"
  1481. @@ -67,10 +68,24 @@
  1482.     </MagicConvertMaterialComponent>
  1483.    
  1484.     <MagicConvertMaterialComponent
  1485. -       _tags="enabled_in_world,enabled_in_hand"
  1486. +       _tags="fire_disable"
  1487.         kill_when_finished="0"
  1488.         ignite_materials="1"
  1489. -       steps_per_frame="8"
  1490. +       steps_per_frame="2"
  1491. +       fan_the_flames="1"
  1492. +       clean_stains="0"
  1493. +       is_circle="1"
  1494. +       radius="140"
  1495. +       loop="1"
  1496. +       >
  1497. +   </MagicConvertMaterialComponent>
  1498. +  
  1499. +   <MagicConvertMaterialComponent
  1500. +       _tags="fire"
  1501. +       _enabled="0"
  1502. +       kill_when_finished="0"
  1503. +       ignite_materials="1"
  1504. +       steps_per_frame="12"
  1505.         fan_the_flames="1"
  1506.         clean_stains="0"
  1507.         is_circle="1"
  1508. @@ -80,17 +95,29 @@
  1509.     </MagicConvertMaterialComponent>
  1510.    
  1511.     <CellEaterComponent
  1512. +       _tags="earth"
  1513. +       _enabled="0"
  1514.         radius="190"
  1515. -       ignored_material="gem_box2d_yellow_sun"
  1516. +       eat_probability="80"
  1517. +       ignored_material_tag="[sunbaby_ignore_list]"
  1518. +       >
  1519. +   </CellEaterComponent>
  1520. +  
  1521. +   <CellEaterComponent
  1522. +       _tags="earth_disable"
  1523. +       radius="120"
  1524. +       eat_probability="40"
  1525. +       ignored_material_tag="[sunbaby_ignore_list]"
  1526.         >
  1527.     </CellEaterComponent>
  1528.    
  1529.     <AreaDamageComponent
  1530. -       aabb_min.x="-122"
  1531. -       aabb_min.y="-122"
  1532. -       aabb_max.x="122"
  1533. -       aabb_max.y="122"
  1534. -       damage_per_frame="5.14"
  1535. +       aabb_min.x="-72"
  1536. +       aabb_min.y="-72"
  1537. +       aabb_max.x="72"
  1538. +       aabb_max.y="72"
  1539. +       circle_radius="72"
  1540. +       damage_per_frame="1.14"
  1541.         update_every_n_frame="1"
  1542.         entities_with_tag="mortal"
  1543.         death_cause="$damage_sun"
  1544. @@ -99,33 +126,69 @@
  1545.     </AreaDamageComponent>
  1546.    
  1547.     <AreaDamageComponent
  1548. -       aabb_min.x="-190"
  1549. -       aabb_min.y="-190"
  1550. -       aabb_max.x="190"
  1551. -       aabb_max.y="190"
  1552. -       damage_per_frame="2.05"
  1553. +       _tags="fire_disable"
  1554. +       aabb_min.x="-95"
  1555. +       aabb_min.y="-95"
  1556. +       aabb_max.x="95"
  1557. +       aabb_max.y="95"
  1558. +       circle_radius="95"
  1559. +       damage_per_frame="0.65"
  1560.         update_every_n_frame="1"
  1561.         entities_with_tag="mortal"
  1562.         death_cause="$damage_sun"
  1563. -       damage_type="DAMAGE_CURSE"
  1564. +       damage_type="DAMAGE_EXPLOSION"
  1565.         >
  1566.     </AreaDamageComponent>
  1567.    
  1568.     <AreaDamageComponent
  1569. -       aabb_min.x="-280"
  1570. -       aabb_min.y="-280"
  1571. -       aabb_max.x="280"
  1572. -       aabb_max.y="280"
  1573. -       damage_per_frame="1.01"
  1574. +       _tags="fire"
  1575. +       _enabled="0"
  1576. +       aabb_min.x="-130"
  1577. +       aabb_min.y="-130"
  1578. +       aabb_max.x="130"
  1579. +       aabb_max.y="130"
  1580. +       circle_radius="130"
  1581. +       damage_per_frame="0.65"
  1582.         update_every_n_frame="1"
  1583.         entities_with_tag="mortal"
  1584.         death_cause="$damage_sun"
  1585. -       damage_type="DAMAGE_CURSE"
  1586. +       damage_type="DAMAGE_EXPLOSION"
  1587. +       >
  1588. +   </AreaDamageComponent>
  1589. +  
  1590. +   <AreaDamageComponent
  1591. +       _tags="fire_disable"
  1592. +       aabb_min.x="-120"
  1593. +       aabb_min.y="-120"
  1594. +       aabb_max.x="120"
  1595. +       aabb_max.y="120"
  1596. +       circle_radius="120"
  1597. +       damage_per_frame="0.21"
  1598. +       update_every_n_frame="1"
  1599. +       entities_with_tag="mortal"
  1600. +       death_cause="$damage_sun"
  1601. +       damage_type="DAMAGE_FIRE"
  1602. +       >
  1603. +   </AreaDamageComponent>
  1604. +  
  1605. +   <AreaDamageComponent
  1606. +       _tags="fire"
  1607. +       _enabled="0"
  1608. +       aabb_min.x="-180"
  1609. +       aabb_min.y="-180"
  1610. +       aabb_max.x="180"
  1611. +       aabb_max.y="180"
  1612. +       circle_radius="180"
  1613. +       damage_per_frame="0.21"
  1614. +       update_every_n_frame="1"
  1615. +       entities_with_tag="mortal"
  1616. +       death_cause="$damage_sun"
  1617. +       damage_type="DAMAGE_FIRE"
  1618.         >
  1619.     </AreaDamageComponent>
  1620.    
  1621.     <ParticleEmitterComponent
  1622. -       _tags="enabled_in_world,enabled_in_hand"
  1623. +       _tags="enabled_in_world,enabled_in_hand,sunbaby_stage_2"
  1624.         emitted_material_name="spark_yellow"
  1625.         fade_based_on_lifetime="1"
  1626.         x_pos_offset_min="0"
  1627. @@ -136,9 +199,9 @@
  1628.         x_vel_max="80"
  1629.         y_vel_min="-80"
  1630.         y_vel_max="80"
  1631. -       area_circle_radius.min="32"
  1632. +       area_circle_radius.min="16"
  1633.         area_circle_radius.max="64"
  1634. -       velocity_always_away_from_center="500"
  1635. +       velocity_always_away_from_center="250"
  1636.         gravity.y="0"
  1637.         friction="0.1"
  1638.         airflow_force="0.9"
  1639. @@ -147,7 +210,7 @@
  1640.         count_min="40"
  1641.         count_max="60"
  1642.         lifetime_min="0.1"
  1643. -       lifetime_max="2.4"
  1644. +       lifetime_max="0.9"
  1645.         create_real_particles="0"
  1646.         emit_cosmetic_particles="1"
  1647.         draw_as_long="1"
  1648. @@ -160,7 +223,7 @@
  1649.     </ParticleEmitterComponent>
  1650.    
  1651.     <ParticleEmitterComponent
  1652. -       _tags="enabled_in_world,enabled_in_hand"
  1653. +       _tags="enabled_in_world,enabled_in_hand,sunbaby_stage_1"
  1654.         emitted_material_name="spark"
  1655.         fade_based_on_lifetime="1"
  1656.         x_pos_offset_min="0"
  1657. @@ -171,9 +234,9 @@
  1658.         x_vel_max="80"
  1659.         y_vel_min="-80"
  1660.         y_vel_max="80"
  1661. -       area_circle_radius.min="32"
  1662. +       area_circle_radius.min="16"
  1663.         area_circle_radius.max="64"
  1664. -       velocity_always_away_from_center="500"
  1665. +       velocity_always_away_from_center="250"
  1666.         gravity.y="0"
  1667.         friction="0.1"
  1668.         airflow_force="0.9"
  1669. @@ -182,7 +245,7 @@
  1670.         count_min="40"
  1671.         count_max="60"
  1672.         lifetime_min="0.1"
  1673. -       lifetime_max="2.4"
  1674. +       lifetime_max="0.9"
  1675.         create_real_particles="0"
  1676.         emit_cosmetic_particles="1"
  1677.         draw_as_long="1"
  1678. @@ -193,4 +256,181 @@
  1679.         render_ultrabright="1"
  1680.         is_emitting="1" >
  1681.     </ParticleEmitterComponent>
  1682. +  
  1683. +   <ParticleEmitterComponent
  1684. +       _tags="water"
  1685. +       _enabled="0"
  1686. +       emitted_material_name="spark_blue_dark"
  1687. +       fade_based_on_lifetime="1"
  1688. +       x_pos_offset_min="0"
  1689. +       x_pos_offset_max="0"
  1690. +       y_pos_offset_min="0"
  1691. +       y_pos_offset_max="0"
  1692. +       x_vel_min="-80"
  1693. +       x_vel_max="80"
  1694. +       y_vel_min="-80"
  1695. +       y_vel_max="80"
  1696. +       area_circle_radius.min="16"
  1697. +       area_circle_radius.max="64"
  1698. +       velocity_always_away_from_center="300"
  1699. +       gravity.y="0"
  1700. +       friction="0.1"
  1701. +       airflow_force="0.9"
  1702. +       airflow_time="0.101"
  1703. +       airflow_scale="0.81"
  1704. +       count_min="40"
  1705. +       count_max="60"
  1706. +       lifetime_min="0.1"
  1707. +       lifetime_max="0.9"
  1708. +       create_real_particles="0"
  1709. +       emit_cosmetic_particles="1"
  1710. +       draw_as_long="1"
  1711. +       collide_with_grid="0"
  1712. +       render_on_grid="1"
  1713. +       emission_interval_min_frames="1"
  1714. +       emission_interval_max_frames="1"
  1715. +       render_ultrabright="1"
  1716. +       is_emitting="1" >
  1717. +   </ParticleEmitterComponent>
  1718. +  
  1719. +   <ParticleEmitterComponent
  1720. +       _tags="fire"
  1721. +       _enabled="0"
  1722. +       emitted_material_name="spark_red"
  1723. +       fade_based_on_lifetime="1"
  1724. +       x_pos_offset_min="0"
  1725. +       x_pos_offset_max="0"
  1726. +       y_pos_offset_min="0"
  1727. +       y_pos_offset_max="0"
  1728. +       x_vel_min="-80"
  1729. +       x_vel_max="80"
  1730. +       y_vel_min="-80"
  1731. +       y_vel_max="80"
  1732. +       area_circle_radius.min="16"
  1733. +       area_circle_radius.max="64"
  1734. +       velocity_always_away_from_center="400"
  1735. +       gravity.y="0"
  1736. +       friction="0.1"
  1737. +       airflow_force="0.9"
  1738. +       airflow_time="0.101"
  1739. +       airflow_scale="0.81"
  1740. +       count_min="40"
  1741. +       count_max="60"
  1742. +       lifetime_min="0.1"
  1743. +       lifetime_max="0.9"
  1744. +       create_real_particles="0"
  1745. +       emit_cosmetic_particles="1"
  1746. +       draw_as_long="1"
  1747. +       collide_with_grid="0"
  1748. +       render_on_grid="1"
  1749. +       emission_interval_min_frames="1"
  1750. +       emission_interval_max_frames="1"
  1751. +       render_ultrabright="1"
  1752. +       is_emitting="1" >
  1753. +   </ParticleEmitterComponent>
  1754. +  
  1755. +   <ParticleEmitterComponent
  1756. +       _tags="air"
  1757. +       _enabled="0"
  1758. +       emitted_material_name="spark_blue"
  1759. +       fade_based_on_lifetime="1"
  1760. +       x_pos_offset_min="0"
  1761. +       x_pos_offset_max="0"
  1762. +       y_pos_offset_min="0"
  1763. +       y_pos_offset_max="0"
  1764. +       x_vel_min="-80"
  1765. +       x_vel_max="80"
  1766. +       y_vel_min="-80"
  1767. +       y_vel_max="80"
  1768. +       area_circle_radius.min="16"
  1769. +       area_circle_radius.max="64"
  1770. +       velocity_always_away_from_center="400"
  1771. +       gravity.y="0"
  1772. +       friction="0.1"
  1773. +       airflow_force="0.9"
  1774. +       airflow_time="0.101"
  1775. +       airflow_scale="0.81"
  1776. +       count_min="40"
  1777. +       count_max="60"
  1778. +       lifetime_min="0.1"
  1779. +       lifetime_max="0.9"
  1780. +       create_real_particles="0"
  1781. +       emit_cosmetic_particles="1"
  1782. +       draw_as_long="1"
  1783. +       collide_with_grid="0"
  1784. +       render_on_grid="1"
  1785. +       emission_interval_min_frames="1"
  1786. +       emission_interval_max_frames="1"
  1787. +       render_ultrabright="1"
  1788. +       is_emitting="1" >
  1789. +   </ParticleEmitterComponent>
  1790. +  
  1791. +   <ParticleEmitterComponent
  1792. +       _tags="earth"
  1793. +       _enabled="0"
  1794. +       emitted_material_name="spark_green"
  1795. +       fade_based_on_lifetime="1"
  1796. +       x_pos_offset_min="0"
  1797. +       x_pos_offset_max="0"
  1798. +       y_pos_offset_min="0"
  1799. +       y_pos_offset_max="0"
  1800. +       x_vel_min="-80"
  1801. +       x_vel_max="80"
  1802. +       y_vel_min="-80"
  1803. +       y_vel_max="80"
  1804. +       area_circle_radius.min="16"
  1805. +       area_circle_radius.max="64"
  1806. +       velocity_always_away_from_center="200"
  1807. +       gravity.y="0"
  1808. +       friction="0.1"
  1809. +       airflow_force="0.9"
  1810. +       airflow_time="0.101"
  1811. +       airflow_scale="0.81"
  1812. +       count_min="40"
  1813. +       count_max="60"
  1814. +       lifetime_min="0.1"
  1815. +       lifetime_max="0.9"
  1816. +       create_real_particles="0"
  1817. +       emit_cosmetic_particles="1"
  1818. +       draw_as_long="1"
  1819. +       collide_with_grid="0"
  1820. +       render_on_grid="1"
  1821. +       emission_interval_min_frames="1"
  1822. +       emission_interval_max_frames="1"
  1823. +       render_ultrabright="1"
  1824. +       is_emitting="1" >
  1825. +   </ParticleEmitterComponent>
  1826. +  
  1827. +   <AudioLoopComponent
  1828. +       file="data/audio/Desktop/misc.bank"
  1829. +       event_name="misc/sun/size_2_loop"
  1830. +       auto_play="1">
  1831. +    </AudioLoopComponent>
  1832. +  
  1833. +   <LuaComponent
  1834. +       script_source_file="data/scripts/buildings/sun/spot_4.lua"
  1835. +       execute_every_n_frame="10"
  1836. +       >
  1837. +   </LuaComponent>
  1838. +  
  1839. +   <VariableStorageComponent
  1840. +       _tags="sunbaby_essences_list"
  1841. +       name="sunbaby_essences_list"
  1842. +       value_string=""
  1843. +       >
  1844. +   </VariableStorageComponent>
  1845. +  
  1846. +   <LuaComponent
  1847. +       _enabled="0"
  1848. +       _tags="air"
  1849. +       script_source_file="data/scripts/buildings/sun/sunbaby_air_effect.lua"
  1850. +       execute_every_n_frame="80"
  1851. +       >
  1852. +   </LuaComponent>
  1853. +  
  1854. +   <LuaComponent
  1855. +       script_source_file="data/scripts/buildings/sun/sunbaby_controls.lua"
  1856. +       execute_every_n_frame="10"
  1857. +       >
  1858. +   </LuaComponent>
  1859.  </Entity>
  1860. diff --git a/entities/items/pickup/sun/sunegg.xml b/entities/items/pickup/sun/sunegg.xml
  1861. index 10a646f..b1b36be 100644
  1862. --- a/entities/items/pickup/sun/sunegg.xml
  1863. +++ b/entities/items/pickup/sun/sunegg.xml
  1864. @@ -19,7 +19,7 @@
  1865.     <PhysicsImageShapeComponent
  1866.         body_id="1"
  1867.         centered="1"
  1868. -       image_file="data/items_gfx/normals_orb_64_noise.png"
  1869. +       image_file="data/items_gfx/normals_orb_56_noise.png"
  1870.         material="gem_box2d_yellow_sun"
  1871.     ></PhysicsImageShapeComponent>
  1872.  
  1873. @@ -51,7 +51,7 @@
  1874.         to_material="lava"
  1875.         clean_stains="0"
  1876.         is_circle="1"
  1877. -       radius="160"
  1878. +       radius="120"
  1879.         loop="1"
  1880.         >
  1881.     </MagicConvertMaterialComponent>
  1882. @@ -65,7 +65,7 @@
  1883.         to_material="lava"
  1884.         clean_stains="0"
  1885.         is_circle="1"
  1886. -       radius="160"
  1887. +       radius="120"
  1888.         loop="1"
  1889.         >
  1890.     </MagicConvertMaterialComponent>
  1891. @@ -79,7 +79,7 @@
  1892.         to_material="lava"
  1893.         clean_stains="0"
  1894.         is_circle="1"
  1895. -       radius="160"
  1896. +       radius="120"
  1897.         loop="1"
  1898.         >
  1899.     </MagicConvertMaterialComponent>
  1900. @@ -92,22 +92,23 @@
  1901.         fan_the_flames="1"
  1902.         clean_stains="0"
  1903.         is_circle="1"
  1904. -       radius="160"
  1905. +       radius="140"
  1906.         loop="1"
  1907.         >
  1908.     </MagicConvertMaterialComponent>
  1909.    
  1910.     <CellEaterComponent
  1911.         radius="72"
  1912. +       eat_probability="10"
  1913.         ignored_material="gem_box2d_yellow_sun"
  1914.         >
  1915.     </CellEaterComponent>
  1916.    
  1917.     <AreaDamageComponent
  1918. -       aabb_min.x="-72"
  1919. -       aabb_min.y="-72"
  1920. -       aabb_max.x="72"
  1921. -       aabb_max.y="72"
  1922. +       aabb_min.x="-48"
  1923. +       aabb_min.y="-48"
  1924. +       aabb_max.x="48"
  1925. +       aabb_max.y="48"
  1926.         damage_per_frame="1.14"
  1927.         update_every_n_frame="1"
  1928.         entities_with_tag="mortal"
  1929. @@ -117,28 +118,28 @@
  1930.     </AreaDamageComponent>
  1931.    
  1932.     <AreaDamageComponent
  1933. -       aabb_min.x="-160"
  1934. -       aabb_min.y="-160"
  1935. -       aabb_max.x="160"
  1936. -       aabb_max.y="160"
  1937. +       aabb_min.x="-80"
  1938. +       aabb_min.y="-80"
  1939. +       aabb_max.x="80"
  1940. +       aabb_max.y="80"
  1941.         damage_per_frame="0.05"
  1942.         update_every_n_frame="1"
  1943.         entities_with_tag="mortal"
  1944.         death_cause="$damage_sun"
  1945. -       damage_type="DAMAGE_CURSE"
  1946. +       damage_type="DAMAGE_EXPLOSION"
  1947.         >
  1948.     </AreaDamageComponent>
  1949.    
  1950.     <AreaDamageComponent
  1951. -       aabb_min.x="-220"
  1952. -       aabb_min.y="-220"
  1953. -       aabb_max.x="220"
  1954. -       aabb_max.y="220"
  1955. +       aabb_min.x="-120"
  1956. +       aabb_min.y="-120"
  1957. +       aabb_max.x="120"
  1958. +       aabb_max.y="120"
  1959.         damage_per_frame="0.01"
  1960.         update_every_n_frame="1"
  1961.         entities_with_tag="mortal"
  1962.         death_cause="$damage_sun"
  1963. -       damage_type="DAMAGE_CURSE"
  1964. +       damage_type="DAMAGE_FIRE"
  1965.         >
  1966.     </AreaDamageComponent>
  1967.    
  1968. @@ -156,7 +157,7 @@
  1969.         y_vel_max="40"
  1970.         area_circle_radius.min="32"
  1971.         area_circle_radius.max="36"
  1972. -       velocity_always_away_from_center="200"
  1973. +       velocity_always_away_from_center="150"
  1974.         gravity.y="0"
  1975.         friction="0.1"
  1976.         airflow_force="0.9"
  1977. @@ -189,4 +190,10 @@
  1978.         value_int="0"
  1979.         >
  1980.     </VariableStorageComponent>
  1981. +  
  1982. +   <AudioLoopComponent
  1983. +       file="data/audio/Desktop/misc.bank"
  1984. +       event_name="misc/sun/size_1_loop"
  1985. +       auto_play="1">
  1986. +    </AudioLoopComponent>
  1987.  </Entity>
  1988. diff --git a/entities/items/pickup/thunderstone.xml b/entities/items/pickup/thunderstone.xml
  1989. index 0a2d82f..be710a7 100644
  1990. --- a/entities/items/pickup/thunderstone.xml
  1991. +++ b/entities/items/pickup/thunderstone.xml
  1992. @@ -1,4 +1,4 @@
  1993. -<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup" >
  1994. +<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup,thunderstone" >
  1995.    <Base file="data/entities/base_item_projectile.xml">
  1996.      <ProjectileComponent>
  1997.        <damage_by_type
  1998. diff --git a/entities/items/pickup/waterstone.xml b/entities/items/pickup/waterstone.xml
  1999. index ee14f02..60f12cb 100644
  2000. --- a/entities/items/pickup/waterstone.xml
  2001. +++ b/entities/items/pickup/waterstone.xml
  2002. @@ -1,4 +1,4 @@
  2003. -<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup" >
  2004. +<Entity tags="hittable,teleportable_NOT,item_physics,item_pickup,waterstone" >
  2005.     <Base file="data/entities/base_item_projectile.xml" />
  2006.  
  2007.     <!-- physical presence -->
  2008. diff --git a/entities/misc/area_damage.xml b/entities/misc/area_damage.xml
  2009. index 45b8439..18f26fa 100644
  2010. --- a/entities/misc/area_damage.xml
  2011. +++ b/entities/misc/area_damage.xml
  2012. @@ -10,6 +10,7 @@
  2013.         entities_with_tag="homing_target"
  2014.         death_cause="$damage_rock_curse"
  2015.         damage_type="DAMAGE_PROJECTILE"
  2016. +       circle_radius="16"
  2017.         >
  2018.     </AreaDamageComponent>
  2019.    
  2020. diff --git a/entities/misc/bounce_larpa_launcher.xml b/entities/misc/bounce_larpa_launcher.xml
  2021. index fea8257..a843a3e 100644
  2022. --- a/entities/misc/bounce_larpa_launcher.xml
  2023. +++ b/entities/misc/bounce_larpa_launcher.xml
  2024. @@ -5,5 +5,18 @@
  2025.         execute_on_added="1"
  2026.         >
  2027.     </LuaComponent>
  2028. +  
  2029. +   <ProjectileComponent
  2030. +       _tags="enabled_in_world"
  2031. +       lifetime="-1"
  2032. +       penetrate_entities="1"
  2033. +       penetrate_world="1"
  2034. +       damage="0.0"
  2035. +       do_moveto_update="0"
  2036. +   ></ProjectileComponent>
  2037. +  
  2038. +   <VelocityComponent
  2039. +       _tags="enabled_in_world"
  2040. +   ></VelocityComponent>
  2041.  
  2042.  </Entity>
  2043. \ No newline at end of file
  2044. diff --git a/entities/misc/bounce_laser.xml b/entities/misc/bounce_laser.xml
  2045. index da33863..6519de1 100644
  2046. --- a/entities/misc/bounce_laser.xml
  2047. +++ b/entities/misc/bounce_laser.xml
  2048. @@ -6,5 +6,18 @@
  2049.         remove_after_executed="1"
  2050.         >
  2051.     </LuaComponent>
  2052. +  
  2053. +   <ProjectileComponent
  2054. +       _tags="enabled_in_world"
  2055. +       lifetime="-1"
  2056. +       penetrate_entities="1"
  2057. +       penetrate_world="1"
  2058. +       damage="0.0"
  2059. +       do_moveto_update="0"
  2060. +   ></ProjectileComponent>
  2061. +  
  2062. +   <VelocityComponent
  2063. +       _tags="enabled_in_world"
  2064. +   ></VelocityComponent>
  2065.    
  2066.  </Entity>
  2067. \ No newline at end of file
  2068. diff --git a/entities/misc/effect_weaken.xml b/entities/misc/effect_weaken.xml
  2069. index cb54fd5..f7e88e0 100644
  2070. --- a/entities/misc/effect_weaken.xml
  2071. +++ b/entities/misc/effect_weaken.xml
  2072. @@ -17,18 +17,38 @@
  2073.         >
  2074.     </LuaComponent>
  2075.    
  2076. +   <LuaComponent
  2077. +       script_source_file="data/scripts/status_effects/wither_start.lua"
  2078. +       execute_every_n_frame="4"
  2079. +       remove_after_executed="1"
  2080. +       >
  2081. +   </LuaComponent>
  2082. +  
  2083. +   <LuaComponent
  2084. +       script_source_file="data/scripts/status_effects/wither_end.lua"
  2085. +       execute_every_n_frame="-1"
  2086. +       execute_on_removed="1"
  2087. +       >
  2088. +   </LuaComponent>
  2089. +  
  2090.     <LifetimeComponent
  2091.         lifetime="1200"
  2092.         >
  2093.     </LifetimeComponent>
  2094.    
  2095.     <UIIconComponent
  2096. -       name="$status_weaken"
  2097. -       description="$statusdesc_weaken"
  2098. +       name="$status_weaken_combined"
  2099. +       description="$statusdesc_weaken_combined"
  2100.         icon_sprite_file="data/ui_gfx/status_indicators/scared.png"
  2101.         is_perk="0"
  2102.         display_above_head="0"
  2103.         display_in_hud="1"
  2104.         >
  2105.     </UIIconComponent>
  2106. +  
  2107. +   <VariableStorageComponent
  2108. +       name="wither_data"
  2109. +       value_string=""
  2110. +       >
  2111. +   </VariableStorageComponent>
  2112.  </Entity>
  2113. \ No newline at end of file
  2114. diff --git a/entities/misc/loose_ground_permanent.xml b/entities/misc/loose_ground_permanent.xml
  2115. new file mode 100644
  2116. index 0000000..d325daa
  2117. --- /dev/null
  2118. +++ b/entities/misc/loose_ground_permanent.xml
  2119. @@ -0,0 +1,12 @@
  2120. +<Entity>
  2121. +   <LooseGroundComponent
  2122. +       max_distance="150"
  2123. +       probability="0.2"
  2124. +       max_angle="3.1415926535"
  2125. +       chunk_max_angle="3.1415926535"
  2126. +       chunk_probability="0.03" >
  2127. +   </LooseGroundComponent>
  2128. +
  2129. +   <InheritTransformComponent>
  2130. +   </InheritTransformComponent>
  2131. +</Entity>
  2132. \ No newline at end of file
  2133. diff --git a/entities/misc/matter_eater.xml b/entities/misc/matter_eater.xml
  2134. index a9ce32d..c0aa8ca 100644
  2135. --- a/entities/misc/matter_eater.xml
  2136. +++ b/entities/misc/matter_eater.xml
  2137. @@ -6,6 +6,7 @@
  2138.         eat_probability="90"
  2139.          radius="8"
  2140.         ignored_material="rock_static_cursed"
  2141. +       ignored_material_tag="[matter_eater_ignore_list]"
  2142.         >
  2143.      </CellEaterComponent>
  2144.    
  2145. diff --git a/entities/misc/moon_effect_darksun.xml b/entities/misc/moon_effect_darksun.xml
  2146. new file mode 100644
  2147. index 0000000..02d0754
  2148. --- /dev/null
  2149. +++ b/entities/misc/moon_effect_darksun.xml
  2150. @@ -0,0 +1,18 @@
  2151. +<Entity>
  2152. +    <MagicConvertMaterialComponent
  2153. +      kill_when_finished="0"
  2154. +      from_any_material="1"
  2155. +      steps_per_frame="3"
  2156. +      to_material="material_darkness"
  2157. +      clean_stains="0"
  2158. +      is_circle="1"
  2159. +      radius="300"
  2160. +     >
  2161. +    </MagicConvertMaterialComponent>
  2162. +  
  2163. +   <LifetimeComponent
  2164. +       lifetime="160"
  2165. +       >
  2166. +   </LifetimeComponent>
  2167. +</Entity>
  2168. +
  2169. diff --git a/entities/misc/moon_effect_sun.xml b/entities/misc/moon_effect_sun.xml
  2170. new file mode 100644
  2171. index 0000000..09129ae
  2172. --- /dev/null
  2173. +++ b/entities/misc/moon_effect_sun.xml
  2174. @@ -0,0 +1,18 @@
  2175. +<Entity>
  2176. +    <MagicConvertMaterialComponent
  2177. +      kill_when_finished="0"
  2178. +      from_any_material="1"
  2179. +      steps_per_frame="3"
  2180. +      to_material="fire"
  2181. +      clean_stains="0"
  2182. +      is_circle="1"
  2183. +      radius="300"
  2184. +     >
  2185. +    </MagicConvertMaterialComponent>
  2186. +  
  2187. +   <LifetimeComponent
  2188. +       lifetime="160"
  2189. +       >
  2190. +   </LifetimeComponent>
  2191. +</Entity>
  2192. +
  2193. diff --git a/entities/misc/orbit_discs_disc.xml b/entities/misc/orbit_discs_disc.xml
  2194. index 6626bf1..0124722 100644
  2195. --- a/entities/misc/orbit_discs_disc.xml
  2196. +++ b/entities/misc/orbit_discs_disc.xml
  2197. @@ -23,7 +23,7 @@
  2198.      explosion_dont_damage_shooter="1"
  2199.      on_collision_die="1"
  2200.      on_collision_remove_projectile="0"
  2201. -    lifetime="9999"
  2202. +    lifetime="7200"
  2203.      damage="0"
  2204.      damage_scaled_by_speed="1"
  2205.      lifetime_randomness="7"
  2206. diff --git a/entities/misc/orbit_fireballs_fireball.xml b/entities/misc/orbit_fireballs_fireball.xml
  2207. index 7ac0922..2292fd7 100644
  2208. --- a/entities/misc/orbit_fireballs_fireball.xml
  2209. +++ b/entities/misc/orbit_fireballs_fireball.xml
  2210. @@ -24,7 +24,7 @@
  2211.     die_on_liquid_collision="1"
  2212.      damage="0"
  2213.      on_collision_die="1"
  2214. -    lifetime="9999"
  2215. +    lifetime="7200"
  2216.     muzzle_flash_file="data/entities/particles/muzzle_flashes/muzzle_flash_launcher_large.xml"
  2217.     shoot_light_flash_r="255"
  2218.      shoot_light_flash_g="140"
  2219. @@ -57,12 +57,12 @@
  2220.        physics_throw_enabled="1"
  2221.        shake_vegetation="1"
  2222.        sparks_enabled="1"
  2223. -      sparks_count_max="100"
  2224. -      sparks_count_min="50"
  2225. +      sparks_count_max="40"
  2226. +      sparks_count_min="20"
  2227.        light_fade_time="0.8"
  2228.        stains_enabled="1"
  2229.        stains_image="data/temp/explosion_stain.png"
  2230. -      audio_enabled="0" >
  2231. +      audio_enabled="1" >
  2232.      </config_explosion>
  2233.    </ProjectileComponent>
  2234.    
  2235. diff --git a/entities/misc/orbit_lasers_laser.xml b/entities/misc/orbit_lasers_laser.xml
  2236. index 26dc36c..9f43952 100644
  2237. --- a/entities/misc/orbit_lasers_laser.xml
  2238. +++ b/entities/misc/orbit_lasers_laser.xml
  2239. @@ -24,7 +24,7 @@
  2240.     explosion_dont_damage_shooter="1"
  2241.      damage="0.8"
  2242.      on_collision_die="0"
  2243. -    lifetime="9999"
  2244. +    lifetime="7200"
  2245.     knockback_force="1.3"
  2246.     >
  2247.    </ProjectileComponent>
  2248. diff --git a/entities/misc/orbit_nukes_nuke.xml b/entities/misc/orbit_nukes_nuke.xml
  2249. index e6dfc59..79745b8 100644
  2250. --- a/entities/misc/orbit_nukes_nuke.xml
  2251. +++ b/entities/misc/orbit_nukes_nuke.xml
  2252. @@ -24,7 +24,7 @@
  2253.      on_lifetime_out_explode="1"
  2254.      explosion_dont_damage_shooter="0"
  2255.      on_collision_die="1"
  2256. -    lifetime="9999"
  2257. +    lifetime="7200"
  2258.      damage="2"
  2259.      velocity_sets_scale="1"
  2260.      lifetime_randomness="7"
  2261. diff --git a/entities/misc/perks/fungus.xml b/entities/misc/perks/fungus.xml
  2262. index 90296e1..78383ac 100644
  2263. --- a/entities/misc/perks/fungus.xml
  2264. +++ b/entities/misc/perks/fungus.xml
  2265. @@ -107,6 +107,13 @@
  2266.      >
  2267.    </LuaComponent>
  2268.    
  2269. +  <LuaComponent
  2270. +    script_source_file="data/scripts/perks/fungus_init.lua"
  2271. +   execute_on_added="1"
  2272. +   remove_after_executed="1"
  2273. +    >
  2274. +  </LuaComponent>
  2275. +  
  2276.    <LuaComponent
  2277.         execute_on_removed="0"
  2278.         execute_every_n_frame="-1"
  2279. diff --git a/entities/projectiles/deck/black_hole.xml b/entities/projectiles/deck/black_hole.xml
  2280. index dd1b520..c49e0a3 100644
  2281. --- a/entities/projectiles/deck/black_hole.xml
  2282. +++ b/entities/projectiles/deck/black_hole.xml
  2283. @@ -111,7 +111,7 @@
  2284.     <CellEaterComponent
  2285.         radius="12"
  2286.         eat_dynamic_physics_bodies="1"
  2287. -       ignored_material="gem_box2d_yellow_sun"
  2288. +       ignored_material_tag="[indestructible]"
  2289.         >
  2290.     </CellEaterComponent>
  2291.  
  2292. diff --git a/entities/projectiles/deck/bounce_spark_friendly_fire.xml b/entities/projectiles/deck/bounce_spark_friendly_fire.xml
  2293. new file mode 100644
  2294. index 0000000..68dd44f
  2295. --- /dev/null
  2296. +++ b/entities/projectiles/deck/bounce_spark_friendly_fire.xml
  2297. @@ -0,0 +1,12 @@
  2298. +<Entity name="$projectile_default" tags="projectile_player" >
  2299. +
  2300. +   <Base file="data/entities/projectiles/deck/bounce_spark.xml">
  2301. +       <ProjectileComponent
  2302. +           friendly_fire="1"
  2303. +           collide_with_shooter_frames="8"
  2304. +           >
  2305. +       </ProjectileComponent>
  2306. +   </Base>
  2307. +
  2308. +</Entity>
  2309. +
  2310. diff --git a/entities/projectiles/deck/bounce_spark_friendly_fire_silent.xml b/entities/projectiles/deck/bounce_spark_friendly_fire_silent.xml
  2311. new file mode 100644
  2312. index 0000000..38cdbe8
  2313. --- /dev/null
  2314. +++ b/entities/projectiles/deck/bounce_spark_friendly_fire_silent.xml
  2315. @@ -0,0 +1,107 @@
  2316. +<Entity name="$projectile_default" tags="projectile_player" >
  2317. +
  2318. +   <Base file="data/entities/base_projectile.xml" >
  2319. +       <VelocityComponent
  2320. +           gravity_y="0"
  2321. +           air_friction="1.0"
  2322. +           mass="0.02"
  2323. +           >
  2324. +       </VelocityComponent>
  2325. +   </Base>
  2326. +
  2327. +   <ProjectileComponent
  2328. +       _enabled="1"
  2329. +       lob_min="0.5"
  2330. +       lob_max="0.7"
  2331. +       speed_min="200"
  2332. +       speed_max="300"
  2333. +       friction="1"
  2334. +       direction_random_rad="0.40"
  2335. +       on_death_explode="1"
  2336. +       on_death_gfx_leave_sprite="0"
  2337. +       on_lifetime_out_explode="1"
  2338. +       explosion_dont_damage_shooter="1"
  2339. +       on_collision_die="1"
  2340. +       lifetime="100"
  2341. +       damage="0.2"
  2342. +       friendly_fire="1"
  2343. +       collide_with_shooter_frames="8"
  2344. +       bounce_always="1"
  2345. +       bounces_left="20"
  2346. +       bounce_energy="0.5"
  2347. +       velocity_sets_scale="1"
  2348. +       lifetime_randomness="7"
  2349. +       ragdoll_force_multiplier="0.01"
  2350. +       hit_particle_force_multiplier="0.1"
  2351. +       velocity_sets_rotation="1"
  2352. +       muzzle_flash_file="data/entities/particles/muzzle_flashes/muzzle_flash_magic_small.xml"
  2353. +       shoot_light_flash_radius="64"
  2354. +       shoot_light_flash_r="70"
  2355. +       shoot_light_flash_g="190"
  2356. +       shoot_light_flash_b="255"
  2357. +       knockback_force="0.5"
  2358. +       physics_impulse_coeff="2000"
  2359. +       >
  2360. +       <config_explosion
  2361. +           never_cache="1"
  2362. +           damage="0"
  2363. +           camera_shake="0"
  2364. +           explosion_radius="4"
  2365. +           explosion_sprite="data/particles/background_cleaner_explosion.xml"
  2366. +           explosion_sprite_lifetime="0"
  2367. +           create_cell_probability="0"
  2368. +           hole_destroy_liquid="1"
  2369. +           hole_enabled="1"
  2370. +           ray_energy="400000"
  2371. +           particle_effect="0"
  2372. +           damage_mortals="1"
  2373. +           physics_explosion_power.min="0.05"
  2374. +           physics_explosion_power.max="0.1"
  2375. +           physics_throw_enabled="1"
  2376. +           shake_vegetation="1"
  2377. +           sparks_enabled="0"  
  2378. +           material_sparks_enabled="1"
  2379. +           material_sparks_count_max="2"
  2380. +           material_sparks_count_min="0"
  2381. +           light_enabled="0"
  2382. +           stains_enabled="1"
  2383. +           stains_radius="3" >
  2384. +       </config_explosion>
  2385. +   </ProjectileComponent>
  2386. +  
  2387. +   <SpriteComponent
  2388. +       _enabled="1"
  2389. +       alpha="1"
  2390. +       image_file="data/projectiles_gfx/background_cleaner.xml"
  2391. +       next_rect_animation=""
  2392. +       rect_animation="fireball"
  2393. +       emissive="1"
  2394. +       additive="1"
  2395. +       >
  2396. +   </SpriteComponent>
  2397. +
  2398. +   <SetStartVelocityComponent
  2399. +       randomize_speed.min="40"
  2400. +       randomize_speed.max="160"
  2401. +
  2402. +       randomize_angle.max="6.283185"
  2403. +       >
  2404. +   </SetStartVelocityComponent>
  2405. +  
  2406. +   <LightComponent
  2407. +       _enabled="1"
  2408. +       radius="60"
  2409. +       fade_out_time="0.1"
  2410. +       r="10"
  2411. +       g="40"
  2412. +       b="80">
  2413. +   </LightComponent>
  2414. +  
  2415. +   <VariableStorageComponent
  2416. +       name="projectile_file"
  2417. +       value_string="data/entities/projectiles/deck/bounce_spark_silent.xml"
  2418. +       >
  2419. +   </VariableStorageComponent>
  2420. +
  2421. +</Entity>
  2422. +
  2423. diff --git a/entities/projectiles/deck/bounce_spark_main.xml b/entities/projectiles/deck/bounce_spark_main.xml
  2424. index 7338755..f05fc6b 100644
  2425. --- a/entities/projectiles/deck/bounce_spark_main.xml
  2426. +++ b/entities/projectiles/deck/bounce_spark_main.xml
  2427. @@ -1,16 +1,7 @@
  2428.  <Entity>
  2429. -    <LoadEntitiesComponent
  2430. -        count.min="1"
  2431. -        count.max="1"
  2432. -        entity_file="data/entities/projectiles/deck/bounce_spark.xml"
  2433. -        kill_entity="1">
  2434. -    </LoadEntitiesComponent>
  2435. -
  2436. -    <!-- negative count.min for lowered odds of spawning -->
  2437. -    <LoadEntitiesComponent
  2438. -        count.min="-2"
  2439. -        count.max="1"
  2440. -        entity_file="data/entities/projectiles/deck/bounce_spark_silent.xml"
  2441. -        kill_entity="1">
  2442. -    </LoadEntitiesComponent>
  2443. +   <LuaComponent
  2444. +       script_source_file="data/scripts/projectiles/bounce_spark_main.lua"
  2445. +       execute_every_n_frame="1"
  2446. +       >
  2447. +   </LuaComponent>
  2448.  </Entity>
  2449. \ No newline at end of file
  2450. diff --git a/entities/projectiles/deck/explosion_giga.xml b/entities/projectiles/deck/explosion_giga.xml
  2451. index 9cf9282..4c7755a 100644
  2452. --- a/entities/projectiles/deck/explosion_giga.xml
  2453. +++ b/entities/projectiles/deck/explosion_giga.xml
  2454. @@ -30,7 +30,7 @@
  2455.        camera_shake="60"
  2456.        explosion_radius="250"
  2457.        explosion_sprite="data/particles/explosion_032.xml"
  2458. -     load_this_entity="data/entities/particles/particle_explosion/main_large.xml,data/entities/misc/loose_chunks.xml,data/entities/misc/explosion_was_here.xml"
  2459. +     load_this_entity="data/entities/particles/particle_explosion/main_large.xml,data/entities/misc/explosion_was_here.xml"
  2460.        explosion_sprite_lifetime="0"
  2461.        create_cell_probability="5"
  2462.        hole_destroy_liquid="0"
  2463. diff --git a/entities/projectiles/deck/tntbox.xml b/entities/projectiles/deck/tntbox.xml
  2464. index b4cef58..32ed405 100644
  2465. --- a/entities/projectiles/deck/tntbox.xml
  2466. +++ b/entities/projectiles/deck/tntbox.xml
  2467. @@ -27,7 +27,29 @@
  2468.      penetrate_entities="1"
  2469.      damage="0.0"
  2470.      do_moveto_update="0"
  2471. -  ></ProjectileComponent>
  2472. +   on_lifetime_out_explode="1"
  2473. +   >
  2474. +   <config_explosion
  2475. +      never_cache="0"
  2476. +      damage="5"
  2477. +      camera_shake="10"
  2478. +      explosion_radius="40"
  2479. +      explosion_sprite="data/particles/explosion_032.xml"
  2480. +     load_this_entity="data/entities/particles/particle_explosion/main_gunpowder_tiny.xml"
  2481. +      explosion_sprite_lifetime="0"
  2482. +      create_cell_probability="80"
  2483. +      hole_destroy_liquid="1"
  2484. +     ray_energy="350000"
  2485. +      hole_enabled="1"
  2486. +      particle_effect="1"
  2487. +      damage_mortals="1"
  2488. +      physics_throw_enabled="1"
  2489. +      shake_vegetation="0"
  2490. +      sparks_enabled="1"
  2491. +      stains_enabled="0"
  2492. +      >
  2493. +    </config_explosion>
  2494. +  </ProjectileComponent>
  2495.  
  2496.    <VelocityComponent
  2497.      _tags="enabled_in_world"
  2498. @@ -72,27 +94,28 @@
  2499.    
  2500.    <ExplodeOnDamageComponent
  2501.     explode_on_death_percent="1"
  2502. -   explode_on_damage_percent="0.0"
  2503. +   explode_on_damage_percent="0.1"
  2504.      physics_body_modified_death_probability="0.9"
  2505.      physics_body_destruction_required="0.8"
  2506.     >
  2507.      <config_explosion
  2508.        never_cache="0"
  2509.        damage="5"
  2510. -      camera_shake="10"
  2511. -      explosion_radius="40"
  2512. -      explosion_sprite=""
  2513. -      explosion_sprite_lifetime="0"
  2514. -      create_cell_probability="80"
  2515. -      hole_destroy_liquid="0"
  2516. -      hole_enabled="0"
  2517. -      ray_energy="0"
  2518. -      particle_effect="1"
  2519. -      damage_mortals="0"
  2520. +      camera_shake="10"
  2521. +      explosion_radius="40"
  2522. +      explosion_sprite="data/particles/explosion_032.xml"
  2523. +     load_this_entity="data/entities/particles/particle_explosion/main_gunpowder_tiny.xml"
  2524. +      explosion_sprite_lifetime="0"
  2525. +      create_cell_probability="80"
  2526. +      hole_destroy_liquid="1"
  2527. +     ray_energy="350000"
  2528. +      hole_enabled="1"
  2529. +      particle_effect="1"
  2530. +      damage_mortals="1"
  2531.        physics_throw_enabled="1"
  2532. -      shake_vegetation="0"
  2533. -      sparks_enabled="1"
  2534. -      stains_enabled="0"
  2535. +      shake_vegetation="0"
  2536. +      sparks_enabled="1"
  2537. +      stains_enabled="0"
  2538.        >
  2539.      </config_explosion>
  2540.    </ExplodeOnDamageComponent>
  2541. diff --git a/entities/projectiles/deck/tntbox_big.xml b/entities/projectiles/deck/tntbox_big.xml
  2542. index 4b511c5..dae261c 100644
  2543. --- a/entities/projectiles/deck/tntbox_big.xml
  2544. +++ b/entities/projectiles/deck/tntbox_big.xml
  2545. @@ -27,7 +27,29 @@
  2546.      penetrate_entities="1"
  2547.      damage="0.0"
  2548.      do_moveto_update="0"
  2549. -  ></ProjectileComponent>
  2550. +   on_lifetime_out_explode="1"
  2551. +   >
  2552. +   <config_explosion
  2553. +      never_cache="0"
  2554. +      damage="8"
  2555. +      camera_shake="15"
  2556. +      explosion_radius="60"
  2557. +      explosion_sprite="data/particles/explosion_040_poof.xml"
  2558. +     load_this_entity="data/entities/particles/particle_explosion/main_gunpowder_medium.xml"
  2559. +      explosion_sprite_lifetime="0"
  2560. +      create_cell_probability="80"
  2561. +      hole_destroy_liquid="1"
  2562. +     ray_energy="650000"
  2563. +      hole_enabled="1"
  2564. +      particle_effect="1"
  2565. +      damage_mortals="1"
  2566. +      physics_throw_enabled="1"
  2567. +      shake_vegetation="0"
  2568. +      sparks_enabled="1"
  2569. +      stains_enabled="0"
  2570. +      >
  2571. +    </config_explosion>
  2572. +  </ProjectileComponent>
  2573.  
  2574.    <VelocityComponent
  2575.      _tags="enabled_in_world"
  2576. @@ -72,7 +94,7 @@
  2577.    
  2578.    <ExplodeOnDamageComponent
  2579.     explode_on_death_percent="1"
  2580. -   explode_on_damage_percent="0.0"
  2581. +   explode_on_damage_percent="0.1"
  2582.      physics_body_modified_death_probability="0.9"
  2583.      physics_body_destruction_required="0.8"
  2584.     >
  2585. @@ -81,14 +103,15 @@
  2586.        damage="8"
  2587.        camera_shake="15"
  2588.        explosion_radius="60"
  2589. -      explosion_sprite=""
  2590. +      explosion_sprite="data/particles/explosion_040_poof.xml"
  2591. +     load_this_entity="data/entities/particles/particle_explosion/main_gunpowder_medium.xml"
  2592.        explosion_sprite_lifetime="0"
  2593.        create_cell_probability="80"
  2594. -      hole_destroy_liquid="0"
  2595. -      hole_enabled="0"
  2596. -      ray_energy="0"
  2597. +      hole_destroy_liquid="1"
  2598. +     ray_energy="650000"
  2599. +      hole_enabled="1"
  2600.        particle_effect="1"
  2601. -      damage_mortals="0"
  2602. +      damage_mortals="1"
  2603.        physics_throw_enabled="1"
  2604.        shake_vegetation="0"
  2605.        sparks_enabled="1"
  2606. diff --git a/generated/material_icons/rock_static_trip_secret.png b/generated/material_icons/rock_static_trip_secret.png
  2607. new file mode 100644
  2608. index 0000000..8580b18
  2609. Binary files /dev/null and b/generated/material_icons/rock_static_trip_secret.png differ
  2610. diff --git a/generated/material_icons/rock_static_trip_secret2.png b/generated/material_icons/rock_static_trip_secret2.png
  2611. new file mode 100644
  2612. index 0000000..8580b18
  2613. Binary files /dev/null and b/generated/material_icons/rock_static_trip_secret2.png differ
  2614. diff --git a/items_gfx/in_hand/musicstone.png b/items_gfx/in_hand/musicstone.png
  2615. new file mode 100644
  2616. index 0000000..3c6e81a
  2617. Binary files /dev/null and b/items_gfx/in_hand/musicstone.png differ
  2618. diff --git a/items_gfx/musicstone.png b/items_gfx/musicstone.png
  2619. new file mode 100644
  2620. index 0000000..6a1bfb2
  2621. Binary files /dev/null and b/items_gfx/musicstone.png differ
  2622. diff --git a/items_gfx/normals_orb_128_noise.png b/items_gfx/normals_orb_128_noise.png
  2623. index a5f865c..5db5568 100644
  2624. Binary files a/items_gfx/normals_orb_128_noise.png and b/items_gfx/normals_orb_128_noise.png differ
  2625. diff --git a/items_gfx/normals_orb_56_noise.png b/items_gfx/normals_orb_56_noise.png
  2626. new file mode 100644
  2627. index 0000000..28d5051
  2628. Binary files /dev/null and b/items_gfx/normals_orb_56_noise.png differ
  2629. diff --git a/materials.xml b/materials.xml
  2630. index ed1d899..efbfc1a 100644
  2631. --- a/materials.xml
  2632. +++ b/materials.xml
  2633. @@ -840,6 +840,120 @@
  2634.     _parent="rock_static"
  2635.     _inherit_reactions="1"
  2636.     tags="[static],[alchemy],[solid],[earth]"
  2637. +   name="rock_static_trip_secret"
  2638. +   ui_name="$mat_rock_static"
  2639. +   wang_color="ff0abba4"
  2640. +   hp="160000"
  2641. +   audio_physics_material_event="rock"
  2642. +   audio_physics_material_wall="rock"
  2643. +   audio_physics_material_solid="rock"
  2644. +   >
  2645. +   <Graphics
  2646. +       texture_file="data/materials_gfx/rock.png"
  2647. +       color="ff313b36"
  2648. +       pixel_all_around="ff313b36"
  2649. +       >
  2650. +       <Edge>
  2651. +           <EdgeGraphics
  2652. +               color="ff233112"
  2653. +               overwrite="0"
  2654. +               percent="0.3"
  2655. +               require_same_material="0"
  2656. +               require_same_material_type="1"
  2657. +               type="EVERYWHERE"
  2658. +               z="1" >
  2659. +               <Images>
  2660. +                   <Image
  2661. +                       allow_random_rotation="1"
  2662. +                       filename="data/materials_gfx/edge_files/edge_rock_1.png"
  2663. +                   />
  2664. +                   <Image
  2665. +                       allow_random_rotation="1"
  2666. +                       filename="data/materials_gfx/edge_files/edge_rock_2.png"
  2667. +                   />
  2668. +                   <Image
  2669. +                       allow_random_rotation="1"
  2670. +                       filename="data/materials_gfx/edge_files/edge_rock_3.png"
  2671. +                   />
  2672. +                   <Image
  2673. +                       allow_random_rotation="1"
  2674. +                       filename="data/materials_gfx/edge_files/edge_rock_4.png"
  2675. +                   />
  2676. +                   <Image
  2677. +                       allow_random_rotation="1"
  2678. +                       filename="data/materials_gfx/edge_files/edge_rock_5.png"
  2679. +                   />
  2680. +                   <Image
  2681. +                       allow_random_rotation="1"
  2682. +                       filename="data/materials_gfx/edge_files/edge_rock_6.png"
  2683. +                   />
  2684. +               </Images>
  2685. +           </EdgeGraphics>
  2686. +       </Edge>
  2687. +   </Graphics>
  2688. +  </CellDataChild>
  2689. +  
  2690. +  <CellDataChild
  2691. +   _parent="rock_static"
  2692. +   _inherit_reactions="1"
  2693. +   tags="[static],[alchemy],[solid],[earth]"
  2694. +   name="rock_static_trip_secret2"
  2695. +   ui_name="$mat_rock_static"
  2696. +   wang_color="ff0baab4"
  2697. +   hp="160000"
  2698. +   audio_physics_material_event="rock"
  2699. +   audio_physics_material_wall="rock"
  2700. +   audio_physics_material_solid="rock"
  2701. +   >
  2702. +   <Graphics
  2703. +       texture_file="data/materials_gfx/rock.png"
  2704. +       color="ff313b36"
  2705. +       pixel_all_around="ff313b36"
  2706. +       >
  2707. +       <Edge>
  2708. +           <EdgeGraphics
  2709. +               color="ff233112"
  2710. +               overwrite="0"
  2711. +               percent="0.3"
  2712. +               require_same_material="0"
  2713. +               require_same_material_type="1"
  2714. +               type="EVERYWHERE"
  2715. +               z="1" >
  2716. +               <Images>
  2717. +                   <Image
  2718. +                       allow_random_rotation="1"
  2719. +                       filename="data/materials_gfx/edge_files/edge_rock_1.png"
  2720. +                   />
  2721. +                   <Image
  2722. +                       allow_random_rotation="1"
  2723. +                       filename="data/materials_gfx/edge_files/edge_rock_2.png"
  2724. +                   />
  2725. +                   <Image
  2726. +                       allow_random_rotation="1"
  2727. +                       filename="data/materials_gfx/edge_files/edge_rock_3.png"
  2728. +                   />
  2729. +                   <Image
  2730. +                       allow_random_rotation="1"
  2731. +                       filename="data/materials_gfx/edge_files/edge_rock_4.png"
  2732. +                   />
  2733. +                   <Image
  2734. +                       allow_random_rotation="1"
  2735. +                       filename="data/materials_gfx/edge_files/edge_rock_5.png"
  2736. +                   />
  2737. +                   <Image
  2738. +                       allow_random_rotation="1"
  2739. +                       filename="data/materials_gfx/edge_files/edge_rock_6.png"
  2740. +                   />
  2741. +               </Images>
  2742. +           </EdgeGraphics>
  2743. +       </Edge>
  2744. +   </Graphics>
  2745. +  </CellDataChild>
  2746. +  
  2747. +  <CellDataChild
  2748. +   _parent="rock_static"
  2749. +   _inherit_reactions="1"
  2750. +   tags="[static],[alchemy],[solid],[earth],[matter_eater_ignore_list]"
  2751.     name="rock_static_cursed"
  2752.     ui_name="$mat_rock_static_cursed"
  2753.     wang_color="ff3f4d3e"
  2754. @@ -11571,7 +11685,7 @@
  2755.    <CellData
  2756.     name="sulphur_box2d"
  2757.     ui_name="$mat_sulphur"
  2758. -   tags="[box2d],[alchemy],[solid],[corrodible]"
  2759. +   tags="[box2d],[solid],[sunbaby_ignore_list]"
  2760.     burnable="0"
  2761.     fire_hp="-1"
  2762.     density="8"
  2763. @@ -12105,7 +12219,7 @@
  2764.    <CellDataChild
  2765.     _parent="aluminium"
  2766.     _inherit_reactions="1"
  2767. -   tags="[box2d],[solid]"
  2768. +   tags="[box2d],[solid],[sunbaby_ignore_list]"
  2769.     name="rock_box2d_hard"
  2770.     ui_name="$mat_rock_box2d_hard"
  2771.     platform_type="1"
  2772. @@ -12311,7 +12425,7 @@
  2773.    <CellDataChild
  2774.     _parent="aluminium"
  2775.     _inherit_reactions="1"
  2776. -   tags="[box2d]"
  2777. +   tags="[box2d],[sunbaby_ignore_list]"
  2778.     name="gem_box2d"
  2779.     ui_name="$mat_gem_box2d"
  2780.     platform_type="0"
  2781. @@ -12383,6 +12497,7 @@
  2782.    <CellDataChild
  2783.     _parent="gem_box2d"
  2784.     _inherit_reactions="1"
  2785. +   tags="[box2d],[matter_eater_ignore_list],[indestructible],[sunbaby_ignore_list]"
  2786.     name="gem_box2d_yellow_sun"
  2787.     ui_name="$mat_gem_box2d_red"
  2788.     gfx_glow_color="0xffff9919"
  2789. diff --git a/props_gfx/sun_big.png b/props_gfx/sun_big.png
  2790. new file mode 100644
  2791. index 0000000..f0251bd
  2792. Binary files /dev/null and b/props_gfx/sun_big.png differ
  2793. diff --git a/props_gfx/sun_big_dark.png b/props_gfx/sun_big_dark.png
  2794. new file mode 100644
  2795. index 0000000..11a634b
  2796. Binary files /dev/null and b/props_gfx/sun_big_dark.png differ
  2797. diff --git a/props_gfx/sun_small.png b/props_gfx/sun_small.png
  2798. new file mode 100644
  2799. index 0000000..7cd20b1
  2800. Binary files /dev/null and b/props_gfx/sun_small.png differ
  2801. diff --git a/props_gfx/sun_small_blue.png b/props_gfx/sun_small_blue.png
  2802. new file mode 100644
  2803. index 0000000..3645a85
  2804. Binary files /dev/null and b/props_gfx/sun_small_blue.png differ
  2805. diff --git a/props_gfx/sun_small_green.png b/props_gfx/sun_small_green.png
  2806. new file mode 100644
  2807. index 0000000..8efa3ae
  2808. Binary files /dev/null and b/props_gfx/sun_small_green.png differ
  2809. diff --git a/props_gfx/sun_small_orange.png b/props_gfx/sun_small_orange.png
  2810. new file mode 100644
  2811. index 0000000..ba5e5bd
  2812. Binary files /dev/null and b/props_gfx/sun_small_orange.png differ
  2813. diff --git a/props_gfx/sun_small_purple.png b/props_gfx/sun_small_purple.png
  2814. new file mode 100644
  2815. index 0000000..8183c63
  2816. Binary files /dev/null and b/props_gfx/sun_small_purple.png differ
  2817. diff --git a/props_gfx/sun_small_red.png b/props_gfx/sun_small_red.png
  2818. new file mode 100644
  2819. index 0000000..ec2bd8d
  2820. Binary files /dev/null and b/props_gfx/sun_small_red.png differ
  2821. diff --git a/scripts/animals/necrobot.lua b/scripts/animals/necrobot.lua
  2822. index 7d56fd7..5247ac3 100644
  2823. --- a/scripts/animals/necrobot.lua
  2824. +++ b/scripts/animals/necrobot.lua
  2825. @@ -2,7 +2,7 @@ dofile_once("data/scripts/lib/utilities.lua")
  2826.  
  2827.  local entity_id = GetUpdatedEntityID()
  2828.  local x, y = EntityGetTransform( entity_id )
  2829. -local radius = 192
  2830. +local radius = 144
  2831.  
  2832.  local targets = EntityGetInRadiusWithTag( x, y, radius, "mortal" )
  2833.  local found = false
  2834. diff --git a/scripts/animals/necrobot_super.lua b/scripts/animals/necrobot_super.lua
  2835. index edd9870..85b897b 100644
  2836. --- a/scripts/animals/necrobot_super.lua
  2837. +++ b/scripts/animals/necrobot_super.lua
  2838. @@ -2,7 +2,7 @@ dofile_once("data/scripts/lib/utilities.lua")
  2839.  
  2840.  local entity_id = GetUpdatedEntityID()
  2841.  local x, y = EntityGetTransform( entity_id )
  2842. -local radius = 192
  2843. +local radius = 144
  2844.  
  2845.  local targets = EntityGetInRadiusWithTag( x, y, radius, "mortal" )
  2846.  local found = false
  2847. diff --git a/scripts/biomes/funroom.lua b/scripts/biomes/funroom.lua
  2848. new file mode 100644
  2849. index 0000000..17d82fe
  2850. --- /dev/null
  2851. +++ b/scripts/biomes/funroom.lua
  2852. @@ -0,0 +1,35 @@
  2853. +CHEST_LEVEL = 3
  2854. +dofile_once("data/scripts/director_helpers.lua")
  2855. +dofile_once("data/scripts/biome_scripts.lua")
  2856. +dofile_once("data/scripts/lib/utilities.lua")
  2857. +
  2858. +RegisterSpawnFunction( 0xffffeedd, "init" )
  2859. +RegisterSpawnFunction( 0xff00ffaa, "spawn_fun" )
  2860. +
  2861. +function spawn_small_enemies( x, y ) end
  2862. +function spawn_big_enemies( x, y ) end
  2863. +function spawn_items( x, y ) end
  2864. +function spawn_props( x, y ) end
  2865. +function spawn_props2( x, y ) end
  2866. +function spawn_props3( x, y ) end
  2867. +function spawn_lamp( x, y ) end
  2868. +function load_pixel_scene( x, y ) end
  2869. +function load_pixel_scene2( x, y ) end
  2870. +function spawn_unique_enemy( x, y ) end
  2871. +function spawn_unique_enemy2( x, y ) end
  2872. +function spawn_unique_enemy3( x, y ) end
  2873. +function spawn_ghostlamp( x, y ) end
  2874. +function spawn_candles( x, y ) end
  2875. +function spawn_potions( x, y ) end
  2876. +function spawn_wands( x, y ) end
  2877. +
  2878. +function init( x, y, w, h )
  2879. +   LoadPixelScene( "data/biome_impl/funroom.png", "", x, y, "", true )
  2880. +end
  2881. +
  2882. +function spawn_orb(x, y)
  2883. +end
  2884. +
  2885. +function spawn_fun(x, y)
  2886. +   EntityLoad( "data/entities/buildings/funroom_check.xml", x, y )
  2887. +end
  2888. \ No newline at end of file
  2889. diff --git a/scripts/biomes/ghost_secret.lua b/scripts/biomes/ghost_secret.lua
  2890. index e906033..aeb00c0 100644
  2891. --- a/scripts/biomes/ghost_secret.lua
  2892. +++ b/scripts/biomes/ghost_secret.lua
  2893. @@ -27,7 +27,7 @@ function init( x, y, w, h )
  2894.  end
  2895.  
  2896.  function spawn_orb(x, y)
  2897. -   EntityLoad( "data/entities/animals/boss_ghost/boss_ghost.xml", x, y )
  2898. +   EntityLoad( "data/entities/animals/boss_ghost/ghost_spawn_check.xml", x, y )
  2899.     EntityLoad( "data/entities/buildings/hpcrystal.xml", x - 64, y )
  2900.     EntityLoad( "data/entities/buildings/hpcrystal.xml", x + 64, y )
  2901.     EntityLoad( "data/entities/buildings/snowcrystal.xml", x, y )
  2902. diff --git a/scripts/biomes/mountain_tree.lua b/scripts/biomes/mountain_tree.lua
  2903. index 4cbd5a7..8c0e199 100644
  2904. --- a/scripts/biomes/mountain_tree.lua
  2905. +++ b/scripts/biomes/mountain_tree.lua
  2906. @@ -294,7 +294,7 @@ function spawn_pillars( x, y )
  2907.     local flags =
  2908.     {
  2909.         { { "misc_chest_rain", "crain" }, { "misc_worm_rain", "wrain" }, { "misc_greed_rain", "grain" }, { "misc_altar_tablet", "train" }, { "misc_monk_bots", "mbots" }, { "secret_tower", "secrett" }, { "player_status_ghostly", "pghost" }, { "player_status_ratty", "prat" }, { "player_status_funky", "pfungi" } },
  2910. -       { { "essence_fire", "essencef" }, { "essence_water", "essencew" }, { "essence_laser", "essencee" }, { "essence_air", "essencea" }, { "essence_alcohol", "essenceal" }, { "secret_moon", "moon" }, { "secret_moon2", "moona" }, { "special_mood", "moong" }, { "secret_dmoon", "dmoon" }, { "dead_mood", "dmoong" } },
  2911. +       { { "essence_fire", "essencef" }, { "essence_water", "essencew" }, { "essence_laser", "essencee" }, { "essence_air", "essencea" }, { "essence_alcohol", "essenceal" }, { "secret_moon", "moon" }, { "secret_moon2", "moona" }, { "special_mood", "moong" }, { "secret_dmoon", "dmoon" }, { "dead_mood", "dmoong" }, { "secret_sun_collision", "sun" }, { "secret_darksun_collision", "dsun" } },
  2912.         { { "progress_ending0", "end0" }, { "progress_ending1_toxic", "endt" }, { "progress_ending1_gold", "endb" }, { "progress_ending2", "endg" }, { "progress_newgameplusplus3", "endp" }, { "progress_nightmare", "endn" } },
  2913.         { { "miniboss_dragon", "minid" }, { "miniboss_limbs", "minil" }, { "miniboss_ghost", "minigh" }, { "miniboss_pit", "minip" }, { "miniboss_alchemist", "minia" }, { "miniboss_wizard", "meme" }, { "miniboss_gate_monsters", "minigm" }, { "boss_centipede", "boss" } },
  2914.         { { "progress_orb_1", "orbf" }, { "progress_orb_evil", "orbe" }, { "progress_orb_all", "orba" }, { "progress_pacifist", "pacifist" }, { "progress_nogold", "nogold" }, { "progress_clock", "clock" }, { "progress_minit", "minit" }, { "progress_nohit", "nohit" } },
  2915. diff --git a/scripts/biomes/rock_room.lua b/scripts/biomes/rock_room.lua
  2916. new file mode 100644
  2917. index 0000000..d51ebcf
  2918. --- /dev/null
  2919. +++ b/scripts/biomes/rock_room.lua
  2920. @@ -0,0 +1,36 @@
  2921. +CHEST_LEVEL = 3
  2922. +dofile_once("data/scripts/director_helpers.lua")
  2923. +dofile_once("data/scripts/biome_scripts.lua")
  2924. +dofile_once("data/scripts/lib/utilities.lua")
  2925. +dofile_once("data/scripts/perks/perk.lua")
  2926. +
  2927. +RegisterSpawnFunction( 0xffffeedd, "init" )
  2928. +RegisterSpawnFunction( 0xff31d0b4, "spawn_essence" )
  2929. +
  2930. +function spawn_small_enemies( x, y ) end
  2931. +function spawn_big_enemies( x, y ) end
  2932. +function spawn_items( x, y ) end
  2933. +function spawn_props( x, y ) end
  2934. +function spawn_props2( x, y ) end
  2935. +function spawn_props3( x, y ) end
  2936. +function spawn_lamp( x, y ) end
  2937. +function load_pixel_scene( x, y ) end
  2938. +function load_pixel_scene2( x, y ) end
  2939. +function spawn_unique_enemy( x, y ) end
  2940. +function spawn_unique_enemy2( x, y ) end
  2941. +function spawn_unique_enemy3( x, y ) end
  2942. +function spawn_ghostlamp( x, y ) end
  2943. +function spawn_candles( x, y ) end
  2944. +function spawn_potions( x, y ) end
  2945. +function spawn_wands( x, y ) end
  2946. +
  2947. +function init( x, y, w, h )
  2948. +   LoadPixelScene( "data/biome_impl/essenceroom.png", "", x, y, "", true )
  2949. +end
  2950. +
  2951. +function spawn_orb(x, y)
  2952. +end
  2953. +
  2954. +function spawn_essence(x, y)
  2955. +   EntityLoad( "data/entities/items/pickup/musicstone.xml", x, y )
  2956. +end
  2957. \ No newline at end of file
  2958. diff --git a/scripts/biomes/winter.lua b/scripts/biomes/winter.lua
  2959. index 0973e40..847b179 100644
  2960. --- a/scripts/biomes/winter.lua
  2961. +++ b/scripts/biomes/winter.lua
  2962. @@ -76,9 +76,21 @@ g_big_enemies =
  2963.     {
  2964.         prob        = 0.2,
  2965.         min_count   = 1,
  2966. -       max_count   = 1,    
  2967. +       max_count   = 1,
  2968.         entity  = "data/entities/animals/thundermage.xml"
  2969.     },
  2970. +   {
  2971. +       prob        = 0.15,
  2972. +       min_count   = 1,
  2973. +       max_count   = 1,
  2974. +       entity  = "data/entities/animals/phantom_a.xml"
  2975. +   },
  2976. +   {
  2977. +       prob        = 0.15,
  2978. +       min_count   = 1,
  2979. +       max_count   = 1,
  2980. +       entity  = "data/entities/animals/phantom_b.xml"
  2981. +   },
  2982.     {
  2983.         prob        = 0.2,
  2984.         min_count   = 1,
  2985. @@ -92,7 +104,7 @@ g_big_enemies =
  2986.         entity  = "data/entities/animals/thundermage_big.xml"
  2987.     },
  2988.     {
  2989. -       prob        = 0.4,
  2990. +       prob        = 0.3,
  2991.         min_count   = 1,
  2992.         max_count   = 1,    
  2993.         entity  = "data/entities/buildings/snowcrystal.xml"
  2994. @@ -110,7 +122,7 @@ g_big_enemies =
  2995.         entity  = "data/entities/animals/ethereal_being.xml"
  2996.     },
  2997.     {
  2998. -       prob        = 0.1,
  2999. +       prob        = 0.2,
  3000.         min_count   = 1,
  3001.         max_count   = 1,    
  3002.         entity  = "data/entities/buildings/ghost_crystal.xml"
  3003. diff --git a/scripts/buildings/funroom_check.lua b/scripts/buildings/funroom_check.lua
  3004. new file mode 100644
  3005. index 0000000..95d237e
  3006. --- /dev/null
  3007. +++ b/scripts/buildings/funroom_check.lua
  3008. @@ -0,0 +1,17 @@
  3009. +dofile_once("data/scripts/lib/utilities.lua")
  3010. +
  3011. +local entity_id    = GetUpdatedEntityID()
  3012. +local x, y = EntityGetTransform( entity_id )
  3013. +local radius = 24
  3014. +
  3015. +local targets = EntityGetInRadiusWithTag( x, y, radius, "player_unit" )
  3016. +local targets2 = EntityGetInRadiusWithTag( x, y, radius, "tripping_extreme" )
  3017. +
  3018. +if ( #targets > 0 ) and ( #targets2 > 0 ) then
  3019. +   GameTriggerMusicEvent( "music/oneshot/tripping_balls_02", false, x, y )
  3020. +   ConvertMaterialEverywhere( CellFactory_GetType( "rock_static_trip_secret2" ), CellFactory_GetType( "templebrick_golden_static" ) )
  3021. +   ConvertMaterialEverywhere( CellFactory_GetType( "rock_static_trip_secret" ), CellFactory_GetType( "material_rainbow" ) )
  3022. +   GameScreenshake( 80, x, y )
  3023. +  
  3024. +   EntityKill( entity_id )
  3025. +end
  3026. \ No newline at end of file
  3027. diff --git a/scripts/buildings/racing_cart_checkpoint.lua b/scripts/buildings/racing_cart_checkpoint.lua
  3028. index 35a30c5..b35899e 100644
  3029. --- a/scripts/buildings/racing_cart_checkpoint.lua
  3030. +++ b/scripts/buildings/racing_cart_checkpoint.lua
  3031. @@ -46,7 +46,7 @@ function collision_trigger(colliding_id)
  3032.  
  3033.                     -- update best time display
  3034.                     -- TODO: fx on watch
  3035. -                   local stopwatch_id = EntityGetClosestWithTag(pos_x, pos_y, "stopwatch_best_lap")
  3036. +                   stopwatch_id = EntityGetClosestWithTag(pos_x, pos_y, "stopwatch_best_lap")
  3037.                     if stopwatch_id ~= nil then
  3038.                         ComponentSetValue2(get_variable_storage_component(stopwatch_id, "time"), "value_int", best_time)
  3039.                     end
  3040. diff --git a/scripts/buildings/snowcrystal.lua b/scripts/buildings/snowcrystal.lua
  3041. index 0d58b63..589fbe2 100644
  3042. --- a/scripts/buildings/snowcrystal.lua
  3043. +++ b/scripts/buildings/snowcrystal.lua
  3044. @@ -15,7 +15,8 @@ function spawn_ghost()
  3045.     local rnd = Random( 1, #opts )
  3046.     local opt = "data/entities/animals/illusions/" .. opts[rnd] .. ".xml"
  3047.    
  3048. -   local p = EntityGetWithTag( "player_unit" )
  3049. +   local max_radius = 240
  3050. +   local p = EntityGetInRadiusWithTag( x, y, max_radius, "player_unit" )
  3051.    
  3052.     if ( #p > 0 ) then
  3053.         local t = p[1]
  3054. diff --git a/scripts/buildings/sun/spot_1.lua b/scripts/buildings/sun/spot_1.lua
  3055. index bb033cc..a9385d4 100644
  3056. --- a/scripts/buildings/sun/spot_1.lua
  3057. +++ b/scripts/buildings/sun/spot_1.lua
  3058. @@ -12,7 +12,8 @@ for _,id in pairs(EntityGetInRadiusWithTag(pos_x, pos_y, 64, "seed_a")) do
  3059.     if EntityGetRootEntity(id) == id then
  3060.         -- start conversion
  3061.         local x,y = EntityGetTransform( id )
  3062. -       EntityLoad("data/entities/buildings/sun/spot_1_process.xml", x, y)
  3063. +       local eid = EntityLoad("data/entities/buildings/sun/spot_1_process.xml", x, y)
  3064. +       EntityAddChild( id, eid )
  3065.         GamePlaySound( "data/audio/Desktop/projectiles.snd", "projectiles/magic/create", x, y )
  3066.         return
  3067.     end
  3068. diff --git a/scripts/buildings/sun/spot_1_finish.lua b/scripts/buildings/sun/spot_1_finish.lua
  3069. index 9488d06..4b01fd2 100644
  3070. --- a/scripts/buildings/sun/spot_1_finish.lua
  3071. +++ b/scripts/buildings/sun/spot_1_finish.lua
  3072. @@ -12,7 +12,7 @@ for _,id in pairs(EntityGetInRadiusWithTag(pos_x, pos_y, 70, "seed_a")) do
  3073.     if EntityGetRootEntity(id) == id then
  3074.         local x,y = EntityGetTransform(id)
  3075.         EntityLoad("data/entities/items/pickup/sun/sunstone.xml", x, y)
  3076. -       EntityLoad("data/entities/projectiles/explosion.xml", x, y)
  3077. +       EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3078.         EntityKill(id)
  3079.         converted = true
  3080.     end
  3081. diff --git a/scripts/buildings/sun/spot_2.lua b/scripts/buildings/sun/spot_2.lua
  3082. index 3887aff..365cfc5 100644
  3083. --- a/scripts/buildings/sun/spot_2.lua
  3084. +++ b/scripts/buildings/sun/spot_2.lua
  3085. @@ -31,7 +31,7 @@ local explosions = EntityGetInRadiusWithTag( x, y, 120, "big_explosion" )
  3086.  
  3087.  if ( #explosions > 5 ) then
  3088.     EntityLoad("data/entities/items/pickup/sun/sunegg.xml", x, y)
  3089. -   EntityLoad("data/entities/projectiles/explosion.xml", x, y)
  3090. +   EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3091.     EntityKill(entity_id)
  3092.    
  3093.     GameTriggerMusicFadeOutAndDequeueAll( 3.0 )
  3094. diff --git a/scripts/buildings/sun/spot_3.lua b/scripts/buildings/sun/spot_3.lua
  3095. index 18fb4c6..e50e20e 100644
  3096. --- a/scripts/buildings/sun/spot_3.lua
  3097. +++ b/scripts/buildings/sun/spot_3.lua
  3098. @@ -32,7 +32,7 @@ if ( comp ~= nil ) then
  3099.    
  3100.     if ( kills >= 100 ) then
  3101.         EntityLoad("data/entities/items/pickup/sun/sunbaby.xml", x, y)
  3102. -       EntityLoad("data/entities/projectiles/explosion.xml", x, y)
  3103. +       EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3104.         EntityKill(entity_id)
  3105.        
  3106.         GameTriggerMusicFadeOutAndDequeueAll( 3.0 )
  3107. diff --git a/scripts/buildings/sun/spot_4.lua b/scripts/buildings/sun/spot_4.lua
  3108. new file mode 100644
  3109. index 0000000..4ccd781
  3110. --- /dev/null
  3111. +++ b/scripts/buildings/sun/spot_4.lua
  3112. @@ -0,0 +1,150 @@
  3113. +dofile_once("data/scripts/lib/utilities.lua")
  3114. +
  3115. +local entity_id = GetUpdatedEntityID()
  3116. +local x, y = EntityGetTransform( entity_id )
  3117. +local radius = 46
  3118. +
  3119. +local t_w = EntityGetInRadiusWithTag( x, y, radius, "waterstone" )
  3120. +local t_f = EntityGetInRadiusWithTag( x, y, radius, "brimstone" )
  3121. +local t_a = EntityGetInRadiusWithTag( x, y, radius, "thunderstone" )
  3122. +local t_e = EntityGetInRadiusWithTag( x, y, radius, "stonestone" )
  3123. +local t_p = EntityGetInRadiusWithTag( x, y, radius, "poopstone" )
  3124. +
  3125. +local w = (#t_w > 0)
  3126. +local f = (#t_f > 0)
  3127. +local a = (#t_a > 0)
  3128. +local e = (#t_e > 0)
  3129. +local p = (#t_p > 0)
  3130. +
  3131. +local essences_list = ""
  3132. +local comp = EntityGetFirstComponent( entity_id, "VariableStorageComponent", "sunbaby_essences_list" )
  3133. +local comp2 = EntityGetFirstComponent( entity_id, "SpriteComponent", "sunbaby_sprite" )
  3134. +
  3135. +local found = 0
  3136. +
  3137. +if ( comp ~= nil ) and ( comp2 ~= nil ) then
  3138. +   essences_list = ComponentGetValue2( comp, "value_string" )
  3139. +
  3140. +   if w then
  3141. +       if ( string.find( essences_list, "water" ) == nil ) then
  3142. +           EntitySetComponentsWithTagEnabled( entity_id, "water", true )
  3143. +           ComponentSetValue2( comp2, "image_file", "data/props_gfx/sun_small_purple.png" )
  3144. +           essences_list = essences_list .. "water,"
  3145. +           EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3146. +           GameScreenshake( 30, x, y )
  3147. +       end
  3148. +          
  3149. +       for i,v in ipairs( t_w ) do
  3150. +           EntityKill( v )
  3151. +       end
  3152. +   end
  3153. +  
  3154. +   if f then
  3155. +       if ( string.find( essences_list, "fire" ) == nil ) then
  3156. +           EntitySetComponentsWithTagEnabled( entity_id, "fire", true )
  3157. +           EntitySetComponentsWithTagEnabled( entity_id, "fire_disable", false )
  3158. +           ComponentSetValue2( comp2, "image_file", "data/props_gfx/sun_small_red.png" )
  3159. +           essences_list = essences_list .. "fire,"
  3160. +           EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3161. +           GameScreenshake( 30, x, y )
  3162. +       end
  3163. +          
  3164. +       for i,v in ipairs( t_f ) do
  3165. +           EntityKill( v )
  3166. +       end
  3167. +   end
  3168. +  
  3169. +   if a then
  3170. +       if ( string.find( essences_list, "air" ) == nil ) then
  3171. +           EntitySetComponentsWithTagEnabled( entity_id, "air", true )
  3172. +           ComponentSetValue2( comp2, "image_file", "data/props_gfx/sun_small_blue.png" )
  3173. +           essences_list = essences_list .. "air,"
  3174. +           EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3175. +           GameScreenshake( 30, x, y )
  3176. +       end
  3177. +          
  3178. +       for i,v in ipairs( t_a ) do
  3179. +           EntityKill( v )
  3180. +       end
  3181. +   end
  3182. +  
  3183. +   if e then
  3184. +       if ( string.find( essences_list, "earth" ) == nil ) then
  3185. +           EntitySetComponentsWithTagEnabled( entity_id, "earth", true )
  3186. +           EntitySetComponentsWithTagEnabled( entity_id, "earth_disable", false )
  3187. +           local eid = EntityLoad( "data/entities/misc/loose_ground_permanent.xml", x, y )
  3188. +           EntityAddChild( entity_id, eid )
  3189. +          
  3190. +           ComponentSetValue2( comp2, "image_file", "data/props_gfx/sun_small_green.png" )
  3191. +           essences_list = essences_list .. "earth,"
  3192. +           EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3193. +           GameScreenshake( 30, x, y )
  3194. +       end
  3195. +          
  3196. +       for i,v in ipairs( t_e ) do
  3197. +           EntityKill( v )
  3198. +       end
  3199. +   end
  3200. +  
  3201. +   if p then
  3202. +       if ( string.find( essences_list, "poop" ) == nil ) then
  3203. +           EntitySetComponentsWithTagEnabled( entity_id, "poop", true )
  3204. +           ComponentSetValue2( comp2, "image_file", "data/props_gfx/sun_small_orange.png" )
  3205. +           essences_list = essences_list .. "poop,"
  3206. +           EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3207. +           GameScreenshake( 30, x, y )
  3208. +       end
  3209. +          
  3210. +       for i,v in ipairs( t_p ) do
  3211. +           EntityKill( v )
  3212. +       end
  3213. +   end
  3214. +  
  3215. +   local ohno = false
  3216. +  
  3217. +   if ( string.find( essences_list, "water" ) ~= nil ) then
  3218. +       found = found + 1
  3219. +   end
  3220. +  
  3221. +   if ( string.find( essences_list, "fire" ) ~= nil ) then
  3222. +       found = found + 1
  3223. +   end
  3224. +  
  3225. +   if ( string.find( essences_list, "air" ) ~= nil ) then
  3226. +       found = found + 1
  3227. +   end
  3228. +  
  3229. +   if ( string.find( essences_list, "earth" ) ~= nil ) then
  3230. +       found = found + 1
  3231. +   end
  3232. +  
  3233. +   if ( string.find( essences_list, "poop" ) ~= nil ) then
  3234. +       ohno = true
  3235. +   end
  3236. +  
  3237. +   if ( found > 0 ) then
  3238. +       EntitySetComponentsWithTagEnabled( entity_id, "sunbaby_stage_1", false )
  3239. +   end
  3240. +  
  3241. +   if ( found > 2 ) then
  3242. +       EntitySetComponentsWithTagEnabled( entity_id, "sunbaby_stage_2", false )
  3243. +   end
  3244. +  
  3245. +   if ( found == 4 )
  3246. +       if ( ohno == false ) then
  3247. +           EntityLoad("data/entities/items/pickup/sun/newsun.xml", x, y)
  3248. +           GamePrintImportant( "$log_new_step", "$itemdesc_seed_e" )
  3249. +       else
  3250. +           EntityLoad("data/entities/items/pickup/sun/newsun_dark.xml", x, y)
  3251. +           GamePrintImportant( "$itemdesc_seed_f", "$logdesc_new_step_b" )
  3252. +       end
  3253. +      
  3254. +       GameTriggerMusicFadeOutAndDequeueAll( 3.0 )
  3255. +       GameTriggerMusicEvent( "music/oneshot/dark_01", true, x, y )
  3256. +       GameScreenshake( 80, x, y )
  3257. +       EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3258. +       EntityKill(entity_id)
  3259. +   end
  3260. +  
  3261. +   ComponentSetValue2( comp, "value_string", essences_list )
  3262. +end
  3263. \ No newline at end of file
  3264. diff --git a/scripts/buildings/sun/sun_controls.lua b/scripts/buildings/sun/sun_controls.lua
  3265. new file mode 100644
  3266. index 0000000..7ef9ed0
  3267. --- /dev/null
  3268. +++ b/scripts/buildings/sun/sun_controls.lua
  3269. @@ -0,0 +1,22 @@
  3270. +dofile_once("data/scripts/lib/utilities.lua")
  3271. +
  3272. +local entity_id    = GetUpdatedEntityID()
  3273. +local x, y = EntityGetTransform( entity_id )
  3274. +
  3275. +local targets = EntityGetInRadiusWithTag( x, y, 100, "projectile" )
  3276. +
  3277. +local vel_x,vel_y = 0,0
  3278. +
  3279. +for i,v in ipairs( targets ) do
  3280. +   if ( i == 1 ) then
  3281. +       edit_component( v, "VelocityComponent", function(comp,vars)
  3282. +           vel_x,vel_y = ComponentGetValueVector2( comp, "mVelocity")
  3283. +       end)
  3284. +      
  3285. +       if ( vel_x ~= 0 ) or ( vel_y ~= 0 ) then
  3286. +           PhysicsApplyForce( entity_id, vel_x, vel_y )
  3287. +       end
  3288. +   end
  3289. +  
  3290. +   EntityKill( v )
  3291. +end
  3292. \ No newline at end of file
  3293. diff --git a/scripts/buildings/sun/sun_dark_effect.lua b/scripts/buildings/sun/sun_dark_effect.lua
  3294. new file mode 100644
  3295. index 0000000..af098e5
  3296. --- /dev/null
  3297. +++ b/scripts/buildings/sun/sun_dark_effect.lua
  3298. @@ -0,0 +1,14 @@
  3299. +dofile_once("data/scripts/lib/utilities.lua")
  3300. +
  3301. +local entity_id    = GetUpdatedEntityID()
  3302. +local x, y = EntityGetTransform( entity_id )
  3303. +
  3304. +SetRandomSeed( GameGetFrameNum() + GetUpdatedComponentID(), x + y + entity_id )
  3305. +
  3306. +local angle = math.rad(Random(0,359))
  3307. +local length = 9000
  3308. +
  3309. +local vel_x = math.cos( angle ) * length
  3310. +local vel_y = 0 - math.sin( angle ) * length
  3311. +
  3312. +shoot_projectile( entity_id, "data/entities/projectiles/lightning.xml", x,y, vel_x, vel_y )
  3313. \ No newline at end of file
  3314. diff --git a/scripts/buildings/sun/sunbaby_air_effect.lua b/scripts/buildings/sun/sunbaby_air_effect.lua
  3315. new file mode 100644
  3316. index 0000000..7d44a1e
  3317. --- /dev/null
  3318. +++ b/scripts/buildings/sun/sunbaby_air_effect.lua
  3319. @@ -0,0 +1,14 @@
  3320. +dofile_once("data/scripts/lib/utilities.lua")
  3321. +
  3322. +local entity_id    = GetUpdatedEntityID()
  3323. +local x, y = EntityGetTransform( entity_id )
  3324. +
  3325. +SetRandomSeed( GameGetFrameNum() + GetUpdatedComponentID(), x + y + entity_id )
  3326. +
  3327. +local angle = math.rad(Random(0,359))
  3328. +local length = 6000
  3329. +
  3330. +local vel_x = math.cos( angle ) * length
  3331. +local vel_y = 0 - math.sin( angle ) * length
  3332. +
  3333. +shoot_projectile( entity_id, "data/entities/projectiles/lightning.xml", x,y, vel_x, vel_y )
  3334. \ No newline at end of file
  3335. diff --git a/scripts/buildings/sun/sunbaby_controls.lua b/scripts/buildings/sun/sunbaby_controls.lua
  3336. new file mode 100644
  3337. index 0000000..eaa0cfb
  3338. --- /dev/null
  3339. +++ b/scripts/buildings/sun/sunbaby_controls.lua
  3340. @@ -0,0 +1,22 @@
  3341. +dofile_once("data/scripts/lib/utilities.lua")
  3342. +
  3343. +local entity_id    = GetUpdatedEntityID()
  3344. +local x, y = EntityGetTransform( entity_id )
  3345. +
  3346. +local targets = EntityGetInRadiusWithTag( x, y, 56, "projectile" )
  3347. +
  3348. +local vel_x,vel_y = 0,0
  3349. +
  3350. +for i,v in ipairs( targets ) do
  3351. +   if ( i == 1 ) then
  3352. +       edit_component( v, "VelocityComponent", function(comp,vars)
  3353. +           vel_x,vel_y = ComponentGetValueVector2( comp, "mVelocity")
  3354. +       end)
  3355. +      
  3356. +       if ( vel_x ~= 0 ) or ( vel_y ~= 0 ) then
  3357. +           PhysicsApplyForce( entity_id, vel_x * 1.2, vel_y * 1.2 )
  3358. +       end
  3359. +   end
  3360. +  
  3361. +   EntityKill( v )
  3362. +end
  3363. \ No newline at end of file
  3364. diff --git a/scripts/gun/gun_actions.lua b/scripts/gun/gun_actions.lua
  3365. index 0266e9c..6e848e9 100644
  3366. --- a/scripts/gun/gun_actions.lua
  3367. +++ b/scripts/gun/gun_actions.lua
  3368. @@ -1514,7 +1514,7 @@ actions =
  3369.         id          = "BLOODTENTACLE",
  3370.         name        = "$action_bloodtentacle",
  3371.         description = "$actiondesc_bloodtentacle",
  3372. -       spawn_requires_flag = "card_unlocked_mestari",
  3373. +       spawn_requires_flag = "card_unlocked_pyramid",
  3374.         sprite      = "data/ui_gfx/gun_actions/bloodtentacle.png",
  3375.         sprite_unidentified = "data/ui_gfx/gun_actions/tentacle_unidentified.png",
  3376.         related_projectiles = {"data/entities/projectiles/deck/bloodtentacle.xml"},
  3377. @@ -4010,7 +4010,7 @@ actions =
  3378.         description = "$actiondesc_nolla",
  3379.         sprite      = "data/ui_gfx/gun_actions/nolla.png",
  3380.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3381. -       spawn_requires_flag = "card_unlocked_mestari",
  3382. +       spawn_requires_flag = "card_unlocked_pyramid",
  3383.         related_extra_entities = { "data/entities/misc/nolla.xml" },
  3384.         type        = ACTION_TYPE_MODIFIER,
  3385.         spawn_level                       = "2,4,5,6,10", -- LIFETIME_DOWN
  3386. @@ -7880,7 +7880,7 @@ actions =
  3387.         description = "$actiondesc_random_spell",
  3388.         sprite      = "data/ui_gfx/gun_actions/random_spell.png",
  3389.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3390. -       spawn_requires_flag = "card_unlocked_mestari",
  3391. +       spawn_requires_flag = "card_unlocked_pyramid",
  3392.         type        = ACTION_TYPE_OTHER,
  3393.         recursive   = true,
  3394.         spawn_level                       = "3,4,5,6,10", -- MANA_REDUCE
  3395. @@ -7912,7 +7912,7 @@ actions =
  3396.         description = "$actiondesc_random_projectile",
  3397.         sprite      = "data/ui_gfx/gun_actions/random_projectile.png",
  3398.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3399. -       spawn_requires_flag = "card_unlocked_mestari",
  3400. +       spawn_requires_flag = "card_unlocked_pyramid",
  3401.         type        = ACTION_TYPE_PROJECTILE,
  3402.         recursive   = true,
  3403.         spawn_level                       = "2,4,5,6,10", -- MANA_REDUCE
  3404. @@ -7944,7 +7944,7 @@ actions =
  3405.         description = "$actiondesc_random_modifier",
  3406.         sprite      = "data/ui_gfx/gun_actions/random_modifier.png",
  3407.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3408. -       spawn_requires_flag = "card_unlocked_mestari",
  3409. +       spawn_requires_flag = "card_unlocked_pyramid",
  3410.         type        = ACTION_TYPE_MODIFIER,
  3411.         recursive   = true,
  3412.         spawn_level                       = "4,5,6,10", -- MANA_REDUCE
  3413. @@ -7976,7 +7976,7 @@ actions =
  3414.         description = "$actiondesc_random_static_projectile",
  3415.         sprite      = "data/ui_gfx/gun_actions/random_static_projectile.png",
  3416.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3417. -       spawn_requires_flag = "card_unlocked_mestari",
  3418. +       spawn_requires_flag = "card_unlocked_pyramid",
  3419.         type        = ACTION_TYPE_STATIC_PROJECTILE,
  3420.         recursive   = true,
  3421.         spawn_level                       = "3,5,6,10", -- MANA_REDUCE
  3422. @@ -8008,7 +8008,7 @@ actions =
  3423.         description = "$actiondesc_draw_random",
  3424.         sprite      = "data/ui_gfx/gun_actions/draw_random.png",
  3425.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3426. -       spawn_requires_flag = "card_unlocked_mestari",
  3427. +       spawn_requires_flag = "card_unlocked_pyramid",
  3428.         type        = ACTION_TYPE_OTHER,
  3429.         recursive   = true,
  3430.         spawn_level                       = "2,3,4,5,6,10", -- MANA_REDUCE
  3431. @@ -8064,7 +8064,7 @@ actions =
  3432.         description = "$actiondesc_draw_random_x3",
  3433.         sprite      = "data/ui_gfx/gun_actions/draw_random_x3.png",
  3434.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3435. -       spawn_requires_flag = "card_unlocked_mestari",
  3436. +       spawn_requires_flag = "card_unlocked_pyramid",
  3437.         type        = ACTION_TYPE_OTHER,
  3438.         recursive   = true,
  3439.         spawn_level                       = "3,4,5,6,10", -- MANA_REDUCE
  3440. @@ -8122,7 +8122,7 @@ actions =
  3441.         description = "$actiondesc_draw_3_random",
  3442.         sprite      = "data/ui_gfx/gun_actions/draw_3_random.png",
  3443.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  3444. -       spawn_requires_flag = "card_unlocked_mestari",
  3445. +       spawn_requires_flag = "card_unlocked_pyramid",
  3446.         type        = ACTION_TYPE_OTHER,
  3447.         recursive   = true,
  3448.         spawn_level                       = "2,3,5,6,10", -- MANA_REDUCE
  3449. @@ -8345,7 +8345,7 @@ actions =
  3450.         description = "$actiondesc_add_trigger",
  3451.         sprite      = "data/ui_gfx/gun_actions/trigger.png",
  3452.         sprite_unidentified = "data/ui_gfx/gun_actions/damage_unidentified.png",
  3453. -       spawn_requires_flag = "card_unlocked_pyramid",
  3454. +       spawn_requires_flag = "card_unlocked_mestari",
  3455.         type        = ACTION_TYPE_MODIFIER,
  3456.         spawn_level                       = "3,4,5,10", -- CRITICAL_HIT
  3457.         spawn_probability                 = "0.3,0.6,0.6,1", -- CRITICAL_HIT
  3458. @@ -8406,7 +8406,7 @@ actions =
  3459.         description = "$actiondesc_add_timer",
  3460.         sprite      = "data/ui_gfx/gun_actions/timer.png",
  3461.         sprite_unidentified = "data/ui_gfx/gun_actions/damage_unidentified.png",
  3462. -       spawn_requires_flag = "card_unlocked_pyramid",
  3463. +       spawn_requires_flag = "card_unlocked_mestari",
  3464.         type        = ACTION_TYPE_MODIFIER,
  3465.         spawn_level                       = "3,4,5,10", -- CRITICAL_HIT
  3466.         spawn_probability                 = "0.3,0.6,0.6,1", -- CRITICAL_HIT
  3467. @@ -8468,7 +8468,7 @@ actions =
  3468.         description = "$actiondesc_add_death_trigger",
  3469.         sprite      = "data/ui_gfx/gun_actions/death_trigger.png",
  3470.         sprite_unidentified = "data/ui_gfx/gun_actions/damage_unidentified.png",
  3471. -       spawn_requires_flag = "card_unlocked_pyramid",
  3472. +       spawn_requires_flag = "card_unlocked_mestari",
  3473.         type        = ACTION_TYPE_MODIFIER,
  3474.         spawn_level                       = "3,4,5,10", -- CRITICAL_HIT
  3475.         spawn_probability                 = "0.3,0.6,0.6,1", -- CRITICAL_HIT
  3476. diff --git a/scripts/magic/dark_moon_altar.lua b/scripts/magic/dark_moon_altar.lua
  3477. index 2542f21..f6f549c 100644
  3478. --- a/scripts/magic/dark_moon_altar.lua
  3479. +++ b/scripts/magic/dark_moon_altar.lua
  3480. @@ -14,8 +14,10 @@ essence_5 = false
  3481.  
  3482.  local players = EntityGetWithTag( "player_unit" )
  3483.  local players_ = EntityGetWithTag( test )
  3484. +local sun = EntityGetInRadiusWithTag( x, y, 56, "seed_e" )
  3485. +local sun2 = EntityGetInRadiusWithTag( x, y, 56, "seed_f" )
  3486.  
  3487. -if essence_1 and essence_2 and essence_3 and essence_4 and ( #players_ == 0 ) then
  3488. +if essence_1 and essence_2 and essence_3 and essence_4 and ( #players_ == 0 ) and ( #sun == 0 ) and ( #sun2 == 0 ) then
  3489.     local do_effect = false
  3490.    
  3491.     if ( #players > 0 ) then
  3492. @@ -36,4 +38,35 @@ if essence_1 and essence_2 and essence_3 and essence_4 and ( #players_ == 0 ) th
  3493.        
  3494.         EntityKill( entity_id )
  3495.     end
  3496. +end
  3497. +
  3498. +if ( #sun > 0 ) or ( #sun2 > 0 ) then
  3499. +   local flag = GameHasFlagRun( "secret_sun_collision_1" )
  3500. +   EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3501. +  
  3502. +   if ( flag == false ) then
  3503. +       GameAddFlagRun( "secret_sun_collision_1" )
  3504. +      
  3505. +       if ( #sun > 0 ) then
  3506. +           EntityLoad("data/entities/misc/moon_effect_sun.xml", x, y)
  3507. +       elseif ( #sun2 > 0 ) then
  3508. +           EntityLoad("data/entities/misc/moon_effect_darksun.xml", x, y)
  3509. +       end
  3510. +      
  3511. +       GamePrintImportant( "$log_collision_1", "$logdesc_collision_1" )
  3512. +   else
  3513. +       GameAddFlagRun( "secret_sun_collision_2" )
  3514. +      
  3515. +       if ( #sun > 0 ) then
  3516. +           EntityLoad("data/entities/misc/moon_effect_sun.xml", x, y)
  3517. +           GamePrintImportant( "$log_collision_2", "$logdesc_collision_2" )
  3518. +           AddFlagPersistent( "secret_sun_collision" )
  3519. +       elseif ( #sun2 > 0 ) then
  3520. +           EntityLoad("data/entities/misc/moon_effect_darksun.xml", x, y)
  3521. +           GamePrintImportant( "$log_collision_3", "$logdesc_collision_3" )
  3522. +           AddFlagPersistent( "secret_darksun_collision" )
  3523. +       end
  3524. +   end
  3525. +  
  3526. +   EntityKill( entity_id )
  3527.  end
  3528. \ No newline at end of file
  3529. diff --git a/scripts/magic/fungal_shift.lua b/scripts/magic/fungal_shift.lua
  3530. index 63603ce..82a71ae 100644
  3531. --- a/scripts/magic/fungal_shift.lua
  3532. +++ b/scripts/magic/fungal_shift.lua
  3533. @@ -10,13 +10,16 @@ materials_from =
  3534.     { probability = 1.0, materials = { "blood_fungi", "fungi", "fungisoil" }, name_material = "fungi" },
  3535.     { probability = 1.0, materials = { "blood_cold", "blood_worm" } },
  3536.     { probability = 1.0, materials = { "acid" } },
  3537. +   { probability = 0.4, materials = { "acid_gas", "acid_gas_static", "poison_gas", "fungal_gas", "radioactive_gas", "radioactive_gas_static" }, name_material = "acid_gas" },
  3538.     { probability = 0.4, materials = { "magic_liquid_polymorph", "magic_liquid_unstable_polymorph" }, name_material = "magic_liquid_polymorph" },
  3539.     { probability = 0.4, materials = { "magic_liquid_teleportation", "magic_liquid_unstable_teleportation" }, name_material = "magic_liquid_teleportation" },
  3540.     { probability = 0.4, materials = { "magic_liquid_berserk", "magic_liquid_charm", "magic_liquid_invisibility" } },
  3541.     { probability = 0.6, materials = { "diamond" } },
  3542.     { probability = 0.6, materials = { "silver", "brass", "copper" } },
  3543. -   { probability = 0.05, materials = { "sand" } },
  3544. -   { probability = 0.05, materials = { "snow_sticky" } },
  3545. +   { probability = 0.2, materials = { "steam", "smoke" } },
  3546. +   { probability = 0.4, materials = { "sand" } },
  3547. +   { probability = 0.4, materials = { "snow_sticky" } },
  3548. +   { probability = 0.05, materials = { "rock_static" } },
  3549.     { probability = 0.001, materials = { "gold", "gold_box2d" }, name_material = "gold" },
  3550.  }
  3551.  
  3552. @@ -42,6 +45,7 @@ materials_to =
  3553.     { probability = 0.80, material = "silver" },
  3554.     { probability = 0.80, material = "steam" },
  3555.     { probability = 0.50, material = "rock_static" },
  3556. +   { probability = 0.50, material = "gunpowder" },
  3557.     { probability = 0.50, material = "material_darkness" },
  3558.     { probability = 0.50, material = "material_confusion" },
  3559.     { probability = 0.20, material = "rock_static_radioactive" },
  3560. @@ -50,6 +54,7 @@ materials_to =
  3561.     { probability = 0.15, material = "magic_liquid_teleportation" },
  3562.     { probability = 0.01, material = "urine" },
  3563.     { probability = 0.01, material = "poo" },
  3564. +   { probability = 0.01, material = "void_liquid" },
  3565.     { probability = 0.01, material = "cheese_static" },
  3566.  }
  3567.  
  3568. diff --git a/scripts/magic/moon_altar.lua b/scripts/magic/moon_altar.lua
  3569. index 9033a66..037bfd9 100644
  3570. --- a/scripts/magic/moon_altar.lua
  3571. +++ b/scripts/magic/moon_altar.lua
  3572. @@ -13,8 +13,10 @@ local essence_5 = GameHasFlagRun( "essence_alcohol" )
  3573.  
  3574.  local players = EntityGetWithTag( "player_unit" )
  3575.  local players_ = EntityGetWithTag( test )
  3576. +local sun = EntityGetInRadiusWithTag( x, y, 56, "seed_e" )
  3577. +local sun2 = EntityGetInRadiusWithTag( x, y, 56, "seed_f" )
  3578.  
  3579. -if essence_1 and essence_2 and essence_3 and essence_4 and ( #players_ == 0 ) then
  3580. +if essence_1 and essence_2 and essence_3 and essence_4 and ( #players_ == 0 ) and ( #sun == 0 ) and ( #sun2 == 0 ) then
  3581.     local do_effect = false
  3582.    
  3583.     if ( #players > 0 ) then
  3584. @@ -45,4 +47,35 @@ if essence_1 and essence_2 and essence_3 and essence_4 and ( #players_ == 0 ) th
  3585.        
  3586.         EntityKill( entity_id )
  3587.     end
  3588. +end
  3589. +
  3590. +if ( #sun > 0 ) or ( #sun2 > 0 ) then
  3591. +   local flag = GameHasFlagRun( "secret_sun_collision_1" )
  3592. +   EntityLoad("data/entities/projectiles/deck/explosion_giga.xml", x, y)
  3593. +  
  3594. +   if ( flag == false ) then
  3595. +       GameAddFlagRun( "secret_sun_collision_1" )
  3596. +      
  3597. +       if ( #sun > 0 ) then
  3598. +           EntityLoad("data/entities/misc/moon_effect_sun.xml", x, y)
  3599. +       elseif ( #sun2 > 0 ) then
  3600. +           EntityLoad("data/entities/misc/moon_effect_darksun.xml", x, y)
  3601. +       end
  3602. +      
  3603. +       GamePrintImportant( "$log_collision_1", "$logdesc_collision_1" )
  3604. +   else
  3605. +       GameAddFlagRun( "secret_sun_collision_2" )
  3606. +      
  3607. +       if ( #sun > 0 ) then
  3608. +           EntityLoad("data/entities/misc/moon_effect_sun.xml", x, y)
  3609. +           GamePrintImportant( "$log_collision_2", "$logdesc_collision_2" )
  3610. +           AddFlagPersistent( "secret_sun_collision" )
  3611. +       elseif ( #sun2 > 0 ) then
  3612. +           EntityLoad("data/entities/misc/moon_effect_darksun.xml", x, y)
  3613. +           GamePrintImportant( "$log_collision_3", "$logdesc_collision_3" )
  3614. +           AddFlagPersistent( "secret_darksun_collision" )
  3615. +       end
  3616. +   end
  3617. +  
  3618. +   EntityKill( entity_id )
  3619.  end
  3620. \ No newline at end of file
  3621. diff --git a/scripts/perks/fungus_init.lua b/scripts/perks/fungus_init.lua
  3622. new file mode 100644
  3623. index 0000000..2f0cb43
  3624. --- /dev/null
  3625. +++ b/scripts/perks/fungus_init.lua
  3626. @@ -0,0 +1,12 @@
  3627. +dofile_once("data/scripts/lib/utilities.lua")
  3628. +
  3629. +local entity_id = GetUpdatedEntityID()
  3630. +local x, y = EntityGetTransform( entity_id )
  3631. +
  3632. +if EntityHasTag( entity_id, "homing_target" ) then
  3633. +   EntityRemoveTag( entity_id, "homing_target" )
  3634. +end
  3635. +
  3636. +if EntityHasTag( entity_id, "enemy" ) then
  3637. +   EntityRemoveTag( entity_id, "enemy" )
  3638. +end
  3639. \ No newline at end of file
  3640. diff --git a/scripts/projectiles/bounce_larpa_launch.lua b/scripts/projectiles/bounce_larpa_launch.lua
  3641. index ec2a43f..cced625 100644
  3642. --- a/scripts/projectiles/bounce_larpa_launch.lua
  3643. +++ b/scripts/projectiles/bounce_larpa_launch.lua
  3644. @@ -38,7 +38,7 @@ if ( #projectile_file > 0 ) and ( math.abs( vel_x ) + math.abs( vel_y ) > 50 ) t
  3645.        
  3646.         angle = angle + angle_inc
  3647.  
  3648. -       local eid = shoot_projectile( entity_id, projectile_file, pos_x + shot_vel_x * 0.05, pos_y + shot_vel_y * 0.05, shot_vel_x, shot_vel_y, false )
  3649. +       local eid = shoot_projectile_from_projectile( entity_id, projectile_file, pos_x + shot_vel_x * 0.05, pos_y + shot_vel_y * 0.05, shot_vel_x, shot_vel_y, false )
  3650.         EntityAddTag( eid, "projectile_cloned" )
  3651.     end
  3652.    
  3653. diff --git a/scripts/projectiles/bounce_laser_launch.lua b/scripts/projectiles/bounce_laser_launch.lua
  3654. index ce12e97..4b8e5eb 100644
  3655. --- a/scripts/projectiles/bounce_laser_launch.lua
  3656. +++ b/scripts/projectiles/bounce_laser_launch.lua
  3657. @@ -22,7 +22,7 @@ if ( speed < 50 ) then
  3658.        
  3659.         angle = angle + angle_inc
  3660.  
  3661. -       shoot_projectile( entity_id, "data/entities/projectiles/deck/bounce_laser.xml", pos_x + shot_vel_x * 0.05, pos_y + shot_vel_y * 0.05, shot_vel_x, shot_vel_y, false )
  3662. +       shoot_projectile_from_projectile( entity_id, "data/entities/projectiles/deck/bounce_laser.xml", pos_x + shot_vel_x * 0.05, pos_y + shot_vel_y * 0.05, shot_vel_x, shot_vel_y, false )
  3663.     end
  3664.    
  3665.     EntityKill( entity_id )
  3666. diff --git a/scripts/projectiles/bounce_spark_main.lua b/scripts/projectiles/bounce_spark_main.lua
  3667. new file mode 100644
  3668. index 0000000..2595e28
  3669. --- /dev/null
  3670. +++ b/scripts/projectiles/bounce_spark_main.lua
  3671. @@ -0,0 +1,30 @@
  3672. +dofile_once("data/scripts/lib/utilities.lua")
  3673. +
  3674. +local entity_id    = GetUpdatedEntityID()
  3675. +local pos_x, pos_y = EntityGetTransform( entity_id )
  3676. +
  3677. +SetRandomSeed( pos_x + entity_id, pos_y + GameGetFrameNum() )
  3678. +
  3679. +local angle = math.pi * 2 * ProceduralRandom( pos_x - 253, pos_y + GameGetFrameNum() )
  3680. +local speed = Random( 200, 300 )
  3681. +
  3682. +local vel_x = math.cos( 0 - angle ) * speed
  3683. +local vel_y = 0 - math.sin( 0 - angle ) * speed
  3684. +
  3685. +shoot_projectile_from_projectile( entity_id, "data/entities/projectiles/deck/bounce_spark_friendly_fire.xml", pos_x, pos_y, vel_x, vel_y, false )
  3686. +
  3687. +local extra = math.max( 0, Random( -2, 1 ) )
  3688. +
  3689. +if ( extra > 0 ) then
  3690. +   for i=1,extra do
  3691. +       angle = math.pi * 2 * ProceduralRandom( pos_x + 346, pos_y + GameGetFrameNum() )
  3692. +       speed = Random( 200, 300 )
  3693. +      
  3694. +       vel_x = math.cos( 0 - angle ) * speed
  3695. +       vel_y = 0 - math.sin( 0 - angle ) * speed
  3696. +      
  3697. +       shoot_projectile_from_projectile( entity_id, "data/entities/projectiles/deck/bounce_spark_friendly_fire_silent.xml", pos_x, pos_y, vel_x, vel_y, false )
  3698. +   end
  3699. +end
  3700. +
  3701. +EntityKill( entity_id )
  3702. \ No newline at end of file
  3703. diff --git a/scripts/projectiles/destruction.lua b/scripts/projectiles/destruction.lua
  3704. index b911916..ad51b0f 100644
  3705. --- a/scripts/projectiles/destruction.lua
  3706. +++ b/scripts/projectiles/destruction.lua
  3707. @@ -14,6 +14,7 @@ if ( #enemies > 0 ) then
  3708.        
  3709.         if ( dist < 300 ) and ( EntityHasTag( enemy_id, "boss" ) == false ) then
  3710.             EntityLoad( "data/entities/particles/destruction.xml", ex, ey )
  3711. +           EntityLoad( "data/entities/misc/explosion_was_here.xml", ex, ey )
  3712.             EntityKill( enemy_id )
  3713.         end
  3714.     end
  3715. @@ -24,6 +25,7 @@ if ( #players > 0 ) then
  3716.         local px, py = EntityGetTransform( player_id )
  3717.        
  3718.         EntityLoad( "data/entities/particles/destruction.xml", px, py )
  3719. +       EntityLoad( "data/entities/misc/explosion_was_here.xml", px, py )
  3720.        
  3721.         local damagemodels = EntityGetComponent( player_id, "DamageModelComponent" )
  3722.        
  3723. diff --git a/scripts/projectiles/orbit_projectile.lua b/scripts/projectiles/orbit_projectile.lua
  3724. index 90f497e..7ba6785 100644
  3725. --- a/scripts/projectiles/orbit_projectile.lua
  3726. +++ b/scripts/projectiles/orbit_projectile.lua
  3727. @@ -46,13 +46,13 @@ if ( projtype ~= nil ) and ( projspeed ~= nil ) then
  3728.                
  3729.                 local comp = EntityGetFirstComponent( eid, "ProjectileComponent" )
  3730.                 if ( comp ~= nil ) then
  3731. -                   ComponentSetValue2( comp, "lifetime", 9999 )
  3732. +                   ComponentSetValue2( comp, "lifetime", 7200 )
  3733.                     ComponentSetValue2( comp, "die_on_low_velocity", false )
  3734.                 end
  3735.                
  3736.                 comp = EntityGetFirstComponent( eid, "LifetimeComponent" )
  3737.                 if ( comp ~= nil ) then
  3738. -                   ComponentSetValue2( comp, "lifetime", 9999 )
  3739. +                   ComponentSetValue2( comp, "lifetime", 7200 )
  3740.                 end
  3741.             end
  3742.         end
  3743. diff --git a/ui_gfx/items/musicstone.png b/ui_gfx/items/musicstone.png
  3744. new file mode 100644
  3745. index 0000000..13f716a
  3746. Binary files /dev/null and b/ui_gfx/items/musicstone.png differ
  3747.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement