public void showItem(GameItem m, GameBattleUnit u, GameBattleAttackMapDirection dir, List <GameBattleAttackResultItem> ri, List <GameBattleAttackResultSkill> r, OnEventOver over) { clear(); item = m; skill = null; unit = u; direction = dir; onEventOver = over; resultItem = ri; result = r; GameUserData.instance.LastItemID = item.ID; if (item.UseSkillID != GameDefine.INVALID_ID) { skill = GameSkillData.instance.getData(item.UseSkillID); showSkill(skill, u, dir, r, over); } else { onAttackOverItem(); } }
public void setAttackAI(GameBattleUnit unit, int x, int y) { attackDirection = GameBattleAttackMapDirection.Count; attackUnits.Clear(); attackUnits.Add(unit); attackCell.x = x; attackCell.y = y; }
public void showRes(List <GameBattleAttackResultSkill> r, OnEventOver over) { skill = null; unit = null; result = r; direction = GameBattleAttackMapDirection.Count; onEventOver = over; onAttackOver(); }
public void showSkillMap(GameSkill sk, GameBattleUnit u, GameBattleAttackMapDirection dir, List <GameBattleAttackResultSkill> r, OnEventOver over) { clear(); skill = sk; unit = u; result = r; direction = dir; onEventOver = over; GameUserData.instance.LastSkillID = skill.ID; // string path = "Prefab/Sprite/man" + GameDefine.getString3( u.Sprite ) + "/" + // GameDefine.getString3( u.Sprite ); // path += ( m.BattleSprite > 0 ? "-" + m.BattleSprite : "" ); // path += "sm"; // // GameObject obj = Instantiate<GameObject>( Resources.Load<GameObject>( path ) ); // GameAnimation attackerAnimation = obj.GetComponent<GameAnimation>(); // Transform trans = obj.transform; // trans.SetParent( transform ); // trans.localScale = Vector3.one; // trans.localPosition = Vector3.zero; // // transform.localPosition = new Vector3( GameSceneMovement.instance.posXReal , // GameSceneMovement.instance.posYReal + GameBattleManager.instance.LayerHeight , // transform.localPosition.z ); // // float x = GameCameraManager.instance.sceneWidth / GameDefine.SCENE_WIDTH; // transform.localScale = new Vector3( x , 1.0f , 1.0f ); // // if ( dir != GameBattleAttackMapDirection.Count ) // { // int c = attackerAnimation.safHead.count3[ 0 ]; // int f = c * (int)dir; // // attackerAnimation.playAnimation( f , f + c , false , onAttackOver ); // } // else // { // attackerAnimation.playAnimation( 0 , GameDefine.INVALID_ID , false , onAttackOver ); // } if (skill.AttackRangeType == GameAttackRangeType.Line) { GameBattleSceneMovement.instance.moveTo(unit.PosX - GameCameraManager.instance.xCell, unit.PosY - GameCameraManager.instance.yCell, 50, 50, onStartMoveOver); } else { GameBattleSceneMovement.instance.moveTo(GameBattleCursor.instance.PosX - GameCameraManager.instance.xCell, GameBattleCursor.instance.PosY - GameCameraManager.instance.yCell, 50, 50, onStartMoveOver); } }
void onMoveOver() { clearJumpHP(); clear(); jumpHPlist.Clear(); if (onEventOver != null) { onEventOver(); } onEventOver = null; skill = null; item = null; unit = null; result = null; direction = GameBattleAttackMapDirection.Count; }
public bool checkCell(int x, int y, out GameBattleAttackMapDirection dir) { dir = GameBattleAttackMapDirection.Count; for (int i = 0; i < list.Count; i++) { if (list[i].x == x && list[i].y == y) { if (rangeType == GameAttackRangeType.Line) { dir = GameDefine.getDirectionMap(posX, posY, x, y); } return(true); } } return(false); }
public void showSkill(GameSkill m, GameBattleUnit u, GameBattleAttackMapDirection dir, List <GameBattleAttackResultSkill> r, OnEventOver over) { clear(); skill = m; item = null; unit = u; result = r; direction = dir; onEventOver = over; GameUserData.instance.LastSkillID = skill.ID; string path = "Prefab/Misc/Mag_misc"; GameObject obj = Instantiate <GameObject>(Resources.Load <GameObject>(path)); GameAnimation gameAnimation = obj.GetComponent <GameAnimation>(); gameAnimation.offsetX = GameDefine.BATTLE_OFFSET_X; gameAnimation.offsetY = GameDefine.BATTLE_OFFSET_Y - 18; unit.playAnimationBattle(GameAnimationType.Skill, u.Direction, null); Transform trans = obj.transform; trans.SetParent(transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; transform.localPosition = new Vector3(unit.PosBattleX, unit.PosBattleY + GameBattleManager.instance.LayerHeight, transform.localPosition.z); gameAnimation.playAnimation(1, GameDefine.INVALID_ID, false, onStartOver); }
public void getUnitsLine(int x, int y, GameItem m, GameUnitCampType camp) { List <GameBattleUnit> list = new List <GameBattleUnit>(); for (int i = 0; i < (int)GameBattleAttackMapDirection.Count; i++) { int x1 = 0; int y1 = 0; switch (i) { case (int)GameBattleAttackMapDirection.North: y1 = -1; break; case (int)GameBattleAttackMapDirection.East: x1 = 1; break; case (int)GameBattleAttackMapDirection.South: y1 = 1; break; case (int)GameBattleAttackMapDirection.West: x1 = -1; break; } for (int j = 0; j < m.AttackRangeMax; j++) { GameBattleUnit u = GameBattleUnitManager.instance.getUnit(x + i * x1, y + i * y1); switch (m.UseTargetType) { case GameTargetType.User: { if (u != null && u.UnitCampType == camp) { list.Add(u); } } break; case GameTargetType.Enemy: { if (u != null && u.UnitCampType != camp) { list.Add(u); } } break; case GameTargetType.Summon: { if (u == null) { list.Add(u); } } break; } if (list.Count > attackUnits.Count) { attackCell.x = x + x1; attackCell.y = y + y1; attackDirection = (GameBattleAttackMapDirection)i; attackUnits.Clear(); for (int k = 0; k < list.Count; k++) { attackUnits.Add(list[k]); } } list.Clear(); } } }
public void getUnitsCircle(int ux, int uy, int x, int y, GameItem m, GameUnitCampType camp) { attackDirection = GameBattleAttackMapDirection.Count; List <GameBattleUnit> list = new List <GameBattleUnit>(); int size = m.AttackRange; for (int i = -size; i <= size; i++) { for (int j = -size; j <= size; j++) { int xx = Mathf.Abs(j); int yy = Mathf.Abs(i); if (xx + yy <= size) { GameBattleUnit unit = GameBattleUnitManager.instance.getUnit(x + j, y + i); if (unit != null) { switch (m.UseTargetType) { case GameTargetType.User: { if (unit.UnitCampType == camp) { list.Add(unit); } } break; case GameTargetType.Enemy: { if (unit.UnitCampType != camp) { list.Add(unit); } } break; case GameTargetType.Summon: { if (unit.IsSummon && unit.UnitCampType != camp) { list.Add(unit); } } break; } } else { switch (m.UseTargetType) { case GameTargetType.Summon: { list.Add(unit); } break; } } } } } if (list.Count > attackUnits.Count || (list.Count > 0 && list.Count == attackUnits.Count && Mathf.Abs(ux - x) + Mathf.Abs(uy - y) < Mathf.Abs(ux - attackCell.x) + Mathf.Abs(uy - attackCell.y))) { attackCell.x = x; attackCell.y = y; attackUnits.Clear(); for (int i = 0; i < list.Count; i++) { attackUnits.Add(list[i]); } } list.Clear(); }
public void getUnits(GameBattleUnit unit, GameItem item, GameBattleAttackMapDirection dir) { selectionUnits.Clear(); switch (item.UseRangeType) { case GameAttackRangeType.Circle: { int size = GameBattleCursor.instance.Size; for (int i = -size; i <= size; i++) { for (int j = -size; j <= size; j++) { int xx = Mathf.Abs(j); int yy = Mathf.Abs(i); if (xx + yy <= size) { GameBattleUnit u = GameBattleUnitManager.instance.getUnit(GameBattleCursor.instance.PosX + j, GameBattleCursor.instance.PosY + i); switch (item.UseTargetType) { case GameTargetType.User: { if (u != null && u.UnitCampType == unit.UnitCampType) { selectionUnits.Add(u); } } break; case GameTargetType.Enemy: { if (u != null && u.UnitCampType != unit.UnitCampType) { selectionUnits.Add(u); } } break; case GameTargetType.Summon: { if (u == null) { selectionUnits.Add(u); } } break; } } } } } break; case GameAttackRangeType.Line: { int x = 0; int y = 0; switch (dir) { case GameBattleAttackMapDirection.North: y = -1; break; case GameBattleAttackMapDirection.East: x = 1; break; case GameBattleAttackMapDirection.South: y = 1; break; case GameBattleAttackMapDirection.West: x = -1; break; } for (int i = 1; i <= item.AttackRangeMax; i++) { GameBattleUnit u = GameBattleUnitManager.instance.getUnit(unit.PosX + i * x, unit.PosY + i * y); switch (item.UseTargetType) { case GameTargetType.User: { if (u != null && u.UnitCampType == unit.UnitCampType) { selectionUnits.Add(u); } } break; case GameTargetType.Enemy: { if (u != null && u.UnitCampType != unit.UnitCampType) { selectionUnits.Add(u); } } break; case GameTargetType.Summon: { if (u == null) { selectionUnits.Add(u); } } break; } } } break; } }
public void showSkill(byte f, GameSkill m, GameBattleUnit lt, GameBattleUnit rt, GameBattleAttackMapDirection dir, GameBattleAttackResultSide s, GameBattleAttackResultPhysical rs, OnEventOver over) { if (m.BattleType == GameSkillBattleType.Normal || m.BattleType == GameSkillBattleType.Map) { return; } clear(); skill = m; direction = dir; onEventOver = over; result = rs; resultSkill = null; side = s; isShow = true; overUnShow = false; showAdd = false; GameUserData.instance.LastSkillID = skill.ID; gameObject.SetActive(true); leftUnit = lt; rightUnit = rt; string path = "Prefab/Stage/Stage" + GameDefine.getString2(GameUserData.instance.Stage) + "/FLOOR_"; path += GameDefine.getString2(GameUserData.instance.Stage); GameObject gameObjectFloor = Instantiate <GameObject>(Resources.Load <GameObject>(path)); floorAnimation = gameObjectFloor.GetComponent <GameAnimation>(); floorAnimation.UI = true; floorAnimation.showFrame(f); floorAnimation.transform.SetParent(floorTrans); floorAnimation.transform.localScale = Vector3.one; floorAnimation.transform.localPosition = Vector3.zero; // string ab = result.type == GameBattleAttackResultType.Block ? "ab" : "a"; path = "Prefab/Sprite/man" + GameDefine.getString3(rt.Sprite) + "/"; path += (GameDefine.getString3(rt.Sprite) + "MISC"); GameObject obj = Instantiate <GameObject>(Resources.Load <GameObject>(path)); rightAnimation = obj.GetComponent <GameAnimation>(); rightAnimation.UI = true; rightAnimation.showFrame(6 + (rightAnimation.safHead.count3[0] == 0 ? 1 : rightAnimation.safHead.count3[0])); Transform trans = obj.transform; trans.SetParent(right.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; rightInfoUI.gameObject.SetActive(true); rightInfoUI.setValue(rt.HP, rt.HPMax, rt.Name); path = "Prefab/Sprite/man" + GameDefine.getString3(lt.Sprite) + "/"; path += (GameDefine.getString3(lt.Sprite) + "MISC"); GameObject obj1 = Resources.Load <GameObject>(path); if (obj1 == null) { unShow(); return; } obj = Instantiate <GameObject>(obj1); leftAnimation = obj.GetComponent <GameAnimation>(); leftAnimation.UI = true; leftAnimation.showFrame(6 + (leftAnimation.safHead.count3[0] == 0 ? 1 : leftAnimation.safHead.count3[0])); trans = obj.transform; trans.SetParent(left.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; leftInfoUI.gameObject.SetActive(true); leftInfoUI.setValue(lt.HP, lt.HPMax, lt.Name); rangedAttack = (m.BattleRanged == GameSkillBattleRanged.Ranged); mapAttack = (m.BattleType == GameSkillBattleType.UIMap); if (side == GameBattleAttackResultSide.Left) { path = "Prefab/Sprite/man" + GameDefine.getString3(lt.Sprite) + "/" + GameDefine.getString3(lt.Sprite); path += (m.BattleSprite > 0 ? "-" + m.BattleSprite : ""); path += (result.type == GameBattleAttackResultPhysical.Type.Block ? "sb" : "s"); obj1 = Resources.Load <GameObject>(path); if (obj1 == null) { unShow(); return; } obj = Instantiate <GameObject>(obj1); attackerAnimation = obj.GetComponent <GameAnimation>(); attackerAnimation.UI = true; attackerAnimation.onAnimationEvent = onAnimationEvent; trans = obj.transform; trans.SetParent(left.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; defencerAnimation = rightAnimation; RectTransform trans1 = left.GetComponent <RectTransform>(); trans1.SetSiblingIndex(3); if (rangedAttack || mapAttack) { rightAnimation.clearAnimation(); } } else { path = "Prefab/Sprite/man" + GameDefine.getString3(rt.Sprite) + "/" + GameDefine.getString3(rt.Sprite); path += (m.BattleSprite > 0 ? "-" + m.BattleSprite : ""); path += (result.type == GameBattleAttackResultPhysical.Type.Block ? "sb" : "s"); obj1 = Resources.Load <GameObject>(path); if (obj1 == null) { unShow(); return; } obj = Instantiate <GameObject>(obj1); attackerAnimation = obj.GetComponent <GameAnimation>(); attackerAnimation.UI = true; attackerAnimation.onAnimationEvent = onAnimationEvent; trans = obj.transform; trans.SetParent(right.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; defencerAnimation = leftAnimation; RectTransform trans1 = right.GetComponent <RectTransform>(); trans1.SetSiblingIndex(3); if (rangedAttack || mapAttack) { leftAnimation.clearAnimation(); } } attackerAnimation.otherGameAnimation = defencerAnimation; scale = 2.0f; alpha = 0.1f; time = 0.0f; alphaAdd = true; startFade = true; updateStage(); }
public void showSkillMap(byte f, GameSkill m, GameBattleUnit lt, GameBattleUnit rt, GameBattleAttackMapDirection dir, GameBattleAttackResultSide s, List <GameBattleAttackResultSkill> r, OnEventOver over) { if (m.BattleType == GameSkillBattleType.Normal || m.BattleType == GameSkillBattleType.Map) { return; } clear(); skill = m; direction = dir; onEventOver = over; resultSkill = r; result = null; side = s; isShow = true; mapAttack = true; overUnShow = true; showAdd = false; GameUserData.instance.LastSkillID = skill.ID; gameObject.SetActive(true); leftUnit = lt; rightUnit = rt; string path = "Prefab/Stage/Stage" + GameDefine.getString2(GameUserData.instance.Stage) + "/FLOOR_"; path += GameDefine.getString2(GameUserData.instance.Stage); GameObject gameObjectFloor = Instantiate <GameObject>(Resources.Load <GameObject>(path)); floorAnimation = gameObjectFloor.GetComponent <GameAnimation>(); floorAnimation.UI = true; floorAnimation.showFrame(f); floorAnimation.transform.SetParent(floorTrans); floorAnimation.transform.localScale = Vector3.one; floorAnimation.transform.localPosition = Vector3.zero; if (side == GameBattleAttackResultSide.Left) { path = "Prefab/Sprite/man" + GameDefine.getString3(lt.Sprite) + "/"; path += (GameDefine.getString3(lt.Sprite) + "MISC"); GameObject obj = Instantiate <GameObject>(Resources.Load <GameObject>(path)); leftAnimation = obj.GetComponent <GameAnimation>(); leftAnimation.UI = true; leftAnimation.showFrame(6 + (leftAnimation.safHead.count3[0] == 0 ? 1 : leftAnimation.safHead.count3[0])); Transform trans = obj.transform; trans.SetParent(left.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; leftInfoUI.gameObject.SetActive(true); leftInfoUI.setValue(lt.HP, lt.HPMax, lt.Name); rightInfoUI.gameObject.SetActive(false); path = "Prefab/Sprite/man" + GameDefine.getString3(lt.Sprite) + "/" + GameDefine.getString3(lt.Sprite); path += (m.BattleSprite > 0 ? "-" + m.BattleSprite : ""); path += "s"; obj = Instantiate <GameObject>(Resources.Load <GameObject>(path)); attackerAnimation = obj.GetComponent <GameAnimation>(); attackerAnimation.UI = true; attackerAnimation.onAnimationEvent = onAnimationEvent; trans = obj.transform; trans.SetParent(left.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; defencerAnimation = null; } else { path = "Prefab/Sprite/man" + GameDefine.getString3(rt.Sprite) + "/"; path += (GameDefine.getString3(rt.Sprite) + "MISC"); GameObject obj = Instantiate <GameObject>(Resources.Load <GameObject>(path)); rightAnimation = obj.GetComponent <GameAnimation>(); rightAnimation.UI = true; rightAnimation.showFrame(6 + (rightAnimation.safHead.count3[0] == 0 ? 1 : rightAnimation.safHead.count3[0])); Transform trans = obj.transform; trans.SetParent(right.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; rightInfoUI.gameObject.SetActive(true); rightInfoUI.setValue(rt.HP, rt.HPMax, rt.Name); leftInfoUI.gameObject.SetActive(false); path = "Prefab/Sprite/man" + GameDefine.getString3(rt.Sprite) + "/" + GameDefine.getString3(rt.Sprite); path += (m.BattleSprite > 0 ? "-" + m.BattleSprite : ""); path += "s"; obj = Instantiate <GameObject>(Resources.Load <GameObject>(path)); attackerAnimation = obj.GetComponent <GameAnimation>(); attackerAnimation.UI = true; attackerAnimation.onAnimationEvent = onAnimationEvent; trans = obj.transform; trans.SetParent(right.transform); trans.localScale = Vector3.one; trans.localPosition = Vector3.zero; defencerAnimation = null; } scale = 2.0f; alpha = 0.1f; time = 0.0f; alphaAdd = true; startFade = true; updateStage(); }
public void getUnitsCircleAI(GameBattleUnit unit, int ux, int uy, int mx, int my, int x, int y, GameSkill sk, GameUnitCampType camp) { if (targetID != GameDefine.INVALID_ID) { for (int j = 0; j < attackUnits.Count; j++) { if (attackUnits[j].BattleManID == targetID) { return; } } } attackDirection = GameBattleAttackMapDirection.Count; List <GameBattleUnit> list1 = new List <GameBattleUnit>(); int size = sk.AttackRange; for (int i = -size; i <= size; i++) { for (int j = -size; j <= size; j++) { int xx = Mathf.Abs(j); int yy = Mathf.Abs(i); if (xx + yy <= size) { GameBattleUnit u = GameBattleUnitManager.instance.getUnit(x + j, y + i); if (checkSkillAI(unit, u, sk, camp)) { list1.Add(u); } } } } bool bTarget = false; if (targetID != GameDefine.INVALID_ID) { for (int j = 0; j < list1.Count; j++) { if (list1[j].BattleManID == targetID) { bTarget = true; } } } if (bTarget || list1.Count > attackUnits.Count || (list1.Count > 0 && list1.Count == attackUnits.Count && Mathf.Abs(ux - x) + Mathf.Abs(uy - y) < Mathf.Abs(ux - attackCell.x) + Mathf.Abs(uy - attackCell.y)) || (list1.Count > 0 && list1.Count == attackUnits.Count && Random.Range(0, 100) > 50 && Mathf.Abs(ux - x) + Mathf.Abs(uy - y) == Mathf.Abs(ux - attackCell.x) + Mathf.Abs(uy - attackCell.y)) ) { attackCell.x = x; attackCell.y = y; attackMoveCell.x = mx; attackMoveCell.y = my; attackUnits.Clear(); IsAttackUnits = true; for (int i = 0; i < list1.Count; i++) { attackUnits.Add(list1[i]); } } list1.Clear(); }
public void getUnitsLineAI(GameBattleUnit unit, int ux, int uy, GameSkill sk, GameUnitCampType camp) { if (targetID != GameDefine.INVALID_ID) { for (int j = 0; j < attackUnits.Count; j++) { if (attackUnits[j].BattleManID == targetID) { return; } } } List <GameBattleUnit> list1 = new List <GameBattleUnit>(); for (int i = 0; i < (int)GameBattleAttackMapDirection.Count; i++) { int x1 = 0; int y1 = 0; switch (i) { case (int)GameBattleAttackMapDirection.North: y1 = -1; break; case (int)GameBattleAttackMapDirection.East: x1 = 1; break; case (int)GameBattleAttackMapDirection.South: y1 = 1; break; case (int)GameBattleAttackMapDirection.West: x1 = -1; break; } for (int j = 0; j < sk.AttackRangeMax; j++) { GameBattleUnit u = GameBattleUnitManager.instance.getUnit(ux + i * x1, uy + i * y1); if (checkSkillAI(unit, u, sk, camp)) { list1.Add(u); } } bool bTarget = false; if (targetID != GameDefine.INVALID_ID) { for (int j = 0; j < list1.Count; j++) { if (list1[j].BattleManID == targetID) { bTarget = true; } } } if (list1.Count > attackUnits.Count || bTarget) { attackCell.x = ux + x1; attackCell.y = uy + y1; attackMoveCell.x = ux; attackMoveCell.y = uy; attackDirection = (GameBattleAttackMapDirection)i; attackUnits.Clear(); IsAttackUnits = true; for (int k = 0; k < list1.Count; k++) { attackUnits.Add(list1[k]); } } list1.Clear(); } }