1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-02-01 13:08:05 +02:00

Class balance

Changes:
- Quartermaster now also increases your physical damage dealt. Previously it only increased nearby crewmate physical damage dealt.
- Reduced damage reduction of Samurai from 68% to 55%.
- Reduced damage reduction of Hatamoto from 79% to 70%.
- Increased extra melee damage done by Samurai from 25 to 30.
- Increased extra melee damage done by Hatamoto from 45 to 50.
This commit is contained in:
Piratux 2023-07-01 22:13:49 +03:00
parent e4f34885a6
commit 230e74d7a9
4 changed files with 9 additions and 25 deletions

View File

@ -236,58 +236,40 @@ class_unobtainable=Class was disabled and is unobtainable.
class_definition_for=Class definition for
class_deckhand=Deckhand
# class_deckhand_explanation=They move faster and generate ore whilst onboard above deck.
class_deckhand_explanation_advanced=They move __1__% times faster and generate ore (+__2__ every __3__ seconds) whilst onboard above deck.\nNo ore is generated while at sea.
class_fisherman=Fisherman
# class_fisherman_explanation=They fish at greater distance.
class_fisherman_explanation_advanced=They fish at greater distance (__1__ extra tile range), and catch more (+__2__ fish).
class_scout=Scout
# class_scout_explanation=They are faster, but frail and deal less damage.
class_scout_explanation_advanced=They move __1__% times faster, but receive __2__% more damage and deal __3__% less damage.
class_samurai=Samurai
# class_samurai_explanation=They are tough, and *with no weapon equipped* fight well by melee, but poorly otherwise.
class_samurai_explanation_advanced=They receive __1__% less damage, and with no weapon equipped do extra __2__ damage in melee (scales with 'physical projectile damage' research bonuses), but deal __3__% less damage otherwise.\nIf the damage dealt in melee is an overkill, the remaining damage splashes onto nearby enemies.
class_merchant=Merchant
# class_merchant_explanation=They generate 50 doubloons per league.
class_merchant_explanation_advanced=They generate 50 doubloons per league.
class_shoresman=Shoresman
# class_shoresman_explanation=They move slightly faster and generate ore whilst offboard.
class_shoresman_explanation_advanced=They move __1__% times faster and generate ore (+__2__ every __3__ seconds) whilst offboard.
class_boatswain=Boatswain
# class_boatswain_explanation=They move faster and generate ore whilst below deck.
class_boatswain_explanation_advanced=They move __1__% times faster and generate ore (+__2__ every __3__ seconds) whilst below deck.\nNo ore is generated while at sea.
class_prospector=Prospector
# class_prospector_explanation=They find more resources when handmining.
class_prospector_explanation_advanced=They find more resources when handmining.
class_lumberjack=Lumberjack
# class_lumberjack_explanation=They find more resources when chopping trees.
class_lumberjack_explanation_advanced=They find ores and more coins when chopping trees.
class_master_angler=Master Angler
# class_master_angler_explanation=They fish at much greater distance, and catch more.
class_master_angler_explanation_advanced=They fish at much greater distance (__1__ extra tile range), and catch more (+__2__ fish and +__3__ coins).
class_wood_lord=Lord of the Woods
# class_wood_lord_explanation=They find many more resources when chopping trees.
class_wood_lord_explanation_advanced=They find many more resources when chopping trees.
class_chief_excavator=Chief Excavator
# class_chief_excavator_explanation=They find many more resources when handmining.
class_chief_excavator_explanation_advanced=They find many more resources when handmining.
class_hatamoto=Hatamoto
# class_hatamoto_explanation=They are very tough, and *with no weapon equipped* fight well by melee, but poorly otherwise.
class_hatamoto_explanation_advanced=They receive __1__% less damage, and with no weapon equipped do extra __2__ damage in melee (scales with 'physical projectile damage' research bonuses), but deal __3__% less damage otherwise.\n\nIf the damage dealt in melee is an overkill, the remaining damage splashes onto nearby enemies.
class_iron_leg=Iron Leg
# class_iron_leg_explanation=They are very resistant to damage when carrying 3000 iron ore.
class_iron_leg_explanation_advanced=They receive __1__% less damage when carrying at least __2__ iron ore.
class_quartermaster=Quartermaster
# class_quartermaster_explanation=Nearby crewmates get +10% physical attack and generate ore.
class_quartermaster_explanation_advanced=Nearby crewmates (at __1__ tile radius) get +__2__% physical attack bonus and generate ore (ore amount depends on nearby crewmate count).\nNo ore is generated while at sea.
class_quartermaster_explanation_advanced= You and your nearby crewmates (at __1__ tile radius) get +__2__% physical attack bonus and generate ore (ore amount depends on nearby crewmate count).\nNo ore is generated while at sea.
class_dredger=Dredger
# class_dredger_explanation=They find surprising items when they fish.
class_dredger_explanation_advanced=They can grab fish from an insane distance (__1__ extra tile range), and catch more (+__2__ fish). In addition, they find surprising items when fishing.
class_smoldering=Smoldering
# class_smoldering_explanation=They periodically convert wood into coal, if they have less than 50 coal.
class_smoldering_explanation_advanced=They periodically convert wood into coal, if they have less than 50 coal.
class_gourmet=Gourmet
# class_gourmet_explanation=They generate ore by eating fish in fancy locations.
class_gourmet_explanation_advanced=They generate ore by eating fish in fancy locations. Does not generate ore while at sea.
class_chef=Chef
class_chef_explanation_advanced=They cook meat of defeated enemies and turn it into something tasty.

