Liusad

Noita beta update diff 20210210

Feb 11th, 2021 (edited)
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 47.56 KB | None | 0 0
  1. HOW TO READ:
  2.  
  3. FILE CHANGED =>     +++ b/biome/rainforest_dark.xml
  4.                          @@ -7,7 +7,7 @@
  5.                          background_edge_right="data/weather_gfx/edges/background_rainforest_dark_right.png"
  6.                          background_edge_top="data/weather_gfx/edges/background_rainforest_dark_top.png"
  7.                          background_edge_bottom="data/weather_gfx/edges/background_rainforest_dark_bottom.png"
  8. REMOVED CODE        => -    background_edge_priority="10"  
  9. NEW OR CHANGED CODE => +    background_edge_priority="9"  
  10.                          limit_background_image="0"
  11.  
  12.                          wang_template_file="data/wang_tiles/rainforest_dark.png"
  13.  
  14. -------------------------------------------------------------------------------------------
  15.  
  16. Actual changes below:
  17.  
  18. diff --git a/biome/_pixel_scenes.xml b/biome/_pixel_scenes.xml
  19. index 6360e33..41fba28 100644
  20. --- a/biome/_pixel_scenes.xml
  21. +++ b/biome/_pixel_scenes.xml
  22. @@ -18,6 +18,8 @@
  23.  
  24.      <File>data/biome_impl/spliced/moon.xml</File>
  25.    
  26. +    <File>data/biome_impl/spliced/moon_dark.xml</File>
  27. +  
  28.     <File>data/biome_impl/spliced/lavalake_pit_bottom.xml</File>
  29.    
  30.     <File>data/biome_impl/spliced/gourd_room.xml</File>
  31. diff --git a/biome/mestari_secret.xml b/biome/mestari_secret.xml
  32. index a8327b7..513f2f1 100644
  33. --- a/biome/mestari_secret.xml
  34. +++ b/biome/mestari_secret.xml
  35. @@ -2,8 +2,15 @@
  36.    <Topology
  37.      name="$biome_mestari_secret"
  38.      type="BIOME_WANG_TILE"
  39. -   background_use_neighbor="0"
  40.      background_image="data/weather_gfx/background_wizardcave.png"
  41. +    background_edge_left="data/weather_gfx/edges/background_wizardcave_left.png"
  42. +    background_edge_right="data/weather_gfx/edges/background_wizardcave_right.png"
  43. +    background_edge_top="data/weather_gfx/edges/background_wizardcave_top.png"
  44. +    background_edge_bottom="data/weather_gfx/edges/background_wizardcave_bottom.png"
  45. +    background_edge_priority="10"
  46. +    background_use_neighbor="0"
  47. +    background_image_height="0"
  48. +
  49.      wang_template_file=""
  50.      lua_script="data/scripts/biomes/mestari_secret.lua"
  51.      wang_map_width="256"
  52. diff --git a/biome/rainforest_dark.xml b/biome/rainforest_dark.xml
  53. index 65452cf..8786f2e 100644
  54. --- a/biome/rainforest_dark.xml
  55. +++ b/biome/rainforest_dark.xml
  56. @@ -7,7 +7,7 @@
  57.      background_edge_right="data/weather_gfx/edges/background_rainforest_dark_right.png"
  58.      background_edge_top="data/weather_gfx/edges/background_rainforest_dark_top.png"
  59.      background_edge_bottom="data/weather_gfx/edges/background_rainforest_dark_bottom.png"
  60. -    background_edge_priority="10"  
  61. +    background_edge_priority="9"  
  62.      limit_background_image="0"
  63.  
  64.      wang_template_file="data/wang_tiles/rainforest_dark.png"
  65. diff --git a/biome_impl/biome_map_newgame_plus.lua b/biome_impl/biome_map_newgame_plus.lua
  66. index 519bf47..821facb 100644
  67. --- a/biome_impl/biome_map_newgame_plus.lua
  68. +++ b/biome_impl/biome_map_newgame_plus.lua
  69. @@ -365,6 +365,17 @@ for i,v in pairs(orb_list) do
  70.     v[2] = y2
  71.  end
  72.  
  73. +-- boss arena
  74. +-- end room
  75. +local color_end_room = 0xFF50EED7
  76. +local color_boss_arena = 0xFF14EED7
  77. +
  78. +BiomeMapSetPixel( 44, 43, color_end_room )
  79. +
  80. +paint_biome_area( 35, 38, 5, 2, color_boss_arena )
  81. +BiomeMapSetPixel( 37, 40, color_boss_arena )
  82. +BiomeMapSetPixel( 38, 40, color_boss_arena )
  83. +
  84.  local world_state_entity = GameGetWorldStateEntity()
  85.  local comp = EntityGetComponent( world_state_entity, "WorldStateComponent" )
  86.  
  87. diff --git a/entities/animals/boss_alchemist/boss_alchemist.xml b/entities/animals/boss_alchemist/boss_alchemist.xml
  88. index 2598c3f..db1cb66 100644
  89. --- a/entities/animals/boss_alchemist/boss_alchemist.xml
  90. +++ b/entities/animals/boss_alchemist/boss_alchemist.xml
  91. @@ -1,4 +1,4 @@
  92. -<Entity name="$animal_boss_alchemist" tags="touchmagic_immunity,polymorphable_NOT,boss,miniboss,music_energy_100">
  93. +<Entity name="$animal_boss_alchemist" tags="touchmagic_immunity,polymorphable_NOT,boss,miniboss,music_energy_100,necrobot_NOT">
  94.    
  95.     <Base file="data/entities/base_enemy_basic.xml" >
  96.         <ItemChestComponent level="2" > </ItemChestComponent>
  97. diff --git a/entities/animals/boss_alchemist/death.lua b/entities/animals/boss_alchemist/death.lua
  98. index 8c3466a..ec058dd 100644
  99. --- a/entities/animals/boss_alchemist/death.lua
  100. +++ b/entities/animals/boss_alchemist/death.lua
  101. @@ -5,7 +5,8 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  102.     local x, y = EntityGetTransform( entity_id )
  103.     local flag_status = HasFlagPersistent( "card_unlocked_duplicate" )
  104.    
  105. -   SetRandomSeed( 0, 60 )
  106. +   local pw = check_parallel_pos( x )
  107. +   SetRandomSeed( pw, 60 )
  108.    
  109.     local opts = { "ALPHA", "OMEGA", "GAMMA", "MU", "RESET", "ZETA", "PHI", "TAU", "SIGMA" }
  110.     local rnd = Random( 1, #opts )
  111. diff --git a/entities/animals/boss_centipede/boss_centipede.xml b/entities/animals/boss_centipede/boss_centipede.xml
  112. index 8e24edc..8e2cc37 100644
  113. --- a/entities/animals/boss_centipede/boss_centipede.xml
  114. +++ b/entities/animals/boss_centipede/boss_centipede.xml
  115. @@ -1,4 +1,4 @@
  116. -<Entity tags="enemy,mortal,hittable,homing_target,teleportable_NOT,sampo_or_boss,boss_centipede,polymorphable_NOT,boss" name="$animal_boss_centipede">
  117. +<Entity tags="enemy,mortal,hittable,homing_target,teleportable_NOT,sampo_or_boss,boss_centipede,polymorphable_NOT,boss,necrobot_NOT" name="$animal_boss_centipede">   
  118.     <ItemChestComponent level="4" enemy_drop="1" > </ItemChestComponent>
  119.  
  120.     <!-- keeps the streaming alive -->
  121. diff --git a/entities/animals/boss_centipede/boss_centipede_minion.xml b/entities/animals/boss_centipede/boss_centipede_minion.xml
  122. index 0caa050..209674a 100644
  123. --- a/entities/animals/boss_centipede/boss_centipede_minion.xml
  124. +++ b/entities/animals/boss_centipede/boss_centipede_minion.xml
  125. @@ -1,4 +1,8 @@
  126.  <Entity tags="boss_centipede_minion" name="$animal_boss_centipede_minion" >
  127. +
  128. +   <VariableStorageComponent
  129. +       _tags="no_gold_drop">
  130. +   </VariableStorageComponent>
  131.    
  132.    <PhysicsAIComponent
  133.         target_vec_max_len="15.0"
  134. diff --git a/entities/animals/boss_gate/gate_monster_a.xml b/entities/animals/boss_gate/gate_monster_a.xml
  135. index ba01630..86046f3 100644
  136. --- a/entities/animals/boss_gate/gate_monster_a.xml
  137. +++ b/entities/animals/boss_gate/gate_monster_a.xml
  138. @@ -1,4 +1,4 @@
  139. -<Entity name="$animal_gate_monster_a" tags="gate_monster" >
  140. +<Entity name="$animal_gate_monster_a" tags="gate_monster,necrobot_NOT" >
  141.  
  142.     <PhysicsAIComponent
  143.         target_vec_max_len="15.0"
  144. diff --git a/entities/animals/boss_gate/gate_monster_death.lua b/entities/animals/boss_gate/gate_monster_death.lua
  145. index c9a9252..fa60c08 100644
  146. --- a/entities/animals/boss_gate/gate_monster_death.lua
  147. +++ b/entities/animals/boss_gate/gate_monster_death.lua
  148. @@ -5,7 +5,19 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  149.     local entity_id    = GetUpdatedEntityID()
  150.     local pos_x, pos_y = EntityGetTransform( entity_id )
  151.    
  152. -   SetRandomSeed( 0, 10 )
  153. +   local name = EntityGetName(entity_id)
  154. +   local seed_offset = 0
  155. +   local pw = check_parallel_pos( pos_x )
  156. +  
  157. +   if ( name == "$animal_gate_monster_b" ) then
  158. +       seed_offset = 1
  159. +   elseif ( name == "$animal_gate_monster_c" ) then
  160. +       seed_offset = 2
  161. +   elseif ( name == "$animal_gate_monster_d" ) then
  162. +       seed_offset = 3
  163. +   end
  164. +  
  165. +   SetRandomSeed( seed_offset, 10 + pw )
  166.    
  167.     make_random_card(pos_x, pos_y)
  168.  
  169. diff --git a/entities/animals/boss_limbs/boss_limbs.xml b/entities/animals/boss_limbs/boss_limbs.xml
  170. index 62b2cad..818bd3b 100644
  171. --- a/entities/animals/boss_limbs/boss_limbs.xml
  172. +++ b/entities/animals/boss_limbs/boss_limbs.xml
  173. @@ -1,4 +1,4 @@
  174. -<Entity tags="enemy,mortal,human,hittable,homing_target,teleportable_NOT,boss,polymorphable_NOT,miniboss,music_energy_100" name="$animal_boss_limbs">
  175. +<Entity tags="enemy,mortal,human,hittable,homing_target,teleportable_NOT,boss,polymorphable_NOT,miniboss,music_energy_100,necrobot_NOT" name="$animal_boss_limbs">
  176.    
  177.     <!-- art - main body ---------------------- -->
  178.  
  179. diff --git a/entities/animals/boss_limbs/boss_limbs_death.lua b/entities/animals/boss_limbs/boss_limbs_death.lua
  180. index c81561f..3119694 100644
  181. --- a/entities/animals/boss_limbs/boss_limbs_death.lua
  182. +++ b/entities/animals/boss_limbs/boss_limbs_death.lua
  183. @@ -9,7 +9,8 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  184.     EntityLoad( "data/entities/items/pickup/heart.xml", pos_x - 16, pos_y )
  185.     EntityLoad( "data/entities/items/wand_unshuffle_04.xml", pos_x, pos_y )
  186.    
  187. -   SetRandomSeed( 0, 44 )
  188. +   local pw = check_parallel_pos( pos_x )
  189. +   SetRandomSeed( pw, 44 )
  190.    
  191.     local opts = { "ADD_TRIGGER", "ADD_TIMER", "ADD_DEATH_TRIGGER", "DAMAGE_RANDOM" }
  192.    
  193. diff --git a/entities/animals/boss_pit/boss_pit.xml b/entities/animals/boss_pit/boss_pit.xml
  194. index 55a61b6..e93d005 100644
  195. --- a/entities/animals/boss_pit/boss_pit.xml
  196. +++ b/entities/animals/boss_pit/boss_pit.xml
  197. @@ -1,4 +1,4 @@
  198. -<Entity tags="enemy,mortal,human,hittable,homing_target,teleportable_NOT,boss,touchmagic_immunity,music_energy_100,miniboss,polymorphable_NOT" name="$animal_boss_pit">
  199. +<Entity tags="enemy,mortal,human,hittable,homing_target,teleportable_NOT,boss,touchmagic_immunity,music_energy_100,miniboss,polymorphable_NOT,necrobot_NOT" name="$animal_boss_pit">
  200.    
  201.     <!-- art - main body ---------------------- -->
  202.  
  203. diff --git a/entities/animals/boss_pit/boss_pit_death.lua b/entities/animals/boss_pit/boss_pit_death.lua
  204. index 0d50553..eeb5f4a 100644
  205. --- a/entities/animals/boss_pit/boss_pit_death.lua
  206. +++ b/entities/animals/boss_pit/boss_pit_death.lua
  207. @@ -5,7 +5,8 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  208.     local x, y = EntityGetTransform( entity_id )
  209.     local flag_status = HasFlagPersistent( "card_unlocked_rain" )
  210.    
  211. -   SetRandomSeed( 0, 120 )
  212. +   local pw = check_parallel_pos( x )
  213. +   SetRandomSeed( pw, 120 )
  214.    
  215.     local opts = { "WORM_RAIN", "METEOR_RAIN" }
  216.     local rnd = Random( 1, #opts )
  217. diff --git a/entities/animals/boss_wizard/boss_wizard.xml b/entities/animals/boss_wizard/boss_wizard.xml
  218. index bfe8236..2cd884c 100644
  219. --- a/entities/animals/boss_wizard/boss_wizard.xml
  220. +++ b/entities/animals/boss_wizard/boss_wizard.xml
  221. @@ -1,4 +1,4 @@
  222. -<Entity name="$animal_boss_wizard" tags="touchmagic_immunity,polymorphable_NOT,boss,miniboss,music_energy_100,boss_wizard">
  223. +<Entity name="$animal_boss_wizard" tags="touchmagic_immunity,polymorphable_NOT,boss,miniboss,music_energy_100,boss_wizard,necrobot_NOT">
  224.    
  225.     <Base file="data/entities/base_enemy_basic.xml" >
  226.         <ItemChestComponent level="2" > </ItemChestComponent>
  227. diff --git a/entities/animals/boss_wizard/death.lua b/entities/animals/boss_wizard/death.lua
  228. index 10de466..dc5a62f 100644
  229. --- a/entities/animals/boss_wizard/death.lua
  230. +++ b/entities/animals/boss_wizard/death.lua
  231. @@ -7,7 +7,8 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  232.    
  233.     -- StatsLogPlayerKill( GetUpdatedEntityID() )
  234.    
  235. -   SetRandomSeed( 0, 30 )
  236. +   local pw = check_parallel_pos( x )
  237. +   SetRandomSeed( pw, 30 )
  238.    
  239.     local opts = { "DUPLICATE", "RANDOM_SPELL", "RANDOM_PROJECTILE", "RANDOM_MODIFIER", "RANDOM_STATIC_PROJECTILE", "DRAW_RANDOM", "DRAW_RANDOM_X3", "DRAW_3_RANDOM" }
  240.     local rnd = Random( 1, #opts )
  241. diff --git a/entities/animals/necromancer_super.xml b/entities/animals/necromancer_super.xml
  242. index 41815da..23cd528 100644
  243. --- a/entities/animals/necromancer_super.xml
  244. +++ b/entities/animals/necromancer_super.xml
  245. @@ -110,7 +110,7 @@
  246.     </SpriteComponent>
  247.    
  248.     <AIAttackComponent
  249. -       min_distance="101"
  250. +       min_distance="11"
  251.         max_distance="200"
  252.         frames_between="50"
  253.         frames_between_global="7"
  254. @@ -125,8 +125,9 @@
  255.     </AIAttackComponent>
  256.    
  257.     <AIAttackComponent
  258. +       use_probability="70"
  259.         min_distance="0"
  260. -       max_distance="100"
  261. +       max_distance="70"
  262.         frames_between="7"
  263.         frames_between_global="7"
  264.         attack_ranged_offset_x="21"
  265. diff --git a/entities/items/pickup/evil_eye.xml b/entities/items/pickup/evil_eye.xml
  266. index 8242d9b..4dd915c 100644
  267. --- a/entities/items/pickup/evil_eye.xml
  268. +++ b/entities/items/pickup/evil_eye.xml
  269. @@ -60,6 +60,7 @@
  270.             </laser>
  271.         </LaserEmitterComponent>
  272.         <SpriteComponent
  273. +           _enabled="0"
  274.             _tags="enabled_in_world,enabled_in_hand"
  275.             image_file="data/projectiles_gfx/orb_red.xml"
  276.             alpha="0.7"
  277. diff --git a/entities/items/pickup/stonestone.xml b/entities/items/pickup/stonestone.xml
  278. index b4151dd..6c880ee 100644
  279. --- a/entities/items/pickup/stonestone.xml
  280. +++ b/entities/items/pickup/stonestone.xml
  281. @@ -38,18 +38,6 @@
  282.    <VelocityComponent
  283.      _tags="enabled_in_world"
  284.    ></VelocityComponent>
  285. -  
  286. -  <GameEffectComponent
  287. -    _tags="enabled_in_hand"
  288. -    effect="PROTECTION_RADIOACTIVITY"
  289. -    frames="-1"
  290. -  ></GameEffectComponent>
  291. -
  292. -  <GameEffectComponent
  293. -    _tags="enabled_in_hand"
  294. -    effect="PROTECTION_MELEE"
  295. -    frames="-1"
  296. -  ></GameEffectComponent>
  297.  
  298.    <!-- steaming -->
  299.  
  300. diff --git a/entities/misc/effect_worm_attractor.xml b/entities/misc/effect_worm_attractor.xml
  301. index 66ee295..67f17fa 100644
  302. --- a/entities/misc/effect_worm_attractor.xml
  303. +++ b/entities/misc/effect_worm_attractor.xml
  304. @@ -1,8 +1,9 @@
  305. -<Entity>
  306. +<Entity tags="effect_worm,effect_worm_attractor">
  307.     <InheritTransformComponent>
  308.      </InheritTransformComponent>  
  309.      
  310. -    <GameEffectComponent
  311. +    <GameEffectComponent
  312. +       _tags="effect_worm,effect_worm_attractor"
  313.         effect="WORM_ATTRACTOR"
  314.         frames="600"
  315.      >
  316. diff --git a/entities/misc/effect_worm_detractor.xml b/entities/misc/effect_worm_detractor.xml
  317. index 255f9af..a580651 100644
  318. --- a/entities/misc/effect_worm_detractor.xml
  319. +++ b/entities/misc/effect_worm_detractor.xml
  320. @@ -1,8 +1,9 @@
  321. -<Entity>
  322. +<Entity tags="effect_worm,effect_worm_detractor" >
  323.     <InheritTransformComponent>
  324.      </InheritTransformComponent>  
  325.      
  326. -    <GameEffectComponent
  327. +    <GameEffectComponent
  328. +       _tags="effect_worm,effect_worm_detractor"
  329.         effect="WORM_DETRACTOR"
  330.         frames="600"
  331.      >
  332. diff --git a/entities/misc/orb_07_pitcheck_a.xml b/entities/misc/orb_07_pitcheck_a.xml
  333. index 728ddc7..e7ab1de 100644
  334. --- a/entities/misc/orb_07_pitcheck_a.xml
  335. +++ b/entities/misc/orb_07_pitcheck_a.xml
  336. @@ -1,8 +1,8 @@
  337.  <Entity  >
  338.      <CollisionTriggerComponent
  339.        width="96"
  340. -      height="96"
  341. -      radius="48"
  342. +      height="110"
  343. +      radius="60"
  344.        destroy_this_entity_when_triggered="1"
  345.        required_tag="player_unit" >
  346.     </CollisionTriggerComponent>
  347. diff --git a/entities/misc/orb_07_pitcheck_b.xml b/entities/misc/orb_07_pitcheck_b.xml
  348. index 57cd1ab..fb0bdd0 100644
  349. --- a/entities/misc/orb_07_pitcheck_b.xml
  350. +++ b/entities/misc/orb_07_pitcheck_b.xml
  351. @@ -3,12 +3,13 @@
  352.       _enabled="0"
  353.       _tags="disabled"
  354.        width="96"
  355. -      height="256"
  356. -      radius="256"
  357. +      height="430"
  358. +      radius="430"
  359.        destroy_this_entity_when_triggered="1"
  360.        required_tag="player_unit" >
  361.     </CollisionTriggerComponent>
  362.  
  363. +    <!-- this spawns squidward -->
  364.      <LuaComponent
  365.       _enabled="0"
  366.       _tags="disabled"
  367. diff --git a/entities/projectiles/orb_pink.xml b/entities/projectiles/orb_pink.xml
  368. index 74261d0..367dc79 100644
  369. --- a/entities/projectiles/orb_pink.xml
  370. +++ b/entities/projectiles/orb_pink.xml
  371. @@ -1,5 +1,6 @@
  372.  <Entity
  373.    name="$projectile_default"
  374. +  tags="resist_repulsion"
  375.     >
  376.  
  377.     <Base file="data/entities/base_projectile.xml" >
  378. diff --git a/entities/projectiles/orb_pink_big.xml b/entities/projectiles/orb_pink_big.xml
  379. index cc7663f..f9d1eee 100644
  380. --- a/entities/projectiles/orb_pink_big.xml
  381. +++ b/entities/projectiles/orb_pink_big.xml
  382. @@ -1,5 +1,6 @@
  383.  <Entity
  384.    name="$projectile_default"
  385. +  tags="resist_repulsion"
  386.     >
  387.  
  388.     <Base file="data/entities/base_projectile.xml" >
  389. diff --git a/entities/projectiles/orb_pink_big_super.xml b/entities/projectiles/orb_pink_big_super.xml
  390. index 014af96..f562242 100644
  391. --- a/entities/projectiles/orb_pink_big_super.xml
  392. +++ b/entities/projectiles/orb_pink_big_super.xml
  393. @@ -1,5 +1,6 @@
  394.  <Entity
  395. -   name="$projectile_default"
  396. +   name="$projectile_default"
  397. +   tags="resist_repulsion"
  398.     >
  399.  
  400.     <Base file="data/entities/base_projectile.xml" >
  401. diff --git a/entities/projectiles/orb_pink_big_super_shrapnel.xml b/entities/projectiles/orb_pink_big_super_shrapnel.xml
  402. index ea63238..635e2cb 100644
  403. --- a/entities/projectiles/orb_pink_big_super_shrapnel.xml
  404. +++ b/entities/projectiles/orb_pink_big_super_shrapnel.xml
  405. @@ -1,5 +1,6 @@
  406.  <Entity
  407. -   name="$projectile_default"
  408. +   name="$projectile_default"
  409. +   tags="resist_repulsion"
  410.     >
  411.  
  412.     <Base file="data/entities/base_projectile.xml" >
  413. diff --git a/entities/projectiles/orb_pink_super.xml b/entities/projectiles/orb_pink_super.xml
  414. index 8b28892..8bf2048 100644
  415. --- a/entities/projectiles/orb_pink_super.xml
  416. +++ b/entities/projectiles/orb_pink_super.xml
  417. @@ -1,5 +1,6 @@
  418.  <Entity
  419. -   name="$projectile_default"
  420. +   name="$projectile_default"
  421. +   tags="resist_repulsion"
  422.     >
  423.  
  424.     <Base file="data/entities/base_projectile.xml" >
  425. @@ -15,14 +16,14 @@
  426.         _enabled="1"
  427.         lob_min="0.8"
  428.         lob_max="1.0"
  429. -       speed_min="100"
  430. -       speed_max="120"
  431. +       speed_min="160"
  432. +       speed_max="200"
  433.         die_on_low_velocity="0"
  434.         on_death_explode="1"
  435.         on_death_gfx_leave_sprite="0"
  436.         on_lifetime_out_explode="1"
  437.         explosion_dont_damage_shooter="1"
  438. -       damage="0.8"
  439. +       damage="0.9"
  440.         go_through_this_material="crystal_purple"
  441.         on_collision_die="1"
  442.         lifetime="50"
  443. diff --git a/materials.xml b/materials.xml
  444. index 2b4816e..de4c23c 100644
  445. --- a/materials.xml
  446. +++ b/materials.xml
  447. @@ -2907,6 +2907,7 @@
  448.      </Graphics>
  449.    </CellData>
  450.    
  451. +  <!--
  452.    <CellDataChild
  453.     _parent="steel_static"
  454.     _inherit_reactions="1"
  455. @@ -2968,6 +2969,136 @@
  456.         </Edge>
  457.      </Graphics>
  458.    </CellDataChild>
  459. +-->
  460. +
  461. +  <CellDataChild
  462. +   _parent="steel_static"
  463. +   _inherit_reactions="1"
  464. +   name="steelmoss_static"
  465. +   <!-- steel_rusted -->
  466. +   ui_name="$mat_steelrusted" 
  467. +   wang_color="ff787A55"
  468. +   wang_noise_percent="0.0"
  469. +   wang_curvature="0.5"
  470. +   solid_friction="0.9"
  471. +   electrical_conductivity="1"
  472. +   durability="11"
  473. +   show_in_creative_mode="1"
  474. +   cell_holes_in_texture="1"
  475. +   >
  476. +   <Graphics
  477. +       texture_file="data/materials_gfx/steel_rusted.png"
  478. +       color="ff787A55" >
  479. +
  480. +       <Edge>
  481. +         <EdgeGraphics
  482. +           color="ff233112"
  483. +           overwrite="0"
  484. +           percent="1"
  485. +           require_same_material="0"
  486. +           require_same_material_type="1"
  487. +           type="CARDINAL_DIRECTIONS"
  488. +           z="1" >
  489. +           <Images>
  490. +             <Image
  491. +               do_only_horizontal_stripe="1"
  492. +               do_only_vertical_stripe="0"
  493. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_hor.png"
  494. +               min_angle="45"
  495. +               max_angle="135" />
  496. +             <Image
  497. +               do_only_horizontal_stripe="0"
  498. +               do_only_vertical_stripe="1"
  499. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_ver.png"
  500. +               min_angle="135"
  501. +               max_angle="225" />
  502. +             <Image
  503. +               do_only_horizontal_stripe="1"
  504. +               do_only_vertical_stripe="0"
  505. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_hor.png"
  506. +               min_angle="225"
  507. +               max_angle="315" />
  508. +             <Image
  509. +               do_only_horizontal_stripe="0"
  510. +               do_only_vertical_stripe="1"
  511. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_ver.png"
  512. +               min_angle="315"
  513. +               max_angle="360" />
  514. +             <Image
  515. +               do_only_horizontal_stripe="0"
  516. +               do_only_vertical_stripe="1"
  517. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_ver.png"
  518. +               min_angle="0"
  519. +               max_angle="45" />
  520. +           </Images>
  521. +         </EdgeGraphics>
  522. +       </Edge>
  523. +    </Graphics>
  524. +  </CellDataChild>
  525. +
  526. +  <CellDataChild
  527. +   _parent="steelmoss_static"
  528. +   _inherit_reactions="1"
  529. +   name="steel_rusted_no_holes"
  530. +   ui_name="$mat_steelrusted" 
  531. +   wang_color="ff904F3A"
  532. +   wang_noise_percent="0.0"
  533. +   wang_curvature="0.5"
  534. +   solid_friction="0.9"
  535. +   electrical_conductivity="1"
  536. +   durability="11"
  537. +   show_in_creative_mode="1"
  538. +   cell_holes_in_texture="0"
  539. +   >
  540. +   <Graphics
  541. +       texture_file="data/materials_gfx/steelpanelmoss.png"
  542. +       color="ff904F3A" >
  543. +
  544. +       <Edge>
  545. +         <EdgeGraphics
  546. +           color="ff233112"
  547. +           overwrite="0"
  548. +           percent="1"
  549. +           require_same_material="0"
  550. +           require_same_material_type="1"
  551. +           type="CARDINAL_DIRECTIONS"
  552. +           z="1" >
  553. +           <Images>
  554. +             <Image
  555. +               do_only_horizontal_stripe="1"
  556. +               do_only_vertical_stripe="0"
  557. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_hor.png"
  558. +               min_angle="45"
  559. +               max_angle="135" />
  560. +             <Image
  561. +               do_only_horizontal_stripe="0"
  562. +               do_only_vertical_stripe="1"
  563. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_ver.png"
  564. +               min_angle="135"
  565. +               max_angle="225" />
  566. +             <Image
  567. +               do_only_horizontal_stripe="1"
  568. +               do_only_vertical_stripe="0"
  569. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_hor.png"
  570. +               min_angle="225"
  571. +               max_angle="315" />
  572. +             <Image
  573. +               do_only_horizontal_stripe="0"
  574. +               do_only_vertical_stripe="1"
  575. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_ver.png"
  576. +               min_angle="315"
  577. +               max_angle="360" />
  578. +             <Image
  579. +               do_only_horizontal_stripe="0"
  580. +               do_only_vertical_stripe="1"
  581. +               filename="data/materials_gfx/edge_files/edge_steel_rusted_ver.png"
  582. +               min_angle="0"
  583. +               max_angle="45" />
  584. +           </Images>
  585. +         </EdgeGraphics>
  586. +       </Edge>
  587. +    </Graphics>
  588. +  </CellDataChild>
  589.    
  590.    <CellDataChild
  591.     _parent="steel_static"
  592. @@ -5686,7 +5817,6 @@
  593.     name="magic_liquid_unstable_teleportation"
  594.     ui_name="$mat_magic_liquid_unstable_teleportation"
  595.     tags="[liquid],[water],[magic_liquid],[impure]"
  596. -
  597.     density="4.43"
  598.     cell_type="liquid"
  599.     wang_color="8000BEE4"
  600. @@ -5707,7 +5837,8 @@
  601.     autoignition_temperature="10"
  602.     electrical_conductivity="1"
  603.     on_fire_smoke_material="blood_cold_vapour"
  604. -
  605. +   liquid_sprite_stains_status_threshold="0.2"
  606. +   liquid_sprite_stains_check_offset="1"
  607.     >
  608.     <Graphics
  609.         texture_file="data/materials_gfx/magic_liquid_unstable_telep.png"
  610. @@ -5754,14 +5885,14 @@
  611.     status_effects="TELEPORTATION"
  612.     audio_materialaudio_type="MAGICAL"
  613.     show_in_creative_mode="1"
  614. -
  615.     on_fire_smoke_material="blood_cold_vapour"
  616. -
  617. +   liquid_sprite_stains_status_threshold="0.2"
  618.     burnable="1"
  619.     on_fire_flame_material="fire_blue"
  620.     temperature_of_fire="95"
  621.     autoignition_temperature="10"
  622.     electrical_conductivity="1"
  623. +   liquid_sprite_stains_check_offset="1"
  624.     >
  625.     <ParticleEffect
  626.         vel.y="17.14"
  627. @@ -5885,11 +6016,12 @@
  628.     on_fire="0"
  629.     requires_oxygen="0"
  630.     liquid_stains="1"
  631. -   liquid_sprite_stains_status_threshold="0.2"
  632. +   liquid_sprite_stains_status_threshold="0.25"
  633.     liquid_sprite_stain_shaken_drop_chance="5"
  634.     status_effects="POLYMORPH"
  635.     audio_materialaudio_type="MAGICAL"
  636.     show_in_creative_mode="1"
  637. +   liquid_sprite_stains_check_offset="1"
  638.     >
  639.     <ParticleEffect
  640.         vel.y="-2.857"
  641. @@ -5932,11 +6064,12 @@
  642.     on_fire="0"
  643.     requires_oxygen="0"
  644.     liquid_stains="1"
  645. -   liquid_sprite_stains_status_threshold="0.2"
  646. +   liquid_sprite_stains_status_threshold="0.25"
  647.     liquid_sprite_stain_shaken_drop_chance="5"
  648.     status_effects="POLYMORPH_RANDOM"
  649.     audio_materialaudio_type="MAGICAL"
  650.     show_in_creative_mode="1"
  651. +   liquid_sprite_stains_check_offset="1"
  652.     >
  653.     <ParticleEffect
  654.         vel.y="0"
  655. @@ -5979,10 +6112,12 @@
  656.     on_fire="0"
  657.     requires_oxygen="0"
  658.     liquid_stains="1"
  659. +   liquid_sprite_stains_status_threshold="0.25"
  660.     liquid_sprite_stain_shaken_drop_chance="2"
  661.     status_effects="POLYMORPH_UNSTABLE"
  662.     audio_materialaudio_type="MAGICAL"
  663.     show_in_creative_mode="1"
  664. +   liquid_sprite_stains_check_offset="1"
  665.     >
  666.     <Graphics
  667.         texture_file="data/materials_gfx/polymorph_unstable.png"
  668. diff --git a/scripts/animals/boss_dragon_death.lua b/scripts/animals/boss_dragon_death.lua
  669. index ec8aebd..1aa0af5 100644
  670. --- a/scripts/animals/boss_dragon_death.lua
  671. +++ b/scripts/animals/boss_dragon_death.lua
  672. @@ -12,7 +12,8 @@ function death( damage_type_bit_field, damage_message, entity_thats_responsible,
  673.     AddFlagPersistent( "miniboss_dragon" )
  674.     AddFlagPersistent( "card_unlocked_dragon" )
  675.    
  676. -   SetRandomSeed( 0, 540 )
  677. +   local pw = check_parallel_pos( pos_x )
  678. +   SetRandomSeed( pw, 540 )
  679.    
  680.     local flag_status = HasFlagPersistent( "card_unlocked_dragon" )
  681.     local opts = { "ORBIT_DISCS", "ORBIT_FIREBALLS", "ORBIT_NUKES", "ORBIT_LASERS", "ORBIT_LARPA" }
  682. diff --git a/scripts/animals/necromancer_super_chase.lua b/scripts/animals/necromancer_super_chase.lua
  683. index 0e97ae7..80bea03 100644
  684. --- a/scripts/animals/necromancer_super_chase.lua
  685. +++ b/scripts/animals/necromancer_super_chase.lua
  686. @@ -1,6 +1,6 @@
  687.  dofile_once("data/scripts/lib/utilities.lua")
  688.  
  689. -local range_near = 70 -- if below, stop chase
  690. +local range_near = 40 -- if below, stop chase
  691.  local range_far = 250
  692.  local range_max = 600 -- if above, stop chase
  693.  
  694. diff --git a/scripts/biome_scripts.lua b/scripts/biome_scripts.lua
  695. index 3dac8cd..3a2a03e 100644
  696. --- a/scripts/biome_scripts.lua
  697. +++ b/scripts/biome_scripts.lua
  698. @@ -93,12 +93,7 @@ end
  699.  
  700.  function parallel_check( x, y )
  701.     if ( y < 0 ) then
  702. -       local pw = 0
  703. -       if ( x >= 0 ) then
  704. -           pw = math.floor( ( x + 17920 ) / 35840 )
  705. -       else
  706. -           pw = math.floor( ( math.abs( x ) + 17920 ) / 35840 )
  707. -       end
  708. +       local pw = GetParallelWorldPosition( x, y )
  709.        
  710.         if ( pw ~= 0 ) then
  711.             local r = ProceduralRandom( x + 35, y - 253 )
  712. @@ -120,15 +115,35 @@ function parallel_check( x, y )
  713.     end
  714.  end
  715.  
  716. +function spawn_mimic_sign( x, y )
  717. +   impl_raytrace_x = function( x0, y0, x_direction, max_length )
  718. +       local hit_something,hit_x,hit_y = Raytrace( x0, y0, x0 + (x_direction * max_length), y0 )
  719. +       return hit_x
  720. +   end
  721. +
  722. +   local min_x = impl_raytrace_x( x, y, -1, 32 )
  723. +   local max_x = impl_raytrace_x( x, y, 1, 32 )
  724. +
  725. +   if( ( x - min_x ) >= 24 and Raytrace( x - 16, y, x - 16, y - 26 ) == false ) then
  726. +       local hit_something, temp_x, max_y = Raytrace( x - 16, y - 25, x - 16, y + 32 )
  727. +       LoadPixelScene( "data/biome_impl/mimic_sign.png", "data/biome_impl/mimic_sign_visual.png", min_x, max_y - 23, "", true, true )
  728. +   elseif( ( max_x - x ) >= 24 and Raytrace( x + 16, y, x + 16, y - 26 ) == false ) then
  729. +       local hit_something, temp_x, max_y = Raytrace( x + 16, y - 25, x + 16, y + 32 )
  730. +       LoadPixelScene( "data/biome_impl/mimic_sign.png", "data/biome_impl/mimic_sign_visual.png", max_x - 22, max_y - 23, "", true, true )
  731. +   end
  732. +end
  733. +
  734. +
  735.  function spawn_heart( x, y )
  736.     local r = ProceduralRandom( x, y )
  737.     SetRandomSeed( x, y )
  738. -   -- local r=1
  739. -   -- 2018.11.15 - Petri
  740. -   -- changed this from 0.4 -> 0.7 quite a big upping of heart spawns
  741. -   -- done for testing
  742. +   local heart_spawn_percent = 0.7
  743. +  
  744. +   local year, month, day = GameGetDateAndTimeLocal()
  745. +   if ( month == 2 ) and ( day == 14 ) then heart_spawn_percent = 0.35 end
  746.  
  747. -   if (r > 0.7) then
  748. +
  749. +   if (r > heart_spawn_percent) then
  750.         local entity = EntityLoad( "data/entities/items/pickup/heart.xml", x, y)
  751.     elseif (r > 0.3) then
  752.         SetRandomSeed( x+45, y-2123 )
  753. @@ -137,6 +152,8 @@ function spawn_heart( x, y )
  754.         if (rnd <= 90) or (y < 512 * 3) then
  755.             rnd = Random( 1, 1000 )
  756.            
  757. +           if( Random( 1, 300 ) == 1 ) then spawn_mimic_sign( x, y ) end
  758. +
  759.             if ( rnd < 1000 ) then
  760.                 local entity = EntityLoad( "data/entities/items/pickup/chest_random.xml", x, y)
  761.             else
  762. @@ -144,6 +161,8 @@ function spawn_heart( x, y )
  763.             end
  764.         else
  765.             rnd = Random( 1, 100 )
  766. +           if( Random( 1, 30 ) == 1 ) then spawn_mimic_sign( x, y ) end
  767. +
  768.             if( rnd <= 95 ) then
  769.                 local entity = EntityLoad( "data/entities/animals/chest_mimic.xml", x, y)
  770.             else
  771. diff --git a/scripts/biomes/liquidcave.lua b/scripts/biomes/liquidcave.lua
  772. index 0d97d71..3d22b73 100644
  773. --- a/scripts/biomes/liquidcave.lua
  774. +++ b/scripts/biomes/liquidcave.lua
  775. @@ -116,6 +116,13 @@ g_big_enemies =
  776.         entity  = "data/entities/buildings/hpcrystal.xml",
  777.         ngpluslevel = 1,
  778.     },
  779. +   {
  780. +       prob        = 0.05,
  781. +       min_count   = 1,
  782. +       max_count   = 1,    
  783. +       entity  = "data/entities/animals/necrobot_super.xml",
  784. +       ngpluslevel = 2,
  785. +   },
  786.  }
  787.  
  788.  g_lamp =
  789. diff --git a/scripts/biomes/mountain_tree.lua b/scripts/biomes/mountain_tree.lua
  790. index bbc038d..835aa25 100644
  791. --- a/scripts/biomes/mountain_tree.lua
  792. +++ b/scripts/biomes/mountain_tree.lua
  793. @@ -294,7 +294,7 @@ function spawn_pillars( x, y )
  794.     local flags =
  795.     {
  796.         { { "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" } },
  797. -       { { "essence_fire", "essencef" }, { "essence_water", "essencew" }, { "essence_laser", "essencee" }, { "essence_air", "essencea" }, { "essence_alcohol", "essenceal" }, { "secret_moon", "moon" }, { "secret_moon2", "moona" }, { "special_mood", "moong" } },
  798. +       { { "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" } },
  799.         { { "progress_ending0", "end0" }, { "progress_ending1_toxic", "endt" }, { "progress_ending1_gold", "endb" }, { "progress_ending2", "endg" }, { "progress_newgameplusplus3", "endp" }, { "progress_nightmare", "endn" } },
  800.         { { "miniboss_dragon", "minid" }, { "miniboss_limbs", "minil" }, { "miniboss_pit", "minip" }, { "miniboss_alchemist", "minia" }, { "miniboss_wizard", "meme" }, { "miniboss_gate_monsters", "minigm" }, { "boss_centipede", "boss" } },
  801.         { { "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" } },
  802. diff --git a/scripts/biomes/rainforest_dark.lua b/scripts/biomes/rainforest_dark.lua
  803. index f3f498c..cdc8f77 100644
  804. --- a/scripts/biomes/rainforest_dark.lua
  805. +++ b/scripts/biomes/rainforest_dark.lua
  806. @@ -130,6 +130,20 @@ g_big_enemies =
  807.         max_count   = 1,    
  808.         entity  = "data/entities/animals/wizard_hearty.xml"
  809.     },
  810. +   {
  811. +       prob        = 0.01,
  812. +       min_count   = 1,
  813. +       max_count   = 1,    
  814. +       entity  = "data/entities/animals/necrobot.xml",
  815. +       ngpluslevel = 1,
  816. +   },
  817. +   {
  818. +       prob        = 0.01,
  819. +       min_count   = 1,
  820. +       max_count   = 1,    
  821. +       entity  = "data/entities/animals/necrobot_super.xml",
  822. +       ngpluslevel = 2,
  823. +   },
  824.  }
  825.  
  826.  g_unique_enemy =
  827. diff --git a/scripts/biomes/snowcastle.lua b/scripts/biomes/snowcastle.lua
  828. index d6d230f..3230a7e 100644
  829. --- a/scripts/biomes/snowcastle.lua
  830. +++ b/scripts/biomes/snowcastle.lua
  831. @@ -307,6 +307,20 @@ g_big_enemies =
  832.         entity  = "data/entities/buildings/hpcrystal.xml",
  833.         ngpluslevel = 1,
  834.     },
  835. +   {
  836. +       prob        = 0.075,
  837. +       min_count   = 1,
  838. +       max_count   = 1,    
  839. +       entity  = "data/entities/animals/necrobot.xml",
  840. +       ngpluslevel = 2,
  841. +   },
  842. +   {
  843. +       prob        = 0.04,
  844. +       min_count   = 1,
  845. +       max_count   = 1,    
  846. +       entity  = "data/entities/animals/necrobot_super.xml",
  847. +       ngpluslevel = 3,
  848. +   },
  849.  }
  850.  
  851.  ---------- UNIQUE ENCOUNTERS ---------------
  852. diff --git a/scripts/biomes/the_end.lua b/scripts/biomes/the_end.lua
  853. index 59e8f18..ab7ecbd 100644
  854. --- a/scripts/biomes/the_end.lua
  855. +++ b/scripts/biomes/the_end.lua
  856. @@ -379,7 +379,11 @@ function spawn_potions( x, y ) end
  857.  function spawn_heart( x, y ) end
  858.  
  859.  function spawn_moon( x, y )
  860. -   EntityLoad( "data/entities/buildings/moon_altar.xml", x, y )
  861. +   if ( y <= 0 ) then
  862. +       EntityLoad( "data/entities/buildings/moon_altar.xml", x, y )
  863. +   else
  864. +       EntityLoad( "data/entities/buildings/dark_moon_altar.xml", x, y )
  865. +   end
  866.  end
  867.  
  868.  function spawn_wands()
  869. diff --git a/scripts/biomes/tower.lua b/scripts/biomes/tower.lua
  870. index 32ef99b..131ebff 100644
  871. --- a/scripts/biomes/tower.lua
  872. +++ b/scripts/biomes/tower.lua
  873. @@ -704,7 +704,7 @@ end
  874.  
  875.  -- actual functions that get called from the wang generator
  876.  
  877. -local enemy_list = { "acidshooter", "alchemist", "ant", "assassin", "barfer", "bat", "bigbat", "bigfirebug", "bigzombie", "blob", "bloodcrystal_physics", "bloom", "chest_mimic", "coward", "crystal_physics", "drone_physics",  "drone_shield", "enlightened_alchemist", "failed_alchemist", "failed_alchemist_b", "firebug", "firemage", "fireskull", "flamer", "fly", "frog", "frog_big", "fungus", "fungus_big", "gazer", "ghoul", "giant", "giantshooter", "healerdrone_physics", "icer", "iceskull", "lasershooter", "longleg", "maggot", "miner", "miner_fire", "missilecrab", "monk", "necromancer", "necromancer_shop", "necromancer_super", "phantom_a", "phantom_b", "rat", "roboguard", "scavenger_clusterbomb", "scavenger_heal", "scavenger_grenade", "scavenger_leader", "scavenger_mine", "scavenger_poison", "scavenger_smg", "shooterflower", "shotgunner", "skullfly", "skullrat", "slimeshooter", "sniper", "spitmonster", "statue_physics", "tank", "tank_rocket", "tank_super", "tentacler", "tentacler_small", "thundermage", "thundermage_big", "thunderskull", "turret_left", "turret_right", "wizard_dark", "wizard_hearty", "wizard_neutral", "wizard_poly", "wizard_returner", "wizard_swapper", "wizard_tele", "wizard_twitchy", "wizard_weaken", "wizard_wither", "wolf", "wraith", "wraith_glowing", "wraith_storm", "zombie", "skycrystal_physics", "scavenger_shield", "spearbot", "statue", "goblin_bomb", "buildings/snowcrystal", "buildings/hpcrystal" }
  878. +local enemy_list = { "acidshooter", "alchemist", "ant", "assassin", "barfer", "bat", "bigbat", "bigfirebug", "bigzombie", "blob", "bloodcrystal_physics", "bloom", "chest_mimic", "coward", "crystal_physics", "drone_physics",  "drone_shield", "enlightened_alchemist", "failed_alchemist", "failed_alchemist_b", "firebug", "firemage", "fireskull", "flamer", "fly", "frog", "frog_big", "fungus", "fungus_big", "gazer", "ghoul", "giant", "giantshooter", "healerdrone_physics", "icer", "iceskull", "lasershooter", "longleg", "maggot", "miner", "miner_fire", "missilecrab", "monk", "necrobot", "necrobot_super", "necromancer", "necromancer_shop", "necromancer_super", "phantom_a", "phantom_b", "rat", "roboguard", "scavenger_clusterbomb", "scavenger_heal", "scavenger_grenade", "scavenger_leader", "scavenger_mine", "scavenger_poison", "scavenger_smg", "shooterflower", "shotgunner", "skullfly", "skullrat", "slimeshooter", "sniper", "spitmonster", "statue_physics", "tank", "tank_rocket", "tank_super", "tentacler", "tentacler_small", "thundermage", "thundermage_big", "thunderskull", "turret_left", "turret_right", "wizard_dark", "wizard_hearty", "wizard_neutral", "wizard_poly", "wizard_returner", "wizard_swapper", "wizard_tele", "wizard_twitchy", "wizard_weaken", "wizard_wither", "wolf", "wraith", "wraith_glowing", "wraith_storm", "zombie", "skycrystal_physics", "scavenger_shield", "spearbot", "statue", "goblin_bomb", "buildings/snowcrystal", "buildings/hpcrystal" }
  879.  
  880.  function spawn_any_enemy( x, y )
  881.     SetRandomSeed( x, y )
  882. diff --git a/scripts/biomes/vault.lua b/scripts/biomes/vault.lua
  883. index 98049fd..0c5c623 100644
  884. --- a/scripts/biomes/vault.lua
  885. +++ b/scripts/biomes/vault.lua
  886. @@ -311,6 +311,20 @@ g_big_enemies =
  887.             "data/entities/animals/vault/coward.xml",
  888.         },
  889.     },
  890. +   {
  891. +       prob        = 0.075,
  892. +       min_count   = 1,
  893. +       max_count   = 1,    
  894. +       entity  = "data/entities/animals/necrobot.xml",
  895. +       ngpluslevel = 1,
  896. +   },
  897. +   {
  898. +       prob        = 0.05,
  899. +       min_count   = 1,
  900. +       max_count   = 1,    
  901. +       entity  = "data/entities/animals/necrobot_super.xml",
  902. +       ngpluslevel = 2,
  903. +   },
  904.  }
  905.  
  906.  g_lamp =
  907. diff --git a/scripts/biomes/vault_frozen.lua b/scripts/biomes/vault_frozen.lua
  908. index 5b6c4c1..141d996 100644
  909. --- a/scripts/biomes/vault_frozen.lua
  910. +++ b/scripts/biomes/vault_frozen.lua
  911. @@ -233,6 +233,18 @@ g_big_enemies =
  912.         max_count   = 1,    
  913.         entity  = "data/entities/animals/spearbot.xml"
  914.     },
  915. +   {
  916. +       prob        = 0.07,
  917. +       min_count   = 1,
  918. +       max_count   = 1,    
  919. +       entity  = "data/entities/animals/necrobot.xml"
  920. +   },
  921. +   {
  922. +       prob        = 0.01,
  923. +       min_count   = 1,
  924. +       max_count   = 1,    
  925. +       entity  = "data/entities/animals/necrobot_super.xml"
  926. +   },
  927.     {
  928.         prob        = 0.03,
  929.         min_count   = 1,
  930. diff --git a/scripts/director_helpers.lua b/scripts/director_helpers.lua
  931. index b7d9155..75b7013 100644
  932. --- a/scripts/director_helpers.lua
  933. +++ b/scripts/director_helpers.lua
  934. @@ -8,13 +8,7 @@ end
  935.  
  936.  function check_parallel( status, x )
  937.     if status then
  938. -       local pw = 0
  939. -      
  940. -       if ( x >= 0 ) then
  941. -           pw = math.floor( ( x + 17920 ) / 35840 )
  942. -       else
  943. -           pw = math.floor( ( x - 17920 ) / 35840 )
  944. -       end
  945. +       local pw = GetParallelWorldPosition( x, 0 )
  946.        
  947.         return ( pw ~= 0 )
  948.     end
  949. diff --git a/scripts/gun/gun_actions.lua b/scripts/gun/gun_actions.lua
  950. index d8f00d1..d7fcd74 100644
  951. --- a/scripts/gun/gun_actions.lua
  952. +++ b/scripts/gun/gun_actions.lua
  953. @@ -3878,8 +3878,8 @@ actions =
  954.         sprite      = "data/ui_gfx/gun_actions/lifetime.png",
  955.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  956.         type        = ACTION_TYPE_MODIFIER,
  957. -       spawn_level                       = "3,4,5,6", -- LIFETIME
  958. -       spawn_probability                 = "0.5,0.5,0.5,0.5", -- LIFETIME
  959. +       spawn_level                       = "3,4,5,6,10", -- LIFETIME
  960. +       spawn_probability                 = "0.5,0.5,0.5,0.5,0.1", -- LIFETIME
  961.         price = 250,
  962.         mana = 40,
  963.         --max_uses = 150,
  964. @@ -3897,8 +3897,8 @@ actions =
  965.         sprite      = "data/ui_gfx/gun_actions/lifetime_down.png",
  966.         sprite_unidentified = "data/ui_gfx/gun_actions/spread_reduce_unidentified.png",
  967.         type        = ACTION_TYPE_MODIFIER,
  968. -       spawn_level                       = "3,4,5,6", -- LIFETIME_DOWN
  969. -       spawn_probability                 = "0.5,0.5,0.5,0.5", -- LIFETIME_DOWN
  970. +       spawn_level                       = "3,4,5,6,10", -- LIFETIME_DOWN
  971. +       spawn_probability                 = "0.5,0.5,0.5,0.5,0.1", -- LIFETIME_DOWN
  972.         price = 90,
  973.         mana = 10,
  974.         --max_uses = 150,
  975. diff --git a/scripts/init.lua b/scripts/init.lua
  976. index d682feb..aebadc6 100644
  977. --- a/scripts/init.lua
  978. +++ b/scripts/init.lua
  979. @@ -16,7 +16,7 @@ local init_biome_modifiers = dofile_once( "data/scripts/biome_modifiers.lua")
  980.  
  981.  -- weather config
  982.  
  983. -local snowfall_chance = 1 / 2.5
  984. +local snowfall_chance = 1 / 12
  985.  local rainfall_chance = 1 / 15
  986.  local rain_duration_on_run_start = 4 * 60 * 60
  987.  
  988. @@ -123,7 +123,7 @@ function weather_init( year, month, day, hour, minute )
  989.     local rnd_time = random_create( hour+day, hour+day+1 )
  990.  
  991.     -- pick weather type
  992. -   local snows1 = ( month == 11 ) and ( day >= 10 )
  993. +   local snows1 = ( month >= 12 )
  994.     local snows2 = ( month <= 2 )
  995.     local snows = (snows1 or snows2) and (random_next( rnd_time, 0.0, 1.0 ) <= snowfall_chance) -- snow is based on real world time
  996.     local rains = (not snows) and (random_next( rnd, 0.0, 1.0 ) <= rainfall_chance)             -- rain is based on world seed
  997. diff --git a/scripts/item_spawnlists.lua b/scripts/item_spawnlists.lua
  998. index a2baf29..b17ad02 100644
  999. --- a/scripts/item_spawnlists.lua
  1000. +++ b/scripts/item_spawnlists.lua
  1001. @@ -3,18 +3,18 @@ spawnlists =
  1002.     potion_spawnlist =
  1003.     {
  1004.         rnd_min = 1,
  1005. -       rnd_max = 95,
  1006. +       rnd_max = 92,
  1007.         spawns =
  1008.         {
  1009.             {
  1010. -               value_min = 94,
  1011. -               value_max = 95,
  1012. +               value_min = 92,
  1013. +               value_max = 92,
  1014.                 load_entity = "data/entities/items/pickup/stonestone.xml",
  1015.                 offset_y = -2,
  1016.             },
  1017.             {
  1018.                 value_min = 90,
  1019. -               value_max = 93,
  1020. +               value_max = 91,
  1021.                 load_entity = "data/entities/items/pickup/physics_gold_orb.xml",
  1022.                 offset_y = -2,
  1023.             },
  1024. diff --git a/scripts/items/potion.lua b/scripts/items/potion.lua
  1025. index 7f847e2..713bbc3 100644
  1026. --- a/scripts/items/potion.lua
  1027. +++ b/scripts/items/potion.lua
  1028. @@ -141,6 +141,10 @@ function init( entity_id )
  1029.         potion_material = "sima"
  1030.     end
  1031.  
  1032. +   if ( month == 2 and day == 14 and Random( 0, 100 ) <= 8) then
  1033. +       potion_material = "magic_liquid_charm"
  1034. +   end
  1035. +
  1036.     local total_capacity = tonumber( GlobalsGetValue( "EXTRA_POTION_CAPACITY_LEVEL", "1000" ) ) or 1000
  1037.     if ( total_capacity > 1000 ) then
  1038.         local comp = EntityGetFirstComponentIncludingDisabled( entity_id, "MaterialSuckerComponent" )
  1039. diff --git a/scripts/lib/utilities.lua b/scripts/lib/utilities.lua
  1040. index ca583f2..2962481 100644
  1041. --- a/scripts/lib/utilities.lua
  1042. +++ b/scripts/lib/utilities.lua
  1043. @@ -821,14 +821,12 @@ end
  1044.  --
  1045.  
  1046.  function check_parallel_pos( x )
  1047. -   local mx = ( ( x + 17920 ) % 35840 ) - 17920
  1048. -   local pw = 0
  1049. +   local pw = GetParallelWorldPosition( x, 0 )
  1050.    
  1051. -   if ( x >= 0 ) then
  1052. -       pw = math.floor( ( x + 17920 ) / 35840 )
  1053. -   else
  1054. -       pw = math.floor( ( x - 17920 ) / 35840 )
  1055. -   end
  1056. +   local mapwidth = BiomeMapGetSize() * 512
  1057. +   local half = mapwidth * 0.5
  1058. +  
  1059. +   local mx = ( x + half ) % mapwidth
  1060.    
  1061.     return pw,mx
  1062.  end
  1063. diff --git a/scripts/perks/perk_list.lua b/scripts/perks/perk_list.lua
  1064. index 8c1e3b2..088fbe3 100644
  1065. --- a/scripts/perks/perk_list.lua
  1066. +++ b/scripts/perks/perk_list.lua
  1067. @@ -321,6 +321,7 @@ perk_list =
  1068.         game_effect = "STAINS_DROP_FASTER",
  1069.         stackable = STACKABLE_YES,
  1070.         stackable_is_rare = true,
  1071. +       stackable_maximum = 8,
  1072.         usable_by_enemies = true,
  1073.     },
  1074.     {
  1075. @@ -601,18 +602,6 @@ perk_list =
  1076.         stackable_is_rare = true,
  1077.         usable_by_enemies = true,
  1078.     },
  1079. -
  1080. -   {
  1081. -       id = "WORM_DETRACTOR",
  1082. -       ui_name = "$perk_worm_detractor",
  1083. -       ui_description = "$perkdesc_worm_detractor",
  1084. -       ui_icon = "data/ui_gfx/perk_icons/worm_detractor.png",
  1085. -       perk_icon = "data/items_gfx/perks/worm_detractor.png",
  1086. -       game_effect = "WORM_DETRACTOR",
  1087. -       stackable = STACKABLE_YES,
  1088. -       stackable_is_rare = true,
  1089. -       usable_by_enemies = true,
  1090. -   },
  1091.     {
  1092.         id = "RADAR_ENEMY",
  1093.         ui_name = "$perk_radar_enemy",
  1094. @@ -1471,6 +1460,7 @@ perk_list =
  1095.         ui_icon = "data/ui_gfx/perk_icons/worm_smaller_holes.png",
  1096.         perk_icon = "data/items_gfx/perks/worm_smaller_holes.png",
  1097.         stackable = STACKABLE_NO,
  1098. +       game_effect = "WORM_DETRACTOR",
  1099.         func = function( entity_perk_item, entity_who_picked, item_name )
  1100.        
  1101.             EntityAddComponent( entity_who_picked, "LuaComponent",
  1102. diff --git a/scripts/perks/projectile_repulsion.lua b/scripts/perks/projectile_repulsion.lua
  1103. index 904b37c..93f74b6 100644
  1104. --- a/scripts/perks/projectile_repulsion.lua
  1105. +++ b/scripts/perks/projectile_repulsion.lua
  1106. @@ -20,6 +20,7 @@ if ( #projectiles > 0 ) then
  1107.            
  1108.             local gravity_percent = math.max(( distance_full - distance ) / distance_full, 0.01)
  1109.             local gravity_coeff = 96
  1110. +           if EntityHasTag(projectile_id, "resist_repulsion") then gravity_coeff = gravity_coeff * 0.25 end
  1111.            
  1112.             if ( velocitycomponents ~= nil ) then
  1113.                 edit_component( projectile_id, "VelocityComponent", function(comp,vars)
  1114. diff --git a/scripts/perks/projectile_repulsion_sector.lua b/scripts/perks/projectile_repulsion_sector.lua
  1115. index 31efba1..9cc6843 100644
  1116. --- a/scripts/perks/projectile_repulsion_sector.lua
  1117. +++ b/scripts/perks/projectile_repulsion_sector.lua
  1118. @@ -31,6 +31,7 @@ if ( #projectiles > 0 ) then
  1119.            
  1120.             local gravity_percent = math.max(( distance_full - distance ) / distance_full, 0.01)
  1121.             local gravity_coeff = 240
  1122. +           if EntityHasTag(projectile_id, "resist_repulsion") then gravity_coeff = gravity_coeff * 0.25 end
  1123.            
  1124.             if ( velocitycomponents ~= nil ) then
  1125.                 edit_component( projectile_id, "VelocityComponent", function(comp,vars)
  1126. diff --git a/scripts/projectiles/homing_area.lua b/scripts/projectiles/homing_area.lua
  1127. index 636e53f..86cde04 100644
  1128. --- a/scripts/projectiles/homing_area.lua
  1129. +++ b/scripts/projectiles/homing_area.lua
  1130. @@ -12,7 +12,8 @@ if ( comp ~= nil ) then
  1131.    
  1132.     for i,v in ipairs( targets ) do
  1133.         if ( v ~= target ) then
  1134. -           local tx, ty = EntityGetTransform( v )
  1135. +           local tx, ty = EntityGetFirstHitboxCenter( v )
  1136. +          
  1137.             EntitySetTransform( root_id, tx, ty )
  1138.             EntityApplyTransform( root_id, tx, ty )
  1139.             break
  1140. diff --git a/scripts/projectiles/teleport_cast.lua b/scripts/projectiles/teleport_cast.lua
  1141. index 9053d41..2a0fe70 100644
  1142. --- a/scripts/projectiles/teleport_cast.lua
  1143. +++ b/scripts/projectiles/teleport_cast.lua
  1144. @@ -11,7 +11,7 @@ if ( #targets > 0 ) then
  1145.     local rnd = Random(1, #targets)
  1146.     local target_id = targets[rnd]
  1147.    
  1148. -   local tx, ty = EntityGetTransform( target_id )
  1149. +   local tx, ty = EntityGetFirstHitboxCenter( target_id )
  1150.    
  1151.     EntitySetTransform( entity_id, tx, ty )
  1152.  end
  1153. \ No newline at end of file
  1154. diff --git a/scripts/projectiles/worm_shot_slowdown.lua b/scripts/projectiles/worm_shot_slowdown.lua
  1155. index 3abc66e..0356b1b 100644
  1156. --- a/scripts/projectiles/worm_shot_slowdown.lua
  1157. +++ b/scripts/projectiles/worm_shot_slowdown.lua
  1158. @@ -2,6 +2,10 @@ dofile_once("data/scripts/lib/utilities.lua")
  1159.  
  1160.  local entity_id = GetUpdatedEntityID()
  1161.  local x, y = EntityGetTransform( entity_id )
  1162. +local radius = 240
  1163. +
  1164. +local c_id,c_x,c_y = EntityGetClosestWormAttractor( x, y )
  1165. +local f_id,f_x,f_y = EntityGetClosestWormDetractor( x, y )
  1166.  
  1167.  edit_component( entity_id, "VelocityComponent", function(vcomp,vars)
  1168.     local vel_x,vel_y = ComponentGetValueVector2( vcomp, "mVelocity")
  1169. @@ -11,7 +15,47 @@ edit_component( entity_id, "VelocityComponent", function(vcomp,vars)
  1170.     if ( dist > 450 ) then
  1171.         vel_x = vel_x * 0.86
  1172.         vel_y = vel_y * 0.86
  1173. +   end
  1174. +  
  1175. +   if ( f_id ~= nil ) and ( f_x ~= nil ) and ( f_y ~= nil ) then
  1176. +       local dist = get_distance2( x, y, f_x, f_y )
  1177.        
  1178. -       ComponentSetValueVector2( vcomp, "mVelocity", vel_x, vel_y )
  1179. +       if ( dist < radius ) then
  1180. +           local tx,ty = f_x,f_y
  1181. +          
  1182. +           if ( tx >= x ) then
  1183. +               vel_x = vel_x - ( 200 - math.abs( tx - x ) ) * 0.05
  1184. +           else
  1185. +               vel_x = vel_x + ( 200 - math.abs( tx - x ) ) * 0.05
  1186. +           end
  1187. +          
  1188. +           if ( ty >= y ) then
  1189. +               vel_y = vel_y - ( 200 - math.abs( ty - y ) ) * 0.05
  1190. +           else
  1191. +               vel_y = vel_y + ( 200 - math.abs( ty - y ) ) * 0.05
  1192. +           end
  1193. +       end
  1194.     end
  1195. +  
  1196. +   if ( c_id ~= nil ) and ( c_x ~= nil ) and ( c_y ~= nil ) then
  1197. +       local dist = get_distance2( x, y, c_x, c_y )
  1198. +      
  1199. +       if ( dist < radius ) then
  1200. +           local tx,ty = c_x,c_y
  1201. +          
  1202. +           if ( tx >= x ) then
  1203. +               vel_x = vel_x + ( math.abs( tx - x ) ) * 0.05
  1204. +           else
  1205. +               vel_x = vel_x - ( math.abs( tx - x ) ) * 0.05
  1206. +           end
  1207. +          
  1208. +           if ( ty >= y ) then
  1209. +               vel_y = vel_y + ( math.abs( ty - y ) ) * 0.05
  1210. +           else
  1211. +               vel_y = vel_y - ( math.abs( ty - y ) ) * 0.05
  1212. +           end
  1213. +       end
  1214. +   end
  1215. +  
  1216. +   ComponentSetValueVector2( vcomp, "mVelocity", vel_x, vel_y )
  1217.  end)
  1218. \ No newline at end of file
  1219. diff --git a/scripts/streaming_integration/event_list.lua b/scripts/streaming_integration/event_list.lua
  1220. index 0ab92ca..01c6a3b 100644
  1221. --- a/scripts/streaming_integration/event_list.lua
  1222. +++ b/scripts/streaming_integration/event_list.lua
  1223. @@ -1949,32 +1949,40 @@ streaming_events =
  1224.             end
  1225.         end,
  1226.     },
  1227. -   --[[
  1228.     {
  1229.         id = "AREADAMAGE_PLAYER",
  1230.         ui_name = "$streamingevent_areadamage_player",
  1231.         ui_description = "$streamingeventdesc_areadamage_player",
  1232. -       ui_icon = "data/ui_gfx/streaming_event_icons/speedy_enemies.png",
  1233. +       ui_icon = "data/ui_gfx/streaming_event_icons/tiny_ghost_enemy.png",
  1234.         ui_author = STREAMING_EVENT_AUTHOR_NOLLAGAMES,
  1235. -       weight = 0.01,
  1236. +       weight = 0.8,
  1237.         kind = STREAMING_EVENT_GOOD,
  1238.         action = function(event)
  1239. -           GamePrint( "$streamingeventdesc_nothing" )
  1240. +           for _,enemy in pairs( get_players() ) do
  1241. +               local entity_id = EntityLoad( "data/scripts/streaming_integration/entities/contact_damage.xml" )
  1242. +               set_lifetime( entity_id, 1.25 )
  1243. +               EntityAddChild( enemy, entity_id )
  1244. +              
  1245. +               add_icon_in_hud( entity_id, "data/ui_gfx/status_indicators/contact_damage.png", event )
  1246. +           end
  1247.         end,
  1248.     },
  1249.     {
  1250.         id = "AREADAMAGE_ENEMY",
  1251.         ui_name = "$streamingevent_areadamage_enemy",
  1252.         ui_description = "$streamingeventdesc_areadamage_enemy",
  1253. -       ui_icon = "data/ui_gfx/streaming_event_icons/speedy_enemies.png",
  1254. +       ui_icon = "data/ui_gfx/streaming_event_icons/tiny_ghost_enemy.png",
  1255.         ui_author = STREAMING_EVENT_AUTHOR_NOLLAGAMES,
  1256. -       weight = 0.01,
  1257. +       weight = 0.6,
  1258.         kind = STREAMING_EVENT_BAD,
  1259.         action = function(event)
  1260. -           GamePrint( "$streamingeventdesc_nothing" )
  1261. +           for _,enemy in pairs(get_enemies_in_radius(400)) do
  1262. +               local entity_id = EntityLoad( "data/scripts/streaming_integration/entities/contact_damage_enemy.xml" )
  1263. +               set_lifetime( entity_id, 0.8 )
  1264. +               EntityAddChild( enemy, entity_id )
  1265. +           end
  1266.         end,
  1267.     },
  1268. -   ]]--
  1269.     {
  1270.         id = "TWITCHY",
  1271.         ui_name = "$streamingevent_twitchy",
  1272. diff --git a/wang_tiles/vault.png b/wang_tiles/vault.png
  1273. index cdce1ff..6687d14 100644
  1274. Binary files a/wang_tiles/vault.png and b/wang_tiles/vault.png differ
  1275.  
Add Comment
Please, Sign In to add comment