1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-10 00:43:27 +02:00
ComfyFactorio/modules/rpg/commands.lua

205 lines
4.7 KiB
Lua
Raw Normal View History

2021-11-14 14:02:00 +02:00
local Public = require 'modules.rpg.table'
2020-10-19 20:21:27 +02:00
local Utils = require 'utils.core'
local Color = require 'utils.color_presets'
local round = math.round
local validate_args = function(data)
local player = data.player
local target = data.target
2021-11-14 14:02:00 +02:00
local rpg_t = Public.get_value_from_player(target.index)
2020-10-19 20:21:27 +02:00
if not target then
return false
end
if not target.valid then
return false
end
if not target.character then
return false
end
if not target.connected then
return false
end
if not game.players[target.index] then
return false
end
if not player then
return false
end
if not player.valid then
return false
end
if not player.character then
return false
end
if not player.connected then
return false
end
if not game.players[player.index] then
return false
end
if not target or not game.players[target.index] then
Utils.print_to(player, 'Invalid name.')
return false
end
2021-05-25 22:19:20 +02:00
if not rpg_t then
2020-10-19 20:21:27 +02:00
Utils.print_to(player, 'Invalid target.')
return false
end
return true
end
2021-05-25 22:19:20 +02:00
local print_stats = function(target)
2020-10-19 20:21:27 +02:00
if not target then
return
end
2021-11-14 14:02:00 +02:00
local rpg_t = Public.get_value_from_player(target.index)
2021-05-25 22:19:20 +02:00
if not rpg_t then
2020-10-19 20:21:27 +02:00
return
end
2021-05-25 22:19:20 +02:00
local level = rpg_t.level
local xp = round(rpg_t.xp)
local strength = rpg_t.strength
local magicka = rpg_t.magicka
local dexterity = rpg_t.dexterity
local vitality = rpg_t.vitality
2020-10-19 20:21:27 +02:00
local output = '[color=blue]' .. target.name .. '[/color] has the following stats: \n'
output = output .. '[color=green]Level:[/color] ' .. level .. '\n'
output = output .. '[color=green]XP:[/color] ' .. xp .. '\n'
output = output .. '[color=green]Strength:[/color] ' .. strength .. '\n'
output = output .. '[color=green]Magic:[/color] ' .. magicka .. '\n'
output = output .. '[color=green]Dexterity:[/color] ' .. dexterity .. '\n'
output = output .. '[color=green]Vitality:[/color] ' .. vitality
return output
end
commands.add_command(
'stats',
'Check what stats a user has!',
function(cmd)
local player = game.player
if not player or not player.valid then
return
end
local param = cmd.parameter
2020-10-21 23:17:17 +02:00
if not param then
return
end
if param == '' then
return
end
2020-10-19 20:21:27 +02:00
local target = game.players[param]
if not target or not target.valid then
return
end
local data = {
player = player,
2021-05-25 22:19:20 +02:00
target = target
2020-10-19 20:21:27 +02:00
}
if validate_args(data) then
2021-05-25 22:19:20 +02:00
local msg = print_stats(target)
2020-10-19 20:21:27 +02:00
player.play_sound {path = 'utility/scenario_message', volume_modifier = 1}
player.print(msg)
else
player.print('Please type a name of a player who is connected.', Color.warning)
end
end
)
2021-11-14 14:02:00 +02:00
if _DEBUG then
commands.add_command(
2021-11-14 22:01:01 +02:00
'rpg_debug_module',
2021-11-14 14:02:00 +02:00
'',
function()
local player = game.player
if not (player and player.valid) then
return
end
if not player.admin then
return
end
Public.toggle_debug()
end
)
commands.add_command(
2021-11-14 22:01:01 +02:00
'rpg_debug_one_punch',
2021-11-14 14:02:00 +02:00
'',
function()
local player = game.player
if not (player and player.valid) then
return
end
if not player.admin then
return
end
Public.toggle_debug_one_punch()
end
)
commands.add_command(
2021-11-14 22:01:01 +02:00
'rpg_cheat_stats',
2021-11-14 14:02:00 +02:00
'',
function()
local player = game.player
if not (player and player.valid) then
return
end
if not player.admin then
return
end
local data = Public.get('rpg_t')
for k, _ in pairs(data) do
data[k].dexterity = 999
data[k].enable_entity_spawn = true
data[k].explosive_bullets = true
data[k].level = 500
data[k].magicka = 999
data[k].mana = 50000
data[k].mana_max = 50000
data[k].one_punch = true
data[k].stone_path = true
data[k].strength = 999
data[k].vitality = 999
data[k].xp = 456456
local p = game.get_player(k)
if p and p.valid then
Public.update_player_stats(p)
end
end
end
)
end
return Public