diff --git a/src/RaidGeld.sol b/src/RaidGeld.sol index afa59d7..e32de3a 100644 --- a/src/RaidGeld.sol +++ b/src/RaidGeld.sol @@ -314,14 +314,14 @@ contract RaidGeld is ERC20, Ownable, Constants { // first perform raid address player = _player(); performRaid(player); - Boss memory boss_to_attack = bosses[msg.sender]; + Boss memory boss_to_attack = bosses[player]; // calculate how much the player will put into battle - uint256 geld_to_burn = balanceOf(msg.sender) >= RaidGeldUtils.getBossPower(boss_to_attack.level) + uint256 geld_to_burn = balanceOf(player) >= RaidGeldUtils.getBossPower(boss_to_attack.level) ? RaidGeldUtils.getBossPower(boss_to_attack.level) - : balanceOf(msg.sender); + : balanceOf(player); bool hasWonBattle = RaidGeldUtils.calculateBossFight(boss_to_attack.level, geld_to_burn, block.prevrandao); - emit BossBattle(msg.sender, boss_to_attack.level, hasWonBattle); - lastBossResults[msg.sender] = LastBossResult({ + emit BossBattle(player, boss_to_attack.level, hasWonBattle); + lastBossResults[player] = LastBossResult({ battled_at: block.timestamp, level: boss_to_attack.level, variant: boss_to_attack.variants[boss_to_attack.level], @@ -330,7 +330,7 @@ contract RaidGeld is ERC20, Ownable, Constants { }); if (hasWonBattle) { // Burn geld, send some sweet DAO Token and continue - _burn(msg.sender, geld_to_burn); + _burn(player, geld_to_burn); uint256 baseReward = (BUY_IN_DAO_TOKEN_AMOUNT - BUY_IN_DAO_TOKEN_AMOUNT * SACRIFICE_SHARE / MANTISSA); uint256 wholeReward = RaidGeldUtils.calculateBossReward(boss_to_attack.level, baseReward); uint256 treasuryShare = wholeReward * SACRIFICE_SHARE / MANTISSA; @@ -338,29 +338,29 @@ contract RaidGeld is ERC20, Ownable, Constants { // send a share to dao treasury daoToken.transfer(DAO_TREASURY, treasuryShare); - players[msg.sender].total_rewards += reward; + players[player].total_rewards += reward; // send user its reward - daoToken.transfer(msg.sender, reward); - emit BossDefeated(msg.sender, boss_to_attack.level, reward); + daoToken.transfer(player, reward); + emit BossDefeated(player, boss_to_attack.level, reward); - lastBossResults[msg.sender].reward = reward; + lastBossResults[player].reward = 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); - lastBossResults[msg.sender].prestigeGained = true; + players[player].prestige_level += 1; + emit PrestigeGained(player, players[player].prestige_level); + player_dies(player); + lastBossResults[player].prestigeGained = true; return [hasWonBattle, true /* New prestige level! */ ]; } else { // else go to next boss - bosses[msg.sender].level += 1; + bosses[player].level += 1; } } else { // Whoops u died, boss defeated you - lastBossResults[msg.sender].reward = 0; - player_dies(msg.sender); + lastBossResults[player].reward = 0; + player_dies(player); } return [hasWonBattle, false /* hasnt gotten prestige level */ ]; }