ó
ŭG>Qc           @   sJ   d  Z  d d l Td d l m Z d d l m Z d e f d     YZ d S(   s0   
Created on Feb 18, 2013

@author: vaibhavsaini
i˙˙˙˙(   t   *(   t   BaseStationModel(   t   GameRulet   BusinessServicec           B   s   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z RS(   s   
    classdocs
    c         C   s   t    |  _ t   |  _ d S(   s   
        Constructor
        N(   R   t   baseStationR   t   gameRule(   t   self(    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   __init__   s    c         C   s
   |  j  j S(   N(   R   t	   gameScore(   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   getGameScore   s    c         C   s
   |  j  j S(   N(   R   t   mineGrid(   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   getGridStatus   s    c         C   sS   |  j  j t |  j j |  j  j t <t t |  j  j |  j j  |  j  _ |  j  j S(   N(	   R   R   t   GOLDR   t   buyRatet   mint   MAX_FUEL_BASE_STATIONt   fuelt   fuelPerExchangeUnit(   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   buyFuel   s    $%c         C   sL   |  j  j t k r t d f S|  j  j t |  j j k  rB t d f St d f S(   Ns.   BASE STATION FUEL TANK ALREADY AT MAX CAPACITYs   NOT ENOUGH GOLD TO BUY FUELt   SUCCESS(	   R   R   R   t   FalseR   R   R   R   t   True(   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt
   canBuyFuel"   s
    

c         C   s"   |  j  j | d |  j  j | <d  S(   Ni   (   R   R
   (   R   t   type(    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt
   assignPlot)   s    c         C   sI   | t  k s$ | t k s$ | t k rE |  j j | d |  j j | <n  d  S(   Ni   (   R   t   IRONt   COPPERR   R
   (   R   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   freePlot,   s    $c         C   so   | j  d k ra | j   d k rN |  j j | d k  rA t d f St d f Sqk t d j   f Sn
 t d f Sd  S(   Ni    i   s$   NO MORE PLOTS AVAILABLE OF THIS TYPER   sL   You Must return to Earth to unload your cargo. You have reached max capacitysF   ALREADY ASSIGNED A PLOT. DON'T BE GREEDY LAND ON ONE PLOT AT A TIME ;)(   t   assignedPlott   getAvailableCapacityR   R
   R   R   t   upper(   R   R   t	   spaceship(    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   canAssignPlot0   s    
c         C   sI   |  j  j | |  j j | t k  rE |  j  j | d |  j  j | <n  d  S(   Ni   (   R   t   conqueredPlotR   t   plotst   TOTAL_COUNT_STRING(   R   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   conquerPlot<   s    $c         C   sf   | j    } | j | c t | |  j j | t  7<| j t | |  j j | t  7_ | d k S(   Ni    (   R   t   mineralsR   R   R"   t   MINE_LIMIT_STRINGt   mass(   R   R   R   t   capacity(    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   loadMineral@   s    *&c         C   s[   |  j  j t c | j t 7<|  j  j t c | j t 7<|  j  j t c | j t 7<d  S(   N(   R   R   R   R%   R   R   (   R   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   updateGameScoreF   s    c         C   sl   |  j  j t |  j j t k rd |  j  j t |  j j t k rd |  j  j t |  j j t k rd t St Sd  S(   N(	   R   R   R   R   t   gameGoalR   R   R   R   (   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   checkGoalAccomplishedK   s    `c         C   s   |  j  j   S(   N(   R   t   getFuel(   R   (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   getBaseStationFuelLevelQ   s    c         C   sj   |  j  j   | k r? |  j  j |  j  j   |  d G| GH| S| |  j  j   } |  j  j d  | Sd  S(   Ns   fuel amount requested: i    (   R   R-   t   setFuel(   R   t   amountRequestedt	   available(    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   withdrawFuelT   s    	(   t   __name__t
   __module__t   __doc__R   R	   R   R   R   R   R   R    R$   R)   R*   R,   R.   R2   (    (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyR   
   s   													N(   R5   t   game.Constantst   game.model.BaseStationModelR   t   game.model.GameRuleR   t   objectR   (    (    (    sS   /home/genia/Projects/asteroid-lander/game/server/businessservice/BusinessService.pyt   <module>   s   
