Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion client/src/config/cartridgeConnector.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ const options: ControllerOptions = {
theme,
colorMode,
namespace: "golem_runner",
slot: "golem6",
slot: "golem7",
};

const cartridgeConnector = new ControllerConnector(
Expand Down
4 changes: 2 additions & 2 deletions client/src/config/manifest_sepolia.json
Original file line number Diff line number Diff line change
Expand Up @@ -1313,7 +1313,7 @@
"contracts": [
{
"address": "0x36a518498c1d7de4106b8904f0878e1e7b78c73614001fba22eba0adca80387",
"class_hash": "0x75e15e84fe204faeaa58f91e626f7e4d0a8ca897763f28e0d96ffc1b0a52c2",
"class_hash": "0x71d1daf669d44dd29373944d2172201edcd498d74b472b61e62074ecc2939b4",
"abi": [
{
"type": "impl",
Expand Down Expand Up @@ -1745,7 +1745,7 @@
},
{
"members": [],
"class_hash": "0x2d620c3d3bc76ab5016d9707bcc9ca995ee446492cb26fc41744600d04ecf0f",
"class_hash": "0x310813b32e78c263bae18ccdb161ea6ad27e231607262e6f7d82ba5a7a26a7e",
"tag": "golem_runner-Mission",
"selector": "0x53894aba2c90ef9aeb7f37e5690c7f994547a79dcce91e9f2f098baa85587a"
},
Expand Down
4 changes: 2 additions & 2 deletions contract/manifest_sepolia.json
Original file line number Diff line number Diff line change
Expand Up @@ -1313,7 +1313,7 @@
"contracts": [
{
"address": "0x36a518498c1d7de4106b8904f0878e1e7b78c73614001fba22eba0adca80387",
"class_hash": "0x75e15e84fe204faeaa58f91e626f7e4d0a8ca897763f28e0d96ffc1b0a52c2",
"class_hash": "0x71d1daf669d44dd29373944d2172201edcd498d74b472b61e62074ecc2939b4",
"abi": [
{
"type": "impl",
Expand Down Expand Up @@ -1745,7 +1745,7 @@
},
{
"members": [],
"class_hash": "0x2d620c3d3bc76ab5016d9707bcc9ca995ee446492cb26fc41744600d04ecf0f",
"class_hash": "0x310813b32e78c263bae18ccdb161ea6ad27e231607262e6f7d82ba5a7a26a7e",
"tag": "golem_runner-Mission",
"selector": "0x53894aba2c90ef9aeb7f37e5690c7f994547a79dcce91e9f2f098baa85587a"
},
Expand Down
7 changes: 6 additions & 1 deletion contract/src/store.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ pub impl StoreImpl of StoreTrait {
}

fn reward_mission(mut self: Store, mission_id: u256, coins_collected: u64) -> bool {
let mission = self.read_mission(mission_id);
let mut mission = self.read_mission(mission_id);

// Verify mission
if mission.is_zero() {
Expand All @@ -343,8 +343,13 @@ pub impl StoreImpl of StoreTrait {
let mut player = self.read_player();
player.add_coins(coins_collected);

// Update mission status
mission.status = MissionStatus::Claimed;

// Save the updated player
self.world.write_model(@player);
// Save the updated mission
self.world.write_model(@mission);

return true; // Mission rewarded successfully
}
Expand Down
4 changes: 2 additions & 2 deletions contract/src/tests/test_mission.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -353,9 +353,9 @@ mod tests {
let mission2: Mission = world.read_model((mission_id2, PLAYER()));
let mission3: Mission = world.read_model((mission_id3, PLAYER()));

assert(mission1.status == MissionStatus::Completed, 'Mission 1 is completed');
assert(mission1.status == MissionStatus::Claimed, 'Mission 1 is claimed');
assert(mission2.status == MissionStatus::Pending, 'Mission 2 is pending');
assert(mission3.status == MissionStatus::Completed, 'Mission 3 is completed');
assert(mission3.status == MissionStatus::Claimed, 'Mission 3 is completed');

// Verify player received coins from completed missions only
let player_final: Player = world.read_model(PLAYER());
Expand Down
7 changes: 6 additions & 1 deletion contract/src/types/mission_status.cairo
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#[derive(Copy, Drop, Serde, Debug, Introspect, PartialEq)]
pub enum MissionStatus {
Pending,
Completed
Completed,
Claimed
}

pub impl IntoMissionStatusFelt252 of Into<MissionStatus, felt252> {
Expand All @@ -10,6 +11,7 @@ pub impl IntoMissionStatusFelt252 of Into<MissionStatus, felt252> {
match self {
MissionStatus::Pending => 0,
MissionStatus::Completed => 1,
MissionStatus::Claimed => 2,
}
}
}
Expand All @@ -20,6 +22,7 @@ pub impl IntoMissionStatusU8 of Into<MissionStatus, u8> {
match self {
MissionStatus::Pending => 0,
MissionStatus::Completed => 1,
MissionStatus::Claimed => 2,
}
}
}
Expand All @@ -31,6 +34,7 @@ pub impl Intou8MissionStatus of Into<u8, MissionStatus> {
match mission {
0 => MissionStatus::Pending,
1 => MissionStatus::Completed,
2 => MissionStatus::Claimed,
_ => MissionStatus::Pending,
}
}
Expand All @@ -41,6 +45,7 @@ pub impl MissionStatusDisplay of core::fmt::Display<MissionStatus> {
let s = match self {
MissionStatus::Pending => "Pending",
MissionStatus::Completed => "Completed",
MissionStatus::Claimed => "Claimed",
};
f.buffer.append(@s);
Result::Ok(())
Expand Down