public override void UpdateView() { base.UpdateView(); if (focusGridUnit != null) { tmpGridUnitInfo.text = string.Format("GridUnit:\n{0}", focusGridUnit.ToString()); } if (focusBattleUnit != null) { tmpBattleUnitInfo.text = string.Format("BattleUnit:\n{0}\nHp:{1}/{2}\nAtk:{3}{4}\nDef:{5}{6}\nMobility:{7}{8}", focusBattleUnit.ToString(), focusBattleUnit.battleUnitAttribute.hp, focusBattleUnit.battleUnitAttribute.maxHp, focusBattleUnit.battleUnitAttribute.Atk, GetGridUnitBuffStr(focusBattleUnit.mapGrid.gridUnitBuff, GridUnitBuffType.Atk), focusBattleUnit.battleUnitAttribute.Def, GetGridUnitBuffStr(focusBattleUnit.mapGrid.gridUnitBuff, GridUnitBuffType.Def), focusBattleUnit.battleUnitAttribute.mobility, GetGridUnitBuffStr(focusBattleUnit.mapGrid.gridUnitBuff, GridUnitBuffType.Range) ); } //设置显示 separateLine.SetActive(focusGridUnit != null && focusBattleUnit != null); tmpGridUnitInfo.gameObject.SetActive(focusGridUnit != null); tmpBattleUnitInfo.gameObject.SetActive(focusBattleUnit != null); UpdateBattleUnitPackage(); }
public override void UpdateView() { base.UpdateView(); if (focusGridUnit != null) { tmpGridUnitInfo.text = string.Format("GridUnit:\n{0}", focusGridUnit.ToString()); } if (focusBattleUnit != null) { tmpBattleUnitInfo.text = string.Format("BattleUnit:\n{0}\nHp:{1}/{2}\nAtk:{3}\nDef:{4}\nMobility:{5}", focusBattleUnit.ToString(), focusBattleUnit.battleUnitAttribute.hp, focusBattleUnit.battleUnitAttribute.maxHp, focusBattleUnit.battleUnitAttribute.atk, focusBattleUnit.battleUnitAttribute.def, focusBattleUnit.battleUnitAttribute.mobility ); } //设置显示 separateLine.SetActive(focusGridUnit != null && focusBattleUnit != null); tmpGridUnitInfo.gameObject.SetActive(focusGridUnit != null); tmpBattleUnitInfo.gameObject.SetActive(focusBattleUnit != null); }
public override string ToString() { return(string.Format("{0} enter battle field -> {1}", actionUnit, gridUnit == null ? "None" : gridUnit.ToString())); }
private void OnBattleUnitAndGridTouched(GridUnit gridTouched, BattleUnit battleUnitTouched) { //没有激活操作状态 if (manualOperationState == ManualOperationState.None) { //点中了战斗单位 if (battleUnitTouched != null) { //点中了等待手动操作的战斗单位 if (battleUnitTouched.battleUnitRenderer.Equals(manualBattleUnitRenderer)) { ShowManualActionList(); } else { UIViewManager.Instance.ShowView(UIViewName.BattleFieldUnitInfo, gridTouched, battleUnitTouched); } } //点中了地图 else { UIViewManager.Instance.ShowView(UIViewName.BattleFieldUnitInfo, gridTouched, battleUnitTouched); } } //选择移动状态 else if (manualOperationState == ManualOperationState.Move) { //点中了战斗单位 if (battleUnitTouched != null) { //点中了等待手动操作的战斗单位 if (battleUnitTouched.battleUnitRenderer.Equals(manualBattleUnitRenderer)) { //取消操作 manualOperationState = ManualOperationState.None; SetRangeHighlightActive(false, 0, 0, 0); } else { UIViewManager.Instance.ShowView(UIViewName.BattleFieldUnitInfo, gridTouched, battleUnitTouched); } } //点中了地图 else { if (gridTouched.GridType == GridType.Obstacle) { UIViewManager.Instance.ShowView(UIViewName.BattleFieldUnitInfo, gridTouched, battleUnitTouched); } else { //点击是否超出了范围 GridUnit fromGrid = manualBattleUnitRenderer.battleUnit.mapGrid; if (fromGrid.Distance(gridTouched) > manualBattleUnitRenderer.battleUnit.mobility) { Debug.Log("超出了移动半径!"); } else { bool result = MapNavigator.Instance.Navigate( battleField.battleMap, fromGrid, gridTouched, UtilityObjs.gridUnits, null, manualBattleUnitRenderer.battleUnit.mobility ); //判断是否可以到达(导航成功且可以可以到达) if (result && UtilityObjs.gridUnits[UtilityObjs.gridUnits.Count - 1].Equals(gridTouched)) { //可以到达 ManualMoveTo(gridTouched, UtilityObjs.gridUnits.ToArray()); UtilityObjs.gridUnits.Clear(); } else { //不可以到达 Debug.Log("点击位置不可到达!"); } } } } } //选择攻击目标状态 else if (manualOperationState == ManualOperationState.Skill) { //点中了战斗单位 if (battleUnitTouched != null) { //点中了等待手动操作的战斗单位 if (battleUnitTouched.battleUnitRenderer.Equals(manualBattleUnitRenderer)) { //取消操作 manualOperationState = ManualOperationState.None; SetRangeHighlightActive(false, 0, 0, 0); } else { //判断是否可以被攻击 if (manualBattleUnitRenderer.battleUnit.battleTeam.Equals(battleUnitTouched.battleTeam)) { //同一个队伍的 Debug.Log("攻击状态点中了同一个队伍的战斗单位:" + battleUnitTouched.ToString()); } else if (battleUnitTouched.mapGrid.Distance(manualBattleUnitRenderer.battleUnit.mapGrid) > 1) { Debug.Log("不在攻击范围:" + battleUnitTouched.ToString()); } else { ManualSkill(battleUnitTouched); } } } //点中了地图 else { Debug.Log("攻击状态点中了地图单位:" + gridTouched.ToString()); } } }