Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add blackfroest scenario #1332

Open
wants to merge 7 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions locale/de/redmew_maps.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,28 @@ cutscene_case_line6=Die folgende Einführung wird dir zum Einstieg helfen!
cutscene_case_line7=Wenn du Probleme mit den Zwischensequenzen hast, lass es uns wissen
cutscene_case0_line1=Dies ist der Startbereich

[black_forest]
float_xp_drain=-__1__ XP
float_xp_gained_kill=+__1__ XP
float_xp_gained_rocket=Rakete gestartet! +__1__ XP
float_xp_gained_research=Forschung abgeschlossen! +__1__ XP
float_xp_gained_mine=+__1__ XP
player_drained_xp=__1__ hat __2__ Erfahrung abgezogen.
market_disabled=Freigeschaltet bei Level:__1__
gui_total_xp=__1__ Gesamterfahrung erhalten!
gui_reward_item=Belohnungsgegenstand
gui_reward_buff=Belohnungs Buff
gui_requirement=Anforderung
gui_progress_tip=Derzeit auf Level:__1__\nNächstes Level bei:__2__ xp\nVerbleibend:__3__ xp
gui_progress_caption=Fortschritt bis zum nächsten Level:
gui_progress_bar=__1__% xp zum nächsten Level
gui_tabel_level=Level __1__
gui_tabel_xp=XP: __1__
gui_buff_level=Alle Stufen
gui_buff_mining=+__1__% Abbau Geschwindigkeit (bis zu:__2__%)
gui_buff_inv=+__1__ Inventar Feld(er) (bis zu: __2__)
gui_buff_health=+__1__ max Gesundheit (bis zu: __2__)
gui_buff_other=+__1__ __2__
gui_experience_button_tip=Black Forest Level Fortschritt
gui_close_btn=Schließen
toast_new_level=Dein Team hat Level __1__ erreicht!
31 changes: 31 additions & 0 deletions locale/en/redmew_maps.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -177,3 +177,34 @@ biters_disabled=Launching the first [item=satellite] has killed all the biters.
win=Congratulations! The map has been won. Restart the map with /restart
satellite_launch=Launch another __1__ [item=satellite] to win the map.

[black_forest]
float_xp_drain=-__1__ XP
float_xp_gained_kill=+__1__ XP
float_xp_gained_rocket=Rocket launched! +__1__ XP
float_xp_gained_research=Research completed! +__1__ XP
float_xp_gained_mine=+__1__ XP

player_drained_xp=__1__ drained __2__ experience.

market_disabled=Unlocks at level: __1__

gui_total_xp=__1__ total experience earned!
gui_reward_item=Reward Item
gui_reward_buff=Reward Buff
gui_requirement=Requirement
gui_progress_tip=Currently at level: __1__\nNext level at: __2__ xp\nRemaining: __3__ xp
gui_progress_caption=Progress to next level:
gui_progress_bar=__1__% xp to next level
gui_tabel_level=level __1__
gui_tabel_xp=XP: __1__
gui_buff_level=All levels
gui_buff_mining=+__1__% mining speed (up to: __2__%)
gui_buff_inv=+__1__ inventory slot(s) (up to: __2__)
gui_buff_health=+__1__ max health (up to: __2__)
gui_buff_other=+__1__ __2__
gui_experience_button_tip=Black Forest leveling progress
gui_close_btn=Close
toast_new_level=Your team has reached level __1__!
score_cave_collapses=Cave collapses
score_mine_size=Mine size
score_experience_lost=Experience lost
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These 3 are missing from the German translation. Any reason for that?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ups, idk, I created it a long time ago. i don't think they are used. I will check tomorrow

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

409 changes: 409 additions & 0 deletions map_gen/maps/black_forest/config.lua

Large diffs are not rendered by default.

174 changes: 174 additions & 0 deletions map_gen/maps/black_forest/debug.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
-- dependencies
local BaseDebug = require 'utils.debug'
local Color = require 'resources.color_presets'

local min = math.min
local max = math.max
local floor = math.floor
local abs = math.abs

-- this
local Debug = {}

local default_base_color = Color.white
local default_delta_color = Color.black

---@deprecated use 'utils.debug'.print instead
function Debug.print(message)
BaseDebug.print(message)
end

---@deprecated use 'utils.debug'.print_position instead
function Debug.print_position(position, message)
BaseDebug.print_position(position, message)
end

---@deprecated use 'utils.debug'.cheat instead
function Debug.cheat(callback)
BaseDebug.cheat(callback)
end

--[[--
Prints a colored value on a location.

@param value between -1 and 1
@param surface LuaSurface
@param position Position {x, y}
@param scale float
@param offset float
@param immutable bool if immutable, only set, never do a surface lookup, values never change
]]
function Debug.print_grid_value(value, surface, position, scale, offset, immutable)
local is_string = type(value) == 'string'
local color = default_base_color
local text = value

if type(immutable) ~= 'boolean' then
immutable = false
end

if not is_string then
scale = scale or 1
offset = offset or 0
position = {x = position.x + offset, y = position.y + offset}
local r = max(1, value) / scale
local g = 1 - abs(value) / scale
local b = min(1, value) / scale

if (r > 0) then
r = 0
end

if (b < 0) then
b = 0
end

if (g < 0) then
g = 0
end

r = abs(r)

color = { r = r, g = g, b = b}

-- round at precision of 2
text = floor(100 * value) * 0.01

if (0 == text) then
text = '0.00'
end
end

if not immutable then
local text_entity = surface.find_entity('flying-text', position)

if text_entity then
text_entity.text = text
text_entity.color = color
return
end
end

surface.create_entity{
name = 'flying-text',
color = color,
text = text,
position = position
}.active = false
end

--[[--
Prints a colored value on a location. When given a color_value and a delta_color,
will change the color of the text from the base to base + value * delta. This will
make the color of the text range from 'base_color' to 'base_color + delta_color'
as the color_value ranges from 0 to 1

@param value of number to be displayed
@param surface LuaSurface
@param position Position {x, y}
@param offset float position offset
@param immutable bool if immutable, only set, never do a surface lookup, values never change
@param color_value float How far along the range of values of colors the value is to be displayed
@param base_color {r,g,b} The color for the text to be if color_value is 0
@param delta_color {r,g,b} The amount to correct the base_color if color_value is 1
@param under_bound {r,g,b} The color to be used if color_value < 0
@param over_bound {r,g,b} The color to be used if color_value > 1
]]
function Debug.print_colored_grid_value(value, surface, position, offset, immutable,
color_value, base_color, delta_color, under_bound, over_bound)
local is_string = type(value) == 'string'
-- default values:
local color = base_color or default_base_color
local d_color = delta_color or default_delta_color
local u_color = under_bound or color
local o_color = over_bound or color

if (color_value < 0) then
color = u_color
elseif (color_value > 1) then
color = o_color
else
color = {
r = color.r + color_value * d_color.r,
g = color.g + color_value * d_color.g,
b = color.b + color_value * d_color.b
}
end

local text = value

if type(immutable) ~= 'boolean' then
immutable = false
end

if not is_string then
offset = offset or 0
position = {x = position.x + offset, y = position.y + offset}

-- round at precision of 2
text = floor(100 * value) * 0.01

if (0 == text) then
text = '0.00'
end
end

if not immutable then
local text_entity = surface.find_entity('flying-text', position)

if text_entity then
text_entity.text = text
text_entity.color = color
return
end
end

surface.create_entity{
name = 'flying-text',
color = color,
text = text,
position = position
}.active = false
end

return Debug
Loading