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); } }
public IObservable <bool> MoveToTarget(FieldInfo.FieldPosition towardFieldPosition) { this.SetTowardPos(towardFieldPosition); this.StartMoving(); return(this.UpdateAsObservable() .Select(_ => this.isMoving) .TakeWhile(_ => this.isMoving)); }
public IObservable <bool> MoveToFieldHorizontally(Cell cell, FieldInfo.FieldPosition towardPosition) { this.MoveFieldBase(cell); this.StartFieldMoving(towardPosition); return(this.UpdateAsObservable() .Select(_ => this.isMovingField) .TakeWhile(_ => this.isMovingField)); }
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(); }
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)); }
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); }
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); } } }
public void MoveToFieldBlackOut(Cell cell, FieldInfo.FieldPosition towardPosition) { this.MoveFieldBase(cell); transform.localPosition = this.towardPos; }
void StartFieldMoving(FieldInfo.FieldPosition towardPosition) { this.isMovingField = true; this.characterAnimation.currentAnimateState = this.fieldPositionToCharacterAnimation[towardPosition]; }
public void SetPosition(FieldInfo.FieldPosition fieldPosition) { this.SetTowardPos(fieldPosition); transform.localPosition = towardPos; }