Adding bosses to the game #6

Merged
mico merged 21 commits from feature/boss-mechanic into main 2024-10-31 13:56:05 +00:00
2 changed files with 10 additions and 1 deletions
Showing only changes of commit 5b99997170 - Show all commits

View File

@ -169,8 +169,12 @@ const PlayerProvider = ({ children }: { children: ReactNode }) => {
abi,
address: contractAddress,
functionName: 'raid',
}, {
onSuccess: (hash) => {
setHashAndCallback([hash, resetHashAndCallback])
}
})
}, [writeContract])
}, [writeContract, resetHashAndCallback])
const addUnit = useCallback((unit: UnitType) => {
writeContract({

View File

@ -42,6 +42,8 @@ contract RaidGeld is ERC20, Ownable, Constants {
uint16 championLevel
);
event DaoTokenBuyInAmountSet(address indexed owner, uint256 oldAmount, uint256 newAmount);
event PrestigeGained(address indexed player, uint32 prestigeLevel);
event BossDefeated(address indexed player, uint8 bossLevel, uint256 earnings);
// Modifier for functions that should only be available to registered players
modifier onlyPlayer() {
@ -252,9 +254,12 @@ contract RaidGeld is ERC20, Ownable, Constants {
uint256 reward = RaidGeldUtils.calculateBossReward(boss_to_attack.level, BUY_IN_DAO_TOKEN_AMOUNT);
players[msg.sender].total_rewards += reward;
daoToken.transfer(msg.sender, reward);
emit BossDefeated(msg.sender, boss_to_attack.level, reward);
if (boss_to_attack.level == 6) {
// User ascends! Moloch is defeated, user can start a new run
players[msg.sender].prestige_level += 1;
emit PrestigeGained(msg.sender, players[msg.sender].prestige_level);
player_dies(msg.sender);
return [hasWonBattle, true /* New prestige level! */ ];
} else {