コード例 #1
0
        public override void Initialize(string aInstanceId, EntityType aType)
        {
            fov = GetComponent <FieldOfView>();
            nav = GetComponent <NavMeshAgent>();

            nav.speed = rawMoveSpeed;

            OnEntityDeath.AddListener(OnZombieDeath);

            base.Initialize(aInstanceId, aType);

            attack.Initialize(this);
        }
コード例 #2
0
ファイル: Health.cs プロジェクト: Gregaf/super-elmo-world
    public void LoseHealth(int lossAmount)
    {
        currentHealth -= lossAmount;

        currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth);

        if (currentHealth <= 0)
        {
            OnEntityDeath?.Invoke();
        }
        else
        {
            OnHealthLoss?.Invoke();
        }
    }
コード例 #3
0
 void SpawnEnemy(string name, Vector3Int Position, Quaternion Rotation)
 {
     try {
         if (FindEntityInPosition(Position) != null)
         {
             return;
         }
         var dt  = GetEntityDataFromName(name);
         var mob = Instantiate(dt.Prefab);
         mob.Initialize(Position, Rotation, dt);
         EntitiesInScene.Add(mob);
         OnNewEntitySpawn?.Invoke(mob);
         var d = mob.GetComponent <EntityDeath>();
         if (d != null)
         {
             d.OnEntityDeath += (e) => { EntitiesInScene.Remove(e); OnEntityDeath?.Invoke(e); }
         }
         ;
     }
     catch (ArgumentOutOfRangeException e) {
     }
 }
コード例 #4
0
 void Death()
 {
     OnEntityDeath?.Invoke(GetComponent <Entity>());
     GetComponent <Entity>().IsActive = false;
     GetComponent <EntityAnimator>().InvokeAnimation("Death", true);
 }
コード例 #5
0
 public static void EntityDeath(Entity ent)
 {
     //DebugManager.LogToFile("[OnEntityDeath] " + ent.name + " has died");
     OnEntityDeath?.Invoke(ent);
 }