Exemple #1
0
        public virtual T Spawn()
        {
            var result = HasPooled ? _pooledObjs.Dequeue() : CreateNew();

            OnSpawn?.Invoke(result);
            return(result);
        }
 public void InvokeOnSpawn()
 {
     if (OnSpawn != null)
     {
         OnSpawn.Invoke();
     }
 }
Exemple #3
0
    /// <summary>
    /// Called when instatiated
    /// </summary>
    public override void Load()
    {
        m_Steering = GetComponent <Steering2D>();

        m_DataCubeBehavoirs = new Dictionary <DataCubeMode, BehaviorEnum>();
        m_Tasks             = new Dictionary <DataCubeMode, DataCubeTask>();

        m_DataCubeBehavoirs.Add(DataCubeMode.Idle, EnitiyManager.instance.DataCubeSettings.m_IdleBehavoir);
        m_DataCubeBehavoirs.Add(DataCubeMode.SearchForMemory, EnitiyManager.instance.DataCubeSettings.m_SearchForMemoryBehavoir);
        m_DataCubeBehavoirs.Add(DataCubeMode.SearchForProcessorTree, EnitiyManager.instance.DataCubeSettings.m_SearchForProssecorTreeBehavoir);
        m_DataCubeBehavoirs.Add(DataCubeMode.RunFromEnemys, EnitiyManager.instance.DataCubeSettings.m_RunFromEnemyBehavoir);

        m_Tasks.Add(DataCubeMode.Idle, CheckIdle);
        m_Tasks.Add(DataCubeMode.SearchForMemory, CheckSearchForMemory);
        m_Tasks.Add(DataCubeMode.SearchForProcessorTree, CheckForProssecor);
        m_Tasks.Add(DataCubeMode.RunFromEnemys, RunFormEnemy);

        OnSpawn.AddListener(StartAllCoroutines);
        OnPool.AddListener(SetDead);
        OnPool.AddListener(Stop);

        m_DataCubeUI = GetComponentInChildren <DataCubeUI>();
        m_DataCubeUI.SetBrain(this);

        UpdateDataCubeBehavoir();
    }
 public static void Transmit(SpawnMessage message)
 {
     if (OnSpawn != null)
     {
         OnSpawn.Invoke(message);
     }
 }
Exemple #5
0
    void Spawning()
    {
        var level    = (int)UnityEngine.Random.Range(LevelsRange.x, LevelsRange.y + 1);
        var instance = Instantiate(Enemy, transform.position, Quaternion.identity);

        OnSpawn?.Invoke(instance, level);
    }
Exemple #6
0
    private void Start()
    {
        current_hp         = hp_max;
        current_speed      = speed_max;
        cur_waypoint_index = 0;

        //request waypoint list and initialize position to first waypoint
        OnRequestWaypointList?.Invoke(this, new EnemyV2RefEventArgs(this));
        if (waypoints_list != null)
        {
            if (waypoints_list.waypoint_list.Count > 0)
            {
                //set position to first waypoint
                transform.position = waypoints_list.waypoint_list[0].transform.position;
            }
        }
        else
        {
            Debug.LogError("Enemy ID " + this.gameObject.ToString() + ": waypoint list not connected! Destroying!");
            Destroy(this);
        }

        StartMoving();
        OnSpawn?.Invoke(this, new EnemyV2RefEventArgs(this));
    }
Exemple #7
0
        public override void Spawn(WorldInst world, Vec3f pos, Angles ang)
        {
            pBeforeSpawn();
            base.Spawn(world, pos, ang);
            pAfterSpawn();

            OnSpawn?.Invoke(this);
        }
    void Spawn()
    {
        transform.position = _spawnPointManager.GetRandomSpawnPoint(_player.teamComponent.team);
        _player.healthComponent.enabled = true;
        _graphicsGO.SetActive(true);

        OnSpawn?.Invoke();
    }
    public void SpawnEnemyWithSword()
    {
        var enemy = Instantiate(enemyPrefab);

        //..
        //code to setup sword
        //..
        OnSpawn?.Invoke(enemy);
    }
