public void addPlayer( Player p ) { if (fPlayers.contains(p)) return; // already joined this team fPlayers.addElement( p ); // make sure we find out if the team member disconnects p.addPlayerStateListener(this); // act as a damage filter for this member p.addDamageListener(this); // assign new skin assignSkinTo( p ); Object[] args = {p.getName(), fTeamIndex}; Game.localecast("q2java.ctf.CTFMessages", "join_team", args, Engine.PRINT_HIGH); //update players stats that he joined this team (the yellow line around team-icon) int index1 = ( this == Team.TEAM1 ? STAT_CTF_JOINED_TEAM1_PIC : STAT_CTF_JOINED_TEAM2_PIC ); int index2 = ( this == Team.TEAM1 ? STAT_CTF_JOINED_TEAM2_PIC : STAT_CTF_JOINED_TEAM1_PIC ); int picnum = Engine.getImageIndex("i_ctfj"); p.fEntity.setPlayerStat( index1, (short)picnum ); p.fEntity.setPlayerStat( index2, (short)0 ); }
public boolean removePlayer( Player p ) { if (!fPlayers.contains(p)) return false; //update players stats that he leaved this team (the yellow line around team-icon) p.fEntity.setPlayerStat( STAT_CTF_JOINED_TEAM1_PIC, (short)0 ); p.fEntity.setPlayerStat( STAT_CTF_JOINED_TEAM2_PIC, (short)0 ); p.removePlayerStateListener(this); p.removeDamageListener(this); return fPlayers.removeElement( p ); }
/** * Check if a player belongs to this team. * @return boolean * @param p The player we're checking on. */ public boolean isTeamMember(Object obj) { return fPlayers.contains(obj); }