You've already forked ComfyFactorio
							
							
				mirror of
				https://github.com/ComfyFactory/ComfyFactorio.git
				synced 2025-10-30 23:47:41 +02:00 
			
		
		
		
	Mtn v3 - changes
Will the tweaks ever stop?
This commit is contained in:
		| @@ -63,6 +63,8 @@ local function get_coin_count(entity) | ||||
|     return coin_count | ||||
| end | ||||
|  | ||||
| ---comment | ||||
| ---@param event EventData.on_entity_died | ||||
| local function on_entity_died(event) | ||||
|     local entity = event.entity | ||||
|     if not entity.valid then | ||||
|   | ||||
| @@ -168,6 +168,8 @@ function Public.reset_map() | ||||
|     JailData.reset_vote_table() | ||||
|  | ||||
|     Explosives.set_surface_whitelist({[surface.name] = true}) | ||||
|     Explosives.disable(false) | ||||
|     Explosives.slow_explode(true) | ||||
|  | ||||
|     Beam.reset_valid_targets() | ||||
|  | ||||
|   | ||||
| @@ -123,7 +123,7 @@ local function ore_vein(player, entity) | ||||
|         } | ||||
|     end | ||||
|  | ||||
|     StatData:get_data(player):increase('ore_veins') | ||||
|     StatData.get_data(player):increase('ore_veins') | ||||
|  | ||||
|     local ore_positions = {[entity.position.x .. '_' .. entity.position.y] = true} | ||||
|     local count = random(size[2], size[3]) | ||||
|   | ||||
| @@ -60,7 +60,7 @@ local function write_additional_stats(key) | ||||
|         return | ||||
|     end | ||||
|  | ||||
|     this.seasons[#this.seasons] = { | ||||
|     this.seasons[#this.seasons + 1] = { | ||||
|         season_index = season, | ||||
|         rounds_survived = rounds_survived, | ||||
|         buffs_granted = total_buffs, | ||||
|   | ||||
| @@ -252,9 +252,9 @@ local function create_input_element(frame, type, value, items, index, tooltip, c | ||||
| end | ||||
|  | ||||
| local function play_game_won() | ||||
|     Explosives.disable(false) | ||||
|     Core.iter_connected_players( | ||||
|         function(player) | ||||
|             Explosives.disable(false) | ||||
|             Explosives.detonate_entity(player) | ||||
|             player.play_sound {path = 'utility/game_won', volume_modifier = 0.75} | ||||
|             Task.set_timeout_in_ticks(10, spread_particles_token, {player_index = player.index, particle = 'iron-ore-particle'}) | ||||
| @@ -1109,10 +1109,10 @@ local function update_raw() | ||||
|         elseif collection.time_until_attack and collection.time_until_attack < 0 then | ||||
|             collection.time_until_attack = 0 | ||||
|             if not collection.nuke_blueprint then | ||||
|                 collection.survive_for = game.tick + Stateful.scale(random(54000, 72000), 126000) | ||||
|                 collection.survive_for = game.tick + Stateful.scale(10 * 3600, 35 * 3600) | ||||
|                 collection.survive_for_timer = collection.survive_for | ||||
|                 collection.nuke_blueprint = true | ||||
|                 Public.stateful_blueprints.nuke_blueprint() | ||||
|                 -- Public.stateful_blueprints.nuke_blueprint() | ||||
|                 WD.disable_spawning_biters(false) | ||||
|                 Server.to_discord_embed('Final battle starts now!') | ||||
|                 refresh_boss_frame() | ||||
| @@ -1260,7 +1260,8 @@ local function update_raw() | ||||
|         Collapse.set_reverse_position({0, reverse_position}) | ||||
|         Collapse.set_reverse_direction() | ||||
|         Collapse.reverse_start_now(true) | ||||
|         Public.stateful_blueprints.blueprint() | ||||
|         Alert.alert_all_players(200, 'Reverse collapse has been initiated!') | ||||
|         -- Public.stateful_blueprints.blueprint() | ||||
|         WD.nuke_wave_gui() | ||||
|         Public.set('pre_final_battle', true) | ||||
|  | ||||
|   | ||||
| @@ -42,7 +42,7 @@ Global.register( | ||||
|     end | ||||
| ) | ||||
|  | ||||
| local damage_types = {'physical', 'electric', 'fire', 'poison', 'laser'} | ||||
| local damage_types = {'physical', 'electric', 'poison', 'laser'} | ||||
|  | ||||
| local stateful_spawn_points = { | ||||
|     {{x = -205, y = -37}, {x = 195, y = 37}}, | ||||
| @@ -288,17 +288,6 @@ local function get_random_buff(fetch_all, only_force) | ||||
|                 {name = 'copper-plate', count = 400} | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             name = 'defense', | ||||
|             discord = 'Defense starting supplies - start with some turrets and ammo', | ||||
|             modifier = 'starting_items', | ||||
|             limit = 10, | ||||
|             add_per_buff = 1, | ||||
|             items = { | ||||
|                 {name = 'gun-turret', count = 2}, | ||||
|                 {name = 'firearm-magazine', count = 25} | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             name = 'defense_3', | ||||
|             discord = 'Defense starting supplies - start with more turrets and ammo', | ||||
| @@ -1678,7 +1667,7 @@ function Public.reset_stateful(refresh_gui, clear_buffs) | ||||
|         if not this.objectives.cast_spell_any or (this.objectives_completed ~= nil and this.objectives_completed.cast_spell_any) then | ||||
|             this.objectives.cast_spell_any = { | ||||
|                 actual = 0, | ||||
|                 expected = scale(50000, 4000000, 1.035), | ||||
|                 expected = scale(1000, 4000000, 1.035), | ||||
|                 name = 'Any' | ||||
|             } | ||||
|         end | ||||
| @@ -2015,347 +2004,4 @@ Public.sizeof_stateful_spawn_points = #stateful_spawn_points | ||||
| Public.on_pre_player_died = on_pre_player_died | ||||
| Public.on_market_item_purchased = on_market_item_purchased | ||||
|  | ||||
| if _DEBUG then | ||||
|     Event.on_init( | ||||
|         function() | ||||
|             local cbl = Task.get(apply_settings_dev_token) | ||||
|             local data = { | ||||
|                 rounds_survived = 11, | ||||
|                 season = 4, | ||||
|                 test_mode = false, | ||||
|                 buffs = { | ||||
|                     { | ||||
|                         name = 'steel_axe_unlocked', | ||||
|                         discord = 'Equipement tech - start with steel axe tech unlocked.', | ||||
|                         modifier = 'tech', | ||||
|                         limit = 1, | ||||
|                         add_per_buff = 1, | ||||
|                         techs = { | ||||
|                             {name = 'steel-axe', count = 1} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'military_2_unlocked', | ||||
|                         discord = 'Equipement tech - start with military 2 tech unlocked.', | ||||
|                         modifier = 'tech', | ||||
|                         limit = 1, | ||||
|                         add_per_buff = 1, | ||||
|                         techs = { | ||||
|                             {name = 'military-2', count = 1} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'character_running_speed_modifier', | ||||
|                         discord = 'Running speed modifier - run faster!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 0.05 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'manual_mining_speed_modifier', | ||||
|                         discord = 'Mining speed modifier - mine faster!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 0.15 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'laboratory_speed_modifier', | ||||
|                         discord = 'Laboratory speed modifier - labs work faster!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 0.15 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'laboratory_productivity_bonus', | ||||
|                         discord = 'Laboratory productivity bonus - labs dupe things!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 0.15 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'worker_robots_storage_bonus', | ||||
|                         discord = 'Robot storage bonus - robots carry more!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 1 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'worker_robots_battery_modifier', | ||||
|                         discord = 'Robot battery bonus - robots work longer!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 1 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'worker_robots_speed_modifier', | ||||
|                         discord = 'Robot speed modifier - robots move faster!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 0.5 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'mining_drill_productivity_bonus', | ||||
|                         discord = 'Drill productivity bonus - drills work faster!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 0.5 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'character_health_bonus', | ||||
|                         discord = 'Character health bonus - more health!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 250 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'distance', | ||||
|                         discord = 'RPG reach distance bonus - reach further!', | ||||
|                         modifier = 'rpg_distance', | ||||
|                         per_force = true, | ||||
|                         modifiers = {'character_resource_reach_distance_bonus', 'character_item_pickup_distance_bonus', 'character_loot_pickup_distance_bonus', 'character_reach_distance_bonus'}, | ||||
|                         state = 0.05 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'manual_crafting_speed_modifier', | ||||
|                         discord = 'Crafting speed modifier - craft faster!', | ||||
|                         modifier = 'force', | ||||
|                         per_force = true, | ||||
|                         state = 0.12 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'xp_bonus', | ||||
|                         discord = 'RPG XP point bonus - more XP points from kills etc.', | ||||
|                         modifier = 'rpg', | ||||
|                         per_force = true, | ||||
|                         state = 0.12 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'xp_level', | ||||
|                         discord = 'RPG XP level bonus - start with more XP levels', | ||||
|                         modifier = 'rpg', | ||||
|                         per_force = true, | ||||
|                         state = 20 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'chemicals_s', | ||||
|                         discord = 'Starting items supplies - start with some sulfur', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 200, | ||||
|                         add_per_buff = 50, | ||||
|                         items = { | ||||
|                             {name = 'sulfur', count = 50} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'chemicals_p', | ||||
|                         discord = 'Starting items supplies - start with some plastic bar', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 200, | ||||
|                         add_per_buff = 50, | ||||
|                         items = { | ||||
|                             {name = 'plastic-bar', count = 100} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'supplies', | ||||
|                         discord = 'Starting items supplies - start with some copper and iron plates', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 1000, | ||||
|                         add_per_buff = 100, | ||||
|                         items = { | ||||
|                             {name = 'iron-plate', count = 100}, | ||||
|                             {name = 'copper-plate', count = 100} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'supplies_1', | ||||
|                         discord = 'Starting items supplies - start with more copper and iron plates', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 1000, | ||||
|                         add_per_buff = 200, | ||||
|                         items = { | ||||
|                             {name = 'iron-plate', count = 200}, | ||||
|                             {name = 'copper-plate', count = 200} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'supplies_2', | ||||
|                         discord = 'Starting items supplies - start with even more copper and iron plates', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 1000, | ||||
|                         add_per_buff = 400, | ||||
|                         items = { | ||||
|                             {name = 'iron-plate', count = 400}, | ||||
|                             {name = 'copper-plate', count = 400} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'defense', | ||||
|                         discord = 'Defense starting supplies - start with some turrets and ammo', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 10, | ||||
|                         add_per_buff = 1, | ||||
|                         items = { | ||||
|                             {name = 'gun-turret', count = 2}, | ||||
|                             {name = 'firearm-magazine', count = 25} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'defense_3', | ||||
|                         discord = 'Defense starting supplies - start with more turrets and ammo', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 1, | ||||
|                         add_per_buff = 1, | ||||
|                         items = { | ||||
|                             {name = 'rocket-launcher', count = 1}, | ||||
|                             {name = 'rocket', count = 100} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'armor', | ||||
|                         discord = 'Armor starting supplies - start with some armor and solar panels', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 1, | ||||
|                         add_per_buff = 1, | ||||
|                         items = { | ||||
|                             {name = 'modular-armor', count = 1}, | ||||
|                             {name = 'solar-panel-equipment', count = 2} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'production', | ||||
|                         discord = 'Production starting supplies - start with some furnaces and coal', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 2, | ||||
|                         add_per_buff = 1, | ||||
|                         items = { | ||||
|                             {name = 'stone-furnace', count = 4}, | ||||
|                             {name = 'coal', count = 100} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'production_1', | ||||
|                         discord = 'Production starting supplies - start with some steel furnaces and solid fuel', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 2, | ||||
|                         add_per_buff = 1, | ||||
|                         items = { | ||||
|                             {name = 'steel-furnace', count = 4}, | ||||
|                             {name = 'solid-fuel', count = 100} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'fast_startup', | ||||
|                         discord = 'Assembling starting supplies - start with some assembling machines T1', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 25, | ||||
|                         add_per_buff = 2, | ||||
|                         items = { | ||||
|                             {name = 'assembling-machine-1', count = 2} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'fast_startup_1', | ||||
|                         discord = 'Assembling starting supplies - start with some assembling machines T2', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 25, | ||||
|                         add_per_buff = 2, | ||||
|                         items = { | ||||
|                             {name = 'assembling-machine-2', count = 2} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'fast_startup_2', | ||||
|                         discord = 'Assembling starting supplies - start with some assembling machines T3', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 25, | ||||
|                         add_per_buff = 2, | ||||
|                         items = { | ||||
|                             {name = 'assembling-machine-3', count = 2} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'heal-thy-buildings', | ||||
|                         discord = 'Repair starting supplies - start with some repair packs', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 20, | ||||
|                         add_per_buff = 2, | ||||
|                         items = { | ||||
|                             {name = 'repair-pack', count = 5} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'extra_wagons', | ||||
|                         discord = 'Extra wagon at start', | ||||
|                         modifier = 'locomotive', | ||||
|                         state = 1 | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'american_oil', | ||||
|                         discord = 'Oil tech - start with some crude oil barrels', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 40, | ||||
|                         add_per_buff = 20, | ||||
|                         items = { | ||||
|                             {name = 'crude-oil-barrel', count = 20} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'steel_plates', | ||||
|                         discord = 'Steel tech - start with some steel plates', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 200, | ||||
|                         add_per_buff = 100, | ||||
|                         items = { | ||||
|                             {name = 'steel-plate', count = 100} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'red_science', | ||||
|                         discord = 'Science tech - start with some red science packs', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 200, | ||||
|                         add_per_buff = 10, | ||||
|                         items = { | ||||
|                             {name = 'automation-science-pack', count = 10} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'roboport_equipement', | ||||
|                         discord = 'Equipement tech - start with a personal roboport', | ||||
|                         modifier = 'starting_items', | ||||
|                         limit = 4, | ||||
|                         add_per_buff = 1, | ||||
|                         items = { | ||||
|                             {name = 'personal-roboport-equipment', count = 1} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'mk1_tech_unlocked', | ||||
|                         discord = 'Equipement tech - start with power armor tech unlocked.', | ||||
|                         modifier = 'tech', | ||||
|                         limit = 1, | ||||
|                         add_per_buff = 1, | ||||
|                         techs = { | ||||
|                             {name = 'power-armor', count = 1} | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|                         name = 'all_the_fish', | ||||
|                         discord = 'Wagon is full of fish!', | ||||
|                         modifier = 'fish', | ||||
|                         limit = 1, | ||||
|                         add_per_buff = 1 | ||||
|                     } | ||||
|                 }, | ||||
|                 current_date = 1711187954 | ||||
|             } | ||||
|             local settings = { | ||||
|                 value = data | ||||
|             } | ||||
|             cbl(settings) | ||||
|         end | ||||
|     ) | ||||
| end | ||||
|  | ||||
| return Public | ||||
|   | ||||
| @@ -16,7 +16,7 @@ local this = { | ||||
| } | ||||
|  | ||||
| local stateful_settings = { | ||||
|     reversed = true | ||||
|     reversed = false | ||||
| } | ||||
| local Public = {} | ||||
| local random = math.random | ||||
| @@ -138,6 +138,7 @@ function Public.reset_main_table() | ||||
|     this.locomotive_max_health = 10000 | ||||
|     this.extra_wagons = 0 | ||||
|     this.all_the_fish = false | ||||
|     this.reverse_collapse_warning = false | ||||
|     this.gap_between_zones = { | ||||
|         set = false, | ||||
|         gap = 900, | ||||
| @@ -266,7 +267,7 @@ function Public.reset_main_table() | ||||
|         redraw_mystical_chest_cost = 3000 | ||||
|     } | ||||
|     this.collapse_grace = true | ||||
|     this.corpse_removal_disabled = false | ||||
|     this.corpse_removal_disabled = true | ||||
|     this.locomotive_biter = nil | ||||
|     this.disconnect_wagon = false | ||||
|     this.collapse_amount = false | ||||
|   | ||||
| @@ -6,6 +6,7 @@ local this = { | ||||
|     explosives = {}, | ||||
|     settings = { | ||||
|         disabled = false, | ||||
|         slow_explode = false, | ||||
|         check_growth_below_void = false, | ||||
|         valid_items = { | ||||
|             ['explosives'] = 500, | ||||
| @@ -26,7 +27,7 @@ local math_sqrt = math.sqrt | ||||
| local math_round = math.round | ||||
| local math_random = math.random | ||||
| local shuffle_table = table.shuffle_table | ||||
| local speed = 3 | ||||
| local speed = 6 | ||||
| local density = 1 | ||||
| local density_r = density * 0.5 | ||||
| local valid_container_types = { | ||||
| @@ -242,12 +243,28 @@ local function tick() | ||||
|         return | ||||
|     end | ||||
|  | ||||
|     for key, cell in pairs(this.explosives.cells) do | ||||
|         if cell.spawn_tick < game.tick then | ||||
|             life_cycle(cell) | ||||
|             this.explosives.cells[key] = nil | ||||
|     if this.settings.slow_explode then | ||||
|         local count = 0 | ||||
|         for key, cell in pairs(this.explosives.cells) do | ||||
|             if cell.spawn_tick < game.tick then | ||||
|                 count = count + 1 | ||||
|                 if count < 50 then | ||||
|                     life_cycle(cell) | ||||
|                     this.explosives.cells[key] = nil | ||||
|                 else | ||||
|                     cell.spawn_tick = game.tick + speed | ||||
|                 end | ||||
|             end | ||||
|         end | ||||
|     else | ||||
|         for key, cell in pairs(this.explosives.cells) do | ||||
|             if cell.spawn_tick < game.tick then | ||||
|                 life_cycle(cell) | ||||
|                 this.explosives.cells[key] = nil | ||||
|             end | ||||
|         end | ||||
|     end | ||||
|  | ||||
|     if game.tick % 216000 == 0 then | ||||
|         this.explosives.tiles = {} | ||||
|     end | ||||
| @@ -293,7 +310,9 @@ local function on_entity_died(event) | ||||
|         return | ||||
|     end | ||||
|  | ||||
|     cell_birth(entity.surface.index, {x = entity.position.x, y = entity.position.y}, game.tick, {x = entity.position.x, y = entity.position.y}, amount * damage) | ||||
|     local final_damage = amount * damage | ||||
|  | ||||
|     cell_birth(entity.surface.index, {x = entity.position.x, y = entity.position.y}, game.tick, {x = entity.position.x, y = entity.position.y}, final_damage) | ||||
| end | ||||
|  | ||||
| function Public.detonate_chest(entity) | ||||
| @@ -395,6 +414,10 @@ function Public.check_growth_below_void(value) | ||||
|     this.settings.check_growth_below_void = value or false | ||||
| end | ||||
|  | ||||
| function Public.slow_explode(value) | ||||
|     this.settings.slow_explode = value or false | ||||
| end | ||||
|  | ||||
| local function on_init() | ||||
|     Public.reset() | ||||
| end | ||||
|   | ||||
| @@ -54,6 +54,11 @@ function Public:new_render() | ||||
|     if not surface or not surface.valid then | ||||
|         return | ||||
|     end | ||||
|  | ||||
|     if self.render_id then | ||||
|         rendering.destroy(self.render_id) | ||||
|     end | ||||
|  | ||||
|     self.render_id = rendering.draw_sprite {target = self.position, sprite = self.sprite, surface = surface} | ||||
|     return self | ||||
| end | ||||
| @@ -113,6 +118,22 @@ function Public:random_position() | ||||
|     return {x = self.position.x + (random() - 0.5) * 64, y = self.position.y + (random() - 0.5) * 64} | ||||
| end | ||||
|  | ||||
| --- Sets a random sprite | ||||
| ---@return table | ||||
| function Public:random_sprite() | ||||
|     if random(1, 2) == 1 then | ||||
|         self.sprite = Gui.beam | ||||
|         self:new_render() | ||||
|     elseif random(1, 2) == 2 then | ||||
|         self.sprite = Gui.beam_2 | ||||
|         self:new_render() | ||||
|     else | ||||
|         self.sprite = Gui.beam_1 | ||||
|         self:new_render() | ||||
|     end | ||||
|     return self | ||||
| end | ||||
|  | ||||
| --- Changes the position of a render. | ||||
| ---@param max_abs number | ||||
| ---@param value boolean | ||||
| @@ -166,7 +187,7 @@ end | ||||
|  | ||||
| --- Renders a new chart | ||||
| function Public:render_chart() | ||||
|     if self.chart then | ||||
|     if self.chart and self.chart.valid then | ||||
|         self.chart.destroy() | ||||
|     end | ||||
|  | ||||
| @@ -278,7 +299,7 @@ end | ||||
|  | ||||
| --- Destroys a render. | ||||
| function Public:destroy_chart() | ||||
|     if self.chart then | ||||
|     if self.chart and self.chart.valid then | ||||
|         self.chart.destroy() | ||||
|     end | ||||
|     return self | ||||
|   | ||||
| @@ -752,9 +752,9 @@ function Public.add_tidal_wave(cause, ent_position, shape, length, max_spread) | ||||
|         cause = cause, | ||||
|         start_position = cause.position, | ||||
|         direction = {ent_position.x - cause.position.x, ent_position.y - cause.position.y}, | ||||
|         length = length or 24, | ||||
|         length = length or 18, | ||||
|         base_spread = 0.5, | ||||
|         max_spread = max_spread or 5, | ||||
|         max_spread = max_spread or 4, | ||||
|         shape = shape or false, | ||||
|         tick = 0 | ||||
|     } | ||||
| @@ -1427,10 +1427,10 @@ function Public.rpg_reset_player(player, one_time_reset) | ||||
|                 dropdown_select_name = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_1 = 1, | ||||
|                 dropdown_select_name_1 = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_2 = 1, | ||||
|                 dropdown_select_name_2 = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_3 = 1, | ||||
|                 dropdown_select_name_3 = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_2 = 2, | ||||
|                 dropdown_select_name_2 = Public.all_spells[2].name[1], | ||||
|                 dropdown_select_index_3 = 3, | ||||
|                 dropdown_select_name_3 = Public.all_spells[3].name[1], | ||||
|                 allocate_index = 1, | ||||
|                 amount = 0, | ||||
|                 explosive_bullets = false, | ||||
| @@ -1477,10 +1477,10 @@ function Public.rpg_reset_player(player, one_time_reset) | ||||
|                 dropdown_select_name = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_1 = 1, | ||||
|                 dropdown_select_name_1 = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_2 = 1, | ||||
|                 dropdown_select_name_2 = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_3 = 1, | ||||
|                 dropdown_select_name_3 = Public.all_spells[1].name[1], | ||||
|                 dropdown_select_index_2 = 2, | ||||
|                 dropdown_select_name_2 = Public.all_spells[2].name[1], | ||||
|                 dropdown_select_index_3 = 3, | ||||
|                 dropdown_select_name_3 = Public.all_spells[3].name[1], | ||||
|                 allocate_index = 1, | ||||
|                 amount = 0, | ||||
|                 explosive_bullets = false, | ||||
|   | ||||
| @@ -140,6 +140,7 @@ function Public.update_spell_gui(player, spell_index) | ||||
|     local spell_3_data = Public.get_spell_by_name(rpg_t, rpg_t.dropdown_select_name_3) | ||||
|  | ||||
|     local shift_tooltip = 'Hold [color=yellow]SHIFT[/color] while clicking a spell to quickly change your spells.' | ||||
|     local shift_active_tooltip = 'Current activated spell.' | ||||
|  | ||||
|     local t1 = {'', {spell_1_data and spell_1_data.name and spell_1_data.name[1] or '---'}, '\n', shift_tooltip} | ||||
|     spell_table[spell1_button_name].tooltip = t1 | ||||
| @@ -154,24 +155,30 @@ function Public.update_spell_gui(player, spell_index) | ||||
|     spell_table[spell3_button_name].sprite = spell_3_data.sprite | ||||
|  | ||||
|     if rpg_t.dropdown_select_index_1 == rpg_t.dropdown_select_index then | ||||
|         local te1 = {'', {spell_1_data and spell_1_data.name and spell_1_data.name[1] or '---'}, '\n', shift_active_tooltip} | ||||
|         spell_table[spell1_button_name].enabled = false | ||||
|         spell_table[spell1_button_name].number = 1 | ||||
|         spell_table[spell1_button_name].tooltip = te1 | ||||
|         rpg_t.dropdown_select_name = rpg_t.dropdown_select_name_1 | ||||
|     else | ||||
|         spell_table[spell1_button_name].enabled = true | ||||
|         spell_table[spell1_button_name].number = nil | ||||
|     end | ||||
|     if rpg_t.dropdown_select_index_2 == rpg_t.dropdown_select_index then | ||||
|         local te2 = {'', {spell_2_data and spell_2_data.name and spell_2_data.name[1] or '---'}, '\n', shift_active_tooltip} | ||||
|         spell_table[spell2_button_name].enabled = false | ||||
|         spell_table[spell2_button_name].number = 1 | ||||
|         spell_table[spell2_button_name].tooltip = te2 | ||||
|         rpg_t.dropdown_select_name = rpg_t.dropdown_select_name_2 | ||||
|     else | ||||
|         spell_table[spell2_button_name].enabled = true | ||||
|         spell_table[spell2_button_name].number = nil | ||||
|     end | ||||
|     if rpg_t.dropdown_select_index_3 == rpg_t.dropdown_select_index then | ||||
|         local te3 = {'', {spell_3_data and spell_3_data.name and spell_3_data.name[1] or '---'}, '\n', shift_active_tooltip} | ||||
|         spell_table[spell3_button_name].enabled = false | ||||
|         spell_table[spell3_button_name].number = 1 | ||||
|         spell_table[spell3_button_name].tooltip = te3 | ||||
|         rpg_t.dropdown_select_name = rpg_t.dropdown_select_name_3 | ||||
|     else | ||||
|         spell_table[spell3_button_name].enabled = true | ||||
|   | ||||
| @@ -102,11 +102,11 @@ end | ||||
|  | ||||
| local levels = { | ||||
|     [150] = {length = 26, max_spread = 6}, | ||||
|     [200] = {length = 27, max_spread = 6}, | ||||
|     [250] = {length = 28, max_spread = 7}, | ||||
|     [300] = {length = 29, max_spread = 7}, | ||||
|     [350] = {length = 30, max_spread = 8}, | ||||
|     [400] = {length = 31, max_spread = 8} | ||||
|     [250] = {length = 27, max_spread = 6}, | ||||
|     [350] = {length = 28, max_spread = 7}, | ||||
|     [450] = {length = 29, max_spread = 7}, | ||||
|     [550] = {length = 30, max_spread = 8}, | ||||
|     [650] = {length = 31, max_spread = 8} | ||||
| } | ||||
|  | ||||
| local function get_level_data(player_level) | ||||
| @@ -123,7 +123,7 @@ local function get_level_data(player_level) | ||||
|     if closest_level then | ||||
|         return levels[closest_level] | ||||
|     else | ||||
|         return {length = 26, max_spread = 6} | ||||
|         return {length = 18, max_spread = 4} | ||||
|     end | ||||
| end | ||||
|  | ||||
| @@ -374,7 +374,7 @@ spells[#spells + 1] = { | ||||
| spells[#spells + 1] = { | ||||
|     name = {'entity-name.iron-chest'}, | ||||
|     entityName = 'iron-chest', | ||||
|     level = 10, | ||||
|     level = 1, | ||||
|     type = 'item', | ||||
|     mana_cost = 50, | ||||
|     cooldown = 70, | ||||
| @@ -687,7 +687,7 @@ if _DEBUG then | ||||
|         name = 'Kewl Nade', | ||||
|         entityName = 'cluster-grenade', | ||||
|         target = true, | ||||
|         amount = 20, | ||||
|         amount = 10, | ||||
|         damage = true, | ||||
|         aoe = true, | ||||
|         force = 'player', | ||||
| @@ -1163,7 +1163,7 @@ spells[#spells + 1] = { | ||||
|     level = 60, | ||||
|     type = 'special', | ||||
|     mana_cost = 340, | ||||
|     cooldown = 2000, | ||||
|     cooldown = 1500, | ||||
|     enforce_cooldown = true, | ||||
|     enabled = true, | ||||
|     log_spell = true, | ||||
| @@ -1199,8 +1199,8 @@ spells[#spells + 1] = { | ||||
|     force = 'player', | ||||
|     level = 100, | ||||
|     type = 'special', | ||||
|     mana_cost = 340, | ||||
|     cooldown = 100, | ||||
|     mana_cost = 300, | ||||
|     cooldown = 200, | ||||
|     enforce_cooldown = true, | ||||
|     enabled = true, | ||||
|     log_spell = false, | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								utils/files/beam_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								utils/files/beam_1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 90 KiB | 
							
								
								
									
										
											BIN
										
									
								
								utils/files/beam_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								utils/files/beam_2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 85 KiB | 
| @@ -43,6 +43,8 @@ Public.token = | ||||
| ) | ||||
|  | ||||
| Public.beam = 'file/utils/files/beam.png' | ||||
| Public.beam_1 = 'file/utils/files/beam_1.png' | ||||
| Public.beam_2 = 'file/utils/files/beam_2.png' | ||||
| Public.settings_white_icon = 'file/utils/files/settings-white.png' | ||||
| Public.settings_black_icon = 'file/utils/files/settings-black.png' | ||||
| Public.pin_white_icon = 'file/utils/files/pin-white.png' | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| -- created by Gerkiz for ComfyFactorio | ||||
|  | ||||
| local Gui = require 'utils.gui' | ||||
| local Token = require 'utils.token' | ||||
| local Task = require 'utils.task_token' | ||||
| local StatData = require 'utils.datastore.statistics' | ||||
| local format_number = require 'util'.format_number | ||||
| local Server = require 'utils.server' | ||||
| @@ -89,7 +89,7 @@ local function show_score(data) | ||||
|     end | ||||
| end | ||||
|  | ||||
| local show_stats_token = Token.register(show_score) | ||||
| local show_stats_token = Task.register(show_score) | ||||
|  | ||||
| Gui.add_tab_to_gui({name = module_name, caption = 'Statistics', id = show_stats_token, admin = false}) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user