Actions

Action

Bases: Model

Represents generic action, so every action shares these fields

Frontend Request Payload Example:

{
  "type": "Action",
  "game": 1,
  "player": 2,
}
Source code in magnate/models.py
class Action(models.Model):
    """
    Represents generic action, so every action shares these fields

    Frontend Request Payload Example:
    ```json
    {
      "type": "Action",
      "game": 1,
      "player": 2,
    }
    ```
    """
    game = models.ForeignKey('Game', on_delete=models.CASCADE, related_name='in_game')
    player = models.ForeignKey('CustomUser', on_delete=models.CASCADE, related_name='made_by')

ActionThrowDices

Bases: Action

Action to throw the dices. It is basically empty.

Frontend Request Payload Example:

{
  "type": "ActionThrowDices",
  "game": 1,
  "player": 2,
}
Source code in magnate/models.py
class ActionThrowDices(Action):
    """
    Action to throw the dices. It is basically empty.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionThrowDices",
      "game": 1,
      "player": 2,
    }
    ```
    """
    pass

ActionMoveTo

Bases: Action

Action to move to a square.

Frontend Request Payload Example:

{
  "type": "ActionThrowDices",
  "game": 1,
  "player": 2,
  "square": 101,
}
Source code in magnate/models.py
class ActionMoveTo(Action):
    """
    Action to move to a square. 

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionThrowDices",
      "game": 1,
      "player": 2,
      "square": 101,
    }
    ```
    """
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='move_to')

ActionTakeTram

Bases: Action

Action to take the tram when possible

Frontend Request Payload Example:

{
  "type": "ActionTakeTram",
  "game": 1,
  "player": 2,
  "square": 200,
}
Source code in magnate/models.py
class ActionTakeTram(Action):
    """
    Action to take the tram when possible

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionTakeTram",
      "game": 1,
      "player": 2,
      "square": 200,
    }
    ```
    """
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='tram_move_to')

ActionDropPurchase

Bases: Action

Action to decline purchasing a property.

Frontend Request Payload Example:

{
  "type": "ActionDropPurchase",
  "game": 1,
  "player": 2,
  "square": 15
}
Source code in magnate/models.py
class ActionDropPurchase(Action):
    """
    Action to decline purchasing a property.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionDropPurchase",
      "game": 1,
      "player": 2,
      "square": 15
    }
    ```
    """
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='dropped')

ActionBuySquare

Bases: Action

Action to buy an unowned property.

Frontend Request Payload Example:

{
  "type": "ActionBuySquare",
  "game": 1,
  "player": 2,
  "square": 15
}
Source code in magnate/models.py
class ActionBuySquare(Action):
    """
    Action to buy an unowned property.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionBuySquare",
      "game": 1,
      "player": 2,
      "square": 15
    }
    ```
    """
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='bought')

ActionSellSquare

Bases: Action

Action to sell a property.

Frontend Request Payload Example:

{
  "type": "ActionSellSquare",
  "game": 1,
  "player": 2,
  "square": 15
}
Source code in magnate/models.py
class ActionSellSquare(Action):
    """
    Action to sell a property.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionSellSquare",
      "game": 1,
      "player": 2,
      "square": 15
    }
    ```
    """
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='sold')

ActionBuild

Bases: Action

Action to build houses/hotels on a property.

Frontend Request Payload Example:

{
  "type": "ActionBuild",
  "game": 1,
  "player": 2,
  "houses": 1,
  "square": 12
}
Source code in magnate/models.py
class ActionBuild(Action):
    """
    Action to build houses/hotels on a property.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionBuild",
      "game": 1,
      "player": 2,
      "houses": 1,
      "square": 12
    }
    ```
    """
    houses = models.IntegerField(default=1)
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='build_square')

ActionDemolish

Bases: Action

Action to demolish houses/hotels on a property.

Frontend Request Payload Example:

{
  "type": "ActionDemolish",
  "game": 1,
  "player": 2,
  "houses": 1,
  "square": 12
}
Source code in magnate/models.py
class ActionDemolish(Action):
    """
    Action to demolish houses/hotels on a property.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionDemolish",
      "game": 1,
      "player": 2,
      "houses": 1,
      "square": 12
    }
    ```
    """
    houses = models.IntegerField(default=0)
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='demolish_square')

ActionChooseCard

Bases: Action

Action to interact with or draw a fantasy card.

Frontend Request Payload Example:

{
  "type": "ActionChooseCard",
  "game": 1,
  "player": 2,
  "chosen_revealed_card": true
}
Source code in magnate/models.py
class ActionChooseCard(Action):
    """
    Action to interact with or draw a fantasy card.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionChooseCard",
      "game": 1,
      "player": 2,
      "chosen_revealed_card": true
    }
    ```
    """
    chosen_revealed_card = models.BooleanField(default=False)

