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)