예제 #1
0
 protected void Do_EqitionAll(Charactor _obj)
 {
     //先にインスペクタから中身を入れているかどうかを確認
     if (AllEqition.Length == 0)
     {
         return;
     }
     //実際の処理
     foreach (ChangeMode_Adapter p in AllEqition)
     {
         if (p.IsAllEqition(_obj, this))
         {
             if (p.TargetMode != null)
             {
                 //変更先のモードとこのモードが異なるなら
                 if (this.index != p.TargetMode.index)
                 {
                     _obj.ChangeMode(p.TargetMode.index, p.CallBack);
                     return;
                 }
             }
             return;
         }
     }
 }
예제 #2
0
    protected void Do_Eqition(Charactor _obj)
    {
        //time += Time.deltaTime;
        //先にインスペクタから中身を入れているかどうかを確認
        if (Array.IndexOf(ChangeMode_Eq, null) > -1 || ChangeMode_Eq.Length == 0)
        {
            return;
        }



        foreach (ChangeMode_Adapter p in ChangeMode_Eq)
        {
            if (p.IsAllEqition(_obj, this))
            {
                if (p.TargetMode != null)
                {
                    //変更先のモードとこのモードが異なるなら
                    if (this.index != p.TargetMode.index)
                    {
                        _obj.ChangeMode(p.TargetMode.index, p.CallBack);
                    }
                }
                return;
            }
        }
        //全てのEqitionPackについても↑と同様に周回してチェックする
        foreach (EqitionPack e in equitionpack)
        {
            foreach (ChangeMode_Adapter p in e.GetChangeMode_Eq)
            {
                if (p.IsAllEqition(_obj, this))
                {
                    if (p.TargetMode != null)
                    {
                        //変更先のモードとこのモードが異なるなら
                        if (this.index != p.TargetMode.index)
                        {
                            _obj.ChangeMode(p.TargetMode.index, p.CallBack);
                        }
                    }
                    return;
                }
            }
        }
    }
예제 #3
0
 //やられ硬直時間
 public override void Mode_Update(Charactor _obj)
 {
     base.Mode_Update(_obj);
     if (_obj.modetime > EndTime)
     {
         //HPがカラなら
         if (_obj.status.HP <= 0)
         {
             _obj.ChangeMode(2);
         }
         _obj.ChangeMode(_obj.pre_mode_index);//Defa_ultへ
         //直前のモードへ(Modetimeは保持しない)
     }
     if (_obj.clash.Trigger)
     {
         _obj.modetime = 0.0f;//どういつモード中に当たったら硬直時間をリセット
     }
 }
예제 #4
0
 public override void Mode_Update(Charactor _obj)
 {
     base.Mode_Update(_obj);
     //時間経過で元に戻る
     if (_obj.modetime > 1.0)
     {
         _obj.ChangeMode(0);
     }
 }
예제 #5
0
    public override void Mode_Update(Charactor _obj)
    {
        if (_obj.Grip == null)
        {
            _obj.ChangeMode(1);
        }

        _obj.transform.position = _obj.Grip.transform.position;
        base.Mode_Update(_obj);
    }
예제 #6
0
 public override void Mode_Update(Charactor _obj)
 {
     _enemy.Move(dash_speed);
     base.Mode_Update(_obj);
     //終了時刻になったら待機モードに
     if (_obj.modetime > EndTime)
     {
         _obj.ChangeMode(4);
     }
 }
예제 #7
0
    //やられ硬直時間
    public override void Mode_Update(Charactor _obj)
    {
        base.Mode_Update(_obj);

        if (_obj.modetime > EndTime)
        {
            if (ChangeToPre_index)
            {
                _obj.ChangeMode(_obj.pre_mode_index);
            }
            else
            {
                _obj.ChangeMode(3);
            }
            //直前のモードへ(Modetimeは保持しない)
        }
        if (_obj.clash.Trigger)
        {
            //_obj.modetime = 0.0f;//どういつモード中に当たったら硬直時間をリセット
        }
    }
예제 #8
0
    public override void Mode_Update(Charactor _obj)
    {
        base.Mode_Update(_obj);
        if (_obj.modetime > EndTime)
        {
            //ゲームオーバー処理の呼び出し
            _obj.audioPlayer.Play(12);

            _obj.ChangeMode(0);
            //復活
        }
    }
예제 #9
0
 //やられ硬直時間
 public override void Mode_Update(Charactor _obj)
 {
     base.Mode_Update(_obj);
     if (_obj.modetime > StopTime)
     {
         _obj.ChangeMode(3);//Moveへ
         //直前のモードへ(Modetimeは保持しない)
     }
     if (_obj.clash.Trigger)
     {
         _obj.modetime = 0.0f;//どういつモード中に当たったら硬直時間をリセット
     }
 }
예제 #10
0
    public override void MakeHitBox(Charactor _obj)
    {
        _obj.ChangeMode(7);

        Vector3 v;

        //オフセットと向きを考慮したposに当たり判定を生成
        if (!_obj.IsRight)
        {
            v = new Vector3(attack_offset.x * -1, attack_offset.y, attack_offset.z);
        }
        else
        {
            v = attack_offset;
        }
        _obj.hitbox[0] = GameObject.Instantiate(Attack[0], _obj.transform.position + v, Quaternion.identity) as GameObject;
        _obj.hitbox[0].transform.parent = _obj.transform;
    }
예제 #11
0
    public override void Mode_Update(Charactor _obj)
    {
        base.Mode_Update(_obj);
        //CameraLockFilterがついていればプレイヤーの接近を
        //感知して動く
        EnemyNest         nest = _obj.GetComponent <EnemyNest>();
        CameraLockTrigger camera;

        if (nest.CameraLockTrigger != null)
        {
            camera = nest.CameraLockTrigger.GetComponent <CameraLockTrigger>();
            if (camera.valid)
            {
                //デフォルトへ
                _obj.ChangeMode(3);
            }
        }
    }
예제 #12
0
 public override void Mode_Update(Charactor _obj)
 {
     //プレイヤーの向きに応じて向きを変える
     //プレイヤーのほうが右にいるなら
     if (player.transform.position.x > _obj.transform.position.x)
     {
         _obj.transform.localScale = new Vector2(_obj.BaseScale_x, _obj.transform.localScale.y);
     }
     else
     {
         _obj.transform.localScale = new Vector2(-_obj.BaseScale_x, _obj.transform.localScale.y);
     }
     base.Mode_Update(_obj);
     //終了時刻になったら攻撃モードに
     if (_obj.modetime > EndTime)
     {
         _obj.ChangeMode(3);
     }
 }