예제 #1
0
        /// 破棄
        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;
        }
예제 #2
0
 /// クリア
 public void End()
 {
     playId           = 0;
     useActor         = null;
     useInterfereCntr = null;
     useCollMgr       = null;
 }
예제 #3
0
        /// 破棄
        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;
        }
예제 #4
0
 /// プレイヤーの干渉対象をコンテナにセット
 public void SetinterfereActorPl(GameActorContainer container)
 {
     container.Clear();
     ctrlHobit.SetinterfereActor(container);
     ctrlTo.SetinterfereActor(container);
     ctrlWall.SetinterfereActor(container);
     ctrlHouse.SetinterfereActor(container);
     ctrlMo.SetinterfereActor(container);
 }
예제 #5
0
 /// 外部から割り込みを受ける対象をコンテナへ登録
 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);
 }
예제 #6
0
        /// 開始
        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;
        }
예제 #7
0
/// 継承メソッド
///---------------------------------------------------------------------------

        /// 初期化
        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());
        }
예제 #8
0
 /// 破棄
 public void Term()
 {
     if (calCollMove != null)
     {
         calCollMove.Term();
     }
     if (calCollGrav != null)
     {
         calCollGrav.Term();
     }
     calCollGrav      = null;
     calCollMove      = null;
     useCollMgr       = null;
     useActor         = null;
     useInterfereCntr = null;
 }
예제 #9
0
/// 継承メソッド
///---------------------------------------------------------------------------

        /// 初期化
        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());
        }
예제 #10
0
        /// 外部から割り込みを受ける対象をコンテナへ登録
        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);
        }
예제 #11
0
        /// 命令:攻撃のセット

        /**
         *  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));
                    }
                }
            }
        }
예제 #12
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));
            }
        }
예제 #13
0
 /// 外部から割り込みを受ける対象をコンテナへ登録
 public bool SetinterfereActor( GameActorContainer container )
 {
     return true;
 }
예제 #14
0
        /// 外部から割り込みを受ける対象をコンテナへ登録
        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;
        }
예제 #15
0
 /// 外部から割り込みを受ける対象をコンテナへ登録
 public bool SetinterfereActor(GameActorContainer container)
 {
     return(true);
 }
예제 #16
0
 /// プレイヤーの干渉対象をコンテナにセット
 public void SetinterfereActorPl( GameActorContainer container )
 {
     container.Clear();
     ctrlHobit.SetinterfereActor( container );
     ctrlTo.SetinterfereActor( container );
     ctrlWall.SetinterfereActor( container );
     ctrlHouse.SetinterfereActor( container );
     ctrlMo.SetinterfereActor( container );
 }
예제 #17
0
 /// 外部から割り込みを受ける対象をコンテナへ登録
 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;
 }
예제 #18
0
 /// 外部から割り込みを受ける対象をコンテナへ登録
 public bool SetinterfereActor(GameActorContainer container)
 {
     container.Add(actorCh);
     return(true);
 }
예제 #19
0
 /// 外部から割り込みを受ける対象をコンテナへ登録
 public bool SetinterfereActor( GameActorContainer container )
 {
     container.Add( actorCh );
     return true;
 }
예제 #20
0
        /// 継承メソッド
        ///---------------------------------------------------------------------------
        /// 初期化
        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() );
        }
예제 #21
0
        /// 破棄
        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;
        }
예제 #22
0
        /// 破棄
        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;
        }
예제 #23
0
        /// 継承メソッド
        ///---------------------------------------------------------------------------
        /// 初期化
        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() );
        }
예제 #24
0
        /// 開始
        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;
        }
예제 #25
0
 /// クリア
 public void End()
 {
     playId              = 0;
     useActor            = null;
     useInterfereCntr    = null;
     useCollMgr          = null;
 }
예제 #26
0
 /// 破棄
 public void Term()
 {
     if( calCollMove != null ){
     calCollMove.Term();
     }
     if( calCollGrav != null ){
     calCollGrav.Term();
     }
     calCollGrav         = null;
     calCollMove         = null;
     useCollMgr          = null;
     useActor            = null;
     useInterfereCntr    = null;
 }