public ViewModelMainWindow()
        {
            m_model = new MainModel();

            Floors          = new ObservableCollection <FloorData>();
            CurrentFloor    = new FloorData();
            Elevators       = new ObservableCollection <ElevatorData>();
            CurrentElevator = new ElevatorData();
            EventsLog       = new ObservableCollection <string>();

            // Set starting IDs
            CurrentFloor.ID    = 1;
            CurrentElevator.ID = 1;

            IsBuilded    = false;
            IsShowEvents = true;

            AddFloorCommand       = new RelayCommand(arg => AddFloorHandle());
            DeleteFloorCommand    = new RelayCommand(arg => DeleteFloorHandle());
            ClearFloorsCommand    = new RelayCommand(arg => ClearFloorsHandle());
            AddElevatorCommand    = new RelayCommand(arg => AddElevatorHandle());
            DeleteElevatorCommand = new RelayCommand(arg => DeleteElevatorHandle());
            ClearElevatorsCommand = new RelayCommand(arg => ClearElevatorsHandle());
            BuildCommand          = new RelayCommand(arg => BuildHandle());
            ResetCommand          = new RelayCommand(arg => ResetHandle());
            RunCommand            = new RelayCommand(arg => RunHandle());
        }
    public ElevatorData DeepCopy()
    {
        ElevatorData other = (ElevatorData)this.MemberwiseClone();

        other.curFloorLevel = curFloorLevel;
        return(other);
    }
    public void Load()
    {
        if (File.Exists(Application.persistentDataPath + "/playerSave.dat"))
        {
            BinaryFormatter bf   = new BinaryFormatter();
            FileStream      file = File.Open(Application.persistentDataPath + "/playerSave.dat", FileMode.Open);
            PlayerData      data = (PlayerData)bf.Deserialize(file);
            file.Close();

            ElevatorData = data.ElevatorData;
            ViData       = data.ViData;
            WillData     = data.WillData;
            YolandaData  = data.YolandaData;
            EliseData    = data.EliseData;

            DPMainData = data.DPMainData;

            playerName = data.playerName;
            maxHealth  = data.maxHealth;
            health     = data.health;
            healFactor = data.healFactor;
            money      = data.money;
            numMasks   = data.numMasks;
            playedTime = data.playedTime;

            items = data.items;
            lens  = data.lens;
            masks = data.masks;

            room         = data.room;
            zone         = data.zone;
            saveRoomName = data.saveRoomName;
            lantern      = data.lantern;
        }
    }
Example #4
0
 public void SetData(ElevatorData ed)
 {
     playerID = ed.ownerID;
     floor    = ed.floor;
     price    = ed.price;
     GetComponent <SpriteRenderer>().color = playerColors[playerID];
     mineType = ed.mineType;
 }
Example #5
0
    public void Create(int playerID)
    {
        GameData.Instance.playerOreSupplies[playerID][TileType.Coal] -= 20;
        Mine         m     = GameData.Instance.playerMineLocations[playerID];
        int          floor = GameData.Instance.playerFloors[playerID][m];
        ElevatorData ed    = new ElevatorData(m, floor, playerID);

        GameData.Instance.playerElevators[playerID].Add(ed);
    }
    private void Awake()
    {
        curDestFloor         = GameConfig.kFloorInvalid;
        curElevatorDirection = Direction.Down;
        floorData            = new Dictionary <uint, FloorData>();
        for (uint i = 0; i < GameConfig.NumFloor; i++)
        {
            FloorData data = new FloorData(i + 1);
            floorData[data.level] = data;
        }

        elevatorData         = new ElevatorData();
        listFloorsRequesting = new HashSet <uint>();
    }
Example #7
0
    public void OnGetElevatorUpdateResponse(UpdateElevatorResponse response)
    {
        // Stop running coroutine
        if (coroutineMovingElevator != null)
        {
            StopCoroutine(coroutineMovingElevator);
        }

        if (elevatorData != null) // If null, it means haven't got elevatorData before
        {
            prevElevatorData = elevatorData;
            elevatorData     = response.updatedElevatorData;

            if (elevatorData.status == ElevatorStatus.Opening)
            {
                doorController.Open(OnDoorOpened);
            }

            if (elevatorData.status == ElevatorStatus.MovingDown || elevatorData.status == ElevatorStatus.MovingUp)
            {
                // Run coroutine
                coroutineMovingElevator = StartCoroutine(RoutineMoving(response.destinationY));
            }

            if (elevatorData.status == ElevatorStatus.Arrived)
            {
                SendUpdateElevatorStatusRequest(ElevatorStatus.Opening);
            }

            if (elevatorData.status == ElevatorStatus.Closing)
            {
                doorController.Close(OnDoorClosed);
            }

            UpdateUI();
        }
        else
        {
            Logger.Log(Logger.kTagError, "Elevator Haven't got elevatorData");
        }
    }
Example #8
0
 public void OnGetElevatorDataResponse(GetElevatorDataResponse response)
 {
     elevatorData = response.elevatorData;
     UpdateUI();
 }
Example #9
0
 public GetElevatorDataResponse(ElevatorData elevatorData)
 {
     this.elevatorData = elevatorData?.DeepCopy();
 }
Example #10
0
 public UpdateElevatorResponse(ElevatorData updatedElevatorData, float destinationY)
 {
     this.updatedElevatorData = updatedElevatorData?.DeepCopy();
     this.destinationY        = destinationY;
 }