diff --git a/app/src/components/Army.tsx b/app/src/components/Army.tsx
index 784dc26..d666ec1 100644
--- a/app/src/components/Army.tsx
+++ b/app/src/components/Army.tsx
@@ -3,17 +3,22 @@ import styles from '../styles/Army.module.css';
const Army = () => {
- const { army } = usePlayer()
-
+ const { army, addUnit } = usePlayer()
return
-
-
+
addUnit(0)} className={`${styles.scribe} ${styles.person} ${styles.moloch_denier} ${styles.static}`}>
+
Moloch denier: {army?.moloch_denier.level}
+
+
addUnit(1)} className={`${styles.druid} ${styles.person} ${styles.apprentice} ${styles.static}`} >
+
Apprentice: {army?.apprentice.level}
+
+
addUnit(2)} className={`${styles.ranger} ${styles.person} ${styles.anointed} ${styles.static}`} >
+
Anointed: {army?.anointed.level}
+
+
addUnit(3)} className={`${styles.warrior} ${styles.person} ${styles.champion} ${styles.static}`} >
+
Champion: {army?.champion.level}
-
-
-
}
diff --git a/app/src/components/Header.tsx b/app/src/components/Header.tsx
index 8fbd9c1..3d4be9e 100644
--- a/app/src/components/Header.tsx
+++ b/app/src/components/Header.tsx
@@ -43,7 +43,6 @@ const Header = () => {
}, [isRegistered, register])
return
- {count.current} {balance}
{title}
{subtitle}
{perSecondParagraph}
diff --git a/app/src/providers/PlayerProvider.tsx b/app/src/providers/PlayerProvider.tsx
index 202b2ea..d4f92a7 100644
--- a/app/src/providers/PlayerProvider.tsx
+++ b/app/src/providers/PlayerProvider.tsx
@@ -6,17 +6,28 @@ import { parseEther } from 'viem'
const contractAddress = "0xbd06B0878888bf4c6895704fa603a5ADf7e65c66"
const abi = contractAbi.abi
-export interface PlayerContextType {
- isRegistered: boolean,
- player: null | string,
- army: null | { profit_per_second: bigint },
- balance: bigint,
- register: () => void;
- raid: () => void
+export interface Player {
+ created_at: bigint,
+ last_raided_at: bigint,
+ total_minted: bigint
+}
+export interface Army {
+ anointed: { level: number }
+ apprentice: { level: number }
+ champion: { level: number }
+ moloch_denier: { level: number }
+ profit_per_second: bigint
}
-export interface Player { }
-export interface Army { }
+export interface PlayerContextType {
+ isRegistered: boolean,
+ player: null | Player,
+ army: null | Army,
+ balance: bigint,
+ register: () => void,
+ raid: () => void,
+ addUnit: (unit: number) => void
+}
const PlayerContext = createContext({
isRegistered: false,
@@ -25,6 +36,7 @@ const PlayerContext = createContext({
balance: BigInt(0),
register: () => { },
raid: () => { },
+ addUnit: () => { }
});
const PlayerProvider = ({ children }: { children: ReactNode }) => {
@@ -96,16 +108,26 @@ const PlayerProvider = ({ children }: { children: ReactNode }) => {
})
}, [writeContract])
+ const addUnit = useCallback((unit: number) => {
+ writeContract({
+ abi,
+ address: contractAddress,
+ functionName: 'addUnit',
+ args: [unit, 1]
+ })
+ }, [writeContract])
+
console.log(player, army)
return (
{children}
diff --git a/app/src/styles/Army.module.css b/app/src/styles/Army.module.css
index 6a1811b..bfdb598 100644
--- a/app/src/styles/Army.module.css
+++ b/app/src/styles/Army.module.css
@@ -113,3 +113,12 @@
.champion {
filter: saturate(2);
}
+
+.supply {
+ position: absolute;
+ bottom: -40px;
+ background: rgba(0, 0, 0, 0.89);
+ padding: 0.5rem 1rem;
+ font-size: 0.8rem;
+ user-select: none;
+}