コード例 #1
0
 def pay_tax(self, game_id, user_id):
     player = PlayerProvider().get_player(game_id=game_id, user_id=user_id)
     if self.__player_exists(player):
         card = CardProvider().get_card_with_position(player.position)
         if card != None:
             if PropertyProvider().check_if_exist(game_id, card.id):
                 property = PropertyProvider().get_property_with_card(
                     game_id, card.id)
                 if property.player.user_id != user_id:
                     charge = ChargeProvider().get_charge(card.charge_id)
                     player2 = PlayerProvider().get_player(
                         game_id=game_id, user_id=property.player.user_id)
                     tax_to_pay = charge.get_charge_for_amount_of_buildings(
                         property.buildings)
                     print('1p old balance: ' + str(player.balance))
                     player.update_balance(-tax_to_pay)
                     print('1p new balance: ' + str(player.balance))
                     print('2p old balance: ' + str(player2.balance))
                     player2.update_balance(tax_to_pay)
                     print('2p new balance: ' + str(player2.balance))
                     self.status = 1000
                     return [player, player2], self.status
                 else:
                     self.status = 2000
                     return None, self.status
             else:
                 self.status = 2007
                 return None, self.status
         else:
             self.status = 2004
             return None, self.status
     else:
         self.status = 2000
         return None, self.status
コード例 #2
0
 def __building_cost(self, user_property):
     cost = 0
     card = CardProvider().get_card(user_property.card_id)
     if user_property.buildings == 4:
         cost = card.hotel_cost
     else:
         cost = card.apartment_cost
     return cost
コード例 #3
0
 def __buy_building(self, property):
     owner = PlayerProvider().get_owner(property.id)
     property.buildings += 1
     card = CardProvider().get_card(property.card_id)
     if property.buildings == 5:
         owner.balance -= card.hotel_cost
     elif property.buildings < 5 and property.buildings > 0:
         owner.balance -= card.apartment_cost
コード例 #4
0
 def __sell_building(self, property):
     owner = PlayerProvider().get_owner(property.id)
     card = CardProvider().get_card(property.card_id)
     if property.buildings == 5:
         property.buildings -= 1
         owner.balance += card.hotel_cost
     elif property.buildings >= 0:
         property.buildings -= 1
         owner.balance += card.apartment_cost
コード例 #5
0
def test_card_provider_returns_no_card():
    # GIVEN
    Proxy()
    card = CardFactory()
    Proxy().load(full=True)
    # WHEN
    provided_card = CardProvider().get_card_with_position(0)
    # THEN
    assert provided_card == None
コード例 #6
0
 def get_available_card_to_buy(self, game_id, user_id):
     player = PlayerProvider().get_player(game_id, user_id)
     card = CardProvider().get_card_with_position(player.position)
     if card:
         if not PropertyProvider().check_if_exist(game_id, card.id):
             return card, self.status
         else:
             self.status = 2006
             return None, self.status
     self.status = 2005
     return None, self.status
コード例 #7
0
def test_card_provider_returns_valid_card_when_there_are_more_cards():
    # GIVEN
    Proxy()
    card = CardFactory()
    card2 = CardFactory(position=2)
    card4 = CardFactory(position=4)
    Proxy().load(full=True)
    # WHEN
    provided_card = CardProvider().get_card_with_position(2)
    # THEN
    assert provided_card == card2
コード例 #8
0
 def buy_property(self, game_id, user_id):
     player = PlayerProvider().get_player(game_id=game_id, user_id=user_id)
     if self.__player_exists(player):
         card = CardProvider().get_card_with_position(player.position)
         if card != None:
             if not PropertyProvider().is_property_taken(game_id, card.id):
                 self.status = 1000
                 property = Property(player_id=player.id,
                                     game_id=player.game_id,
                                     card_id=card.id)
                 Proxy().propertys_dict[property.id] = property
                 player.update_balance(-card.cost)
                 return player, self.status
             else:
                 self.status = 2006
         else:
             self.status = 2005
     else:
         self.status = 2002
     return None, self.status
コード例 #9
0
 def __repurchase(self, property):
   owner = PlayerProvider().get_owner(property.id)
   card = CardProvider().get_card(property.card_id)
   if property.deposited:
     property.deposited = False
     owner.balance -= card.deposit_value
コード例 #10
0
 def __deposit(self, property):
   owner = PlayerProvider().get_owner(property.id)
   card = CardProvider().get_card(property.card_id)
   if not property.deposited:
     property.deposited = True
     owner.balance += card.deposit_value