We can clearly see that then function is very complex due to a lot comparisons and state change
function increaseValuesOfParticipants(uint256 tokenIdOfChallenger, uint256 tokenIdOfAnyPerticipent)
public
RamIsNotSelected
{
if (tokenIdOfChallenger > ramNFT.tokenCounter()) {
revert ChoosingRam__InvalidTokenIdOfChallenger();
}
if (tokenIdOfAnyPerticipent > ramNFT.tokenCounter()) {
revert ChoosingRam__InvalidTokenIdOfPerticipent();
}
if (ramNFT.getCharacteristics(tokenIdOfChallenger).ram != msg.sender) {
revert ChoosingRam__CallerIsNotChallenger();
}
if (block.timestamp > 1728691200) {
revert ChoosingRam__TimeToBeLikeRamFinish();
}
uint256 random =
uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao, msg.sender))) % 2;
if (random == 0) {
--> if (ramNFT.getCharacteristics(tokenIdOfChallenger).isJitaKrodhah == false){
--> ramNFT.updateCharacteristics(tokenIdOfChallenger, true, false, false, false, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfChallenger).isDhyutimaan == false){
--> ramNFT.updateCharacteristics(tokenIdOfChallenger, true, true, false, false, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfChallenger).isVidvaan == false){
--> ramNFT.updateCharacteristics(tokenIdOfChallenger, true, true, true, false, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfChallenger).isAatmavan == false){
--> ramNFT.updateCharacteristics(tokenIdOfChallenger, true, true, true, true, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfChallenger).isSatyavaakyah == false){
--> ramNFT.updateCharacteristics(tokenIdOfChallenger, true, true, true, true, true);
--> selectedRam = ramNFT.getCharacteristics(tokenIdOfChallenger).ram;
}
} else {
--> if (ramNFT.getCharacteristics(tokenIdOfAnyPerticipent).isJitaKrodhah == false){
--> ramNFT.updateCharacteristics(tokenIdOfAnyPerticipent, true, false, false, false, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfAnyPerticipent).isDhyutimaan == false){
--> ramNFT.updateCharacteristics(tokenIdOfAnyPerticipent, true, true, false, false, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfAnyPerticipent).isVidvaan == false){
--> ramNFT.updateCharacteristics(tokenIdOfAnyPerticipent, true, true, true, false, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfAnyPerticipent).isAatmavan == false){
--> ramNFT.updateCharacteristics(tokenIdOfAnyPerticipent, true, true, true, true, false);
--> } else if (ramNFT.getCharacteristics(tokenIdOfAnyPerticipent).isSatyavaakyah == false){
--> ramNFT.updateCharacteristics(tokenIdOfAnyPerticipent, true, true, true, true, true);
--> selectedRam = ramNFT.getCharacteristics(tokenIdOfAnyPerticipent).ram;
}
}
}