Commit Graph
20 Commits
Author SHA1 Message Date
APuddle210andGitHub ec4c4d67cb Big batch of flag updates from N0ur (#600)
## Description:

N0ur has been slaving over a hot keyboard to bring some vexillological
light to our blighted shores. He has charged me with preparing the PR
for these ~394 flag updates and 131 outright additions to the flags by
which we let our nukes fly.

I am merely the vessel, these contributions are entirely N0urs. 

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle
2025-04-24 17:58:37 -07:00
f713254081 Address-River-Criticisms (#536)
## Description:

Please see description on: #535 

fixes #535 

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle

---------

Co-authored-by: Scott Anderson <662325+scottanderson@users.noreply.github.com>
2025-04-18 18:05:27 -07:00
APuddle210andGitHub 99d8351700 Fix Accidental Replacement of Issues Template (#501)
## Description:

Fix accidental replacement of original New Issues Template with the
clean version. Restores original and appents -Examples to its filename.
Appends -Clean to the filename of the clean version.

Doh! Makes no changes outside the .github folder. 

Fixes #502

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle
2025-04-12 21:03:36 -07:00
APuddle210andGitHub 31441ac3dd Add Clean Ver of New Contribution Template (#468)
## Description:

Clean version of the New Contribution Template without the example text,
for once people are familiar or when they need to create a bunch all at
once to clear a backlog (like me, today).

Fixes #469 

## Please complete the following:

- [X] I have added screenshots for all UI updates
- [X] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [X] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle
2025-04-11 20:56:13 -07:00
APuddle210andGitHub 4dfdfbd4cc Add New Contribution Issues Template, Fix Prettier Problems with Existing Issues Templates (#451)
## Description:

These changes impact GitHub Behavior only, restricted entirely to the
.github folder.


## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle
2025-04-11 09:49:16 -07:00
APuddle210andGitHub f94da14d1f Created MapPlaylist class (#405)
## Description:

Creates new MapPlaylist class, which contains the expanded may playlist
logic. Currently implements two distinct playlists, one for big maps,
and another for small. Designed with future need for more types of
playlist in mind.

It pulls from the big playlist two for every one time it pulls from the
small playlist.

Moved out of the Master.ts as requested.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle
2025-04-03 16:09:34 -07:00
APuddle210andGitHub 71ddeca7f0 Map Revisions, one Addition, and Adjustment to Lobby Max Player based on Map Sizes (#389)
## Description:

Implementation of separate lobby playlists, one for large maps another
for small, with the implementation framework being easily adjusted for
additional playlist categories in the future (such as fantasy maps).

Addition of new map 'Between Two Seas' a small map, replacing Black Sea
in the public lobby rotation (Black Sea retained for singleplayer or
private lobbies.

Adjustments to lobbyMaxPlayer configuration function. Broke out into
tranches by map pixel count, commented to communicate to other collabs
which tranch to place their map in. This change pairs well with the
adjustment to lobby map selection to alternate between big and small
maps. For the Potato (and mobile) players.

Revision to Mena, adding lakes and rivers.

Revisions to Japan, adding lakes and rivers, slight change of bounds to
include more mainland and less ocean.


![image](https://github.com/user-attachments/assets/434ad418-3ad4-40d4-841f-2ab71d13effd)


![image](https://github.com/user-attachments/assets/c46863b4-6a29-494f-82f0-d249c5017c1d)


![image](https://github.com/user-attachments/assets/c1e10fc4-b5e8-465a-a4eb-d325447df954)


The below no longer applies, I talked to Duwibi (Nikola123) who
explained the source of the issue is outside my control, but that he was
taking the action necessary to resolve.

The only issue still present after testing the the display of the map
name for Between Two Seas on the Public Lobby button. I've asked for
assistance with this issue on the Discord and will submit a fix as soon
as I can figure out its cause. Does not impact gameplay and its 3:30am
so hopefully this issue is not enough to prevent a merge as aside from a
quick fix PR, I don't think I'll be able to do any more work until after
this weekend.


## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle
2025-04-02 10:45:37 -07:00
APuddle210andGitHub d0e220c0a2 Revised maps, flags. (#382)
## Description:

- Revised 55 Flags (US States and Territories) to resolve aspect ratio
scaling issues in game. Has introduced some minor visual issues with
crosses drawing past the bounds of the flag, but this is a lesser issue
than misrproportioned scaling and is only obvious in menus.
 - Added 43 New flags made by N0ur 
- Revised countries.json to make the new flags available for users to
select
 - Revised 9 existing flags with ones made by N0ur
- New North America map (v3), which is 250,000 pixels smaller than v2,
significant additions of lakes and rivers, addressing complaints about
missing Ohio river and inaccurate Missouri river. West coast and
Central/South America now also have rivers. Updated Json to give most
bots flags.
- New South America map (v2), which has a fully realized Amazon river
system, two separate ocean exits. Southern Fjords turned up to 11.
- New Africa Map (v3), with more fleshed out river systems. size
decreased by 250,000 pixels. Great Rift lake now link up to the Congo
basin, and the rivers to their south, making most of Africa connected by
one river system with a Northern, Southern and Eastern Exit
- New Europe Map (v2), extended map bounds south, include entire North
African coast. bounds drawn in on the West, cutting off Iceland and much
ocean in favor of more detail on the continent. Rivers and lakes
implemented. Western-most edge of the Russia-Siberia massive river
network included (preview). Additional nation bots added to the map, to
fill empty areas. Coastline details significantly improved.
- Edits to the Gateway to the Atlantic json to add flags for most of the
Nation bots.

All maps were tested in game, flag selection menu item was visually
inspected for image loading issues.

![North America Early
Game](https://github.com/user-attachments/assets/5c9d638b-2e4e-4cec-8de2-9ad6640e8363)

![South America Early
Game](https://github.com/user-attachments/assets/238600ef-3a87-435e-8436-d93c9fe2a179)

![Africa v3 early
game](https://github.com/user-attachments/assets/cd9ccc76-223f-4ae6-be6e-eac573ff6095)

![Europe v2 Early
Game](https://github.com/user-attachments/assets/ddbb5bd2-f025-45d9-b4df-a9afa8254c23)



## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

aPuddle
2025-03-31 10:31:51 -07:00
APuddle210andGitHub 40befee080 Optimize terrain map gen perf (#334)
### Summary
Investigated and resolved slow execution time of this script since the
addition of the thumbnail generation functionality. Determined that
thumbnail generation was not the source of the increased execution time,
likely due instead to change from bun back to npm. Some other minor
improvements made.

### Execution Time Optimizations
Investigated which components of the process were taking the most time
and determined the longest running component to be the
`removeSmallLakes()` function. Research determined that the `.forEach`
looping method to be significantly slower than the `for (const var of
vars)` method and replaced all instances of the former with the latter.

Further review identified possibility to reduce the number of calls to
the getArea() function by combining the `removeSmallLakes()` with the
`processOcean()` function, which was already determining the size of all
bodies of water.

After revision to the `forEach` loops and inclusion of
`removeSmallLakes()` within `processOcean()`, the next slowest executing
component was the `processDistToLand()` function. Aside from being slow
this function was also difficult to understand. Revised function perform
Manhattan distance calculations against the `shorelineWaters[]` array
and identify the minimum value rather than walking out from the
shoreline using the `neighbors()`. This change yielded between ~35% -
~45% faster execution times for this function (~275 seconds -> ~150
seconds; ~225 seconds -> ~165 seconds).

The change to `processDistToLand()` was tested by running the new
version of the function alongside the old version of the function and
having any differences in the calculated distance to land printed to the
console. Initially the test identified errors arising from a reference
to an x coordinate value that should have been a y coordinate value.
Once resolved no further differences were found.  

### Other Minor Changes
Changes to `processOcean()` now also explicitly prevent the largest body
of water from being removed, regardless of what value is passed in for
`removeSmall`, and additionally nest the calls to `processShore()` and
`processDistToLand()` within this function rather than within
`generateMap()` for better comprehensibility. `processOcean()` renamed
to `processWater`.

Also inserted additional console.log lines to better communicate state
of the scripts during runtime, removed unnecessary export statement from
`createMiniMap()` function which requires parameters not readily
available from outside contexts (and which was not called externally
anyways). Revised multiple instances where `terrain` was used to refer
to a single item of a Terrain[][] array to instead use `tile` for
comprehensibility, and consistency with the terminology used elsewhere
in the application.

Added an explicit variable declaration of `removeSmall` to the
generateTerrainMaps.ts file and included it in the call to
`generateMap()` to make toggling this option easier in the future. Moved
the `min_lake_size` constant out of the relevant function and to the top
of the TerrainMapGenerator.ts file for better visibility and consistency
with where `min_island_size` is being declared.
2025-03-24 20:32:51 -07:00
APuddle210andGitHub 2392f3a2fe Update NorthAmerica.json (#303)
Just removing some bots from the densest populated parts of the map.
Hopefully will improve responsiveness of the game for some players when
on this map.

Also correcting the map dimensions in the json (I forgot to update
those).
2025-03-21 10:21:24 -07:00
APuddle210andGitHub 2cac950574 Add gateway map to rotation (#301)
Changes made via GitHub editor. I'll test as soon as I get home ~2.5-3
hours from now.
2025-03-21 10:19:59 -07:00
APuddle210andGitHub a9f21b07b5 Add the New Flags from Britannia and North America to the Flag Picker Options for the Players (#294)
Does what the title says. I made sure there were no duplicate entries.
Tested by launching the dev build and confirming the flags are all
present.

While all have present items, a couple (Alaska and West Virginia) do
fail to render. I think this is because the .svg files are too large.
Selecting these flags does not cause any issues upon entering the game,
they're just invisible.

In any event I am working with N0ur on some more flag updates that will
be forthcoming in the next few days, will address these couple then.

![New
Flags](https://github.com/user-attachments/assets/2229f7f0-e7e0-4c42-be3a-3223292a66a9)

![New Flags
2](https://github.com/user-attachments/assets/158c1c4d-c19b-4ddb-ba14-101bb57f13da)
2025-03-19 15:59:25 -07:00
APuddle210andGitHub 95f3c725a0 Minor map tweaks (#295)
Fix of two trimmed off bits of river. Changed 2 pixels on the input png,
and regenerated the binaries. Did not recreate the thumbnail as it
wouldn't be noticeably different.

Launched game to confirm working.


![Capture](https://github.com/user-attachments/assets/62fe32c8-95c5-45b0-987c-ac8d0ba70b4b)
2025-03-19 15:58:30 -07:00
APuddle210andGitHub 882a39ee70 Added thumbnail generation to the TerrainMapGenerator script. (#292)
Added functions to TerrainMapGenerator to create a bitmap from the
Minimap Terrain array with the colors being identical to those rendered
in game, with the additional change of setting the Alpha of all water to
0.

Calls added to generateTerrainMaps to actually generate the thumbnail
PNGs,

Revision to src\client\utilities\maps.ts to reflect that the images
pulled into the UI should be those ending in 'Thumb.png,'

I've tested by launching the game and starting a few matches.

hile I'd hoped that using the minimaps as the basis for the thumbnails
would speed things up I think the actual bottleneck is the writing to
the file system.

Below is a screenshot showing these thumbnails in the UI.

![Thumbnails
Transparent](https://github.com/user-attachments/assets/764f7857-b333-47b6-9a0d-b0d4f4eb88cd)


![Capture](https://github.com/user-attachments/assets/4df17927-0ad0-45c6-bcc5-7ddc490d9ce7)

![Capture
1PNG](https://github.com/user-attachments/assets/3bd78d61-644a-4b4d-9646-df260a0e7c0f)

![Capture
3](https://github.com/user-attachments/assets/e7693a8b-1daf-4bd7-96d4-3a350564f31b)


Finally I will say that while the code additions work, given my novice
status with typescript and asynch calls these changes may benefit more
from review and a little critical feedback before they're ready to
merge.
2025-03-19 10:55:33 -07:00
APuddle210andGitHub e4686642a0 Replace Africa Map files (#262)
Replaces the existing Africa with a revised, identically sized one.
Revisions include addition of navigable rivers allowing the interior to
have access to trade.

Chnages to the json file to take the number of Nation bots from 5 to 36.
Should help prevent so much early game blobbing on this map.
2025-03-18 20:39:45 -07:00
APuddle210andGitHub a402242f11 Replacing existing map images with colorized ones (#263)
Replacing existing map images with colorized ones for use in the UI.
Confirmed no unintended impacts by receating the map binaries and no
differences being identified by Git.

Africa was not colorized in this one since it is replaced entirely in PR
262.
2025-03-18 13:29:49 -07:00
APuddle210andGitHub 6b41cc9b75 Inversion of how water color was being set as it moved away from land… (#269)
Inversion of the way water values on the light palette get set as the
tile is further from land. Was previously resulting in the darkest water
being the closest to land.


![Before](https://github.com/user-attachments/assets/3b2d8e9a-0648-40ac-8725-c0bcbebf61ac)

![After](https://github.com/user-attachments/assets/6356758f-abbf-493b-a82b-652a9c642539)
2025-03-18 12:25:28 -07:00
APuddle210andGitHub 48d111bf0d Add new map, iberia, france, north africa (#285)
Addition of new map, 'Gateway to the Atlantic' covering Iberia, France,
and North Africa.

Tested via loading to local build, ensuring the game launched
succesfully, and ran a full game through to completion. Confirmed
thumbnail is displayed in the UI.

Discovered possibly undocumented bug: minimap binary generation fails if
either the width or height of the provided map image is an odd number.

Not sure what proper tests for a new map would look like, hope this is
sufficient testing.

![Thumbnail in
UI](https://github.com/user-attachments/assets/d78e51b8-8571-4244-bb55-8b4f95748108)

![Game
Starts](https://github.com/user-attachments/assets/124beaa3-8f57-4015-bdc6-7bde19a4a5ba)

![Game
Proceeds](https://github.com/user-attachments/assets/e8bb9a59-9bfb-4882-88c8-bf11d709244b)

![Game Proceeds
More](https://github.com/user-attachments/assets/7ec899eb-0338-4ec9-995f-20717e7f80b3)

![Game Proceeds
x2](https://github.com/user-attachments/assets/6c286cd6-4e13-4766-845e-393faebac116)

![Game
Completed](https://github.com/user-attachments/assets/20653b5e-0592-4a44-b3b3-58ea612a42b3)
2025-03-18 12:05:11 -07:00
APuddle210andGitHub a9fe042c53 Add New North America, and 50 US State Flags (#273)
Revised North America Map, added lakes and rivers, some manual edits
around the northern coasts to preserve the jagged fjordness, added ~53
bots to the json, to fill in all the empty space (makes for a very fun
solo run, may need to reduce somewhat once the players get a chance to
try it).

Added 50 US state flags to the resources folder. 

**Can now Nuke Santa.**
2025-03-17 08:58:26 -07:00
APuddle210andGitHub 67af4b06ab TerrainMapGenerator General Cleanup (#234)
> There were 4 separate implementations of getting neighboring
coordinates for a given x,y pair, 3 completely unique implementations.
These were found in neighbors(), processOcean(), processDistToLand(),
and getArea(), with processOcean() and processDistToLand() having
essentially identical implementations. Created new function
getNeighborCoords() with implementation closely resembling that found in
neighbors().

Revised aforementioned functions to utilize the new getNeighborCoords()
instead, with revised implementations being much more consistent across
the impacted functions.

> Revised getArea() to correctly assess the area, was previously likely
to overestimate the area as it included all coordinates it check
regardless of their terrainType. getArea() now also explicitely
implements the Coord[] interface, allowing for standardized
implementation syntax in all functions which call getArea().

Also removed the parameter targetType as all calls to getArea()
targetted the same TerrainType as was present at the passed x, y
position. getArea() will now assess targetType based on the passed x, y
values.

Reordered the parameters of getArea() so that it conformed with the
ordering used elsewhere in the script (x, y, map, visited). Updated all
calling locations accordingly.

> Revised processOcean() to make use of getArea() instead of using its
own reimplementation of area checking. This coupled with the use of the
new getNeighborCoords() significantly reduced the size of processOcean
and improved comprehensibility.

Also removed unnecessary check of waterBody.size that would always
return TRUE in that context.

> Removed checks against and setting of Terrain.ocean values in the
removeSmallIslands() and removeSmallLakes() functions as these functions
are called prior to processOcean() making the checking
redundant/unncessary, and the setting potentially problematic.

Revised Terrain class to default ocean to false, to address compiler
warning, and since processOcean() handles setting this property to true
explicitly.

Reduced total lines from 417 to 372.
2025-03-13 06:02:30 -07:00