Added Boss Defeated and Prestige events
Some checks failed
CI / Foundry project (push) Has been cancelled
CI / Foundry project (pull_request) Has been cancelled

This commit is contained in:
mic0 2024-10-31 14:51:47 +01:00
parent 9443561b9c
commit 5b99997170
Signed by: mico
GPG Key ID: A3F8023524CF1C8D
2 changed files with 10 additions and 1 deletions

View File

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

View File

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