Exemplo n.º 1
0
class Wife(BaseGameEntity):
    def __init__(self, val):
        super().__init__(val)
        self.location = "Home"
        self.peeNeed = 5
        self.cookingStew = False
        self.fsm = StateMachine(self)
        self.fsm.globalState = WifeGlobalState()
        self.fsm.currentState = WifeClean()

    def Update(self):
        self.fsm.Update()

    def NeedToRelief(self):
        return self.peeNeed >= 10

    def CookingStew(self):
        return self.cookingStew

    def HandleMessage(self, telegram):
        return self.fsm.HandleMessage(telegram)

    def logStates(self):
        log(str(self) + " global state: " + str(self.fsm.globalState))
        log(str(self) + " current state: " + str(self.fsm.currentState))
        log(str(self) + " previous state: " + str(self.fsm.previousState))
        log(str(self) + " location: " + self.location)
        log(str(self) + " peeNeed: " + str(self.peeNeed))
        log(str(self) + " cookingStew: " + str(self.cookingStew))
Exemplo n.º 2
0
class Miner(BaseGameEntity):
    def __init__(self, val):
        super().__init__(val)
        self.location = "Mine"
        self.moneyInBank = 10
        self.goldCarried = 19
        self.thirst = 0
        self.fatigue = 10
        self.fsm = StateMachine(self)
        self.fsm.globalState = MinerGlobalState()
        self.fsm.currentState = MineForGold()

    def Update(self):
        self.fsm.Update()

    def IsThirsty(self):
        return self.thirst >= 10

    def IsTired(self):
        return self.fatigue >= 10

    def IsWealthy(self):
        return self.goldCarried >= 20

    def HandleMessage(self, telegram):
        return self.fsm.HandleMessage(telegram)

    def logStates(self):
        log(str(self) + " global state: " + str(self.fsm.globalState))
        log(str(self) + " current state: " + str(self.fsm.currentState))
        log(str(self) + " previous state: " + str(self.fsm.previousState))
        log(str(self) + " location: " + self.location)
        log(str(self) + " moneyInBank: " + str(self.moneyInBank))
        log(str(self) + " goldCarried: " + str(self.goldCarried))
        log(str(self) + " thirst: " + str(self.thirst))
        log(str(self) + " fatigue: " + str(self.fatigue))
Exemplo n.º 3
0
class BaseGameEntity:
    
    __nextValidID = 0

    def __init__(self, val, name, gm):
        self.__setID(val)
        self.name = name
        self.location = globals.locations[globals.LOC_DEFAULT]
        self.inventory = {}
        self.money = 50
        self.thirst = 75
        self.hunger = 50
        self.fatigue = 50
        self.social = 75
        
        self.isAlive = True
        self.isWorking = False
        self.isHome = False
        self.isSocializing = False
        self.isSleeping = False
        self.isTraversing = False

        self.fsm = StateMachine(self)
        self.gm = gm

    def GetID(self):
        return self.__ID

    def __setID(self, val):
        # check valid ID?
        self.__ID = val

    def Update(self):
        self.fsm.Update()

    def HandleMessage(self, telegram):
        return self.fsm.HandleMessage(telegram)

    def logStates(self):
        log(self.name + " global state: " + str(type(self.fsm.globalState)))
        log(self.name + " current state: " + str(type(self.fsm.currentState)))
        log(self.name + " previous state: " + str(type(self.fsm.previousState)))
        log(self.name + " location: " + self.location)
        log(self.name + " inventory: " + str(self.inventory.items()))
        log(self.name + " money: " + str(self.money))
        log(self.name + " thirst: " + str(self.thirst))
        log(self.name + " hunger: " + str(self.hunger))
        log(self.name + " fatigue: " + str(self.fatigue))
        log(self.name + " social: " + str(self.social))

    def IsAlive(self):
        return self.isAlive

    def IsWorking(self):
        return self.isWorking

    def IsHome(self):
        return self.isHome

    def IsSocializing(self):
        return self.isSocializing

    def IsSleeping(self):
        return self.isSleeping

    def IsTraversing(self):
        return self.isTraversing

    def IsThirsty(self):
        return self.thirst <= 40

    def IsHungry(self):
        return self.hunger <= 30

    def IsTired(self):
        return self.fatigue <= 25

    def IsPoor(self):
        return self.money <= 10

    def IsLonely(self):
        return self.social <= 20

    def AddItem(self, item):
        self.inventory[item] = True

    def RemoveItem(self, item):
        self.inventory[item] = False

    def HasItem(self, item):
        return self.inventory.get(item, False)