View File

@ -484,7 +484,7 @@ local function damage_dealt_by_players_changes(event)
for _, p2 in pairs(nearby_players) do
if p2.player and p2.player.valid then
local p2_index = p2.player.index
if event.entity.valid and player_index ~= p2_index and Classes.get_class(p2_index) == Classes.enum.QUARTERMASTER then
if event.entity.valid and Classes.get_class(p2_index) == Classes.enum.QUARTERMASTER then
-- event.entity.damage((Balance.quartermaster_bonus_physical_damage - 1) * event.final_damage_amount, character.force, 'impact', character) --triggers this function again, but not physical this time
Common.damage_hostile_entity(event.entity, (Balance.quartermaster_bonus_physical_damage - 1) * event.final_damage_amount)
event.final_damage_amount = event.final_damage_amount * Balance.quartermaster_bonus_physical_damage

View File

@ -37,12 +37,12 @@ Public.class_reward_tick_rate_in_seconds = 7
Public.poison_damage_multiplier = 1.85
Public.every_nth_tree_gives_coins = 10
Public.samurai_damage_taken_multiplier = 0.32
Public.samurai_damage_taken_multiplier = 0.45
Public.samurai_damage_dealt_when_not_melee_multiplier = 0.75
Public.samurai_damage_dealt_with_melee = 25
Public.hatamoto_damage_taken_multiplier = 0.21
Public.samurai_damage_dealt_with_melee = 30
Public.hatamoto_damage_taken_multiplier = 0.3
Public.hatamoto_damage_dealt_when_not_melee_multiplier = 0.75
Public.hatamoto_damage_dealt_with_melee = 45
Public.hatamoto_damage_dealt_with_melee = 50
Public.iron_leg_damage_taken_multiplier = 0.24
Public.iron_leg_iron_ore_required = 3000
Public.deckhand_extra_speed = 1.25
@ -95,6 +95,8 @@ Public.need_resources_to_undock_x = 40 * 20
Public.biters_spawned_on_elite_biter_death = 4
Public.walkways_frozen_pool_damage = 12
function Public.starting_boatEEIpower_production_MW()
-- return 3 * Math.sloped(Common.capacity_scale(), 1/2) / 2 --/2 as we have 2
return 3/2

View File

@ -161,7 +161,7 @@ local function walkways_tick()
if destination.subtype == IslandEnum.enum.WALKWAYS then
for _, player in pairs(game.connected_players) do
if player.force.name == memory.force_name and player.surface == game.surfaces[destination.surface_name] and player.character and player.character.valid and game.surfaces[destination.surface_name].get_tile(player.position).name == 'water-shallow' then
player.character.damage(12, game.forces['environment'], 'fire')
player.character.damage(Balance.walkways_frozen_pool_damage, game.forces['environment'], 'fire')
if not (player.character and player.character.valid) then
Common.notify_force(player.force, {'pirates.death_froze',player.name})
end