1 /* cmd_neonfun_unoplay.c - NeonServ v5.6
2 * Copyright (C) 2011-2012 Philipp Kreil (pk910)
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 #include "cmd_neonfun.h"
21 CMD_BIND(neonfun_cmd_unoplay) {
22 struct ChanUser *chanuser = getChanUser(user, chan);
24 struct uno_game *game;
25 for(game = uno_active_games; game; game = game->next) {
26 if(chan == game->channel) {
27 if(game->state == UNO_STATE_WAITING)
34 //check if it's the player's turn
35 if(game->active_player->chanuser != chanuser) {
36 reply(textclient, user, "NF_UNO_NOT_YOUR_TURN");
39 game->active_player->timeout = 0;
40 struct uno_card *card = uno_parse_card(game, game->active_player, argv[0]);
42 unsigned char new_color = card->color;
43 if(card->card == UNO_CARD_ADD_4 || card->card == UNO_CARD_COLOR) {
45 reply(game->textbot, user, "NF_UNO_DEFINE_COLOR");
48 if(!stricmp(argv[1], "RED") || !stricmp(argv[1], "R") || !stricmp(argv[1], get_language_string(user, "NF_UNO_CARD_RED"))) {
49 new_color = UNO_COLOR_RED;
50 } else if(!stricmp(argv[1], "BLUE") || !stricmp(argv[1], "B") || !stricmp(argv[1], get_language_string(user, "NF_UNO_CARD_BLUE"))) {
51 new_color = UNO_COLOR_BLUE;
52 } else if(!stricmp(argv[1], "GREEN") || !stricmp(argv[1], "G") || !stricmp(argv[1], get_language_string(user, "NF_UNO_CARD_GREEN"))) {
53 new_color = UNO_COLOR_GREEN;
54 } else if(!stricmp(argv[1], "YELLOW") || !stricmp(argv[1], "Y") || !stricmp(argv[1], get_language_string(user, "NF_UNO_CARD_YELLOW"))) {
55 new_color = UNO_COLOR_YELLOW;
57 reply(game->textbot, user, "NF_UNO_DEFINE_COLOR");
61 if(uno_check_card_valid(game, card)) {
62 reply(game->textbot, user, "NF_UNO_CARD_NOT_POSSIBLE");
65 card->color = new_color;
66 uno_play_card(game, game->active_player, card);