X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fminigames%2Fminigame%2Fc4.qc;h=9b9d570855b490d8ac01d737cfb2114329656fe7;hb=61d746760851b92ea6124dcc179c0f5178b62169;hp=a153b39939ea47b061c85d9a0c124221b345b5ff;hpb=1556aa4ea70b3b275afb1cb4587e555fb44f71c3;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/minigames/minigame/c4.qc b/qcsrc/common/minigames/minigame/c4.qc index a153b3993..9b9d57085 100644 --- a/qcsrc/common/minigames/minigame/c4.qc +++ b/qcsrc/common/minigames/minigame/c4.qc @@ -1,7 +1,8 @@ +REGISTER_MINIGAME(c4, "Connect Four"); + const float C4_TURN_PLACE = 0x0100; // player has to place a piece on the board const float C4_TURN_WIN = 0x0200; // player has won const float C4_TURN_DRAW = 0x0400; // no moves are possible -const float C4_TURN_TYPE = 0x0f00; // turn type mask const float C4_TURN_TEAM1 = 0x0001; const float C4_TURN_TEAM2 = 0x0002; @@ -120,7 +121,7 @@ bool c4_winning_piece(entity piece) if(found >= C4_WIN_CNT) return true; - + return false; } @@ -222,15 +223,15 @@ int c4_server_event(entity minigame, string event, ...) { switch(argv(0)) { - case "move": - c4_move(minigame, ...(0,entity), ...(1,int) == 2 ? argv(1) : string_null ); + case "move": + c4_move(minigame, ...(0,entity), ...(1,int) == 2 ? argv(1) : string_null ); return true; } return false; } } - + return false; } @@ -248,7 +249,7 @@ void c4_hud_board(vector pos, vector mySize) minigame_hud_fitsqare(pos, mySize); c4_boardpos = pos; c4_boardsize = mySize; - + minigame_hud_simpleboard(pos,mySize,minigame_texture("c4/board_under")); drawpic(pos, minigame_texture("c4/board_over"), mySize, '1 1 1', 1, 0); @@ -261,11 +262,11 @@ void c4_hud_board(vector pos, vector mySize) { tile_pos = minigame_tile_pos(c4_curr_pos,C4_NUM_CNT,C4_LET_CNT); tile_pos = minigame_hud_denormalize(tile_pos,pos,mySize); - minigame_drawpic_centered( tile_pos, + minigame_drawpic_centered( tile_pos, minigame_texture(strcat("c4/piece",ftos(minigame_self.team))), tile_size, '1 1 1', panel_fg_alpha/2, DRAWFLAG_NORMAL ); } - + entity e; FOREACH_MINIGAME_ENTITY(e) { @@ -273,11 +274,11 @@ void c4_hud_board(vector pos, vector mySize) { tile_pos = minigame_tile_pos(e.netname,C4_NUM_CNT,C4_LET_CNT); tile_pos = minigame_hud_denormalize(tile_pos,pos,mySize); - + if ( active_minigame.minigame_flags & C4_TURN_WIN ) if ( !e.c4_checkwin ) e.c4_checkwin = c4_winning_piece(e) ? 1 : -1; - + float icon_color = 1; if ( e.c4_checkwin == -1 ) icon_color = 0.4; @@ -287,8 +288,8 @@ void c4_hud_board(vector pos, vector mySize) minigame_drawpic_centered( tile_pos, minigame_texture("c4/winglow"), tile_size, '1 1 1', panel_fg_alpha, DRAWFLAG_ADDITIVE ); } - - minigame_drawpic_centered( tile_pos, + + minigame_drawpic_centered( tile_pos, minigame_texture(strcat("c4/piece",ftos(e.team))), tile_size, '1 1 1'*icon_color, panel_fg_alpha, DRAWFLAG_NORMAL ); } @@ -299,20 +300,20 @@ void c4_hud_board(vector pos, vector mySize) vector winfs = hud_fontsize*2; string playername = ""; FOREACH_MINIGAME_ENTITY(e) - if ( e.classname == "minigame_player" && + if ( e.classname == "minigame_player" && e.team == (active_minigame.minigame_flags & C4_TURN_TEAM) ) - playername = GetPlayerName(e.minigame_playerslot-1); - + playername = entcs_GetName(e.minigame_playerslot-1); + vector win_pos = pos+eY*(mySize_y-winfs_y)/2; vector win_sz; win_sz = minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos, - sprintf("%s^7 won the game!",playername), + sprintf("%s^7 won the game!",playername), winfs, 0, DRAWFLAG_NORMAL, 0.5); - + drawfill(win_pos-eY*hud_fontsize_y,win_sz+2*eY*hud_fontsize_y,'1 1 1',0.5,DRAWFLAG_ADDITIVE); - + minigame_drawcolorcodedstring_wrapped(mySize_x,win_pos, - sprintf("%s^7 won the game!",playername), + sprintf("%s^7 won the game!",playername), winfs, panel_fg_alpha, DRAWFLAG_NORMAL, 0.5); } } @@ -325,10 +326,10 @@ void c4_hud_status(vector pos, vector mySize) vector ts; ts = minigame_drawstring_wrapped(mySize_x,pos,active_minigame.descriptor.message, hud_fontsize * 2, '0.25 0.47 0.72', panel_fg_alpha, DRAWFLAG_NORMAL,0.5); - + pos_y += ts_y; mySize_y -= ts_y; - + vector player_fontsize = hud_fontsize * 1.75; ts_y = ( mySize_y - 2*player_fontsize_y ) / 2; ts_x = mySize_x; @@ -351,14 +352,14 @@ void c4_hud_status(vector pos, vector mySize) if ( e.team == 2 ) mypos_y += player_fontsize_y + ts_y; minigame_drawcolorcodedstring_trunc(mySize_x,mypos, - GetPlayerName(e.minigame_playerslot-1), + entcs_GetName(e.minigame_playerslot-1), player_fontsize, panel_fg_alpha, DRAWFLAG_NORMAL); - + mypos_y += player_fontsize_y; - drawpic( mypos, + drawpic( mypos, minigame_texture(strcat("c4/piece",ftos(e.team))), tile_size, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL ); - + mypos_x += tile_size_x; } } @@ -369,20 +370,20 @@ string c4_turn_to_string(int turnflags) { if ( turnflags & C4_TURN_DRAW ) return _("Draw"); - + if ( turnflags & C4_TURN_WIN ) { if ( (turnflags&C4_TURN_TEAM) != minigame_self.team ) return _("You lost the game!"); return _("You win!"); } - + if ( (turnflags & C4_TURN_TEAM) != minigame_self.team ) return _("Wait for your opponent to make their move"); - + if ( turnflags & C4_TURN_PLACE ) return _("Click on the game board to place your piece"); - + return ""; } @@ -502,4 +503,4 @@ int c4_client_event(entity minigame, string event, ...) return false; } -#endif \ No newline at end of file +#endif