Exemple #10
0
        private protected override void Awake()
        {
            base.Awake();

            _navMeshAgent = GetComponent <NavMeshAgent>();
            Overseer.RegisterEnemy(this);
            Overseer.OnPlayerMove.AddListener(pos => { _playerPosition = pos; });
            OnSpawn.Invoke(this);
        }
    private void SpawnPlayer()
    {
        _cc.Motor.SetPositionAndRotation(_currentCheckpoint.position, _currentCheckpoint.rotation);

        if (OnSpawn != null)
        {
            OnSpawn.Invoke();
        }
    }
Exemple #12
0
        public override void Spawn(Action <PoolItem> item)
        {
            var asteroid = pool.Get();
            var rb       = asteroid.GetComponent <Rigidbody2D>();

            SetRotation(rb);
            SetVelocity(rb, asteroid.transform.position);
            item?.Invoke(asteroid);
            OnSpawn?.Invoke();
        }
 void Start()
 {   //spawn the first couple blocks by default
     for (int i = 0; i < counter; i++)
     {
         GameObject thing = Instantiate(generatedObjects[0]);
         thing.transform.position = new Vector3(i, 0, 0);
         thing.transform.SetParent(TerrainBin);
         OnSpawn?.Invoke(thing);
     }
 }
Exemple #14
0
        public override void Spawn(WorldInst world, Vec3f pos, Angles ang)
        {
            if (ModelDef.Visual != "HUMANS.MDS" && ModelDef.Visual != "ORC.MDS" && ModelDef.Visual != "DRACONIAN.MDS")
            {
                SetFightMode(true);
            }

            base.Spawn(world, pos, ang);
            OnSpawn?.Invoke(this);
        }
    void Start()
    {
        attack_cooldown_current = attack_cooldown_default;
        attack_radius_current   = attack_radius_default;
        attack_damage_current   = attack_damage_default;

        current_attack_priority = AttackPriority.hp_lowest;
        StartAttacking();

        OnSpawn?.Invoke(this, new TowerV2RefEventArgs(this));
    }
Exemple #16
0
    private void Spawn()
    {
        Attacker lizard = Instantiate(this.lizard, transform.position, Quaternion.identity) as Attacker;

        lizard.transform.parent = transform;

        if (OnSpawn != null)
        {
            OnSpawn.Invoke();
        }
    }
 public void Spawn()
 {
     if (Prototype)
     {
         var position = RootPreference?.position ?? default;
         var rotation = RootPreference?.rotation ?? default;
         var instance = Instantiate(Prototype, position, rotation, Root);
         instance.SetActive(true);
         OnSpawn?.Invoke();
     }
 }
Exemple #18
0
        public GameObject Spawn(int index)
        {
            LastIndex = index;

            var obj = instantiator.Instantiate(resolver.Get(index), spawnPosition, Quaternion.identity);

            obj.transform.parent = transform;

            OnSpawn?.Invoke(this, EventArgs.Empty);
            return(obj);
        }
Exemple #19
0
    private void Awake()
    {
        attached_rigidbody = GetComponent <Rigidbody>();
        //create a rigidbody if there is not one already on the resource
        if (attached_rigidbody == null)
        {
            attached_rigidbody               = new Rigidbody();
            attached_rigidbody.mass          = Resource_Manager_V2.default_resource_mass;
            attached_rigidbody.interpolation = RigidbodyInterpolation.Interpolate;
        }

        OnSpawn?.Invoke(this, new ResourceV2Args(this));
    }
        private IEnumerator InternalSpawn(int amount, float delay, IContentPrefab prefab)
        {
            for (int i = 0; i < amount; i++)
            {
                OnSpawn?.Invoke(prefab.Instantiate());
                if (i != amount - 1)
                {
                    yield return(UnityUtils.WaitForFixedSeconds(delay));
                }
            }

            OnFinished?.Invoke();
            Destroy(gameObject);
        }
Exemple #21
0
 public void Spawn()
 {
     _spawned = true;
     if (!_initialized)
     {
         Initialize();
     }
     OnSpawn?.Invoke();
     _manager.AddView(this);
     if (_updatable.Length > 0 || eventOnUpdate != null)
     {
         _server.RigisterOnUpdate(this);
     }
 }
Exemple #22
0
    private IEnumerator Spawn(WaveSO wave)
    {
        foreach (var enemy in wave.waveSettings)
        {
            for (int i = 0; i < enemy.Value; i++)
            {
                yield return(new WaitForSeconds(wave.delayBetweenSpawn));

                var obj = Instantiate(enemy.Key.enemyPrefab);
                obj.transform.position = transform.position;
                OnSpawn?.Invoke(obj);
            }
        }
    }
