void BtnSetTransGate_OnClickEventHandler(UIButton sender) { SetBuildParaStart(); List <CanvasCore> childrenCore = PutCanvasM.GetChildByCore(m_Core); if (childrenCore.Count == 0) { #if UNITY_EDITOR_LOG NGUIUtil.DebugLog("房间内未检测到传送门,请调查!!!"); #endif return; } ShipPlan P = ShipPlanDC.GetCurShipPlan(); if (P == null) { return; } foreach (var childCore in childrenCore) { TouchMove tm = PutCanvasM.GetTouchMoveByCore(childCore); BuildProperty lifeobj = tm.GetComponent <BuildProperty>(); if (lifeobj != null && lifeobj.GetModeType() == 1605) { Building1605 b = lifeobj.GetLife() as Building1605; if (b != null) { ShipPutInfo Info = P.GetShipBuildInfo(m_Core); b.ShowTranGate(new Int2(Info.shipput_data0, Info.shipput_data1)); } } } }
public void UpdateMyGridColor(bool bCanPutTemp = true) { List <Int2> moveToGrids = m_Core.GetMovetoRoomGridPos(m_posMapGrid); if (!bCanPutTemp) { TouchMoveManager.SetGridsBgStates(moveToGrids, CanvasUnitState.CanntPut, true); return; } if (PutCanvasM.CheckCanPut(m_Core, m_posMapGrid)) { TouchMoveManager.SetGridsBgStates(moveToGrids, CanvasUnitState.CanPut, true); } else { TouchMoveManager.SetGridsBgStates(moveToGrids, CanvasUnitState.CanntPut, true); } if (null != m_ExchangeTouch) { moveToGrids = m_ExchangeTouch.MyCore().GetMovetoRoomGridPos(m_orgPosMapGrid); if (PutCanvasM.CheckCanPut(m_ExchangeTouch.MyCore(), m_orgPosMapGrid)) { TouchMoveManager.SetGridsBgStates(moveToGrids, CanvasUnitState.CanPut, false); } else { TouchMoveManager.SetGridsBgStates(moveToGrids, CanvasUnitState.CanntPut, false); } } }
public void MoveWithRoom(CanvasCore roomCore) { if (roomCore.m_type != ShipBuildType.BuildRoom) { return; } TouchMove tmParent = PutCanvasM.GetTouchMoveByCore(roomCore); List <CanvasCore> childrenCore = PutCanvasM.GetChildByCore(roomCore); if (childrenCore.Count == 0 || roomCore.IsDeckRoom) { return; } Transform roomShellT = PutCanvasM.GetTransformByCore(roomCore).parent; foreach (var childCore in childrenCore) { TouchMove tm = PutCanvasM.GetTouchMoveByCore(childCore); if (tm != null) { tm.m_OffsetGrid = tmParent.m_orgPosMapGrid - tm.m_orgPosMapGrid; } if (PutCanvasM.GetTransformByCore(childCore) != null) { Transform childShellT = PutCanvasM.GetTransformByCore(childCore).parent; childShellT.parent = roomShellT; } } }
/// <summary> /// 删除本地对象。 /// </summary> public static void DeleteShipBuild(CanvasCore Core) { if (Core == null) { return; } List <CanvasCore> l = PutCanvasM.GetChildByCore(Core); foreach (CanvasCore c in l) { for (int i = 0; i < m_Build.Count; i++) { if (m_Build[i].MyCore().Equal(c) == true) { m_Build.RemoveAt(i); } } } for (int i = 0; i < m_Build.Count; i++) { if (m_Build[i].MyCore().Equal(Core) == true) { m_Build.RemoveAt(i); } } }
/// <summary> /// 已在船上的building 进行移动。 /// </summary> void MoveShipBuilding(Int2 TargetMg) { PutCanvasM.MoveBuildRoom(m_Core, TargetMg); // { //TouchMoveManager.SetCanPutArea(); //} }
/// <summary> /// 从仓库放到船上。 /// </summary> public void WareHouse2Ship(Int2 TargetMg) { PutCanvasM.AddNewCore(m_Core, TargetMg); SetTouchMoveData(m_Core.m_type, false, m_Core.m_ID); CreateStair(m_Core); GenerateDeck(); //SetDepth(true); }
static void BindStair(Int2 grid) { CanvasCore core = RoomMap.FindCanvasCore(grid, ShipBuildType.BuildRoom); if (core != null) { TouchMove tm = PutCanvasM.GetTouchMoveByCore(core); tm.MoveWithRoom(core); } }
/// <summary> /// 新增士兵 /// </summary> public static void CreateSoldierFromWarehouse(int soldierId) { SoldierInfo infoSoldier = SoldierDC.GetSoldiers(soldierId); if (infoSoldier == null) { return; } CanvasCore Core = new CanvasCore(ShipBuildType.Soldier, true, ShipPutInfo.GetNewShipPutId(), infoSoldier.ID, Vector2.zero); Int2 BornPos = new Int2(0, 0); bool isCanPut = PutCanvasM.GetBornPos(Core, ref BornPos); if (isCanPut == false) { NGUIUtil.ShowTipWndByKey("88800007", 1.0f); return; } Transform t_start = GetLifeMBornNode(true); Role r = new Role(); r.CreateSkin(t_start, infoSoldier.m_modeltype, infoSoldier.m_name, AnimatorState.Stand, true); //IGameRole i = GameRoleFactory.Create(t_start, infoSoldier.m_modeltype, infoSoldier.m_name, AnimatorState.Stand); GameObject go = r.RoleSkinCom.tRoot.gameObject;; go.name = infoSoldier.m_name; Vector3 posMy = t_start.position; Vector3 screenSpace = Camera.main.WorldToScreenPoint(posMy); Vector3 pos = new Vector3(Screen.width / 2, Screen.height / 1.5f); Vector3 posTempmouse = Camera.main.ScreenToWorldPoint(new Vector3(pos.x, pos.y, screenSpace.z)); posTempmouse = U3DUtil.SetZ(posTempmouse, 0f); go.transform.localPosition = Vector3.zero; Transform tRole = go.transform.GetChild(0); TouchMove touch = tRole.gameObject.AddComponent <TouchMove>(); tRole.gameObject.transform.parent.localPosition = RoomMap.GetShipBuildLocalPos(BornPos, ShipBuildType.Soldier); touch.InitTouchMoveCore(Core, BornPos, null); AddBuildingEditPlugin(touch); if (infoSoldier.SoldierTypeID == 100003) //隐藏蹦蹦 //RolePropertyM rpm = i.GetBodyComponent<RolePropertyM>(); { r.RoleSkinCom.ShowLeftHand(false); } TouchMoveManager.JointShipBuild(touch); TouchMoveManager.SetCurTouchMove(touch); touch.WareHouse2Ship(BornPos); }
public override void WndStart() { base.WndStart(); if (MyHead.BtnYES) { MyHead.BtnYES.OnClickEventHandler += BtnYES_OnClickEventHandler; } if (MyHead.BtnNO) { MyHead.BtnNO.OnClickEventHandler += BtnNO_OnClickEventHandler; } PutCanvasM.ShowRoomGridUI(false); }
/// <summary> /// 移除一个房间 /// </summary> public static void RemoveBuildRoom(CanvasCore Core) { if (Core == null) { return; } ShipPlan P = ShipPlanDC.GetCurShipPlan(); if (P == null) { return; } ShipPutInfo Info = P.GetShipBuildInfo(Core); if (Info == null) { return; } if (Core.m_type == ShipBuildType.BuildRoom) { if (Core.IsDeckRoom == false) { if (Info.GetPutRoomShape() != null) { List <CanvasCore> l = PutCanvasM.GetChildByCore(Core); foreach (CanvasCore c in l) { ShipPutInfo II = P.GetShipBuildInfo(c); if (II != null) { P.RemoveShipBuildInfo(II, c.m_type); } } RoomMap.CloseCanvans(Core.GetPutRoomGridPos()); //设置甲板区域 RoomMap.UpdateDeckRoomGrid(); } } else { List <Int2> l = Core.GetPutRoomGridPos(); RoomMap.RemoveDeckBuild(l); } } else { RoomMap.RemoveMapPosition(Core, RoomMap.GetPutRoomGridPosition(Core)); } P.RemoveShipBuildInfo(Info, Core.m_type); }
private void BtnReutrnBag_OnClickEventHandler(UIButton sender) { if (m_Core.m_type == ShipBuildType.BuildRoom) { SetBuildParaOver(); PutCanvasM.ShowRoomGridUI(false); DestroyShipBuild(); } else if (m_Core.m_type == ShipBuildType.Soldier) { DestroyShipBuild(); PutCanvasM.ShowRoomGridUI(false); } }
/// <summary> /// 下一步 生成船只 /// </summary> /// <param name="sender"></param> public void BtnNext_OnClickEventHandler(UIButton sender) { if (!PutCanvasM.CheckSave()) { return; } if (Input.touchCount > 1 || PutCanvasM.CanOperate == false) //有其他操作时不得保存 { return; } // 客户端直接保存。 ShipPlanDC.SaveCanvansInfo(); SaveSuccecd(); }
/// <summary> /// 新增船只建筑,兵,加入。 /// </summary> public static void JointShipBuild(TouchMove touch) { if (touch == null || touch.MyCore() == null) { Debug.LogError("船只摆设数据加入有误,请调查"); return; } if (CheckHaveBuild(touch.MyCore()) == false) { m_Build.Add(touch); if (!touch.MyCore().IsNewCreate) { PutCanvasM.AddNewCore(touch.MyCore(), touch.m_posMapGrid); } } }
public static TouchMove GetTouchMoveByRoomGrid(RoomGrid rGrid, ShipBuildType type) { if (null == rGrid) { return(null); } List <CanvasCore> childCores = rGrid.GetOtherBuild(); for (int i = 0; i < childCores.Count; i++) { CanvasCore curCore = childCores[i]; if (curCore.m_type == type) { return(PutCanvasM.GetTouchMoveByCore(curCore)); } } return(null); }
public void BtnReturn_OnClickEventHandler(UIButton sender) { Life.Environment = LifeEnvironment.View; PutCanvasM.PutDownNewBuild(); ShipPlan P = ShipPlanDC.GetCurShipPlan(); P.Mode = XYmode.Edit2Save; if (P.IsShipEditChange() == false) //如果未修改,则直接返回 { P.ReCalcShipBuildInfoXY(XYmode.Edit2Save); DoReturn(); return; } if (!m_IsSaving) { WndManager.GetDialog <IsSaveFangAnWnd>(); } }
/// <summary> /// 放开建筑处理 /// </summary> public bool MoveBuildUp() { if (m_ExchangeTouch && m_ExchangeTouch != this) { m_ExchangeTouch.m_posMapGrid = m_orgPosMapGrid; m_ExchangeTouch.m_orgPosMapGrid = m_ExchangeTouch.m_posMapGrid; m_ExchangeTouch.UpdateChildmGridWhenUp(); m_orgPosMapGrid = m_posMapGrid; UpdateChildmGridWhenUp(); SetPosByGrid(true); if (!m_ExchangeTouch.MyCore().IsDeckRoom) { CreateStair(m_Core); } m_ExchangeTouch = null; GenerateDeck(); return(true); } bool bCanPut = PutCanvasM.CheckCanTempPut(m_Core, m_posMapGrid); if (bCanPut) { m_orgPosMapGrid = m_posMapGrid; UpdateChildmGridWhenUp(); SetPosByGrid(true); } else { m_posMapGrid = m_orgPosMapGrid; UpdateChildmGridWhenUp(); MoveShipBuilding(m_posMapGrid); SetPosByGrid(true); } if (!MyCore().IsDeckRoom) { CreateStair(m_Core); } GenerateDeck(); return(true); }
void BtnDeleteSoldier_OnClickEventHandler(UIButton sender) { List <CanvasCore> childrenCore = PutCanvasM.GetChildByCore(m_Core); if (childrenCore.Count == 0) { return; } foreach (var childCore in childrenCore) { TouchMove tm = PutCanvasM.GetTouchMoveByCore(childCore); if (childCore.m_type == ShipBuildType.Soldier) { tm.DestroyShipBuild(); } } PutCanvasM.ShowRoomGridUI(false); }
public static void ClearNoLinkList() { if (PutCanvasM.SaveSuc) { return; } PutCanvasM.SaveSuc = true; if (null != s_listNoLinkPutRoomcores) { int nCoreCount = s_listNoLinkPutRoomcores.Count; int nCoreCnt = 10; for (nCoreCnt = 0; nCoreCnt < nCoreCount; nCoreCnt++) { CanvasCore core = s_listNoLinkPutRoomcores[nCoreCnt]; PutCanvasM.GetTouchMoveByCore(core).UnLoadEditEffect(); } s_listNoLinkPutRoomcores.Clear(); } if (null != s_listNoLinkPutDeckRoomcores) { int nCoreCount = s_listNoLinkPutDeckRoomcores.Count; int nCoreCnt = 10; for (nCoreCnt = 0; nCoreCnt < nCoreCount; nCoreCnt++) { CanvasCore core = s_listNoLinkPutDeckRoomcores[nCoreCnt]; PutCanvasM.GetTouchMoveByCore(core).UnLoadEditEffect(); } s_listNoLinkPutRoomcores.Clear(); } if (null != s_listNoLinkSolders) { int nCoreCount = s_listNoLinkSolders.Count; int nCoreCnt = 10; for (nCoreCnt = 0; nCoreCnt < nCoreCount; nCoreCnt++) { CanvasCore core = s_listNoLinkSolders[nCoreCnt]; PutCanvasM.GetTouchMoveByCore(core).UnLoadEditEffect(); } s_listNoLinkSolders.Clear(); } return; }
/// <summary> /// 从仓库中创建建筑。 /// </summary> public static void CreateBuildingFromWarehouse(BuildInfo infoBuild) { if (infoBuild == null) { return; } Vector2 size = new Vector2(infoBuild.m_Shape.width, infoBuild.m_Shape.height); CanvasCore Core = new CanvasCore(ShipBuildType.BuildRoom, true, ShipPutInfo.GetNewShipPutId(), infoBuild.ID, size); Int2 BornPos = new Int2(0, 0); bool isCanPut = PutCanvasM.GetBornPos(Core, ref BornPos); if (isCanPut == false) { NGUIUtil.ShowTipWndByKey("88800007", 1.0f); return; } Transform t_start = GetLifeMBornNode(true); Vector3 local = RoomMap.GetShipBuildLocalPos(BornPos, ShipBuildType.BuildRoom); Vector3 world = Local2WorldPos(local); Building buildlife = LifeFactory.CreateBuilding(infoBuild, 0, t_start, world, LifeEnvironment.Edit); if (buildlife == null) { return; } buildlife.ShowEditHp(infoBuild.m_bear); TouchMove touch = buildlife.m_thisT.GetChild(0).gameObject.AddComponent <TouchMove>(); touch.InitTouchMoveCore(Core, BornPos, buildlife); AddBuildingEditPlugin(touch); GenerateShip.m_vStart = Vector3.zero; TouchMoveManager.JointShipBuild(touch); TouchMoveManager.SetCurTouchMove(touch); touch.WareHouse2Ship(BornPos); }
public void UpdateChildmGridWhenUp() { List <CanvasCore> childrenCore = PutCanvasM.GetChildByCore(m_Core); if (childrenCore == null || childrenCore.Count == 0) { return; } if (m_tStart == null) { return; } foreach (var childCore in childrenCore) { TouchMove tm = PutCanvasM.GetTouchMoveByCore(childCore); if (tm) { tm.m_posMapGrid = m_posMapGrid - tm.m_OffsetGrid; tm.m_orgPosMapGrid = tm.m_posMapGrid; } } }
/// <summary> /// 移动建筑处理 /// </summary> public void MoveBuild() { Int2 curMouseMoveGrid = GetMousePosGrid(); Vector3 gridPos = GetMouseGridPos() - m_v3TouchDownOffset; SetCenterByGridPos(gridPos); Int2 offsetGrid = curMouseMoveGrid - m_TouchDownGrid; Int2 iNew = new Int2(m_TouchDownRoomGrid.Unit + offsetGrid.Unit * MapGrid.m_UnitRoomGridNum, m_TouchDownRoomGrid.Layer + offsetGrid.Layer); //判断是否移出界外 if (curMouseMoveGrid == new Int2(-1, -1) || m_Core.IsDeckRoom == false && iNew.Layer + m_Core.GetSize().Layer - 1 >= RoomMap.DeckRoomTopLayer && m_Core.m_type == ShipBuildType.BuildRoom) { m_LastMouseMoveGrid = curMouseMoveGrid; return; } if (RoomMap.CheckAllInMap(m_Core, iNew)) { m_posMapGrid = iNew; } if (m_LastMouseMoveGrid != curMouseMoveGrid) { Int2 mapGrid = new Int2(curMouseMoveGrid.Unit * MapGrid.m_UnitRoomGridNum, curMouseMoveGrid.Layer); DoRoomExchange(mapGrid); //同shape房间置换 bool bCanPutTemp = PutCanvasM.CheckCanTempPut(m_Core, m_posMapGrid); if (bCanPutTemp) { MoveShipBuilding(m_posMapGrid); } if (m_Core.m_type == ShipBuildType.BuildRoom && !m_Core.IsDeckRoom) { GenerateDeckWithOutThis(); } UpdateMyGridColor(bCanPutTemp); } m_LastMouseMoveGrid = curMouseMoveGrid; m_posPreMapGrid = m_posMapGrid; }
void SaveSuccecd() { TouchMoveManager.ShowCanvas(false); MainCameraM.s_Instance.ResetCameraDataByHaven(); MainCameraM.s_Instance.EnableOthOn(false); MainCameraM.s_Instance.SetCameraLimitParam(MainCameraM.s_reaLimitPyramidHavenView); MainCameraM.s_Instance.AutoMoveTo(MainCameraM.s_vHavenViewBoatviewCamPos, 0.3f); MainCameraM.s_Instance.EnableDrag(false); Life.Environment = LifeEnvironment.View; PutCanvasM.PutDownNewBuild(); TouchMoveManager.DoTransgatePoint(); m_IsSaving = true; if (MyHead.BtnReturn) { MyHead.BtnReturn.gameObject.SetActive(false); } if (MyHead.BtnNext) { MyHead.BtnNext.gameObject.SetActive(false); } CangKuWnd wnd = WndManager.FindDialog <CangKuWnd>(); if (wnd) { wnd.gameObject.SetActive(false); } PutCanvasM.CanOperate = false; PutCanvasM.ShowRoomGridUI(false); TouchMoveManager.SetCurTouchMove(null); MainCameraM.s_Instance.EnableDrag(false); ShipPlan P = ShipPlanDC.GetCurShipPlan(); P.CreateCanvans(); GenerateShip.GenerateShipsWithAni(); }
/// <summary> /// 移动房间完毕后,解除房间内对象的父子关系 /// </summary> public void LeaveRoom() { if (m_Core.m_type != ShipBuildType.BuildRoom) { return; } List <CanvasCore> childrenCore = PutCanvasM.GetChildByCore(m_Core); if (childrenCore.Count == 0) { return; } if (m_tStart == null) { return; } foreach (var childCore in childrenCore) { TouchMove tm = PutCanvasM.GetTouchMoveByCore(childCore); //tm.m_bCanOperate = true; Transform childShellT = PutCanvasM.GetTransformByCore(childCore).parent; childShellT.parent = m_tStart; } }
void Update() { if (MainCameraM.s_Instance.CheckIsZooming() || MainCameraM.s_Instance.CheckCameraMove()) { PutCanvasM.ShowRoomGridUI(false); } if (PutCanvasM.CanOperate == false) { return; } if (Input.touchCount >= 2) { PutCanvasM.ShowRoomGridUI(false); m_bTouchMoveChange = true; m_roomGridTouchDown = null; } // MainCameraM.s_Instance.EnableDrag(true); if (m_bMouseDown) { if (!m_isDrag) { float click = mouseClickThreshold; click *= click; m_vtotalmouseDelta += m_vlastFirstTouch - GetTouchPos(0); m_vlastFirstTouch = GetTouchPos(0); m_mag = m_vtotalmouseDelta.sqrMagnitude; if (m_mag > click) { m_isDrag = true; } else { //没有发生移动地图 或 没有发生长按 要判定 if (!m_isDrag && !m_bLongTouch) { //长按判定 if (!m_isDrag && m_roomGridTouchDown != null) { if (Time.time - m_fMouseDownTime > 0.5f) { m_bLongTouch = true; } //没有发生移动地图,但有发生长按,则更换选中房间,并将m_bTouchMoveChange=false if (m_bLongTouch) { CanvasCore buildRoomCoreTouchDown = m_roomGridTouchDown.GetBuildRoom(); TouchMove selNewTouchMov = PutCanvasM.GetTouchMoveByCore(buildRoomCoreTouchDown); TouchMove selOldeTouchMove = TouchMoveManager.GetCurTouchMove(); if (selNewTouchMov != null && selNewTouchMov != selOldeTouchMove) { m_bTouchMoveChange = false; TouchMoveManager.SetCurTouchMove(selNewTouchMov); selNewTouchMov.OnMouseDown(); } } } } } } if (m_isDrag) { //按下是选中的是原选中房间,则直接移动该房间 //长按时会自动将最新选中房间,并将m_bTouchMoveChange设置为false if (!m_bTouchMoveChange) { MainCameraM.s_Instance.EnableDrag(false); TouchMove curTouchMove = TouchMoveManager.GetCurTouchMove(); if (null != curTouchMove) { PutCanvasM.ShowRoomGridUI(false); //TouchMoveManager.ShowCanvas(true); PutCanvasM.ShowRoomGridUI(false); curTouchMove.MoveBuild(); } } } } }
void OnMouseDown() { if (PutCanvasM.CanOperate == false) { return; } RaycastHit hit; if (WndManager.IsHitNGUI(out hit))//当点击到UI时不做处理 { return; } if (Input.touchCount >= 2) { return; } m_bMouseDown = true; m_bLongTouch = false; m_bTouchMoveChange = true; m_fMouseDownTime = Time.time; m_vtotalmouseDelta = Vector2.zero; m_vlastFirstTouch = GetTouchPos(0); m_isDrag = false; if (SystemInfo.deviceType == DeviceType.Desktop) { m_v3MouseTouchDown = Input.mousePosition; } else { m_v3MouseTouchDown = Input.GetTouch(0).position; } //获取按下时画布格子 Vector3 m_v3TouchScreenPos = new Vector3(m_v3MouseTouchDown.x, m_v3MouseTouchDown.y, -Camera.main.transform.position.z); Vector3 m_v3TouchWorldPos = Camera.main.ScreenToWorldPoint(m_v3TouchScreenPos); Vector3 v3dLocalPos = BattleEnvironmentM.World2LocalPos(m_v3TouchWorldPos); m_roomGridTouchDown = RoomMap.FindRoomGrid(v3dLocalPos); if (m_roomGridTouchDown == null) { return; } m_curClickType = RoomMap.PickupShipBuildType(m_roomGridTouchDown, v3dLocalPos, m_roomGridTouchDown.mPosRoomGrid.Layer); CanvasCore buildRoomCoreTouchDown = m_roomGridTouchDown.GetBuildRoom(); if (TouchMove.g_bSetParaing == true) { return; } TouchMove curTouchMove = TouchMoveManager.GetCurTouchMove(); if (null != curTouchMove) { //如果当前选中的是房间,新选中的不管是什么都不做变更 //如果当前选中的不是房间,但是新选中的对象和当前选中的一样则也不变量。 if (curTouchMove.IsContainsRoomGrid(m_roomGridTouchDown)) { TouchMove selNewTouchMov = PutCanvasM.GetTouchMoveByRoomGrid(m_roomGridTouchDown, m_curClickType); if (curTouchMove.MyCore().m_type == ShipBuildType.BuildRoom || selNewTouchMov != null && selNewTouchMov == curTouchMove) { curTouchMove.PlayEditSelectAnimationEnd(); //恢复上个房间内陷阱/角色 动画 curTouchMove.OnMouseDown(); m_bTouchMoveChange = false; } } PutCanvasM.ClearNoLinkList(); } else { //判断选中物件是否在上次保存失败的物件上,如果是则直接选择 bool bInNoLinkList = false; if (buildRoomCoreTouchDown != null) { TouchMove selNewTouchMov = PutCanvasM.GetTouchMoveByCore(buildRoomCoreTouchDown); if (null == selNewTouchMov) { List <CanvasCore> childCores = m_roomGridTouchDown.GetOtherBuild(); for (int i = 0; i < childCores.Count; i++) { selNewTouchMov = PutCanvasM.GetTouchMoveByCore(childCores[i]); break; } } if (null != selNewTouchMov && PutCanvasM.NoLinkListContain(selNewTouchMov.MyCore())) { PutCanvasM.ClearNoLinkList(); TouchMoveManager.SetCurTouchMove(selNewTouchMov); selNewTouchMov.PlayEditSelectAnimationEnd(); //恢复上个房间内陷阱/角色 动画 selNewTouchMov.OnMouseDown(); m_bTouchMoveChange = false; bInNoLinkList = true; } } if (bInNoLinkList == false) { PutCanvasM.ClearNoLinkList(); } } }
/// <summary> /// 房间置换 /// </summary> void DoRoomExchange(Int2 mapGrid) { if (m_Core.m_type == ShipBuildType.BuildStair) { return; } if (!m_Core.IsNewCreate) { TouchMove tmCurExchange = m_ExchangeTouch; if (null != tmCurExchange) { if (m_ExchangeTouch.MyCore().IsDeckRoom == MyCore().IsDeckRoom&& m_ExchangeTouch.MyCore().m_type == ShipBuildType.BuildRoom && MyCore().m_type == ShipBuildType.BuildRoom) { PutCanvasM.ExchangeRoom(m_ExchangeTouch.MyCore(), m_ExchangeTouch.m_orgPosMapGrid, MyCore(), m_orgPosMapGrid); } else { m_ExchangeTouch.MoveShipBuilding(m_ExchangeTouch.m_orgPosMapGrid); MoveShipBuilding(m_orgPosMapGrid); } } CanvasCore core = RoomMap.FindCanvasCore(mapGrid, m_Core.m_type); if (core != null && core.m_ID != m_Core.m_ID) { bool b = PutCanvasM.CheckExchange(m_Core, core); if (b) { TouchMove tmNew = PutCanvasM.GetTouchMoveByCore(core); if (tmNew != null) { m_ExchangeTouch = tmNew; if (m_ExchangeTouch.MyCore().IsDeckRoom == MyCore().IsDeckRoom&& m_ExchangeTouch.MyCore().m_type == ShipBuildType.BuildRoom && MyCore().m_type == ShipBuildType.BuildRoom) { PutCanvasM.ExchangeRoom(m_ExchangeTouch.MyCore(), m_orgPosMapGrid, MyCore(), m_posMapGrid); } else { m_ExchangeTouch.MoveShipBuilding(m_orgPosMapGrid); MoveShipBuilding(m_posMapGrid); } if (m_ExchangeTouch != tmCurExchange) { m_ExchangeTouch.ExchangeAnimation(m_orgPosMapGrid); } } } else { m_ExchangeTouch = null; } } else { m_ExchangeTouch = null; } if (null != tmCurExchange && m_ExchangeTouch != tmCurExchange) { //MoveShipBuilding (m_posMapGrid); tmCurExchange.MoveShipBuilding(tmCurExchange.m_orgPosMapGrid); tmCurExchange.ResetExchangePos(); } } }
/// <summary> /// 销毁整个对象。 /// </summary> public void DestroyShipBuild() { PutERR Err = PutERR.ERR_NORMAL; if (PutCanvasM.CheckCanRemove(m_Core, ref Err) == false) { if (Err == PutERR.ERR_NOLink) { NGUIUtil.ShowTipWndByKey("88800009", 1.0f); } else if (Err == PutERR.ERR_HaveChild) { NGUIUtil.ShowTipWndByKey("88800010", 1.0f); } else { NGUIUtil.ShowTipWndByKey("88800011", 1.0f); } return; } if (m_Core.m_type == ShipBuildType.BuildStair) { //导致楼梯不删除的原因 BuildProperty building = GetComponent <BuildProperty>(); if (building != null) { GameObject skin = building.m_goAllBodySkin[0]; if (skin != null) { GameObjectActionExcute gae = skin.AddComponent <GameObjectActionExcute>(); GameObjectActionColorFade fade = new GameObjectActionColorFade(false, 1f); fade.m_complete = DeleteStair;//删除楼梯表现回调 gae.AddAction(fade); } } } if (m_Building != null) { if (m_Core.Data.IsGoldBuild()) { NGUIUtil.ShowTipWndByKey("88800012", 1.0f); return; } } MoveWithRoom(MyCore()); TouchMoveManager.DeleteShipBuild(m_Core); CangKuWnd wnd = WndManager.GetDialog <CangKuWnd>(); PutCanvasM.RemoveBuildRoom(m_Core); CreateStair(m_Core); GenerateDeck(); TouchMoveManager.DoTransgatePoint(); if (m_tTarget != null) { if (m_Core.m_type != ShipBuildType.BuildStair) { FlyToCangKuDelete(m_tTarget.gameObject, false); if (wnd) { wnd.RefreshTrapUI(); } } } //Destroy(GoClickBuildBtns); }
private void YesReAuth(UIButton sender) { TouchMoveManager.DeleteAll(); PutCanvasM.ShowRoomGridUI(false); }
void BtnShow_OnClickEventHandler(UIButton sender) { PutCanvasM.PutDownNewBuild(); PutCanvasM.ShowRoomGridUI(false); ClickMenuBtn(); }
void OnMouseUp() { if (!m_bMouseDown || PutCanvasM.CanOperate == false) { return; } m_bMouseDown = false; bool bCancelSel = false; // MainCameraM.s_Instance.EnableDrag(true); TouchMove selNewTouchMov = null; if (TouchMove.g_bSetParaing == true) { SetPara(); return; } if (m_bTouchMoveChange) { if (m_roomGridTouchDown != null) { bCancelSel = true; selNewTouchMov = PutCanvasM.GetTouchMoveByRoomGrid(m_roomGridTouchDown, m_curClickType); if (null == selNewTouchMov) { CanvasCore buildRoomCoreTouchDown = m_roomGridTouchDown.GetBuildRoom(); selNewTouchMov = PutCanvasM.GetTouchMoveByCore(buildRoomCoreTouchDown); } if (selNewTouchMov) { CanvasCore selCanvasCore = selNewTouchMov.MyCore(); bCancelSel = false; TouchMove selOldeTouchMove = TouchMoveManager.GetCurTouchMove(); selNewTouchMov.PlayEditSelectAnimation();//点选时播放房间内陷阱动画 TouchMoveManager.SetCurTouchMove(selNewTouchMov); selNewTouchMov.MoveWithRoom(selCanvasCore); } if (bCancelSel) { TouchMoveManager.SetCurTouchMove(null); } } } else { selNewTouchMov = TouchMoveManager.GetCurTouchMove(); } if (selNewTouchMov) { if (selNewTouchMov.MoveBuildUp()) { //TouchMoveManager.ShowCanvas(false); PutCanvasM.ShowRoomGridUI(true); } else { PutCanvasM.ShowRoomGridUI(true); } } else { TouchMoveManager.SetCurTouchMove(null); //TouchMoveManager.ShowCanvas(false); PutCanvasM.ShowRoomGridUI(true); } }