ActionSurrender

Bases: Action

Action to quit/surrender the game. It is empty.

Frontend Request Payload Example:

{
  "type": "ActionSurrender",
  "game": 1,
  "player": 2
}
Source code in magnate/models.py
class ActionSurrender(Action):
    """
    Action to quit/surrender the game. It is empty.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionSurrender",
      "game": 1,
      "player": 2
    }
    ```
    """
    pass

ActionTradeProposal

Bases: Action

Action to propose a trade to another player.

Frontend Request Payload Example:

{
  "type": "ActionTradeProposal",
  "game": 1,
  "player": 2,
  "destination_user": 3,
  "offered_money": 200,
  "asked_money": 0,
  "offered_properties": [5, 6],
  "asked_properties": [12]
}
Source code in magnate/models.py
class ActionTradeProposal(Action):
    """
    Action to propose a trade to another player.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionTradeProposal",
      "game": 1,
      "player": 2,
      "destination_user": 3,
      "offered_money": 200,
      "asked_money": 0,
      "offered_properties": [5, 6],
      "asked_properties": [12]
    }
    ```
    """
    destination_user = models.ForeignKey('CustomUser', on_delete=models.CASCADE, related_name='destination_user')
    offered_money = models.PositiveIntegerField(default=0)
    asked_money = models.PositiveIntegerField(default=0)
    offered_properties = models.ManyToManyField('PropertyRelationship', related_name='offered_properties')
    asked_properties = models.ManyToManyField('PropertyRelationship', related_name='asked_properties')

ActionTradeAnswer

Bases: Action

Action to accept or decline a trade proposal.

Frontend Request Payload Example:

{
  "type": "ActionTradeAnswer",
  "game": 1,
  "player": 2,
  "choose": true,
  "proposal": 8
}
Source code in magnate/models.py
class ActionTradeAnswer(Action):
    """
    Action to accept or decline a trade proposal.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionTradeAnswer",
      "game": 1,
      "player": 2,
      "choose": true,
      "proposal": 8
    }
    ```
    """
    choose = models.BooleanField(default=False)
    proposal = models.OneToOneField('ActionTradeProposal', on_delete=models.CASCADE, related_name='proposal')

ActionMortgageSet

Bases: Action

Action to mortgage a property.

Frontend Request Payload Example:

{
  "type": "ActionMortgageSet",
  "game": 1,
  "player": 2,
  "square": 15
}
Source code in magnate/models.py
class ActionMortgageSet(Action):
    """
    Action to mortgage a property.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionMortgageSet",
      "game": 1,
      "player": 2,
      "square": 15
    }
    ```
    """
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='mortgage_set_square')

ActionMortgageUnset

Bases: Action

Action to lift a mortgage from a property.

Frontend Request Payload Example:

{
  "type": "ActionMortgageUnset",
  "game": 1,
  "player": 2,
  "square": 15
}
Source code in magnate/models.py
class ActionMortgageUnset(Action):
    """
    Action to lift a mortgage from a property.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionMortgageUnset",
      "game": 1,
      "player": 2,
      "square": 15
    }
    ```
    """
    square = models.ForeignKey('BaseSquare', on_delete=models.CASCADE, related_name='mortgage_unset_square')

ActionPayBail

Bases: Action

Action to pay the bail fee to get out of jail. It is empty.

Frontend Request Payload Example:

{
  "type": "ActionPayBail",
  "game": 1,
  "player": 2
}
Source code in magnate/models.py
class ActionPayBail(Action):
    """
    Action to pay the bail fee to get out of jail. It is empty.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionPayBail",
      "game": 1,
      "player": 2
    }
    ```
    """
    pass

ActionNextPhase

Bases: Action

Action to transition to the next game phase or end turn. It is empty.

Frontend Request Payload Example:

{
  "type": "ActionNextPhase",
  "game": 1,
  "player": 2
}
Source code in magnate/models.py
class ActionNextPhase(Action):
    """
    Action to transition to the next game phase or end turn. It is empty.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionNextPhase",
      "game": 1,
      "player": 2
    }
    ```
    """
    pass

ActionBid

Bases: Action

Action to place a bid on a property auction.

Frontend Request Payload Example:

{
  "type": "ActionBid",
  "game": 1,
  "player": 2,
  "auction": 4,
  "amount": 150
}
Source code in magnate/models.py
class ActionBid(Action):
    """
    Action to place a bid on a property auction.

    Frontend Request Payload Example:
    ```json
    {
      "type": "ActionBid",
      "game": 1,
      "player": 2,
      "auction": 4,
      "amount": 150
    }
    ```
    """
    amount = models.PositiveIntegerField(default=0)