Adding bosses to the game #6
@ -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({
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user