/// 破棄 public override void Term() { DoTerm(); if (moveCollMgr != null) { moveCollMgr.Term(); } if (unitCmnPlay != null) { unitCmnPlay.Term(); } if (EventCntr != null) { EventCntr.Clear(); EventCntr.Term(); } if (interfereCntr != null) { interfereCntr.Term(); } interfereCntr = null; EventCntr = null; moveCollMgr = null; unitCmnPlay = null; dmgTrgObj = null; }
/// クリア public void End() { playId = 0; useActor = null; useInterfereCntr = null; useCollMgr = null; }
/// 破棄 public override void Term() { DoTerm(); if (moveCollMgr != null) { moveCollMgr.Term(); } if (calCollMove != null) { calCollMove.Term(); } if (interfereCntr != null) { interfereCntr.Term(); } if (EventCntr != null) { EventCntr.Clear(); EventCntr.Term(); } interfereCntr = null; EventCntr = null; moveCollMgr = null; calCollMove = null; }
/// プレイヤーの干渉対象をコンテナにセット public void SetinterfereActorPl(GameActorContainer container) { container.Clear(); ctrlHobit.SetinterfereActor(container); ctrlTo.SetinterfereActor(container); ctrlWall.SetinterfereActor(container); ctrlHouse.SetinterfereActor(container); ctrlMo.SetinterfereActor(container); }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetinterfereActor(GameActorContainer container) { for (int i = 0; i < actorChList.Count; i++) { if (actorChList[i].deadFlag == true || actorChList[i].FrameFlag == false || actorChList[i].ActiveFlg == false) { return(true); } if (actorChList[i].ActiveDis < (int)Data.SetupValue.TitanSize + (int)Data.SetupValue.AddContainorArea) { container.Add(actorChList[i]); } } return(true); }
/// 開始 public void Start(GameActorProduct useActor, GameActorContainer useInterfereCntr, GameActorCollManager useCollMgr) { basePos = new Vector3(0.0f, 0.0f, 0.0f); baseRot = new Vector3(0.0f, 0.0f, 0.0f); setMtxRotateEulerXYZ(baseRot); Common.MatrixUtil.SetTranslate(ref baseMtx, basePos); playId = 0; this.useActor = useActor; this.useInterfereCntr = useInterfereCntr; this.useCollMgr = useCollMgr; }
/// 継承メソッド ///--------------------------------------------------------------------------- /// 初期化 public override bool Init() { unitCmnPlay = new ActorUnitCommon(); unitCmnPlay.Init(); moveCollMgr = new GameActorCollManager(); moveCollMgr.Init(); interfereCntr = new GameActorContainer(); interfereCntr.Init(); EventCntr = new GameActorEventContainer(); EventCntr.Init(); return(DoInit()); }
/// 破棄 public void Term() { if (calCollMove != null) { calCollMove.Term(); } if (calCollGrav != null) { calCollGrav.Term(); } calCollGrav = null; calCollMove = null; useCollMgr = null; useActor = null; useInterfereCntr = null; }
/// 継承メソッド ///--------------------------------------------------------------------------- /// 初期化 public override bool Init() { moveCollMgr = new GameActorCollManager(); moveCollMgr.Init(); interfereCntr = new GameActorContainer(); interfereCntr.Init(); calCollMove = new ActorUnitCollMove(); calCollMove.Init(); EventCntr = new GameActorEventContainer(); EventCntr.Init(); return(DoInit()); }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetInterfereActor(GameActorContainer container) { int actorIdx; for (int i = 0; i < fixFragileIdxList.Count; i++) { actorIdx = fixFragileIdxList[i]; /// 破棄された備品はスルーする ///------------------------------------- if (!actorFixList[actorIdx].Enable) { continue; } container.Add(actorFixList[actorIdx]); } return(true); }
/// 命令:攻撃のセット /** * ATB[0] : 攻撃タイプ * ATB[1] : 攻撃対象との有効角度R * ATB[2] : 攻撃対象との有効角度L * ATB[3] : 攻撃対象との有効距離 **/ private void cmdActSetAttack(int cmdIdx) { int attackType = usePlayAct.GetAtb(cmdIdx, 0); float trgRotR = (float)usePlayAct.GetAtb(cmdIdx, 1); float trgRotL = (float)usePlayAct.GetAtb(cmdIdx, 2); float trgDis = (float)usePlayAct.GetAtb(cmdIdx, 3) / 100.0f;; GameActorContainer interfereCntr = useUnitCmn.GetInterfereCntr(); GameActorProduct trgActor = useUnitCmn.GetUseActor(); /// 攻撃イベントを通達 for (int i = 0; i < interfereCntr.Num; i++) { if (interfereCntr.GetActor(i).EventCntr != null) { if (attackAreaCheck(trgActor, interfereCntr.GetActor(i), trgRotR, trgRotL, trgDis)) { interfereCntr.GetActor(i).EventCntr.Add(ActorEventId.Damage, attackType, trgActor.GetUseObj(0)); } } } }
/// 命令:近くの対象の方向を振り向く /** * ATB[0] : 旋回する対象との有効距離 * ATB[1] : 旋回速度 **/ private void cmdActSetTurnNearTrg(int cmdIdx) { float trgDis = (float)usePlayAct.GetAtb(cmdIdx, 0) / 100.0f; int rotVal = usePlayAct.GetAtb(cmdIdx, 1); GameActorContainer interfereCntr = useUnitCmn.GetInterfereCntr(); GameActorProduct trgActor = useUnitCmn.GetUseActor(); int bestTrg; float dis, disMax; bool entryFlg; bestTrg = -1; disMax = 0.0f; entryFlg = false; for (int i = 0; i < interfereCntr.Num; i++) { if (interfereCntr.GetActor(i).EventCntr != null) { dis = Common.VectorUtil.Distance(trgActor.BasePos, interfereCntr.GetActor(i).BasePos); if (dis <= trgDis && (entryFlg == false || dis < disMax)) { bestTrg = i; disMax = dis; entryFlg = true; } } } /// 一番近くの対象の方向へ振り向く if (bestTrg >= 0) { trgActor.EventCntr.Add(ActorEventId.TurnTrg, rotVal, interfereCntr.GetActor(bestTrg).GetUseObj(0)); } }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetinterfereActor( GameActorContainer container ) { return true; }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetInterfereActor( GameActorContainer container ) { int actorIdx; for( int i=0; i<fixFragileIdxList.Count; i++ ){ actorIdx = fixFragileIdxList[i]; /// 破棄された備品はスルーする ///------------------------------------- if( !actorFixList[actorIdx].Enable ){ continue ; } container.Add( actorFixList[actorIdx] ); } return true; }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetinterfereActor(GameActorContainer container) { return(true); }
/// プレイヤーの干渉対象をコンテナにセット public void SetinterfereActorPl( GameActorContainer container ) { container.Clear(); ctrlHobit.SetinterfereActor( container ); ctrlTo.SetinterfereActor( container ); ctrlWall.SetinterfereActor( container ); ctrlHouse.SetinterfereActor( container ); ctrlMo.SetinterfereActor( container ); }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetinterfereActor( GameActorContainer container ) { for( int i=0; i<actorChList.Count; i++ ){ if(actorChList[i].deadFlag == true || actorChList[i].ActiveFlg == false){ return true; } if(actorChList[i].ActiveDis < (int)Data.SetupValue.TitanSize+(int)Data.SetupValue.AddContainorArea){ container.Add( actorChList[i] ); } } return true; }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetinterfereActor(GameActorContainer container) { container.Add(actorCh); return(true); }
/// 外部から割り込みを受ける対象をコンテナへ登録 public bool SetinterfereActor( GameActorContainer container ) { container.Add( actorCh ); return true; }
/// 継承メソッド ///--------------------------------------------------------------------------- /// 初期化 public override bool Init() { moveCollMgr = new GameActorCollManager(); moveCollMgr.Init(); interfereCntr = new GameActorContainer(); interfereCntr.Init(); calCollMove = new ActorUnitCollMove(); calCollMove.Init(); EventCntr = new GameActorEventContainer(); EventCntr.Init(); return( DoInit() ); }
/// 破棄 public override void Term() { DoTerm(); if( moveCollMgr != null ){ moveCollMgr.Term(); } if( calCollMove != null ){ calCollMove.Term(); } if( interfereCntr != null ){ interfereCntr.Term(); } if( EventCntr != null ){ EventCntr.Clear(); EventCntr.Term(); } interfereCntr = null; EventCntr = null; moveCollMgr = null; calCollMove = null; }
/// 破棄 public override void Term() { DoTerm(); if( moveCollMgr != null ){ moveCollMgr.Term(); } if( unitCmnPlay != null ){ unitCmnPlay.Term(); } if( EventCntr != null ){ EventCntr.Clear(); EventCntr.Term(); } if( interfereCntr != null ){ interfereCntr.Term(); } interfereCntr = null; EventCntr = null; moveCollMgr = null; unitCmnPlay = null; dmgTrgObj = null; }
/// 継承メソッド ///--------------------------------------------------------------------------- /// 初期化 public override bool Init() { unitCmnPlay = new ActorUnitCommon(); unitCmnPlay.Init(); moveCollMgr = new GameActorCollManager(); moveCollMgr.Init(); interfereCntr = new GameActorContainer(); interfereCntr.Init(); EventCntr = new GameActorEventContainer(); EventCntr.Init(); return( DoInit() ); }
/// 開始 public void Start( GameActorProduct useActor, GameActorContainer useInterfereCntr, GameActorCollManager useCollMgr ) { basePos = new Vector3( 0.0f, 0.0f, 0.0f ); baseRot = new Vector3( 0.0f, 0.0f, 0.0f ); setMtxRotateEulerXYZ( baseRot ); Common.MatrixUtil.SetTranslate( ref baseMtx, basePos ); playId = 0; this.useActor = useActor; this.useInterfereCntr = useInterfereCntr; this.useCollMgr = useCollMgr; }
/// 破棄 public void Term() { if( calCollMove != null ){ calCollMove.Term(); } if( calCollGrav != null ){ calCollGrav.Term(); } calCollGrav = null; calCollMove = null; useCollMgr = null; useActor = null; useInterfereCntr = null; }