Skip to content

Commit

Permalink
feat: added npc-occupied oasis, updated unit data, removed unused hoo…
Browse files Browse the repository at this point in the history
…k properties, dep updates
  • Loading branch information
jurerotar committed Mar 23, 2024
1 parent ff1b4f2 commit 162c1d4
Show file tree
Hide file tree
Showing 33 changed files with 647 additions and 314 deletions.
98 changes: 49 additions & 49 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"prepare": "husky install"
},
"dependencies": {
"@tanstack/react-query": "5.28.4",
"@tanstack/react-query-devtools": "5.28.4",
"@tanstack/react-query": "5.28.6",
"@tanstack/react-query-devtools": "5.28.6",
"alea": "1.0.1",
"clsx": "2.1.0",
"dayjs": "1.11.10",
Expand All @@ -40,15 +40,15 @@
"react-window": "1.8.10",
"sha1-uint8array": "0.10.7",
"tailwind-override": "0.6.1",
"usehooks-ts": "3.0.1"
"usehooks-ts": "3.0.2"
},
"devDependencies": {
"@testing-library/jest-dom": "6.4.2",
"@testing-library/react": "14.2.2",
"@testing-library/user-event": "14.5.2",
"@types/lodash-es": "4.17.12",
"@types/node": "20.11.30",
"@types/react": "18.2.67",
"@types/react": "18.2.69",
"@types/react-dom": "18.2.22",
"@types/react-helmet": "6.1.11",
"@types/react-modal": "3.16.3",
Expand All @@ -58,7 +58,7 @@
"@typescript-eslint/parser": "7.3.1",
"@vitejs/plugin-react": "4.2.1",
"@vitest/coverage-v8": "^1.4.0",
"autoprefixer": "10.4.18",
"autoprefixer": "10.4.19",
"eslint": "8.57.0",
"eslint-config-airbnb": "19.0.4",
"eslint-config-airbnb-typescript": "18.0.0",
Expand All @@ -74,18 +74,18 @@
"husky": "9.0.11",
"identity-obj-proxy": "3.0.0",
"jsdom": "^24.0.0",
"knip": "5.1.4",
"knip": "5.2.2",
"lint-staged": "15.2.2",
"postcss": "8.4.37",
"postcss": "8.4.38",
"postcss-load-config": "5.0.3",
"prettier": "3.2.5",
"resize-observer-polyfill": "1.5.1",
"sass": "1.72.0",
"tailwindcss": "3.4.1",
"ts-jest": "29.1.2",
"ts-node": "10.9.2",
"typescript": "5.4.2",
"vite": "5.2.0",
"typescript": "5.4.3",
"vite": "5.2.4",
"vite-bundle-visualizer": "1.1.0",
"vite-plugin-svgr": "4.2.0",
"vite-tsconfig-paths": "4.3.2",
Expand Down
28 changes: 12 additions & 16 deletions src/app/[game]/[map]/components/cell.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { TreasureIcon } from 'app/[game]/[map]/components/treasure-icon';
import { PlayerFaction } from 'interfaces/models/game/player';
import { ReputationLevel } from 'interfaces/models/game/reputation';
import { MapFilters } from 'interfaces/models/game/map-filters';
import { isOasisTile, isOccupiableOasisTile, isOccupiedOasisTile, isOccupiedOccupiableTile, isTreasuryTile } from 'app/[game]/utils/map';

type TileWithFilters<T extends TileType> = T & {
mapFilters: MapFilters;
Expand All @@ -27,18 +28,13 @@ type OccupiableOasisProps = {
const OasisTile: React.FC<OccupiableOasisProps> = ({ tile }) => {
const { oasisResourceBonus } = tile;

const isOccupiable = tile.oasisResourceBonus.length > 0;
const isOccupied = Object.hasOwn(tile, 'villageId');

if (!isOccupiable) {
return null;
}
const isOccupied = isOccupiedOasisTile(tile);

return (
<OccupiableOasisIcon
oasisResourceBonus={oasisResourceBonus}
borderVariant={isOccupied ? 'red' : 'green'}
className="size-3"
className="size-2 md:size-3"
/>
);
};
Expand Down Expand Up @@ -71,7 +67,7 @@ type OccupiedOccupiableTileProps = {
const OccupiedOccupiableTile: React.FC<OccupiedOccupiableTileProps> = ({ tile, mapFilters }) => {
const { faction, reputationLevel } = tile;
const { shouldShowFactionReputation, shouldShowTreasureIcons } = mapFilters;
const isTileWithTreasury = tile.treasureType !== null;
const isTileWithTreasury = isTreasuryTile(tile);

return (
<span
Expand All @@ -93,15 +89,15 @@ type CellProps = GridChildComponentProps<{

export const Cell = memo<CellProps>(({ data, style, rowIndex, columnIndex }) => {
const { tilesWithFactions, mapFilters } = data;
const { shouldShowOasisIcons, shouldShowWheatFields } = mapFilters;

const gridSize = Math.sqrt(data.tilesWithFactions.length);

const tile: TileType | OccupiedTileWithFaction = tilesWithFactions[gridSize * rowIndex + columnIndex];
const { shouldShowOasisIcons, shouldShowWheatFields } = mapFilters;

const isOasis = tile.type === 'oasis-tile';
const isOccupiableTile = tile.type === 'free-tile';
const isOccupiedOccupiableTile = isOccupiableTile && Object.hasOwn(tile, 'ownedBy');
const isOasisCell = isOasisTile(tile);
const isOccupiableOasisCell = isOccupiableOasisTile(tile);
const isOccupiedOccupiableCell = isOccupiedOccupiableTile(tile);

return (
<button
Expand All @@ -113,16 +109,16 @@ export const Cell = memo<CellProps>(({ data, style, rowIndex, columnIndex }) =>
}}
data-tile-id={tile.id}
>
{isOasis && shouldShowOasisIcons && <OasisTile tile={tile} />}
{!isOasis && (
{isOasisCell && isOccupiableOasisCell && shouldShowOasisIcons && <OasisTile tile={tile as OasisTileType} />}
{!isOasisCell && (
<>
{isOccupiedOccupiableTile && (
{isOccupiedOccupiableCell && (
<OccupiedOccupiableTile
tile={tile as TileWithFilters<OccupiedTileWithFaction>}
mapFilters={mapFilters}
/>
)}
{!isOccupiedOccupiableTile && shouldShowWheatFields && (
{!isOccupiedOccupiableCell && shouldShowWheatFields && (
<OccupiableTile tile={tile as TileWithFilters<OccupiedOccupiableTileType>} />
)}
</>
Expand Down
4 changes: 2 additions & 2 deletions src/app/[game]/[map]/components/tile-modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,11 @@ export const TileModal: React.FC<TileModalProps> = ({ tile }) => {

return (
<div className="flex flex-col gap-1">
{isOasis && <OasisTileModal tile={tile} />}
{isOasis && <OasisTileModal tile={tile as OasisTile} />}
{!isOasis && (
<>
{isOccupiedOccupiableTile && <OccupiedOccupiableTileModal tile={tile as OccupiedOccupiableTile} />}
{!isOccupiedOccupiableTile && <OccupiableTileModal tile={tile} />}
{!isOccupiedOccupiableTile && <OccupiableTileModal tile={tile as OccupiableTile} />}
</>
)}
</div>
Expand Down
Loading

0 comments on commit 162c1d4

Please sign in to comment.