void take_cards_from_others(byte pee_count) { CPlayerAgent attacker = this.player_agents[this.current_player_index]; byte next_player = get_next_player_index(); CPlayerAgent victim = this.player_agents[next_player]; //todo:코드를 좀더 명확하게 수정하기. if (!this.other_cards_to_player.ContainsKey(next_player)) { this.other_cards_to_player.Add(next_player, new List <CCard>()); } List <CCard> cards = victim.pop_card_from_floor(pee_count); if (cards == null) { return; } for (int i = 0; i < cards.Count; ++i) { attacker.add_card_to_floor(cards[i]); this.other_cards_to_player[next_player].Add(cards[i]); } }
void send_player_statistics(byte player_index) { CPlayerAgent target_player = this.players[player_index].agent; for (int i = 0; i < this.players.Count; ++i) { CPacket msg = CPacket.create((short)PROTOCOL.UPDATE_PLAYER_STATISTICS); msg.push(player_index); msg.push(target_player.score); msg.push(target_player.go_count); msg.push(target_player.shaking_count); msg.push(target_player.ppuk_count); msg.push(target_player.get_pee_count()); this.players[i].send(msg); } }
public CPlayer(byte player_index, PLAYER_TYPE player_type, SendFn send_function, CLocalServer local_server) { this.player_index = player_index; this.agent = new CPlayerAgent(player_index); this.player_type = player_type; switch (this.player_type) { case PLAYER_TYPE.HUMAN: this.send_function = send_function; break; case PLAYER_TYPE.AI: this.ai_logic = new CAIPlayer(local_server); this.send_function = this.ai_logic.send; break; } }
void Awake() { this.cell_indexes = new List <short>(); this.agent = new CPlayerAgent(); }