allows player to take gold chip when reserving card
This commit is contained in:
@@ -76,6 +76,8 @@ export const buyCard = (state: AppState, setState: setStateType, card: CardData)
|
|||||||
availableGold--;
|
availableGold--;
|
||||||
cardCostPointer--;
|
cardCostPointer--;
|
||||||
goldToReturn++;
|
goldToReturn++;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,13 +29,25 @@ export const reserveCard = (state: AppState, setState: setStateType, card: CardD
|
|||||||
setState((prev: AppState) => {
|
setState((prev: AppState) => {
|
||||||
const { newPlayers, roundIncrement } = turnOrderUtil(prev, currentPlayer);
|
const { newPlayers, roundIncrement } = turnOrderUtil(prev, currentPlayer);
|
||||||
|
|
||||||
const updatedPlayer = {
|
// const updatedPlayer = {
|
||||||
...currentPlayer,
|
// ...currentPlayer,
|
||||||
reservedCards: currentPlayer.reservedCards ? [...currentPlayer.reservedCards, card] : [card],
|
// reservedCards: currentPlayer.reservedCards ? [...currentPlayer.reservedCards, card] : [card],
|
||||||
inventory: goldAllowable(currentPlayer) ? {
|
// inventory: goldAllowable(currentPlayer) ? {
|
||||||
|
// ...currentPlayer.inventory,
|
||||||
|
// gold: currentPlayer.inventory.gold && currentPlayer.inventory.gold + 1
|
||||||
|
// } : currentPlayer.inventory
|
||||||
|
// }
|
||||||
|
|
||||||
|
const updatedPlayer = currentPlayer;
|
||||||
|
updatedPlayer.reservedCards = currentPlayer.reservedCards ? [
|
||||||
|
...currentPlayer.reservedCards, card
|
||||||
|
] : [card];
|
||||||
|
|
||||||
|
if (prev.actions.reserveCard.includeGold) {
|
||||||
|
updatedPlayer.inventory = {
|
||||||
...currentPlayer.inventory,
|
...currentPlayer.inventory,
|
||||||
gold: currentPlayer.inventory.gold && currentPlayer.inventory.gold + 1
|
gold: currentPlayer.inventory.gold ? currentPlayer.inventory.gold + 1 : 1
|
||||||
} : currentPlayer.inventory
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const idx = newPlayers.indexOf(currentPlayer);
|
const idx = newPlayers.indexOf(currentPlayer);
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ import { GetChipsHTML, ReserveCardHTML } from "./ViewHTML";
|
|||||||
|
|
||||||
export default function SelectionView({ state, setState }: StateProps) {
|
export default function SelectionView({ state, setState }: StateProps) {
|
||||||
const [currentPlayer, setCurrentPlayer] = useState(useCurrentPlayer(state));
|
const [currentPlayer, setCurrentPlayer] = useState(useCurrentPlayer(state));
|
||||||
|
|
||||||
const actionTypes = [
|
const actionTypes = [
|
||||||
state.actions.getChips,
|
state.actions.getChips,
|
||||||
state.actions.buyCard,
|
state.actions.buyCard,
|
||||||
state.actions.reserveCard
|
state.actions.reserveCard
|
||||||
]
|
]
|
||||||
|
|
||||||
const [view, setView] = useState(<></>);
|
const [view, setView] = useState(<></>);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { v4 } from "uuid";
|
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { setStateGetChips } from "../../hooks/stateSetters";
|
import { v4 } from "uuid";
|
||||||
|
import { setStateGetChips, setStateReserveCard, setStateReservePlusGold } from "../../hooks/stateSetters";
|
||||||
|
import { useCurrentPlayer } from "../../hooks/useCurrentPlayer";
|
||||||
import { StateProps } from "../../util/propTypes";
|
import { StateProps } from "../../util/propTypes";
|
||||||
import { ResourceCost } from "../../util/types";
|
import { ResourceCost } from "../../util/types";
|
||||||
import { getChipsActions } from "../Player/ActionMethods";
|
import { getChipsActions } from "../Player/ActionMethods";
|
||||||
import { useCurrentPlayer } from "../../hooks/useCurrentPlayer";
|
|
||||||
import { hasMaxChips } from "../Player/ActionMethods/getChipsActions";
|
import { hasMaxChips } from "../Player/ActionMethods/getChipsActions";
|
||||||
const { getChips } = getChipsActions;
|
const { getChips } = getChipsActions;
|
||||||
|
|
||||||
@@ -42,12 +42,21 @@ export const GetChipsHTML = ({ state, setState }: StateProps) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const ReserveCardHTML = ({ state, setState }: StateProps) => {
|
export const ReserveCardHTML = ({ state, setState }: StateProps) => {
|
||||||
const [takeGold, setTakeGold] = useState("");
|
const [takeGold, setTakeGold] = useState(false);
|
||||||
const currentPlayer = useCurrentPlayer(state);
|
const currentPlayer = useCurrentPlayer(state);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
switch (takeGold) {
|
||||||
})
|
case true:
|
||||||
|
setState((prev) => setStateReservePlusGold(prev));
|
||||||
|
break;
|
||||||
|
case false:
|
||||||
|
setState((prev) => setStateReserveCard(prev));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}, [takeGold]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="selection-view">
|
<div className="selection-view">
|
||||||
@@ -60,8 +69,8 @@ export const ReserveCardHTML = ({ state, setState }: StateProps) => {
|
|||||||
<input
|
<input
|
||||||
id="take-gold-yes"
|
id="take-gold-yes"
|
||||||
value="Yes"
|
value="Yes"
|
||||||
checked={takeGold === "Yes"}
|
checked={takeGold}
|
||||||
onChange={() => setTakeGold("Yes")}
|
onChange={() => setTakeGold(true)}
|
||||||
type="radio"
|
type="radio"
|
||||||
>
|
>
|
||||||
</input>
|
</input>
|
||||||
@@ -70,8 +79,8 @@ export const ReserveCardHTML = ({ state, setState }: StateProps) => {
|
|||||||
<input
|
<input
|
||||||
id="take-gold-no"
|
id="take-gold-no"
|
||||||
value="No"
|
value="No"
|
||||||
checked={takeGold === "No"}
|
checked={!takeGold}
|
||||||
onChange={() => setTakeGold("No")}
|
onChange={() => setTakeGold(false)}
|
||||||
type="radio">
|
type="radio">
|
||||||
</input>
|
</input>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -78,6 +78,20 @@ export const setStateReserveCard = (prev: AppState) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const setStateReservePlusGold = (prev: AppState) => {
|
||||||
|
return {
|
||||||
|
...prev,
|
||||||
|
actions: {
|
||||||
|
...initialState.actions,
|
||||||
|
reserveCard: {
|
||||||
|
active: true,
|
||||||
|
includeGold: true,
|
||||||
|
valid: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export const setStateGetNoble = (prev: AppState, noble: NobleData, prevPlayer: PlayerData) => {
|
export const setStateGetNoble = (prev: AppState, noble: NobleData, prevPlayer: PlayerData) => {
|
||||||
const updatedPlayer = {
|
const updatedPlayer = {
|
||||||
...prevPlayer,
|
...prevPlayer,
|
||||||
|
|||||||
Reference in New Issue
Block a user