Ejemplo n.º 1
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));
                    }
                }
            }
        }