/* Copyright (C) 2010 Karlsruhe Institute of Technology * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package edu.kit.iti.pse.iface; /** * Erweiterte Server-Schnittstelle, die auch Auktionen beinhaltet. * Auktionen können nicht von den Spielern selbst gestartet werden, * sondern finden automatisch statt wenn ein Grundstück nicht verkauft wurde. * @author bruns * */ public interface IServerAuction extends IServer { /** * Gibt den Stand der Auktion an. * @return -1 falls keine Auktion läuft<br> * 0 falls eine Auktion läuft und noch nicht ausgezählt wird<br> * 1 falls eine Auktion läuft und "zum Ersten" angekündigt wurde<br> * 2 falls eine Auktion läuft und "zum Zweiten" angekündigt wurde<br> * 3 falls eine Auktion gerade abgeschlossen wurde <i>(optional)</i>, * in diesem Zustand müssen noch alle Daten abrufbar sein */ public int getAuctionState (); /** * Liefert das zu versteigernde Grundstück falls eine Auktion läuft. * @return laufende Nummer des Grundstücks */ public int getAuctionedEstate (); /** * Liefert die höchste gebotene Summe. * Hat noch niemand geboten, so beträgt sie den in den Spielregeln vorgesehenen Standardwert. */ public int getHighestBid (); /** * Liefert den Bieter der höchsten gebotenen Summe. * @return ID des Spielers; -1 falls noch niemand geboten hat */ public int getBidder(); /** * Gibt ein Gebot in einer Versteigerung ab. * @param playerID der bietende Spieler * @param amount der gebotene Geldbetrag */ public boolean placeBid (int playerID, int amount); }