This commit is contained in:
parent
4c8f2250b7
commit
0e691e46af
@ -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 */ ];
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user