Beispiel #1
0
        void SetTowardPos(FieldInfo.FieldPosition fieldPosition)
        {
            if (fieldPosition == FieldInfo.FieldPosition.Center)
            {
                towardPos = new Vector3(0.0f, 0.0f, 0.0f);
            }

            if (fieldPosition == FieldInfo.FieldPosition.Up)
            {
                towardPos = new Vector3(0.0f, NEIGHBOR_FIELD_DISTANCE, 0.0f);
            }

            if (fieldPosition == FieldInfo.FieldPosition.Down)
            {
                towardPos = new Vector3(0.0f, -NEIGHBOR_FIELD_DISTANCE, 0.0f);
            }

            if (fieldPosition == FieldInfo.FieldPosition.Right)
            {
                towardPos = new Vector3(NEIGHBOR_FIELD_DISTANCE, 0.0f, 0.0f);
            }

            if (fieldPosition == FieldInfo.FieldPosition.Left)
            {
                towardPos = new Vector3(-NEIGHBOR_FIELD_DISTANCE, 0.0f, 0.0f);
            }
            if (fieldPosition == FieldInfo.FieldPosition.BlackOut)
            {
                towardPos = new Vector3(NEIGHBOR_FIELD_DISTANCE, NEIGHBOR_FIELD_DISTANCE, 0.0f);
            }
        }
Beispiel #2
0
 public IObservable <bool> MoveToTarget(FieldInfo.FieldPosition towardFieldPosition)
 {
     this.SetTowardPos(towardFieldPosition);
     this.StartMoving();
     return(this.UpdateAsObservable()
            .Select(_ => this.isMoving)
            .TakeWhile(_ => this.isMoving));
 }
Beispiel #3
0
        public IObservable <bool> MoveToFieldHorizontally(Cell cell, FieldInfo.FieldPosition towardPosition)
        {
            this.MoveFieldBase(cell);

            this.StartFieldMoving(towardPosition);
            return(this.UpdateAsObservable()
                   .Select(_ => this.isMovingField)
                   .TakeWhile(_ => this.isMovingField));
        }
Beispiel #4
0
        public void MoveFieldBlackOut(Cell touchCell)
        {
            FieldMoveInfo fieldMoveInfo = touchCell.fieldMoveInfo;

            FieldInfo.FieldPosition towardPosition = currentFieldInfo.NeighborFieldIdToPosition[fieldMoveInfo.MoveFieldId];
            this.hero.MoveToFieldBlackOut(this.fieldManager.cellManager.GetCellByCellNum(fieldMoveInfo.AfterMoveCell), towardPosition);

            Field moveField = this.fieldIdToField[fieldMoveInfo.MoveFieldId];

            moveField.InitializeFieldObjects();
            this.currentField = moveField;
            this.currentField.SetPosition(FieldInfo.FieldPosition.Center);
            this.ChangeCurrentField();
        }
Beispiel #5
0
        public IObservable <bool> MoveFieldHorizontally(Cell touchCell)
        {
            FieldMoveInfo fieldMoveInfo = touchCell.fieldMoveInfo;

            FieldInfo.FieldPosition towardPosition = currentFieldInfo.NeighborFieldIdToPosition[fieldMoveInfo.MoveFieldId];
            this.hero.MoveToFieldHorizontally(this.fieldManager.cellManager.GetCellByCellNum(fieldMoveInfo.AfterMoveCell), towardPosition);

            Field moveField = this.fieldIdToField[fieldMoveInfo.MoveFieldId];

            moveField.InitializeFieldObjects();
            currentField.MoveToTarget(this.upsideFieldPosition[currentFieldInfo.NeighborFieldIdToPosition[fieldMoveInfo.MoveFieldId]]);
            this.currentField = moveField;
            return(moveField.MoveToTarget(FieldInfo.FieldPosition.Center));
        }
Beispiel #6
0
        Field LoadField(int fieldId, FieldInfo.FieldPosition fieldPosition)
        {
            GameObject field = Instantiate(Resources.Load(FIELD_OBJECT_PATH + fieldId.ToString())) as GameObject;

            field.transform.SetParent(this.transform, false);

            Field fieldScript = field.GetComponent <Field>();

            fieldScript.SetPosition(fieldPosition);
            fieldScript.Initialize(this.gameManager);

            this.fieldIdToField.Add(fieldScript.FieldId, fieldScript);
            return(fieldScript);
        }
Beispiel #7
0
 public void LoadNeighborField()
 {
     foreach (KeyValuePair <int, FieldInfo.FieldPosition> fieldIdToFieldPosition in this.currentFieldInfo.NeighborFieldIdToPosition)
     {
         int fieldId = fieldIdToFieldPosition.Key;
         FieldInfo.FieldPosition fieldPosition = fieldIdToFieldPosition.Value;
         if (this.IsAlreadyLoaded(fieldId))
         {
             if (fieldId != this.currentField.FieldId)
             {
                 this.fieldIdToField[fieldId].SetPosition(fieldPosition);
             }
         }
         else
         {
             this.LoadField(fieldId, fieldPosition);
         }
     }
 }
Beispiel #8
0
 public void MoveToFieldBlackOut(Cell cell, FieldInfo.FieldPosition towardPosition)
 {
     this.MoveFieldBase(cell);
     transform.localPosition = this.towardPos;
 }
Beispiel #9
0
 void StartFieldMoving(FieldInfo.FieldPosition towardPosition)
 {
     this.isMovingField = true;
     this.characterAnimation.currentAnimateState = this.fieldPositionToCharacterAnimation[towardPosition];
 }
Beispiel #10
0
 public void SetPosition(FieldInfo.FieldPosition fieldPosition)
 {
     this.SetTowardPos(fieldPosition);
     transform.localPosition = towardPos;
 }