Ejemplo n.º 1
0
    void Awake()
    {
        enemyAI       = GetComponent <IEnemyAI>();
        movementInput = GetComponent <IMovementInput>();

        OnValidate();
    }
Ejemplo n.º 2
0
        /// <summary>
        ///  <see cref="T:Character.Enemy"/> classのコンストラクタ
        /// </summary>
        /// <param name="builder">このキャラクターの初期設定を保持するEnemyBuilerクラス</param>
        public Enemy(EnemyBuilder builder)
        {
            this.ID             = builder.getId();
            this.NAME           = builder.getName();
            this.abilities      = builder.getAbilities();
            this.DEF            = builder.getDef();
            this.LV             = builder.getLevel();
            this.NORMAL_DROP_ID = builder.getNormalDropId();
            this.RARE_DROP_ID   = builder.getRareDropId();
            this.MODEL_ID       = builder.getModelName();
            this.FACTION        = builder.getFaction();

            this.MAX_HP = builder.getMaxHp();

            this.MAX_MP = builder.getMaxMp();

            this.hp = MAX_HP;
            this.mp = MAX_MP;

            GameObject prefab     = (GameObject)Resources.Load(MODEL_ID);
            GameObject gameobject = MonoBehaviour.Instantiate(prefab);

            this.container = gameobject.GetComponent <Container> ();
            container.setCharacter(this);

            this.UNIQE_ID = UniqueIdCreator.creatUniqueId();

            activeSkillSet   = ActiveSkillSetMasterManager.getInstance().getActiveSkillSetFromId(builder.getActiveSkillSetId(), this);
            reactionSkillSet = ReactionSkillSetMasterManager.getInstance().getReactionSkillSetFromId(builder.getReactionSkillSetId());
            this.ai          = EnemyAISummarizingManager.getInstance().getAiFromId(builder.getAiId(), this, activeSkillSet, reactionSkillSet);

            attributeResistances = builder.getAttributeRegists();
            observer             = new EnemyObserver(ID);
        }
Ejemplo n.º 3
0
    void Awake()
    {
        enemyAI       = GetComponent <IEnemyAI>();
        movementInput = GetComponent <IMovementInput>();

        myCollider = GetComponent <Collider>();
    }
Ejemplo n.º 4
0
 private void InitializeComponents()
 {
     _rigidbodies = GetComponentsInChildren <Rigidbody>();
     _animator    = GetComponentInChildren <Animator>();
     _agent       = GetComponentInChildren <NavMeshAgent>();
     _enemyAi     = new OffEnemyAi(this);
     target       = _player;
 }
Ejemplo n.º 5
0
    void Start()
    {
        GameObject wp1 = (GameObject)Instantiate(wp, this.transform.position + new Vector3(-3, 0, 3), Quaternion.identity, GameObject.Find("Map").transform);
        GameObject wp2 = (GameObject)Instantiate(wp, this.transform.position + new Vector3(3, 0, -3), Quaternion.identity, GameObject.Find("Map").transform);

        waypoints.Add(wp1.GetComponent <Transform>());
        waypoints.Add(wp2.GetComponent <Transform>());

        navMeshAgent.Warp(wp2.transform.position);

        currentState = patrolState;
    }
Ejemplo n.º 6
0
    // Start is called before the first frame update
    public override void Start()
    {
        base.Start();
        //get the AI classes, only way to set it and I hate it
        Dictionary <AIType, IEnemyAI> AIOptions = new Dictionary <AIType, IEnemyAI>();

        AIOptions.Add(AIType.Lazer, new LazerEnemy());
        AIOptions.Add(AIType.Shoot, new ShootEnemy());
        AI          = AIOptions[AIName];
        player      = GameObject.Find("Player");
        agent       = GetComponent <NavMeshAgent>();
        aggroed     = false;
        agent.speed = mechInfo.baseSpeed;
        Abilities.Add(KeyCode.LeftShift, new Beam(gameObject.GetComponent <AbilityController>(), 3));
    }
Ejemplo n.º 7
0
        /// <summary>
        /// 引数に渡したキャラクターをバトルに参加させます
        /// </summary>
        /// <param name="bal">参加させるキャラクター</param>
        /// <param name="pos">参加させる位置</param>
        /// <param name="ai">キャラクターのAI</param>
        public void joinBattle(IBattleable bal, FieldPosition pos, IEnemyAI ai)
        {
            if (!isBattleing)
            {
                throw new InvalidOperationException("battle isn't started");
            }

            loadContainer(bal);
            bal.setIsBattling(true);
            joinedCharacter[pos].Add(bal);
            bal.syncronizePositioin(field.getObjectPosition(pos, bal));

            AIBattleTaskManager manager = MonoBehaviour.Instantiate((GameObject)Resources.Load("Prefabs/AIBattleManager")).GetComponent <AIBattleTaskManager>();

            manager.transform.SetParent(bal.getContainer().transform);
            manager.setCharacter(bal, ai);
            joinedManager.Add(bal.getUniqueId(), manager);
        }
Ejemplo n.º 8
0
    public void ResetEntity()
    {
        entityAI = GetComponent <IEnemyAI>();
        if (entityAI != null)
        {
            entityAI.ResetAI();
        }
        if (!isAlly)
        {
            StageManager.currentInstance.RegisterEnemy(this);
        }

        currentHealth             = stat_health;
        currentShield             = stat_shield;
        status_frozen             = 0;
        status_burningStack       = 0;
        status_frozenRecoveryRate = 0;
        stat_defense = 0;
    }
