X-Git-Url: http://nitlanguage.org diff --git a/contrib/nitrpg/src/reactors.nit b/contrib/nitrpg/src/reactors.nit index 2424d86..616bd8a 100644 --- a/contrib/nitrpg/src/reactors.nit +++ b/contrib/nitrpg/src/reactors.nit @@ -47,7 +47,7 @@ redef class GithubEvent var obj = new JsonObject obj["player"] = player.name obj["reward"] = reward - obj["github_event"] = json + obj["github_event"] = self var event = new GameEvent(player.game, kind, obj) player.game.add_event(event) return event @@ -58,7 +58,7 @@ redef class PullRequestEvent # Rewards player for opened pull requests. redef fun react_player_event(r, game) do - if action == "opened" then + if action == "opened" or action == "reopened" then react_pull_open(r, game) else if action == "closed" then react_pull_close(r, game) @@ -74,12 +74,18 @@ redef class PullRequestEvent end private fun react_pull_close(r: PlayerReactor, game: Game) do - if not pull.merged then return var player = pull.user.player(game) - var reward = pull.commits * r.nc_commit_merged + var reward + var event + if pull.merged then + reward = pull.commits * r.nc_commit_merged + event = player_reward_event("pull_merged", player, reward) + else + reward = -r.nc_pull_open + event = player_reward_event("pull_closed", player, reward) + end player.nitcoins += reward player.save - var event = player_reward_event("pull_merged", player, reward) player.add_event(event) end end @@ -89,14 +95,18 @@ redef class IssueCommentEvent # Rewards player for review comments. # # TODO only give nitcoins if reviewers < 2 + # TODO give more points to first reviewer redef fun react_player_event(r, game) do if comment.is_ack then react_player_review(r, game) end end + # TODO same player should not be authorized to review multiple times? How to handle rerols? private fun react_player_review(r: PlayerReactor, game: Game) do + if issue.state == "closed" then return var player = comment.user.player(game) + if issue.user == player.user then return player.nitcoins += r.nc_pull_review player.save var event = player_reward_event("pull_review", player, r.nc_pull_review)