Example #1
0
    def change_game_state(self, **state):
        import BigWorld, Avatar, Account
        assert self.mod_tessumod, "Mod must be loaded first before changing game state"

        if state["mode"] == "battle":
            BigWorld.player(Avatar.Avatar())
            if "players" in state:
                for player in state["players"]:
                    vehicle_id = random.randint(0, 1000000)
                    dbid = random.randint(0, 1000000)
                    BigWorld.player().arena.vehicles[vehicle_id] = {
                        "accountDBID": dbid,
                        "name": player["name"],
                        "isAlive": True
                    }
                    if vehicle_id not in BigWorld.entities:
                        BigWorld.entities[vehicle_id] = BigWorld.Entity()
                    if "position" in player:
                        BigWorld.player(
                        ).arena.positions[vehicle_id] = player["position"]
                        BigWorld.entities[
                            vehicle_id].position = BigWorld.Vector(
                                *player["position"])
            if "camera" in state:
                if "position" in state["camera"]:
                    BigWorld.camera().position = BigWorld.Vector(
                        *state["camera"]["position"])
                if "direction" in state["camera"]:
                    BigWorld.camera().direction = BigWorld.Vector(
                        *state["camera"]["direction"])
        elif state["mode"] == "lobby":
            BigWorld.player(Account.PlayerAccount())
            if "players" in state:
                for id, player in enumerate(state["players"]):
                    BigWorld.player().prebattle.rosters[0][id] = {
                        "name": player["name"],
                        "dbID": random.randint(0, 1000000)
                    }