diff --git a/bobclasses/changelog.txt b/bobclasses/changelog.txt index caedd38a2..b08e5c421 100644 --- a/bobclasses/changelog.txt +++ b/bobclasses/changelog.txt @@ -5,6 +5,12 @@ Date: ??? - Reduced the tier of electronics required for player brains #180 - Changed player brains to use circuits rather than circuit components #184 - Update for Factorio 2.0 #189 + - Rebalanced classes #235 + - Miner class has been replaced by Crafter class + - Builder class has been modified to lose its crafting speed bonus + - Balanced class has been strengthened a bit + - Fighter class has been buffed considerably in various combat-related ways + - Prospector class has been replaced with the Sapper class, a combination of Fighter + Builder instead of Fighter + Miner or Crafter --------------------------------------------------------------------------------------------------- Version: 1.2.1 Date: 21. 02. 2024 diff --git a/bobclasses/control.lua b/bobclasses/control.lua index 8548166c0..118d129fa 100644 --- a/bobclasses/control.lua +++ b/bobclasses/control.lua @@ -152,18 +152,15 @@ function add_classes() tooltip = { "gui.bob-class-builder" }, sprite = "class-builder-button", }, - bonuses = { - character_crafting_speed_modifier = 1, - }, + bonuses = {}, starting_inventory = { add = { { name = "burner-inserter", count = 2 }, - { name = "transport-belt", count = 10 }, + { name = "transport-belt", count = 45 }, + { name = "burner-inserter", count = 10 }, }, replace = { - { remove = { name = "iron-plate", count = 4 }, add = { name = "burner-inserter", count = 2 } }, - { remove = { name = "pistol", count = 1 }, add = { name = "transport-belt", count = 5 } }, - { remove = { name = "firearm-magazine", count = 10 }, add = { name = "transport-belt", count = 5 } }, + { remove = { name = "firearm-magazine", count = 2 }, add = { name = "transport-belt", count = 5 } }, }, }, respawn_inventory = { @@ -295,7 +292,9 @@ function init() sprite = "class-balanced-button", group = "t1", }, - bonuses = {}, + bonuses = { + character_crafting_speed_modifier = 1, + }, starting_inventory = { add = {}, replace = {}, @@ -313,12 +312,15 @@ function init() sprite = "class-miner-button", group = "t1", }, - bonuses = {}, + bonuses = { + character_crafting_speed_modifier = 2, + }, starting_inventory = { - add = {}, - replace = { - { remove = { name = "stone-furnace", count = 1 }, add = { name = "burner-mining-drill", count = 1 } }, + add = { + { name = "burner-mining-drill", count = 1 }, + { name = "stone-furnace", count = 1 }, }, + replace = {}, }, respawn_inventory = { add = {}, @@ -333,11 +335,17 @@ function init() sprite = "class-fighter-button", group = "t1", }, - bonuses = {}, + bonuses = { + character_maximum_following_robot_count_bonus = 10, + }, starting_inventory = { - add = {}, + add = { + { name = "modular-armor", count = 1 }, + { name = "personal-laser-defense-equipment", count = 1 }, + { name = "battery-equipment", count = 2 }, + { name = "solar-panel-equipment", count = 6 }, + }, replace = { - { remove = { name = "iron-plate", count = 4 }, add = { name = "heavy-armor", count = 1 } }, { remove = { name = "pistol", count = 1 }, add = { name = "submachine-gun", count = 1 } }, { remove = { name = "burner-mining-drill", count = 1 }, add = { name = "firearm-magazine", count = 45 } }, { remove = { name = "stone-furnace", count = 1 }, add = { name = "firearm-magazine", count = 45 } }, @@ -359,15 +367,14 @@ function init() sprite = "class-builder-button", group = "t1", }, - bonuses = { - character_crafting_speed_modifier = 1, - }, + bonuses = {}, starting_inventory = { - add = {}, + add = { + { name = "burner-inserter", count = 6 }, + { name = "transport-belt", count = 20 }, + }, replace = { - { remove = { name = "iron-plate", count = 4 }, add = { name = "burner-inserter", count = 2 } }, - { remove = { name = "pistol", count = 1 }, add = { name = "transport-belt", count = 5 } }, - { remove = { name = "firearm-magazine", count = 10 }, add = { name = "transport-belt", count = 5 } }, + { remove = { name = "firearm-magazine", count = 2 }, add = { name = "transport-belt", count = 5 } }, }, }, respawn_inventory = { @@ -384,7 +391,9 @@ function init() group = "t2", }, prerequisites = { "bodies-2" }, - bonuses = {}, + bonuses = { + character_crafting_speed_modifier = 2, + }, starting_inventory = { add = {}, replace = {}, @@ -403,12 +412,15 @@ function init() group = "t2", }, prerequisites = { "miner-body-2" }, - bonuses = {}, + bonuses = { + character_crafting_speed_modifier = 3, + }, starting_inventory = { - add = {}, - replace = { - { remove = { name = "stone-furnace", count = 1 }, add = { name = "burner-mining-drill", count = 1 } }, + add = { + { name = "burner-mining-drill", count = 1 }, + { name = "stone-furnace", count = 1 }, }, + replace = {}, }, respawn_inventory = { add = {}, @@ -424,11 +436,17 @@ function init() group = "t2", }, prerequisites = { "fighter-body-2" }, - bonuses = {}, + bonuses = { + character_maximum_following_robot_count_bonus = 20, + }, starting_inventory = { - add = {}, + add = { + { name = "modular-armor", count = 1 }, + { name = "personal-laser-defense-equipment", count = 1 }, + { name = "battery-equipment", count = 2 }, + { name = "solar-panel-equipment", count = 6 }, + }, replace = { - { remove = { name = "iron-plate", count = 4 }, add = { name = "heavy-armor", count = 1 } }, { remove = { name = "pistol", count = 1 }, add = { name = "submachine-gun", count = 1 } }, { remove = { name = "burner-mining-drill", count = 1 }, add = { name = "firearm-magazine", count = 45 } }, { remove = { name = "stone-furnace", count = 1 }, add = { name = "firearm-magazine", count = 45 } }, @@ -455,11 +473,12 @@ function init() character_crafting_speed_modifier = 2, }, starting_inventory = { - add = {}, + add = { + { name = "burner-inserter", count = 6 }, + { name = "transport-belt", count = 20 }, + }, replace = { - { remove = { name = "iron-plate", count = 4 }, add = { name = "burner-inserter", count = 2 } }, - { remove = { name = "pistol", count = 1 }, add = { name = "transport-belt", count = 5 } }, - { remove = { name = "firearm-magazine", count = 10 }, add = { name = "transport-belt", count = 5 } }, + { remove = { name = "firearm-magazine", count = 2 }, add = { name = "transport-belt", count = 5 } }, }, }, respawn_inventory = { @@ -477,15 +496,16 @@ function init() }, prerequisites = { "engineer-body" }, bonuses = { - character_crafting_speed_modifier = 1, + character_crafting_speed_modifier = 2, }, starting_inventory = { - add = {}, + add = { + { name = "burner-mining-drill", count = 1 }, + { name = "burner-inserter", count = 4 }, + { name = "transport-belt", count = 10 }, + }, replace = { - { remove = { name = "stone-furnace", count = 1 }, add = { name = "burner-mining-drill", count = 1 } }, - { remove = { name = "iron-plate", count = 4 }, add = { name = "burner-inserter", count = 2 } }, - { remove = { name = "pistol", count = 1 }, add = { name = "transport-belt", count = 5 } }, - { remove = { name = "firearm-magazine", count = 10 }, add = { name = "transport-belt", count = 5 } }, + { remove = { name = "firearm-magazine", count = 2 }, add = { name = "transport-belt", count = 5 } }, }, }, respawn_inventory = { @@ -502,13 +522,19 @@ function init() group = "t2_advanced", }, prerequisites = { "prospector-body" }, - bonuses = {}, + bonuses = { + character_maximum_following_robot_count_bonus = 10, + }, starting_inventory = { - add = {}, + add = { + { name = "modular-armor", count = 1 }, + { name = "energy-shield-equipment", count = 1 }, + { name = "battery-equipment", count = 2 }, + { name = "solar-panel-equipment", count = 6 }, + }, replace = { - { remove = { name = "iron-plate", count = 4 }, add = { name = "heavy-armor", count = 1 } }, { remove = { name = "pistol", count = 1 }, add = { name = "submachine-gun", count = 1 } }, - { remove = { name = "stone-furnace", count = 1 }, add = { name = "firearm-magazine", count = 40 } }, + { remove = { name = "burner-mining-drill", count = 1 }, add = { name = "firearm-magazine", count = 50 } }, }, }, respawn_inventory = { diff --git a/bobclasses/data-updates.lua b/bobclasses/data-updates.lua index ebc11c5fb..cd596b53b 100644 --- a/bobclasses/data-updates.lua +++ b/bobclasses/data-updates.lua @@ -23,9 +23,19 @@ data.raw.character["bob-character-engineer"].crafting_categories = util.copy(cat data.raw.character["bob-character-prospector"].crafting_categories = util.copy(categories) table.insert(bobmods.classes.characters["bob-character-miner"].crafting_categories, "smelting") +table.insert(bobmods.classes.characters["bob-character-miner"].crafting_categories, "basic-crafting") +table.insert(bobmods.classes.characters["bob-character-miner"].crafting_categories, "advanced-crafting") table.insert(bobmods.classes.characters["bob-character-miner-2"].crafting_categories, "smelting") +table.insert(bobmods.classes.characters["bob-character-miner-2"].crafting_categories, "basic-crafting") +table.insert(bobmods.classes.characters["bob-character-miner-2"].crafting_categories, "advanced-crafting") table.insert(bobmods.classes.characters["bob-character-engineer"].crafting_categories, "smelting") -table.insert(bobmods.classes.characters["bob-character-prospector"].crafting_categories, "smelting") +table.insert(bobmods.classes.characters["bob-character-engineer"].crafting_categories, "basic-crafting") +table.insert(bobmods.classes.characters["bob-character-engineer"].crafting_categories, "advanced-crafting") +if data.raw["recipe-category"]["machine-crafting"] then + table.insert(bobmods.classes.characters["bob-character-miner"].crafting_categories, "machine-crafting") + table.insert(bobmods.classes.characters["bob-character-miner-2"].crafting_categories, "machine-crafting") + table.insert(bobmods.classes.characters["bob-character-engineer"].crafting_categories, "machine-crafting") +end --if mixing furnace category exists, add it to characters with smelting category if data.raw["recipe-category"]["mixing-furnace"] then diff --git a/bobclasses/data.lua b/bobclasses/data.lua index 1b9e0404c..1ae146674 100644 --- a/bobclasses/data.lua +++ b/bobclasses/data.lua @@ -18,83 +18,83 @@ data:extend({ { type = "sprite", name = "class-balanced-button", - filename = "__bobclasses__/icons/balanced.png", + filename = "__bobclasses__/icons/sprites/balanced.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-miner-button", - filename = "__bobclasses__/icons/miner.png", + filename = "__bobclasses__/icons/sprites/crafter.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-fighter-button", - filename = "__bobclasses__/icons/fighter.png", + filename = "__bobclasses__/icons/sprites/fighter.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-builder-button", - filename = "__bobclasses__/icons/builder.png", + filename = "__bobclasses__/icons/sprites/builder.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-balanced-2-button", - filename = "__bobclasses__/icons/balanced-2.png", + filename = "__bobclasses__/icons/sprites/balanced-2.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-miner-2-button", - filename = "__bobclasses__/icons/miner-2.png", + filename = "__bobclasses__/icons/sprites/crafter-2.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-fighter-2-button", - filename = "__bobclasses__/icons/fighter-2.png", + filename = "__bobclasses__/icons/sprites/fighter-2.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-builder-2-button", - filename = "__bobclasses__/icons/builder-2.png", + filename = "__bobclasses__/icons/sprites/builder-2.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-engineer-button", - filename = "__bobclasses__/icons/engineer.png", + filename = "__bobclasses__/icons/sprites/engineer.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, { type = "sprite", name = "class-prospector-button", - filename = "__bobclasses__/icons/prospector.png", + filename = "__bobclasses__/icons/sprites/sapper.png", priority = "medium", - width = 32, - height = 32, + width = 64, + height = 64, }, }) diff --git a/bobclasses/icons/balanced-2.png b/bobclasses/icons/balanced-2.png index 8c27f2c7d..4ce187b16 100644 Binary files a/bobclasses/icons/balanced-2.png and b/bobclasses/icons/balanced-2.png differ diff --git a/bobclasses/icons/balanced.png b/bobclasses/icons/balanced.png index 25594efc4..20b2f3d15 100644 Binary files a/bobclasses/icons/balanced.png and b/bobclasses/icons/balanced.png differ diff --git a/bobclasses/icons/builder-2.png b/bobclasses/icons/builder-2.png index 6f46a6ab7..1235b4e41 100644 Binary files a/bobclasses/icons/builder-2.png and b/bobclasses/icons/builder-2.png differ diff --git a/bobclasses/icons/builder.png b/bobclasses/icons/builder.png index 85c9661f0..ddc99b3a3 100644 Binary files a/bobclasses/icons/builder.png and b/bobclasses/icons/builder.png differ diff --git a/bobclasses/icons/crafter-2.png b/bobclasses/icons/crafter-2.png new file mode 100644 index 000000000..748acfedc Binary files /dev/null and b/bobclasses/icons/crafter-2.png differ diff --git a/bobclasses/icons/crafter.png b/bobclasses/icons/crafter.png new file mode 100644 index 000000000..66b0d4ea8 Binary files /dev/null and b/bobclasses/icons/crafter.png differ diff --git a/bobclasses/icons/engineer.png b/bobclasses/icons/engineer.png index 0b7de2242..b94443b94 100644 Binary files a/bobclasses/icons/engineer.png and b/bobclasses/icons/engineer.png differ diff --git a/bobclasses/icons/engineer2.png b/bobclasses/icons/engineer2.png deleted file mode 100644 index 1d822660e..000000000 Binary files a/bobclasses/icons/engineer2.png and /dev/null differ diff --git a/bobclasses/icons/fighter-2.png b/bobclasses/icons/fighter-2.png index 7696a2f17..690463ba4 100644 Binary files a/bobclasses/icons/fighter-2.png and b/bobclasses/icons/fighter-2.png differ diff --git a/bobclasses/icons/fighter.png b/bobclasses/icons/fighter.png index 42c19b51f..3fe8c865b 100644 Binary files a/bobclasses/icons/fighter.png and b/bobclasses/icons/fighter.png differ diff --git a/bobclasses/icons/miner-2.png b/bobclasses/icons/miner-2.png deleted file mode 100644 index 0533b4ae2..000000000 Binary files a/bobclasses/icons/miner-2.png and /dev/null differ diff --git a/bobclasses/icons/miner.png b/bobclasses/icons/miner.png deleted file mode 100644 index 06028083c..000000000 Binary files a/bobclasses/icons/miner.png and /dev/null differ diff --git a/bobclasses/icons/miner2.png b/bobclasses/icons/miner2.png deleted file mode 100644 index e48b22132..000000000 Binary files a/bobclasses/icons/miner2.png and /dev/null differ diff --git a/bobclasses/icons/player.png b/bobclasses/icons/player.png deleted file mode 100644 index 035c1133e..000000000 Binary files a/bobclasses/icons/player.png and /dev/null differ diff --git a/bobclasses/icons/prospector.png b/bobclasses/icons/prospector.png deleted file mode 100644 index d310c5a0f..000000000 Binary files a/bobclasses/icons/prospector.png and /dev/null differ diff --git a/bobclasses/icons/prospector2.png b/bobclasses/icons/prospector2.png deleted file mode 100644 index ca5cc2d5d..000000000 Binary files a/bobclasses/icons/prospector2.png and /dev/null differ diff --git a/bobclasses/icons/sapper.png b/bobclasses/icons/sapper.png new file mode 100644 index 000000000..2f9ae59e2 Binary files /dev/null and b/bobclasses/icons/sapper.png differ diff --git a/bobclasses/icons/sprites/balanced-2.png b/bobclasses/icons/sprites/balanced-2.png new file mode 100644 index 000000000..139b362dd Binary files /dev/null and b/bobclasses/icons/sprites/balanced-2.png differ diff --git a/bobclasses/icons/sprites/balanced.png b/bobclasses/icons/sprites/balanced.png new file mode 100644 index 000000000..8b5b773c9 Binary files /dev/null and b/bobclasses/icons/sprites/balanced.png differ diff --git a/bobclasses/icons/sprites/builder-2.png b/bobclasses/icons/sprites/builder-2.png new file mode 100644 index 000000000..e6e6d8ea9 Binary files /dev/null and b/bobclasses/icons/sprites/builder-2.png differ diff --git a/bobclasses/icons/sprites/builder.png b/bobclasses/icons/sprites/builder.png new file mode 100644 index 000000000..65fd503e8 Binary files /dev/null and b/bobclasses/icons/sprites/builder.png differ diff --git a/bobclasses/icons/sprites/crafter-2.png b/bobclasses/icons/sprites/crafter-2.png new file mode 100644 index 000000000..e78be9480 Binary files /dev/null and b/bobclasses/icons/sprites/crafter-2.png differ diff --git a/bobclasses/icons/sprites/crafter.png b/bobclasses/icons/sprites/crafter.png new file mode 100644 index 000000000..773ccdc61 Binary files /dev/null and b/bobclasses/icons/sprites/crafter.png differ diff --git a/bobclasses/icons/sprites/engineer.png b/bobclasses/icons/sprites/engineer.png new file mode 100644 index 000000000..131e27a6f Binary files /dev/null and b/bobclasses/icons/sprites/engineer.png differ diff --git a/bobclasses/icons/sprites/fighter-2.png b/bobclasses/icons/sprites/fighter-2.png new file mode 100644 index 000000000..dd4d58b49 Binary files /dev/null and b/bobclasses/icons/sprites/fighter-2.png differ diff --git a/bobclasses/icons/sprites/fighter.png b/bobclasses/icons/sprites/fighter.png new file mode 100644 index 000000000..8e1214081 Binary files /dev/null and b/bobclasses/icons/sprites/fighter.png differ diff --git a/bobclasses/icons/sprites/sapper.png b/bobclasses/icons/sprites/sapper.png new file mode 100644 index 000000000..8ef4bb108 Binary files /dev/null and b/bobclasses/icons/sprites/sapper.png differ diff --git a/bobclasses/locale/en/bobclasses.cfg b/bobclasses/locale/en/bobclasses.cfg index e7ebbe1e5..3a8e4824b 100644 --- a/bobclasses/locale/en/bobclasses.cfg +++ b/bobclasses/locale/en/bobclasses.cfg @@ -1,15 +1,16 @@ [entity-name] -bob-character-miner=Miner class character +character=Balanced class character +bob-character-miner=Crafter class character bob-character-fighter=Fighter class character bob-character-builder=Builder class character bob-character-balanced-2=Balanced 2 class character -bob-character-miner-2=Miner 2 class character +bob-character-miner-2=Crafter 2 class character bob-character-fighter-2=Fighter 2 class character bob-character-builder-2=Builder 2 class character bob-character-engineer=Engineer class character -bob-character-prospector=Prospector class character +bob-character-prospector=Sapper class character [item-name] @@ -27,13 +28,13 @@ bob-character-engineer=__ENTITY__bob-character-engineer__ bob-character-prospector=__ENTITY__bob-character-prospector__ -player-brain=Brain +player-brain=Body system controller player-head=Head player-boots=Boots player-gloves=Gloves player-frame=Character frame -player-brain-2=Brain 2 +player-brain-2=Body system controller 2 player-head-2=Head 2 player-boots-2=Boots 2 player-gloves-2=Gloves 2 @@ -58,18 +59,18 @@ player-frame-2=A part used to create a new character body player-power-core=A part used to create a new character body -character=The Balanced class is well rounded and is the standard character class. -bob-character-miner=The Miner class has an increased mining speed and can smelt ores by hand, but moves slower and has less health. -bob-character-fighter=The Fighter class has an increased run speed and has more health, but has a smaller inventory size. -bob-character-builder=The Builder class has an increased inventory size and crafting speed, but moves slower and has less health. +character=Well rounded, with good crafting speed. +bob-character-miner=Crafts much faster, and can use additional recipe categories, but moves slower and is worse at combat. +bob-character-fighter=Fast and excellent in combat, but has less reach and a smaller inventory. +bob-character-builder=Has a larger inventory and can reach much further to build, but is worse at combat. Has belt immunity. -bob-character-balanced-2=The Balanced 2 class is well rounded, it has slight improvements to health, inventory size, reach and run speed. -bob-character-miner-2=The Miner 2 class has an increased mining speed, inventory size and can smelt ores by hand. -bob-character-fighter-2=The Fighter 2 class has an increased run speed and has more health. -bob-character-builder-2=The Builder 2 class has an increased inventory size, reach and crafting speed. +bob-character-balanced-2=Well rounded, with improved abilities across the board. +bob-character-miner-2=Has a larger inventory, crafts much faster, and can use additional recipe categories, but moves slower and is worse at combat. +bob-character-fighter-2=Fast and excellent in combat, but has less reach and a smaller inventory. +bob-character-builder-2=Has a larger inventory and can reach much further to build, but is worse at combat. Has belt immunity. -bob-character-engineer=The Engineer class is a combination of the Miner and Builder classes. It has more inventory space, reach, mining speed, crafting speed, and can smelt ores by hand. -bob-character-prospector=The Prospector class is a combination of the Miner and Fighter classes. It has increased run speed, more health, increased mining speed and can smelt ores by hand. +bob-character-engineer=A combination of the Crafter and Builder classes. Has good reach, crafting speed, and inventory, but moves slower and is worse at combat. +bob-character-prospector=A combination of the Builder and Fighter classes. Has good reach, speed, and combat ability. [technology-name] @@ -83,24 +84,35 @@ prospector-body=__ENTITY__bob-character-prospector__ body [technology-description] -bodies=Research into constructing new character bodies. +bodies=Research into constructing new character bodies.\n\n[font=default-semibold][color=255,230,192]Balanced class:[/color][/font]\nCrafting speed: 2\nReach: 10\nMax health: 300\nHealing: 11/second\nTime to start healing: 8 seconds\nInventory size: 80\nGun slots: 3\nRunning speed: 0.15\nMining speed: 0.5 +miner-body=[font=default-semibold][color=255,230,192]Crafter class:[/color][/font]\nCrafting speed: 3\nReach: 10\nMax health: 200\nHealing: 6/second\nTime to start healing: 12 seconds\nInventory size: 100\nGun slots: 2\nRunning speed: 0.12\nMining speed: 1\nSpecial: Can use smelting and machine crafting recipes. +fighter-body=[font=default-semibold][color=255,230,192]Fighter class:[/color][/font]\nCrafting speed: 1\nReach: 8\nMax health: 400\nHealing: 18/second\nTime to start healing: 3 seconds\nInventory size: 60\nGun slots: 5\nRunning speed: 0.2\nMining speed: 0.5\nExtra robot followers: 10\nSpecial: Immune to poison clouds, stronger melee attack. +builder-body=[font=default-semibold][color=255,230,192]Builder class:[/color][/font]\nCrafting speed: 1\nReach: 15\nMax health: 200\nHealing: 6/second\nTime to start healing: 12 seconds\nInventory size: 100\nGun slots: 2\nRunning speed: 0.15\nMining speed: 1\nSpecial: Belt immunity. + +bodies2=Research into constructing improved character bodies.\n\n[font=default-semibold][color=255,230,192]Balanced 2 class:[/color][/font]\nCrafting speed: 3\nReach: 13\nMax health: 450\nHealing: 18/second\nTime to start healing: 5 seconds\nInventory size: 100\nGun slots: 3\nRunning speed: 0.2\nMining speed: 1 +miner-body2=[font=default-semibold][color=255,230,192]Crafter 2 class:[/color][/font]\nCrafting speed: 4\nReach: 13\nMax health: 300\nHealing: 9/second\nTime to start healing: 8 seconds\nInventory size: 120\nGun slots: 2\nRunning speed: 0.15\nMining speed: 1.5\nSpecial: Can use smelting and machine crafting recipes. +fighter-body2=[font=default-semibold][color=255,230,192]Fighter 2 class:[/color][/font]\nCrafting speed: 1\nReach: 10\nMax health: 600\nHealing: 27/second\nTime to start healing: 2 seconds\nInventory size: 80\nGun slots: 5\nRunning speed: 0.25\nMining speed: 0.5\nExtra robot followers: 20\nSpecial: Immune to poison clouds, stronger melee attack. +builder-body2=[font=default-semibold][color=255,230,192]Builder 2 class:[/color][/font]\nCrafting speed: 1\nReach: 20\nMax health: 300\nHealing: 9/second\nTime to start healing: 8 seconds\nInventory size: 120\nGun slots: 2\nRunning speed: 0.2\nMining speed: 1.5\nSpecial: Belt immunity. + +engineer-body=[font=default-semibold][color=255,230,192]Engineer class:[/color][/font]\nCrafting speed: 3\nReach: 17.5\nMax health: 300\nHealing: 9/second\nTime to start healing: 12 seconds\nInventory size: 120\nGun slots: 2\nRunning speed: 0.15\nMining speed: 1.5\nSpecial: Belt immunity. Can use smelting and machine crafting recipes. +prospector-body=[font=default-semibold][color=255,230,192]Sapper class:[/color][/font]\nCrafting speed: 1\nReach: 15\nMax health: 450\nHealing: 18/second\nTime to start healing: 8 seconds\nInventory size: 100\nGun slots: 3\nRunning speed: 0.225\nMining speed: 1.5\nExtra robot followers: 10\nSpecial: Immune to poison clouds, stronger melee attack. [gui] bob-class-pick=Select a character class -bob-class-balanced=The Balanced class is well rounded and is the standard character class. -bob-class-miner=The Miner class has an increased mining speed and can smelt ores by hand, but moves slower and has less health. -bob-class-fighter=The Fighter class has an increased run speed and has more health, but has a smaller inventory size. -bob-class-builder=The Builder class has an increased inventory size and crafting speed, but moves slower and has less health. +bob-class-balanced=[font=default-semibold][color=255,230,192]The Balanced class[/color][/font] is basic but well rounded.\n\nCrafting speed: 2\nReach: 10\nMax health: 300\nHealing: 11/second\nTime to start healing: 8 seconds\nInventory size: 80\nGun slots: 3\nRunning speed: 0.15\nMining speed: 0.5 +bob-class-miner=[font=default-semibold][color=255,230,192]The Crafter class[/color][/font] is well equipped for efficient and versatile portable manufacturing.\n\nCrafting speed: 3\nReach: 10\nMax health: 200\nHealing: 6/second\nTime to start healing: 12 seconds\nInventory size: 100\nGun slots: 2\nRunning speed: 0.12\nMining speed: 1\nSpecial: Can use smelting and machine crafting recipes. +bob-class-fighter=[font=default-semibold][color=255,230,192]The Fighter class[/color][/font] is fast, heals quickly, and has various improvements to its combat strength. Starts with better weapons and equipment.\n\nCrafting speed: 1\nReach: 8\nMax health: 400\nHealing: 18/second\nTime to start healing: 3 seconds\nInventory size: 60\nGun slots: 5\nRunning speed: 0.2\nMining speed: 0.5\nExtra robot followers: 10\nSpecial: Immune to poison clouds, stronger melee attack. +bob-class-builder=[font=default-semibold][color=255,230,192]The Builder class[/color][/font] is geared toward making the process of building a factory and smooth and easy as possible.\n\nCrafting speed: 1\nReach: 15\nMax health: 200\nHealing: 6/second\nTime to start healing: 12 seconds\nInventory size: 100\nGun slots: 2\nRunning speed: 0.15\nMining speed: 1\nSpecial: Belt immunity. -bob-class-balanced-2=The Balanced 2 class is well rounded, it has slight improvements to health, inventory size, reach and run speed. -bob-class-miner-2=The Miner 2 class has an increased mining speed, inventory size and can smelt ores by hand. -bob-class-fighter-2=The Fighter 2 class has an increased run speed and has more health. -bob-class-builder-2=The Builder 2 class has an increased inventory size, reach and crafting speed. +bob-class-balanced-2=[font=default-semibold][color=255,230,192]The Balanced 2 class[/color][/font] is well rounded, with slight improvements to health, inventory size, reach, and run speed.\n\nCrafting speed: 3\nReach: 13\nMax health: 450\nHealing: 18/second\nTime to start healing: 5 seconds\nInventory size: 100\nGun slots: 3\nRunning speed: 0.2\nMining speed: 1 +bob-class-miner-2=[font=default-semibold][color=255,230,192]The Crafter 2 class[/color][/font] has a larger inventory, crafts much faster, and can use additional recipe categories, but is slower and worse at combat.\n\nCrafting speed: 4\nReach: 13\nMax health: 300\nHealing: 9/second\nTime to start healing: 8 seconds\nInventory size: 120\nGun slots: 2\nRunning speed: 0.15\nMining speed: 1.5\nSpecial: Can use smelting and machine crafting recipes. +bob-class-fighter-2=[font=default-semibold][color=255,230,192]The Fighter 2 class[/color][/font] is fast, heals quickly, and has all around excellent combat performance.\n\nCrafting speed: 1\nReach: 10\nMax health: 600\nHealing: 27/second\nTime to start healing: 2 seconds\nInventory size: 80\nGun slots: 5\nRunning speed: 0.25\nMining speed: 0.5\nExtra robot followers: 20\nSpecial: Immune to poison clouds, stronger melee attack. +bob-class-builder-2=[font=default-semibold][color=255,230,192]The Builder 2 class[/color][/font] has even longer reach and a larger inventory.\n\nCrafting speed: 1\nReach: 20\nMax health: 300\nHealing: 9/second\nTime to start healing: 8 seconds\nInventory size: 120\nGun slots: 2\nRunning speed: 0.2\nMining speed: 1.5\nSpecial: Belt immunity. -bob-class-engineer=The Engineer class is a combination of the Miner and Builder classes. It has more inventory space, reach, mining speed, crafting speed, and can smelt ores by hand. -bob-class-prospector=The Prospector class is a combination of the Miner and Fighter classes. It has increased run speed, more health, increased mining speed and can smelt ores by hand. +bob-class-engineer=[font=default-semibold][color=255,230,192]The Engineer class[/color][/font] is a combination of the Crafter and Builder classes, with the special abilities of both. It has good reach, crafting speed, and inventory, but is slower and worse at combat.\n\nCrafting speed: 3\nReach: 17.5\nMax health: 300\nHealing: 9/second\nTime to start healing: 12 seconds\nInventory size: 120\nGun slots: 2\nRunning speed: 0.15\nMining speed: 1.5\nSpecial: Belt immunity. Can use smelting and machine crafting recipes. +bob-class-prospector=[font=default-semibold][color=255,230,192]The Sapper class[/color][/font] is a combination of the Builder and Fighter classes. It has increased reach and speed, and is a strong combatant in general.\n\nCrafting speed: 1\nReach: 15\nMax health: 450\nHealing: 18/second\nTime to start healing: 8 seconds\nInventory size: 100\nGun slots: 3\nRunning speed: 0.225\nMining speed: 1.5\nExtra robot followers: 10\nSpecial: Immune to poison clouds, stronger melee attack. bob-avatar-gui=Avatar switcher diff --git a/bobclasses/prototypes/bodies.lua b/bobclasses/prototypes/bodies.lua index 83b8288be..073007484 100644 --- a/bobclasses/prototypes/bodies.lua +++ b/bobclasses/prototypes/bodies.lua @@ -32,14 +32,14 @@ data:extend({ shift = { -5, 0 }, }, { - icon = "__bobclasses__/icons/miner.png", - icon_size = 32, - scale = 0.5, + icon = "__bobclasses__/icons/crafter.png", + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, subgroup = "bodies", - order = "a[character]-1-miner", + order = "a[character]-1-crafter", place_result = "bob-character-miner", stack_size = 1, drop_sound = body_drop_move, @@ -57,8 +57,8 @@ data:extend({ }, { icon = "__bobclasses__/icons/fighter.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, @@ -81,8 +81,8 @@ data:extend({ }, { icon = "__bobclasses__/icons/builder.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, @@ -129,9 +129,9 @@ data:extend({ shift = { -5, 0 }, }, { - icon = "__bobclasses__/icons/miner.png", - icon_size = 32, - scale = 0.5, + icon = "__bobclasses__/icons/crafter.png", + icon_size = 64, + scale = 0.25, shift = { 8, -8 }, }, { @@ -142,7 +142,7 @@ data:extend({ }, }, subgroup = "bodies", - order = "a[character]-2-miner", + order = "a[character]-2-crafter", place_result = "bob-character-miner-2", stack_size = 1, drop_sound = body_drop_move, @@ -160,8 +160,8 @@ data:extend({ }, { icon = "__bobclasses__/icons/fighter.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, -8 }, }, { @@ -190,8 +190,8 @@ data:extend({ }, { icon = "__bobclasses__/icons/builder.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, -8 }, }, { @@ -221,8 +221,8 @@ data:extend({ }, { icon = "__bobclasses__/icons/engineer.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, @@ -244,14 +244,14 @@ data:extend({ shift = { -5, 0 }, }, { - icon = "__bobclasses__/icons/prospector.png", - icon_size = 32, - scale = 0.5, + icon = "__bobclasses__/icons/sapper.png", + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, subgroup = "bodies", - order = "a[character]-2-prospector", + order = "a[character]-2-sapper", place_result = "bob-character-prospector", stack_size = 1, drop_sound = body_drop_move, @@ -303,7 +303,8 @@ data:extend({ enabled = false, ingredients = { { type = "item", name = "player-frame", amount = 1 }, - { type = "item", name = "assembling-machine-3", amount = 1 }, + { type = "item", name = "assembling-machine-2", amount = 1 }, + { type = "item", name = "fast-inserter", amount = 2 }, }, results = { { type = "item", name = "bob-character-builder", amount = 1 } }, }, @@ -315,7 +316,7 @@ data:extend({ enabled = false, ingredients = { { type = "item", name = "player-frame-2", amount = 1 }, - { type = "item", name = "assembling-machine-2", amount = 1 }, + { type = "item", name = "assembling-machine-3", amount = 1 }, }, results = { { type = "item", name = "bob-character-balanced-2", amount = 1 } }, }, @@ -326,7 +327,7 @@ data:extend({ enabled = false, ingredients = { { type = "item", name = "player-frame-2", amount = 1 }, - { type = "item", name = "assembling-machine-2", amount = 1 }, + { type = "item", name = "assembling-machine-3", amount = 1 }, { type = "item", name = "electric-furnace", amount = 1 }, }, results = { { type = "item", name = "bob-character-miner-2", amount = 1 } }, @@ -351,6 +352,7 @@ data:extend({ ingredients = { { type = "item", name = "player-frame-2", amount = 1 }, { type = "item", name = "assembling-machine-3", amount = 1 }, + { type = "item", name = "bulk-inserter", amount = 2 }, }, results = { { type = "item", name = "bob-character-builder-2", amount = 1 } }, }, @@ -364,6 +366,7 @@ data:extend({ { type = "item", name = "player-frame-2", amount = 1 }, { type = "item", name = "assembling-machine-3", amount = 1 }, { type = "item", name = "electric-furnace", amount = 1 }, + { type = "item", name = "fast-inserter", amount = 2 }, }, results = { { type = "item", name = "bob-character-engineer", amount = 1 } }, }, @@ -375,7 +378,7 @@ data:extend({ ingredients = { { type = "item", name = "player-frame-2", amount = 1 }, { type = "item", name = "assembling-machine-2", amount = 1 }, - { type = "item", name = "electric-furnace", amount = 1 }, + { type = "item", name = "fast-inserter", amount = 2 }, { type = "item", name = "exoskeleton-equipment", amount = 1 }, }, results = { { type = "item", name = "bob-character-prospector", amount = 1 } }, @@ -432,7 +435,6 @@ data:extend({ }, time = 60, }, - order = "bodies", }, { type = "technology", @@ -444,10 +446,10 @@ data:extend({ shift = { -20, 0 }, }, { - icon = "__bobclasses__/icons/miner.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon = "__bobclasses__/icons/crafter.png", + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -458,6 +460,7 @@ data:extend({ }, prerequisites = { "bodies", + "automation-2", "advanced-material-processing-2", }, unit = { @@ -469,7 +472,6 @@ data:extend({ }, time = 30, }, - order = "bodies-miner", }, { type = "technology", @@ -482,9 +484,9 @@ data:extend({ }, { icon = "__bobclasses__/icons/fighter.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -506,7 +508,6 @@ data:extend({ }, time = 30, }, - order = "bodies-fighter", }, { type = "technology", @@ -519,9 +520,9 @@ data:extend({ }, { icon = "__bobclasses__/icons/builder.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -532,7 +533,7 @@ data:extend({ }, prerequisites = { "bodies", - "automation-3", + "fast-inserter", }, unit = { count = 150, @@ -543,14 +544,24 @@ data:extend({ }, time = 30, }, - order = "bodies-builder", }, { type = "technology", name = "bodies-2", - icon = "__bobclasses__/icons/character.png", - icon_size = 128, + localised_description = {"technology-description.bodies2"}, + icons = { + { + icon = "__bobclasses__/icons/character.png", + icon_size = 128, + }, + { + icon = "__bobclasses__/icons/2.png", + icon_size = 64, + scale = 1, + shift = { 32, 32 }, + }, + }, effects = { { type = "unlock-recipe", @@ -581,6 +592,7 @@ data:extend({ "bodies", "production-science-pack", "processing-unit", + "automation-3", }, unit = { count = 250, @@ -592,11 +604,11 @@ data:extend({ }, time = 60, }, - order = "bodies-2", }, { type = "technology", name = "miner-body-2", + localised_description = {"technology-description.miner-body2"}, icons = { { icon = "__bobclasses__/icons/character.png", @@ -604,10 +616,10 @@ data:extend({ shift = { -20, 0 }, }, { - icon = "__bobclasses__/icons/miner.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon = "__bobclasses__/icons/crafter.png", + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -630,11 +642,11 @@ data:extend({ }, time = 30, }, - order = "bodies-2-miner", }, { type = "technology", name = "fighter-body-2", + localised_description = {"technology-description.fighter-body2"}, icons = { { icon = "__bobclasses__/icons/character.png", @@ -643,9 +655,9 @@ data:extend({ }, { icon = "__bobclasses__/icons/fighter.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -668,11 +680,11 @@ data:extend({ }, time = 30, }, - order = "bodies-2-fighter", }, { type = "technology", name = "builder-body-2", + localised_description = {"technology-description.builder-body2"}, icons = { { icon = "__bobclasses__/icons/character.png", @@ -681,9 +693,9 @@ data:extend({ }, { icon = "__bobclasses__/icons/builder.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -695,6 +707,7 @@ data:extend({ prerequisites = { "bodies-2", "builder-body", + "bulk-inserter", }, unit = { count = 150, @@ -706,7 +719,6 @@ data:extend({ }, time = 30, }, - order = "bodies-2-builder", }, { @@ -720,9 +732,9 @@ data:extend({ }, { icon = "__bobclasses__/icons/engineer.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -746,7 +758,6 @@ data:extend({ }, time = 30, }, - order = "bodies-2-engineer", }, { type = "technology", @@ -758,10 +769,10 @@ data:extend({ shift = { -20, 0 }, }, { - icon = "__bobclasses__/icons/prospector.png", - icon_size = 32, - scale = 2, - shift = { 32, 0 }, + icon = "__bobclasses__/icons/sapper.png", + icon_size = 64, + scale = 0.8, + shift = { 40, 0 }, }, }, effects = { @@ -771,7 +782,7 @@ data:extend({ }, }, prerequisites = { - "miner-body", + "builder-body", "fighter-body", "bodies-2", }, @@ -785,6 +796,5 @@ data:extend({ }, time = 30, }, - order = "bodies-2-prospector", }, }) diff --git a/bobclasses/prototypes/character.lua b/bobclasses/prototypes/character.lua index 7e1fe1314..7d1c92452 100644 --- a/bobclasses/prototypes/character.lua +++ b/bobclasses/prototypes/character.lua @@ -3,13 +3,17 @@ bobmods.classes.characters = {} table.insert(data.raw.character.character.flags, "not-in-made-in") data.raw.character.character.fast_replaceable_group = "character" -data.raw.character.character.icon = nil data.raw.character.character.icons = { { icon = "__bobclasses__/icons/character.png", icon_size = 128, }, } +data.raw.character.character.icon = nil +data.raw.character.character.max_health = 300 +data.raw.character.character.healing_per_tick = 0.18 +data.raw.character.character.ticks_to_stay_in_combat = 480 +data.raw.character.character.loot_pickup_distance = 2.5 bobmods.classes.characters["bob-character-miner"] = util.merge({ data.raw.character.character, @@ -22,24 +26,22 @@ bobmods.classes.characters["bob-character-miner"] = util.merge({ shift = { -5, 0 }, }, { - icon = "__bobclasses__/icons/miner.png", - icon_size = 32, - scale = 0.5, + icon = "__bobclasses__/icons/crafter.png", + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, max_health = 200, - healing_per_tick = 0.12, - -- crafting_categories = {"crafting", "smelting"}, - inventory_size = 80, - build_distance = 8, - reach_distance = 8, - reach_resource_distance = 3.5, + healing_per_tick = 0.1, + ticks_to_stay_in_combat = 720, + inventory_size = 100, + loot_pickup_distance = 2, + guns_inventory_size = 2, running_speed = 0.12, mining_speed = 1, }, }) -table.insert(bobmods.classes.characters["bob-character-miner"].crafting_categories, "smelting") bobmods.classes.characters["bob-character-fighter"] = util.merge({ data.raw.character.character, @@ -53,19 +55,54 @@ bobmods.classes.characters["bob-character-fighter"] = util.merge({ }, { icon = "__bobclasses__/icons/fighter.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, - max_health = 300, - healing_per_tick = 0.18, + flags = { + "placeable-off-grid", + "not-repairable", + "not-on-map", + "not-flammable", + "get-by-unit-number" + }, + max_health = 400, + healing_per_tick = 0.3, + ticks_to_stay_in_combat = 150, inventory_size = 60, build_distance = 8, reach_distance = 8, + drop_item_distance = 8, + reach_resource_distance = 3.5, + loot_pickup_distance = 3.5, + tool_attack_distance = 3.5, + guns_inventory_size = 5, running_speed = 0.2, }, }) +bobmods.classes.characters["bob-character-fighter"].tool_attack_result = { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "damage", + damage = { + type = "physical", + amount = 40, + }, + }, + { + type = "push-back", + distance = 3, + }, + }, + }, +} +if mods["bobwarfare"] then + bobmods.classes.characters["bob-character-fighter"].tool_attack_result.action_delivery.target_effects[1].damage.type = "plasma" +end bobmods.classes.characters["bob-character-builder"] = util.merge({ data.raw.character.character, @@ -79,17 +116,22 @@ bobmods.classes.characters["bob-character-builder"] = util.merge({ }, { icon = "__bobclasses__/icons/builder.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, max_health = 200, - healing_per_tick = 0.12, - inventory_size = 106, - build_distance = 12, - reach_distance = 12, - running_speed = 0.12, + healing_per_tick = 0.1, + ticks_to_stay_in_combat = 720, + inventory_size = 100, + build_distance = 15, + reach_distance = 15, + drop_item_distance = 15, + reach_resource_distance = 3.5, + guns_inventory_size = 2, + mining_speed = 1, + has_belt_immunity = true, }, }) @@ -110,20 +152,16 @@ bobmods.classes.characters["bob-character-balanced-2"] = util.merge({ shift = { 8, 8 }, }, }, - max_health = 300, - healing_per_tick = 0.18, - - crafting_categories = { "crafting" }, - mining_categories = { "basic-solid" }, - + max_health = 450, + healing_per_tick = 0.3, + ticks_to_stay_in_combat = 300, inventory_size = 100, - - build_distance = 12, - reach_distance = 12, - reach_resource_distance = 3.25, - - running_speed = 0.18, - mining_speed = 0.6, + build_distance = 13, + reach_distance = 13, + drop_item_distance = 13, + loot_pickup_distance = 3.5, + running_speed = 0.2, + mining_speed = 1, }, }) @@ -138,9 +176,9 @@ bobmods.classes.characters["bob-character-miner-2"] = util.merge({ shift = { -5, 0 }, }, { - icon = "__bobclasses__/icons/miner.png", - icon_size = 32, - scale = 0.5, + icon = "__bobclasses__/icons/crafter.png", + icon_size = 64, + scale = 0.25, shift = { 8, -8 }, }, { @@ -150,18 +188,19 @@ bobmods.classes.characters["bob-character-miner-2"] = util.merge({ shift = { 8, 8 }, }, }, - max_health = 250, + max_health = 300, healing_per_tick = 0.15, - -- crafting_categories = {"crafting", "smelting"}, - inventory_size = 100, - build_distance = 10, - reach_distance = 10, - reach_resource_distance = 4.2, + ticks_to_stay_in_combat = 480, + inventory_size = 120, + build_distance = 13, + reach_distance = 13, + drop_item_distance = 13, + loot_pickup_distance = 2.5, + guns_inventory_size = 2, running_speed = 0.15, - mining_speed = 1.2, + mining_speed = 1.5, }, }) -table.insert(bobmods.classes.characters["bob-character-miner-2"].crafting_categories, "smelting") bobmods.classes.characters["bob-character-fighter-2"] = util.merge({ data.raw.character.character, @@ -175,8 +214,8 @@ bobmods.classes.characters["bob-character-fighter-2"] = util.merge({ }, { icon = "__bobclasses__/icons/fighter.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, -8 }, }, { @@ -186,16 +225,72 @@ bobmods.classes.characters["bob-character-fighter-2"] = util.merge({ shift = { 8, 8 }, }, }, - max_health = 375, - healing_per_tick = 0.225, + flags = { + "placeable-off-grid", + "not-repairable", + "not-on-map", + "not-flammable", + "get-by-unit-number" + }, + max_health = 600, + healing_per_tick = 0.45, + ticks_to_stay_in_combat = 120, inventory_size = 80, build_distance = 10, reach_distance = 10, - reach_resource_distance = 3.25, - running_speed = 0.24, - mining_speed = 0.6, + drop_item_distance = 10, + reach_resource_distance = 3.5, + loot_pickup_distance = 4.5, + tool_attack_distance = 3.5, + guns_inventory_size = 5, + running_speed = 0.25, + mining_speed = 1, }, }) +bobmods.classes.characters["bob-character-fighter-2"].tool_attack_result = { + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "damage", + damage = { + type = "physical", + amount = 200, + }, + }, + }, + }, + }, + { + type = "area", + radius = 4, + force = "enemy", + action_delivery = { + { + type = "beam", + beam = "electric-beam", + duration = 15, + max_length = 16, + add_to_shooter = false, + source_offset = { 0, -0.5 }, + }, + { + type = "instant", + target_effects = { + { + type = "push-back", + distance = 4, + }, + }, + }, + }, + }, +} +if mods["bobwarfare"] then + bobmods.classes.characters["bob-character-fighter-2"].tool_attack_result[1].action_delivery.target_effects[1].damage.type = "plasma" +end bobmods.classes.characters["bob-character-builder-2"] = util.merge({ data.raw.character.character, @@ -209,8 +304,8 @@ bobmods.classes.characters["bob-character-builder-2"] = util.merge({ }, { icon = "__bobclasses__/icons/builder.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, -8 }, }, { @@ -220,14 +315,19 @@ bobmods.classes.characters["bob-character-builder-2"] = util.merge({ shift = { 8, 8 }, }, }, - max_health = 250, + max_health = 300, healing_per_tick = 0.15, - inventory_size = 133, - build_distance = 15, - reach_distance = 15, - reach_resource_distance = 3.25, - running_speed = 0.15, - mining_speed = 0.6, + ticks_to_stay_in_combat = 480, + inventory_size = 120, + build_distance = 20, + reach_distance = 20, + drop_item_distance = 20, + loot_pickup_distance = 3.5, + reach_resource_distance = 3.5, + guns_inventory_size = 2, + running_speed = 0.2, + mining_speed = 1.5, + has_belt_immunity = true, }, }) @@ -243,23 +343,25 @@ bobmods.classes.characters["bob-character-engineer"] = util.merge({ }, { icon = "__bobclasses__/icons/engineer.png", - icon_size = 32, - scale = 0.5, + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, - max_health = 250, + max_health = 300, healing_per_tick = 0.15, - -- crafting_categories = {"crafting", "smelting"}, - inventory_size = 100, - build_distance = 12, - reach_distance = 12, - reach_resource_distance = 3.5, + ticks_to_stay_in_combat = 720, + inventory_size = 120, + build_distance = 17.5, + reach_distance = 17.5, + drop_item_distance = 17.5, + loot_pickup_distance = 3.5, + guns_inventory_size = 2, running_speed = 0.15, - mining_speed = 1, + mining_speed = 1.5, + has_belt_immunity = true, }, }) -table.insert(bobmods.classes.characters["bob-character-engineer"].crafting_categories, "smelting") bobmods.classes.characters["bob-character-prospector"] = util.merge({ data.raw.character.character, @@ -272,24 +374,77 @@ bobmods.classes.characters["bob-character-prospector"] = util.merge({ shift = { -5, 0 }, }, { - icon = "__bobclasses__/icons/prospector.png", - icon_size = 32, - scale = 0.5, + icon = "__bobclasses__/icons/sapper.png", + icon_size = 64, + scale = 0.25, shift = { 8, 0 }, }, }, - max_health = 300, - healing_per_tick = 0.18, - -- crafting_categories = {"crafting", "smelting"}, - inventory_size = 80, - build_distance = 10, - reach_distance = 10, + flags = { + "placeable-off-grid", + "not-repairable", + "not-on-map", + "not-flammable", + "get-by-unit-number" + }, + max_health = 450, + healing_per_tick = 0.3, + ticks_to_stay_in_combat = 480, + inventory_size = 100, + build_distance = 15, + reach_distance = 15, + drop_item_distance = 15, + loot_pickup_distance = 3.5, reach_resource_distance = 3.5, - running_speed = 0.18, - mining_speed = 1, + tool_attack_distance = 3.5, + running_speed = 0.225, + mining_speed = 1.5, }, }) -table.insert(bobmods.classes.characters["bob-character-prospector"].crafting_categories, "smelting") +bobmods.classes.characters["bob-character-prospector"].tool_attack_result = { + { + type = "direct", + action_delivery = { + type = "instant", + target_effects = { + { + type = "damage", + damage = { + type = "physical", + amount = 200, + }, + }, + }, + }, + }, + { + type = "area", + radius = 4, + force = "enemy", + action_delivery = { + { + type = "beam", + beam = "electric-beam", + duration = 15, + max_length = 16, + add_to_shooter = false, + source_offset = { 0, -0.5 }, + }, + { + type = "instant", + target_effects = { + { + type = "push-back", + distance = 4, + }, + }, + }, + }, + }, +} +if mods["bobwarfare"] then + bobmods.classes.characters["bob-character-prospector"].tool_attack_result[1].action_delivery.target_effects[1].damage.type = "plasma" +end for index, character in pairs(bobmods.classes.characters) do data:extend({ diff --git a/bobclasses/prototypes/parts.lua b/bobclasses/prototypes/parts.lua index a13f5d0eb..9c1237f16 100644 --- a/bobclasses/prototypes/parts.lua +++ b/bobclasses/prototypes/parts.lua @@ -92,7 +92,7 @@ data:extend({ icon = "__bobclasses__/icons/bodies/shell.png", icon_size = 128, subgroup = "body-parts", - order = "a[player]-power-core", + order = "a[player]-i", stack_size = 20, drop_sound = { filename = "__base__/sound/item/armor-large-inventory-move.ogg", @@ -246,7 +246,7 @@ data:extend({ icon = "__bobclasses__/icons/bodies/shell.png", icon_size = 128, subgroup = "body-parts", - order = "a[player]-power-core-2", + order = "a[player]-i2", stack_size = 20, drop_sound = { filename = "__base__/sound/item/armor-large-inventory-move.ogg", diff --git a/bobclasses/prototypes/recipe-updates.lua b/bobclasses/prototypes/recipe-updates.lua index 76224c3fb..e7ffc5981 100644 --- a/bobclasses/prototypes/recipe-updates.lua +++ b/bobclasses/prototypes/recipe-updates.lua @@ -65,9 +65,17 @@ if data.raw.item["titanium-chest"] then bobmods.lib.recipe.replace_ingredient("player-frame-2", "steel-chest", "titanium-chest") end +if data.raw.item["turbo-inserter"] then + bobmods.lib.tech.replace_prerequisite("builder-body", "fast-inserter", "express-inserters") + bobmods.lib.recipe.replace_ingredient("bob-character-builder-2", "bulk-inserter", "turbo-inserter") + bobmods.lib.tech.replace_prerequisite("builder-body-2", "bulk-inserter", "turbo-inserter") +end + if data.raw.item["assembling-machine-4"] then - bobmods.lib.recipe.replace_ingredient("bob-character-builder-2", "assembling-machine-3", "assembling-machine-4") - bobmods.lib.tech.add_prerequisite("builder-body-2", "automation-4") + bobmods.lib.recipe.replace_ingredient("bob-character-miner", "assembling-machine-2", "assembling-machine-3") + bobmods.lib.recipe.replace_ingredient("bob-character-miner-2", "assembling-machine-3", "assembling-machine-4") + bobmods.lib.tech.add_prerequisite("miner-body", "automation-3") + bobmods.lib.tech.add_prerequisite("miner-body-2", "automation-4") end if data.raw.item["electric-furnace-2"] then