Пример #1
0
    public void SimulateTask(IAI _enemy, float _time, int index)
    {
        GameObject _go    = new GameObject();
        DummyEnemy _dummy = _go.AddComponent <DummyEnemy>();

        _dummy.Startup(_enemy, _time);
        for (int i = index; i < _taskElements.Count; i++)
        {
            TaskElement _taskElement = _taskElements[i];
            switch (_taskElement.Action)
            {
            case AIActions.MoveFoward:
                AAMoveForward.SimulateAction(_dummy, _taskElement.GetTarget(), i);
                break;

            case AIActions.LookAt:
                AARotate.SimulateAction(_dummy, _taskElement.GetTarget(), i);
                break;

            case AIActions.Wait:
                AAWait.SimulateAction(_dummy, _taskElement.Value, i);
                break;

            case AIActions.MoveTo:
                AAMoveTo.SimulateAction(_dummy, _taskElement.GetTarget(), i);
                break;
            }
        }
        //_enemy.SetAction(new TaskAction(ActionType.UnsetTask, this, _dummy.Time));
        GameObject.Destroy(_go);
    }
Пример #2
0
    public static void SimulateAction(DummyEnemy _enemy, Vector3 _target, int index)
    {
        Vector3 _toVector = _target - _enemy.transform.position;

        _enemy.transform.position = _target;
        _enemy.SetAction(new VectorIntAction(ActionType.AIMoveTo, _toVector, index, _enemy.Time));
        _enemy.AddToTIme(_toVector.magnitude / _enemy.MoveSpeed);
        _enemy.SetAction(new VectorIntAction(ActionType.AIMoveToUnset, _toVector, index, _enemy.Time));
    }
Пример #3
0
    public static void SimulateAction(DummyEnemy _enemy, Vector3 _target, int index)
    {
        float _distance = Vector3.Distance(_enemy.transform.position, _target);

        _enemy.transform.position += _enemy.transform.forward * _distance;
        _enemy.SetAction(new ValueIntAction(ActionType.AIMoveForward, _distance, index, _enemy.Time));
        _enemy.AddToTIme(_distance / _enemy.MoveSpeed);
        _enemy.SetAction(new ValueIntAction(ActionType.AIMoveForwardUnset, _distance, index, _enemy.Time));
    }
Пример #4
0
 public void SetDummy(DummyEnemy d)
 {
     for (int i = 0; i < SPWN_ENMY_CNT; i++)
     {
         if (dumbEnemies[i] == null)
         {
             dumbEnemies[i] = d;
             //Debug.Log("FOUND DUMB ENEMY");
             return;
         }
     }
 }
Пример #5
0
    public static void SimulateAction(DummyEnemy _enemy, Vector3 _target, int index)
    {
        Vector3 _currentForward = _enemy.transform.forward;
        Vector3 _tempTarget     = new Vector3(_target.x, _enemy.transform.position.y, _target.z);
        Vector3 _up             = _enemy.transform.up;

        _enemy.transform.LookAt(_tempTarget);
        float _angle = Util.AngleBetweenVector3(_currentForward, _enemy.transform.forward, _up);

        _enemy.SetAction(new ValueIntAction(ActionType.AIRotate, _angle, index, _enemy.Time));
        _enemy.AddToTIme(Math.Abs(_angle) / _enemy.RotationSpeed);
        _enemy.SetAction(new ValueIntAction(ActionType.AIRotateUnset, _angle, index, _enemy.Time));
    }
Пример #6
0
    void OnTriggerExit(Collider other)
    {
        if (other.tag == "Enemy")
        {
            script        = other.gameObject.GetComponent <ctrlEnemy>();
            script.IsList = false;
        }

        if (other.tag == "Dummy")
        {
            script2        = other.gameObject.GetComponent <DummyEnemy>();
            script2.IsList = false;
        }
    }
Пример #7
0
    void OnTriggerStay(Collider other)
    {
        if (other.tag == "Enemy")
        {
            script        = other.gameObject.GetComponent <ctrlEnemy>();
            script.IsList = true;
            EnemyList.Add(other.gameObject);
        }

        if (other.tag == "Dummy")
        {
            script2        = other.gameObject.GetComponent <DummyEnemy>();
            script2.IsList = true;
            EnemyList.Add(other.gameObject);
        }
    }
Пример #8
0
 void OnTriggerEnter(Collider obj)
 {
     if (obj.tag == "Enemy")
     {
         StartDestroy();
         BulletSpeed = 0f;
         script      = obj.gameObject.GetComponent <ctrlEnemy>();
         script.HP  -= 10f;
     }
     if (obj.tag == "Dummy")
     {
         StartDestroy();
         BulletSpeed = 0f;
         script2     = obj.gameObject.GetComponent <DummyEnemy>();
         script2.HP -= 10f;
     }
 }
Пример #9
0
 void OnTriggerEnter(Collider obj)
 {
     if (obj.tag == "Enemy")
     {
         StartDestroy();
         bulletSpeed = Vector3.zero;
         script1     = script1Obj.gameObject.GetComponent <CtrlLockonTrigger>();
         script1.EnemyList.Remove(obj.gameObject);
         script     = obj.gameObject.GetComponent <ctrlEnemy>();
         script.HP -= 10f;
     }
     if (obj.tag == "Dummy")
     {
         StartDestroy();
         bulletSpeed = Vector3.zero;
         script1     = script1Obj.gameObject.GetComponent <CtrlLockonTrigger>();
         script1.EnemyList.Remove(obj.gameObject);
         script2     = obj.gameObject.GetComponent <DummyEnemy>();
         script2.HP -= 10f;
     }
 }
Пример #10
0
        public void AddEntities()
        {
            Zigzagoon zigzagoon = new Zigzagoon();

            zigzagoon.X = Game.Instance.HalfWidth;
            zigzagoon.Y = Game.Instance.HalfHeight;

            DummyEnemy dummy = new DummyEnemy();

            dummy.X = 400.0f;
            dummy.Y = 100.0f;

            for (int i = 0; i < 50; i++)
            {
                var x = Rand.Float(Game.Instance.Width);
                var y = Rand.Float(Game.Instance.Height);
                this.Add(new SampleCollectable(x, y));
            }

            this.Add(zigzagoon);
            this.Add(dummy);
        }
Пример #11
0
 public static void SimulateAction(DummyEnemy _enemy, float _waitAmount, int index)
 {
     _enemy.SetAction(new ValueIntAction(ActionType.AIWait, _waitAmount, index, _enemy.Time));
     _enemy.AddToTIme(_waitAmount);
     _enemy.SetAction(new ValueIntAction(ActionType.AIWaitUnset, _waitAmount, index, _enemy.Time));
 }
Пример #12
0
 public static void SimulateAction(DummyEnemy _enemy, Vector3 _target)
 {
     throw new Exception("Cannot be simulated");
 }
Пример #13
0
 /// <summary>
 /// Creates a new DummyEnemy with values copied from another.
 /// </summary>
 public DummyEnemy(DummyEnemy clone) : base(clone)
 {
 }