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

minor fixes

This commit is contained in:
Gerkiz 2022-04-18 18:46:19 +02:00
parent 4fdcbd3fca
commit b31379378c
6 changed files with 154 additions and 100 deletions

View File

@ -106,14 +106,14 @@ flameboots_label=Enable flame boots?
flameboots_tooltip=When the bullets simply don´t bite.
explosive_bullets_label=Enable explosive bullets?
explosive_bullets_tooltip=Hurts the biters a bit extra
magic_label=Enable spawning with raw-fish?
magic_label=Enable spawning with fish?
toggle_cast_spell_label=Toggles the ability to cast spells.
cast_spell_enabled_label=Casting spells with fish has been enabled!
cast_spell_disabled_label=Casting spells with fish has been disabled!
magic_tooltip=When simply constructing items is not enough.\nNOTE! Use Raw-fish to cast spells.
magic_spell=Select what entity to spawn
magic_spell=Select your spell:
allocation_settings_label=Allocations Settings:
allocation_label=Select what skill to auto-allocate.
allocation_label=Select your auto-allocate skill.
allocation_tooltip=This will automatically allocate all available points to the given node.

View File

@ -245,11 +245,9 @@ local function set_train_final_health(final_damage_amount, repair)
local carriages = WPT.get('carriages')
if carriages then
for _ = 1, 10 do
for i = 1, #carriages do
local entity = carriages[i]
DefenseSystem.enable_robotic_defense(entity.position)
end
for i = 1, #carriages do
local entity = carriages[i]
DefenseSystem.enable_robotic_defense(entity.position)
end
end
local p = {

View File

@ -801,6 +801,14 @@ function Public.get_melee_modifier(player)
return total
end
function Public.get_player_level(player)
local rpg_t = Public.get_value_from_player(player.index)
if not rpg_t then
return false
end
return rpg_t.level
end
function Public.get_area_of_effect_range(player)
local rpg_t = Public.get_value_from_player(player.index)
if not rpg_t then

View File

@ -970,9 +970,7 @@ local function on_player_used_capsule(event)
spell.callback(data)
local msg = player.name .. ' casted ' .. spell.entityName .. '. '
rpg_t.last_spawned = game.tick + spell.tick
rpg_t.last_spawned = game.tick + spell.cooldown
Public.update_mana(player)
local reward_xp = spell.mana_cost * 0.085
@ -982,7 +980,10 @@ local function on_player_used_capsule(event)
Public.gain_xp(player, reward_xp)
AntiGrief.insert_into_capsule_history(player, position, msg)
if spell.log_spell then
local msg = player.name .. ' casted ' .. spell.entityName .. '. '
AntiGrief.insert_into_capsule_history(player, position, msg)
end
end
local function on_player_changed_surface(event)

View File

@ -36,7 +36,9 @@ local function create_input_element(frame, type, value, items, index)
return frame.add({type = 'checkbox', state = value})
end
if type == 'label' then
return frame.add({type = 'label', caption = value})
local label = frame.add({type = 'label', caption = value})
label.style.font = 'default-listbox'
return label
end
if type == 'dropdown' then
return frame.add({type = 'drop-down', items = items, selected_index = index})
@ -47,8 +49,12 @@ end
local function create_custom_label_element(frame, sprite, localised_string, value)
local t = frame.add({type = 'flow'})
t.add({type = 'label', caption = '[' .. sprite .. ']'})
t.add({type = 'label', caption = localised_string})
return t.add({type = 'label', caption = value})
local heading = t.add({type = 'label', caption = localised_string})
heading.style.font = 'default-listbox'
local subheading = t.add({type = 'label', caption = value})
subheading.style.font = 'default-listbox'
return subheading
end
function Public.update_spell_gui_indicator(player)
@ -185,8 +191,6 @@ function Public.extra_settings(player)
main_frame_style.width = 500
main_frame.auto_center = true
inside_table.add({type = 'line'})
local info_text = inside_table.add({type = 'label', caption = ({'rpg_settings.info_text_label'})})
local info_text_style = info_text.style
info_text_style.font = 'default-bold'
@ -668,9 +672,7 @@ function Public.settings_tooltip(player)
local main_frame, inside_table = Gui.add_main_frame_with_toolbar(player, 'center', settings_tooltip_frame, nil, close_settings_tooltip_frame, 'Spell info')
local inside_table_style = inside_table.style
inside_table_style.width = 500
inside_table.add({type = 'line'})
inside_table_style.width = 530
local info_text = inside_table.add({type = 'label', caption = ({'rpg_settings.spellbook_label'})})
local info_text_style = info_text.style
@ -708,17 +710,16 @@ function Public.settings_tooltip(player)
table.sort(spells, comparator)
for _, entity in pairs(spells) do
local cooldown = (entity.cooldown / 60) .. 's'
if entity.type == 'item' then
local text = '[item=' .. entity.entityName .. '] requires ' .. entity.mana_cost .. ' mana to cast. Level: ' .. entity.level
local text = '[item=' .. entity.entityName .. '] ▪️ Level: [font=default-bold]' .. entity.level .. '[/font] Mana: [font=default-bold]' .. entity.mana_cost .. '[/font]. Cooldown: [font=default-bold]' .. cooldown .. '[/font]'
create_input_element(normal_spell_grid, 'label', text)
elseif entity.type == 'entity' then
local text = '[entity=' .. entity.entityName .. '] requires ' .. entity.mana_cost .. ' mana to cast. Level: ' .. entity.level
local text = '[entity=' .. entity.entityName .. '] ▪️ Level: [font=default-bold]' .. entity.level .. '[/font] Mana: [font=default-bold]' .. entity.mana_cost .. '[/font]. Cooldown: [font=default-bold]' .. cooldown .. '[/font]'
create_input_element(normal_spell_grid, 'label', text)
end
end
normal_spell_pane.add({type = 'line'})
local special_spell_pane = inside_table.add({type = 'scroll-pane'})
local ss = special_spell_pane.style
ss.vertically_squashable = true
@ -727,6 +728,8 @@ function Public.settings_tooltip(player)
ss.right_padding = 5
ss.top_padding = 5
normal_spell_pane.add({type = 'line'})
local special_spells = special_spell_pane.add({type = 'label', caption = ({'rpg_settings.special_spells_label'})})
local special_spells_style = special_spells.style
special_spells_style.font = 'heading-3'
@ -738,9 +741,10 @@ function Public.settings_tooltip(player)
local special_spell_grid = special_spell_pane.add({type = 'table', column_count = 1})
for _, entity in pairs(spells) do
local cooldown = (entity.cooldown / 60) .. 's'
if entity.type == 'special' then
local text = 'requires ' .. entity.mana_cost .. ' mana to cast. Level: ' .. entity.level
create_custom_label_element(special_spell_grid, entity.sprite, entity.name, text)
local text = '▪️ Level: [font=default-bold]' .. entity.level .. '[/font] Mana: [font=default-bold]' .. entity.mana_cost .. '[/font]. Cooldown: [font=default-bold]' .. cooldown .. '[/font]'
create_custom_label_element(special_spell_grid, entity.special_sprite, entity.name, text)
end
end
end

View File

@ -7,7 +7,7 @@ local random = math.random
local floor = math.floor
local states = {
['attack'] = 'nuclear-smoke',
['attack'] = 'fire-smoke',
['support'] = 'poison-capsule-smoke'
}
@ -76,7 +76,6 @@ local function area_of_effect(player, position, state, radius, callback, find_en
else
callback(p)
end
cs.create_trivial_smoke({name = states[state], position = p})
end
end
@ -222,7 +221,7 @@ spells[#spells + 1] = {
level = 1,
type = 'item',
mana_cost = 60,
tick = 100,
cooldown = 100,
aoe = true,
enabled = true,
sprite = 'recipe/stone-wall',
@ -236,7 +235,7 @@ spells[#spells + 1] = {
level = 1,
type = 'item',
mana_cost = 50,
tick = 100,
cooldown = 100,
aoe = true,
enabled = true,
sprite = 'recipe/wooden-chest',
@ -250,7 +249,7 @@ spells[#spells + 1] = {
level = 10,
type = 'item',
mana_cost = 110,
tick = 200,
cooldown = 200,
aoe = true,
enabled = true,
sprite = 'recipe/iron-chest',
@ -264,7 +263,7 @@ spells[#spells + 1] = {
level = 30,
type = 'item',
mana_cost = 150,
tick = 300,
cooldown = 300,
aoe = true,
enabled = true,
sprite = 'recipe/steel-chest',
@ -278,7 +277,7 @@ spells[#spells + 1] = {
level = 1,
type = 'item',
mana_cost = 80,
tick = 100,
cooldown = 100,
aoe = true,
enabled = true,
sprite = 'recipe/transport-belt',
@ -292,7 +291,7 @@ spells[#spells + 1] = {
level = 10,
type = 'item',
mana_cost = 110,
tick = 200,
cooldown = 200,
aoe = true,
enabled = true,
sprite = 'recipe/fast-transport-belt',
@ -306,7 +305,7 @@ spells[#spells + 1] = {
level = 30,
type = 'item',
mana_cost = 150,
tick = 300,
cooldown = 300,
aoe = true,
enabled = true,
sprite = 'recipe/express-transport-belt',
@ -320,7 +319,7 @@ spells[#spells + 1] = {
level = 1,
type = 'item',
mana_cost = 80,
tick = 100,
cooldown = 100,
aoe = true,
enabled = true,
sprite = 'recipe/underground-belt',
@ -334,7 +333,7 @@ spells[#spells + 1] = {
level = 10,
type = 'item',
mana_cost = 110,
tick = 200,
cooldown = 200,
aoe = true,
enabled = true,
sprite = 'recipe/fast-underground-belt',
@ -348,7 +347,7 @@ spells[#spells + 1] = {
level = 30,
type = 'item',
mana_cost = 150,
tick = 300,
cooldown = 300,
aoe = true,
enabled = true,
sprite = 'recipe/express-underground-belt',
@ -362,7 +361,7 @@ spells[#spells + 1] = {
level = 1,
type = 'item',
mana_cost = 50,
tick = 100,
cooldown = 100,
aoe = true,
enabled = true,
sprite = 'recipe/pipe',
@ -376,7 +375,7 @@ spells[#spells + 1] = {
level = 1,
type = 'item',
mana_cost = 100,
tick = 100,
cooldown = 100,
aoe = true,
enabled = true,
sprite = 'recipe/pipe-to-ground',
@ -390,7 +389,7 @@ spells[#spells + 1] = {
level = 30,
type = 'entity',
mana_cost = 100,
tick = 350,
cooldown = 350,
aoe = true,
enabled = true,
sprite = 'entity/tree-05',
@ -404,7 +403,7 @@ spells[#spells + 1] = {
level = 60,
type = 'entity',
mana_cost = 80,
tick = 350,
cooldown = 350,
aoe = true,
enabled = true,
sprite = 'entity/sand-rock-big',
@ -419,7 +418,7 @@ spells[#spells + 1] = {
biter = true,
type = 'entity',
mana_cost = 55,
tick = 200,
cooldown = 200,
enabled = true,
sprite = 'entity/small-biter',
callback = function(data)
@ -433,7 +432,7 @@ spells[#spells + 1] = {
biter = true,
type = 'entity',
mana_cost = 55,
tick = 200,
cooldown = 200,
enabled = true,
sprite = 'entity/small-spitter',
callback = function(data)
@ -447,7 +446,7 @@ spells[#spells + 1] = {
biter = true,
type = 'entity',
mana_cost = 100,
tick = 300,
cooldown = 300,
enabled = true,
sprite = 'entity/medium-biter',
callback = function(data)
@ -461,7 +460,7 @@ spells[#spells + 1] = {
biter = true,
type = 'entity',
mana_cost = 100,
tick = 300,
cooldown = 300,
enabled = true,
sprite = 'entity/medium-spitter',
callback = function(data)
@ -475,8 +474,9 @@ spells[#spells + 1] = {
biter = true,
type = 'entity',
mana_cost = 800,
tick = 1420,
cooldown = 1420,
enabled = false,
log_spell = true,
sprite = 'entity/biter-spawner',
callback = function(data)
create_entity(data)
@ -489,8 +489,9 @@ spells[#spells + 1] = {
biter = true,
type = 'entity',
mana_cost = 800,
tick = 1420,
cooldown = 1420,
enabled = false,
log_spell = true,
sprite = 'entity/spitter-spawner',
callback = function(data)
create_entity(data)
@ -507,8 +508,9 @@ spells[#spells + 1] = {
level = 10,
type = 'item',
mana_cost = 40,
tick = 150,
cooldown = 150,
enabled = true,
log_spell = true,
sprite = 'recipe/shotgun-shell',
callback = function(data)
create_projectiles(data)
@ -524,8 +526,9 @@ spells[#spells + 1] = {
level = 30,
type = 'item',
mana_cost = 100,
tick = 150,
cooldown = 150,
enabled = true,
log_spell = true,
sprite = 'recipe/grenade',
callback = function(data)
create_projectiles(data)
@ -541,8 +544,9 @@ spells[#spells + 1] = {
level = 50,
type = 'item',
mana_cost = 225,
tick = 200,
cooldown = 200,
enabled = true,
log_spell = true,
sprite = 'recipe/cluster-grenade',
callback = function(data)
create_projectiles(data)
@ -558,8 +562,9 @@ spells[#spells + 1] = {
level = 30,
type = 'item',
mana_cost = 125,
tick = 150,
cooldown = 150,
enabled = true,
log_spell = true,
sprite = 'recipe/cannon-shell',
callback = function(data)
create_projectiles(data)
@ -575,8 +580,9 @@ spells[#spells + 1] = {
level = 50,
type = 'item',
mana_cost = 250,
tick = 200,
cooldown = 200,
enabled = true,
log_spell = true,
sprite = 'recipe/explosive-cannon-shell',
callback = function(data)
create_projectiles(data)
@ -592,8 +598,9 @@ spells[#spells + 1] = {
level = 70,
type = 'item',
mana_cost = 400,
tick = 200,
cooldown = 200,
enabled = true,
log_spell = true,
sprite = 'recipe/uranium-cannon-shell',
callback = function(data)
create_projectiles(data)
@ -610,8 +617,9 @@ spells[#spells + 1] = {
level = 40,
type = 'item',
mana_cost = 60,
tick = 320,
cooldown = 320,
enabled = true,
log_spell = true,
sprite = 'recipe/rocket',
callback = function(data)
create_projectiles(data)
@ -628,9 +636,11 @@ spells[#spells + 1] = {
level = 70,
type = 'special',
mana_cost = 100,
tick = 100,
cooldown = 100,
enabled = true,
sprite = 'recipe=explosives',
log_spell = true,
sprite = 'recipe/explosives',
special_sprite = 'recipe=explosives',
callback = function(data)
local self = data.self
local player = data.player
@ -668,10 +678,13 @@ spells[#spells + 1] = {
force = 'player',
level = 45,
type = 'special',
mana_cost = 150,
tick = 100,
mana_cost = 400,
cooldown = 2400,
enabled = true,
sprite = 'recipe=repair-pack',
enforce_cooldown = true,
log_spell = true,
sprite = 'recipe/repair-pack',
special_sprite = 'recipe=repair-pack',
callback = function(data)
local self = data.self
local rpg_t = data.rpg_t
@ -710,13 +723,14 @@ spells[#spells + 1] = {
force = 'player',
level = 50,
type = 'special',
mana_cost = 70,
tick = 100,
mana_cost = 700,
cooldown = 900,
enabled = true,
sprite = 'virtual-signal=signal-S',
enforce_cooldown = true,
sprite = 'virtual-signal/signal-S',
special_sprite = 'virtual-signal=signal-S',
callback = function(data)
local self = data.self
local rpg_t = data.rpg_t
local player = data.player
local position = data.position
@ -728,14 +742,12 @@ spells[#spells + 1] = {
'attack',
range,
function(p)
if self.mana_cost < rpg_t.mana then
do_projectile(player.surface, 'acid-stream-spitter-big', p, player.force, p)
Public.remove_mana(player, self.mana_cost)
end
do_projectile(player.surface, 'acid-stream-spitter-big', p, player.force, p)
end,
false
)
Public.remove_mana(player, self.mana_cost)
Public.cast_spell(player)
end
}
@ -748,9 +760,10 @@ spells[#spells + 1] = {
level = 1000,
type = 'special',
mana_cost = 10000, -- they who know, will know
tick = 320,
cooldown = 320,
enabled = false,
sprite = 'entity=tank',
sprite = 'entity/tank',
special_sprite = 'entity=tank',
callback = function(data)
create_entity(data)
end
@ -764,9 +777,11 @@ spells[#spells + 1] = {
level = 2000,
type = 'special',
mana_cost = 19500, -- they who know, will know
tick = 320,
cooldown = 320,
enabled = false,
sprite = 'entity=spidertron',
log_spell = true,
sprite = 'entity/spidertron',
special_sprite = 'entity=spidertron',
callback = function(data)
create_entity(data)
end
@ -783,9 +798,10 @@ spells[#spells + 1] = {
level = 50,
type = 'special',
mana_cost = 140,
tick = 320,
cooldown = 320,
enabled = true,
sprite = 'item=raw-fish',
sprite = 'item/raw-fish',
special_sprite = 'item=raw-fish',
callback = function(data)
insert_onto(data)
end
@ -802,9 +818,10 @@ spells[#spells + 1] = {
level = 25,
type = 'special',
mana_cost = 140,
tick = 320,
cooldown = 320,
enabled = true,
sprite = 'item=explosives',
special_sprite = 'item/explosives',
callback = function(data)
insert_onto(data)
end
@ -820,9 +837,11 @@ spells[#spells + 1] = {
level = 60,
type = 'special',
mana_cost = 150,
tick = 320,
cooldown = 320,
enabled = true,
sprite = 'entity=compilatron',
log_spell = true,
sprite = 'entity/compilatron',
special_sprite = 'entity=compilatron',
callback = function(data)
local self = data.self
local player = data.player
@ -845,9 +864,10 @@ spells[#spells + 1] = {
level = 50,
type = 'special',
mana_cost = 220,
tick = 320,
cooldown = 320,
enabled = true,
sprite = 'recipe=distractor-capsule',
sprite = 'recipe/distractor-capsule',
special_sprite = 'recipe=distractor-capsule',
callback = function(data)
create_projectiles(data)
end
@ -860,9 +880,11 @@ spells[#spells + 1] = {
level = 60,
type = 'special',
mana_cost = 340,
tick = 2000,
cooldown = 2000,
enabled = true,
sprite = 'virtual-signal=signal-W',
log_spell = true,
sprite = 'virtual-signal/signal-W',
special_sprite = 'virtual-signal=signal-W',
callback = function(data)
local player = data.player
local surface = data.surface
@ -888,10 +910,12 @@ spells[#spells + 1] = {
level = 25,
type = 'special',
mana_cost = 100,
tick = 2000,
cooldown = 2000,
check_if_active = true,
enabled = true,
sprite = 'virtual-signal=signal-info',
log_spell = true,
sprite = 'virtual-signal/signal-info',
special_sprite = 'virtual-signal=signal-info',
callback = function(data)
local self = data.self
local player = data.player
@ -913,13 +937,15 @@ spells[#spells + 1] = {
entityName = 'eternal_blades',
target = false,
force = 'player',
level = 25,
level = 200,
type = 'special',
mana_cost = 100,
tick = 2000,
check_if_active = true,
mana_cost = 350,
cooldown = 2000,
enabled = false,
sprite = 'virtual-signal=signal-info',
enforce_cooldown = false,
log_spell = true,
sprite = 'virtual-signal/signal-info',
special_sprite = 'virtual-signal=signal-info',
callback = function(data)
local self = data.self
local player = data.player
@ -927,7 +953,9 @@ spells[#spells + 1] = {
local range = Public.get_area_of_effect_range(player)
local damage = 34
local damage = Public.get_player_level(player)
damage = damage / 4
area_of_effect(
player,
@ -952,7 +980,8 @@ spells[#spells + 1] = {
end
else
if entity.valid then
entity.health = entity.health - damage * 0.05
log(serpent.block(entity.name))
entity.health = entity.health - damage
if entity.health <= 0 then
entity.die(entity.force.name, player.character)
end
@ -1059,13 +1088,13 @@ function Public.set_new_spell(tbl)
if tbl then
if not tbl.name then
return error('A spell requires a name. string', 2)
return error('A spell requires a name. <string>', 2)
end
if not tbl.entityName then
return error('A spell requires an object to create. string', 2)
return error('A spell requires an object to create. <string>', 2)
end
if not tbl.target then
return error('A spell requires position. boolean', 2)
return error('A spell requires position. <boolean>', 2)
end
if not tbl.amount then
return error('A spell requires an amount of creation. <integer>', 2)
@ -1077,7 +1106,7 @@ function Public.set_new_spell(tbl)
return error('A spell requires damage. <damage-area=true/false>', 2)
end
if not tbl.force then
return error('A spell requires a force. string', 2)
return error('A spell requires a force. <string>', 2)
end
if not tbl.level then
return error('A spell requires a level. <integer>', 2)
@ -1088,11 +1117,20 @@ function Public.set_new_spell(tbl)
if not tbl.mana_cost then
return error('A spell requires mana_cost. <integer>', 2)
end
if not tbl.tick then
return error('A spell requires tick. <integer>', 2)
if not tbl.cooldown then
return error('A spell requires cooldown. <integer>', 2)
end
if not tbl.enforce_cooldown then
return error('A spell requires enforce_cooldown. <boolean>', 2)
end
if not tbl.enabled then
return error('A spell requires enabled. boolean', 2)
return error('A spell requires enabled. <boolean>', 2)
end
if not tbl.log_spell then
return error('A spell requires log_spell. <boolean>', 2)
end
if not tbl.check_if_active then
return error('A spell requires check_if_active. <boolean>', 2)
end
Public.all_spells[#Public.all_spells + 1] = tbl
@ -1124,9 +1162,14 @@ function Public.disable_cooldowns_on_spells()
local new_spells = {}
for i = 1, #spells do
if spells[i].enabled then
spells[i].tick = 0
new_spells[#new_spells + 1] = spells[i]
local spell = spells[i]
if spell.enabled then
if not spell.enforce_cooldown then
spell.cooldown = 0
new_spells[#new_spells + 1] = spell
else
new_spells[#new_spells + 1] = spell
end
end
end