Ejemplo n.º 9
0
    public void OnTriggerEnter2D(Collider2D _collider)
    {
        if (_collider.tag.Equals("Enemy"))
        {
            IAlive _aliveScript = _collider.GetComponent<IAlive>();
            IDamageableParticle _particleScript = _collider.GetComponent<IDamageableParticle>();
            IEnemyAI _enemyAIScript = _collider.GetComponent<IEnemyAI>();

            _aliveScript.DamageTakingCalculations(damage); // Bura hedef oldugunde son hasari bastirmiyor.
            _enemyAIScript.DamageTakingAnimation(angle, force);
            _particleScript.InitializeParticle(_particleCollisionWithTarget);
            Destroy(this.gameObject);
        }
        else if (_collider.tag.Equals("Ground"))
        {
            InitializeParticle(_particleCollisionWithObstacle);
            Destroy(this.gameObject);
        }
    }
Ejemplo n.º 10
0
        public override void OnSpawn(CharacterAsset asset)
        {
            Alliance = CharacterType.Enemy;

            var enemyAsset = (EnemyAsset)asset;

            //レイヤー設定
            gameObject.layer = LayerMask.NameToLayer("Enemy");

            //HPを設定
            _currentHealth.Value = enemyAsset.HP;
            _maxHealth           = enemyAsset.HP;

            //AIの設定
            AIParameter = enemyAsset.EnemyAIParameter;
            switch (enemyAsset.EnemyAIType)
            {
            case EnemyAIType.Attacker:
                _enemyAI = new EnemyAIAttacker();
                break;

            case EnemyAIType.Ranger:
                _enemyAI = new EnemyAIRanger();
                break;

            case EnemyAIType.Stay:
                _enemyAI = new EnemyAIStay();
                break;

            default:
                break;
            }

            Agent = gameObject.AddComponent <NavMeshAgent>();
            //スピードの設定
            Agent.speed        = 4;
            Agent.acceleration = 16;
            Agent.angularSpeed = enemyAsset.EnemyAIParameter.AngularSpeed;

            //スポーン時の音
            Audio.AudioManager.PlaySE("robot-startup1");
        }
Ejemplo n.º 11
0
 // Start is called before the first frame update
 void Start()
 {
     currentState = patrolState;
 }
Ejemplo n.º 12
0
 public void HiddenShot(Vector3 shotPosition)
 {
     Debug.Log("Somebody shoted");
     lastKnownPosition = shotPosition;
     currentState      = alertState;
 }
Ejemplo n.º 13
0
 void Awake()
 {
     enemyAI = GetComponent <IEnemyAI>();
 }
Ejemplo n.º 14
0
 public void SetAI(int IndexAI)
 {
     _enemyAi = EnemyAIFactory.Create((EnemyAI)IndexAI, this);
 }
Ejemplo n.º 15
0
 public void SetAI(EnemyAI AI)
 {
     _enemyAi = EnemyAIFactory.Create(AI, this);
 }
Ejemplo n.º 16
0
 public EnemyBattleAgent(AgentStats stats, List <MoveModel> moveSet, Sprite sprite, IEnemyAI ai) : base(stats, moveSet, BattleEnums.Owner.AI, sprite)
 {
     AI = ai;
 }
Ejemplo n.º 17
0
 void HiddenShot(Vector3 shotPosition)
 {
     lastKnownPosition = shotPosition;
     currentState      = alertState;
 }
Ejemplo n.º 18
0
 /// <summary>
 /// キャラクターを設定します
 /// </summary>
 /// <param name="user">設定するキャラクター</param>
 /// <param name="ai">userが持つAI</param>
 public void setCharacter(IBattleable user, IEnemyAI ai)
 {
     this.ai      = ai;
     this.user    = user;
     this.isReady = true;
 }
Ejemplo n.º 19
0
 // Funkcja odpowiedzialna za wychwytywanie strzałów bohatera
 // Pozycje, z której strzelal bohater ustawia jako ostatnią znaną pozycje jego pobytu
 void HiddenShot(Vector3 shotPosition)
 {
     Debug.Log("Ktoś strzelił");
     lastKnownPosition = shotPosition;
     currentState      = alertState;
 }
Ejemplo n.º 20
0
 // Use this for initialization
 void Start()
 {
     //we want the enemy to patrol.
     currentState = patrolState;
 }
Ejemplo n.º 21
0
 // Use this for initialization
 void Start()
 {
     currentState = waitState;
 }
Ejemplo n.º 22
0
 void HiddenShot(Vector3 shotPosition)
 {
     Debug.Log("SOMEONE SHOT");
     lastKnownPosition = shotPosition;
     currentState      = alertState;
 }
Ejemplo n.º 23
0
 // The function responsible for capturing hero shots
 // The position from which the hero shot was placed as the last known position of his stay
 void HiddenShot(Vector3 shotPosition)
 {
     Debug.Log("Someone scored");
     lastKnownPosition = shotPosition;
     currentState      = alertState;
 }
Ejemplo n.º 24
0
 void Start()
 {
     // Przypisujemy startowy stan
     currentState = patrolState;
 }
Ejemplo n.º 25
0
 void HiddenShot(Vector3 shotPosition)
 {
     //Debug.Log ("Someone is Shooting!!!");
     lastKnownPosition = shotPosition;
     currentState      = alertState;
 }