Exemple #23
0
        public GameObject Spawn()
        {
            if (NextIndices.Count < resolver.Length)
            {
                enqueue();
            }

            LastIndex = NextIndices[0];
            var obj = Instantiate(resolver.Get(LastIndex), spawnPosition, Quaternion.identity);

            NextIndices.RemoveAt(0);

            OnSpawn?.Invoke(this, EventArgs.Empty);

            return(obj);
        }
    IEnumerator StartWave()
    {
        Debug.Log("Starting Wave");
        curretWave++;
        nextWaveTime = Time.time + timeBetweenWave;
        float countDown = countDownTime;

        while (countDown > 0)
        {
            countDown -= Time.deltaTime;
            yield return(null);
        }
        OnSpawn?.Invoke(curretWave, currentStage);
        nextWaveTime = Time.time + timeBetweenWave;
        if (curretWave == wavesToBoss)
        {
            curretWave    = 0;
            currentStage += 1;
        }
    }
Exemple #25
0
    void Start()
    {
        attack_cooldown_current = attack_cooldown_default;
        attack_radius_current   = attack_radius_default;
        attack_damage_current   = attack_damage_default;

        time_since_last_attack = Time.time;
        flag_show_cooldown_bar = false;

        current_attack_priority = AttackPriority.hp_lowest;
        StartTowerBehaviorLoop();

        //AttachResourceAttributes(); //obsolete

        if (selection_options_list == null)
        {
            selection_options_list = gameObject.AddComponent <Selection_Option_List>();
        }
        selection_options_list.AttachTo(this);

        OnSpawn?.Invoke(this, new TowerV2RefEventArgs(this));
    }
Exemple #26
0
        /// <summary>
        /// Called every few milliseconds. This function updates the local cache of known entities.
        /// </summary>
        public void Update()
        {
            _currentManager = Game.Read <IntPtr>(Game.Read <int>(Cataclysm.CurMgrPointer) + Cataclysm.CurMgrOffset, true);
            _localGUID      = Game.Read <ulong>(_currentManager + LocalGUID, true);

            try
            {
                var newEntities = Enumerate().ToDictionary(@object => @object.OBJECT_FIELD_GUID.Value);

                foreach (var oldEntity in _entities)
                {
                    if (newEntities.ContainsKey(oldEntity.Key))
                    {
                        oldEntity.Value.UpdateBaseAddress(newEntities[oldEntity.Key].BaseAddress);

                        OnUpdate?.Invoke(oldEntity.Value);
                    }
                    else
                    {
                        OnDespawn?.Invoke(oldEntity.Value);
                    }
                }

                foreach (var newEntity in newEntities)
                {
                    if (!_entities.ContainsKey(newEntity.Key))
                    {
                        OnSpawn?.Invoke(newEntity.Value);
                    }
                }

                _entities.Clear();
                _entities = newEntities;

                OnUpdateTick?.Invoke();
            } catch (Exception e) {
                Console.WriteLine(e);
            }
        }
    void SpawnTerrain()
    {
        int selectedBlock  = Random.Range(0, 4); //choose random block
        int selectedLength = Random.Range(1, 3); //how many times will spawn in a row

        while (selectedBlock == prev)            //get new block incase selected the same one again
        {
            selectedBlock = Random.Range(0, 4);
        }

        for (int i = 0; i < selectedLength; i++)    //spawn the block and its associated scenery (trees,etc)
        {
            GameObject block = Instantiate(generatedObjects[selectedBlock]);
            block.transform.position = new Vector3(counter, 0, 0);
            AddDecorations(selectedBlock, counter);
            currentTerrain.Add(block);              //this list will be deleted so real list is protected
            block.transform.SetParent(TerrainBin);  //block will be put under TerrainBin in heirarchy
            OnSpawn?.Invoke(block);
            counter++;
        }
        prev = selectedBlock;
    }
Exemple #28
0
 protected void CallOnSpawnEvent()
 {
     OnSpawn?.Invoke(this);
 }
Exemple #29
0
 public void SpawnHorse()
 {
     OnSpawn?.Invoke(TextureAssetType.Horse);
 }
Exemple #30
0
 internal static void Spawn(_Player player)
 => OnSpawn?.Invoke(player);