コード例 #1
0
    public void AddEnergyToSlot(GameObject energyObj, GameConstants.eEnergyType energyType)
    {
        m_EnergyType = energyType;

        m_EnergyTransform = energyObj.transform;
        m_EnergyTransform.SetParent(transform);
        m_EnergyTransform.localPosition = Vector3.zero;
    }
コード例 #2
0
    public int GetNumberEnergyOfType(GameConstants.eEnergyType energyType)
    {
        if (m_Energy.ContainsKey(energyType))
        {
            return(m_Energy[energyType]);
        }

        return(0);
    }
コード例 #3
0
    public void RemoveEnergy(GameConstants.eEnergyType energy)
    {
        if (m_Energy.ContainsKey(energy))
        {
            m_Energy[energy]--;
        }

        UpdateEnergyUIText(energy);
    }
コード例 #4
0
    public void OnResourcePickedUp(GameConstants.eEnergyType energy)
    {
        m_EnergyManager.AddEnergy(energy);

        if (m_ParticlesDictionary.ContainsKey(energy))
        {
            m_ParticlesDictionary[energy].Emit(1);
        }
    }
コード例 #5
0
ファイル: Projectile.cs プロジェクト: ConnieFu/PlantCraft
    public void InitializeProjectile(Enemy target, float damage, GameConstants.eEnergyType damageType, OnProjectileHitTarget onTargetHit)
    {
        m_Damage                = damage;
        m_DamageType            = damageType;
        m_Target                = target;
        m_OnProjectileHitTarget = onTargetHit;

        m_IsInitialized = true;
    }
コード例 #6
0
 private void UpdateEnergyUIText(GameConstants.eEnergyType energy)
 {
     for (int i = 0; i < m_EnergyUISlots.Count; i++)
     {
         if (m_EnergyUISlots[i].EnergyType == energy)
         {
             m_EnergyUISlots[i].UpdateText(m_Energy[energy].ToString());
         }
     }
 }
コード例 #7
0
    public IEnumerator SpawnResources(GameConstants.eEnergyType type, int num)
    {
        for (int i = 0; i < num; i++)
        {
            SpawnResource(type);
            yield return(new WaitForSeconds(Random.Range(0.0f, 0.8f)));
        }

        yield return(null);
    }
コード例 #8
0
    public void AddEnergy(GameConstants.eEnergyType energy)
    {
        if (!m_Energy.ContainsKey(energy))
        {
            m_Energy.Add(energy, 0);
        }

        m_Energy[energy]++;

        UpdateEnergyUIText(energy);
    }
コード例 #9
0
ファイル: Enemy.cs プロジェクト: ConnieFu/PlantCraft
    public void TakeDamage(float damage, GameConstants.eEnergyType damageType)
    {
        if (m_EnemyEnergyType != GameConstants.eEnergyType.DEFAULT && GameConstants.GetEnergyWeakness(m_EnemyEnergyType) == damageType)
        {
            damage *= GameConstants.ENERGY_WEAKNESS_DAMAGE_MODIFIER;
        }

        m_CurrentHealth -= damage;
        if (m_CurrentHealth <= 0.0f)
        {
            KillEnemy();
        }
    }
コード例 #10
0
ファイル: PlantBase.cs プロジェクト: ConnieFu/PlantCraft
    public void Initialize(GameConstants.eEnergyType flower, GameConstants.eEnergyType stem, GameConstants.eEnergyType bse)
    {
        if (!m_IsBeingHeld)
        {
            base.Initialize();
        }

        // use the energy types to zombie together the final plant
        m_FlowerComponent = Instantiate <GameObject>((GameObject)Resources.Load(string.Format(GameConstants.PLANT_COMPONENT_PREFAB_PATH, GameConstants.eSlot.FLOWER, flower)), m_BaseAnchor).GetComponent <FlowerComponent>();
        m_StemComponent   = Instantiate <GameObject>((GameObject)Resources.Load(string.Format(GameConstants.PLANT_COMPONENT_PREFAB_PATH, GameConstants.eSlot.STEM, stem)), m_BaseAnchor).GetComponent <StemComponent>();
        m_RootComponent   = Instantiate <GameObject>((GameObject)Resources.Load(string.Format(GameConstants.PLANT_COMPONENT_PREFAB_PATH, GameConstants.eSlot.ROOT, bse)), m_BaseAnchor).GetComponent <RootComponent>();
        CreatePlant();
    }
コード例 #11
0
    private void SpawnResource(GameConstants.eEnergyType type)
    {
        Vector3Int?cell = m_InteractableTilemap.GetRandomAvailableCellForResource();

        if (cell != null)
        {
            ElementResource resource = Instantiate <GameObject>((GameObject)Resources.Load(string.Format(GameConstants.ENERGY_RESOURCE_PATH, type.ToString())), m_InteractableTilemap.EnergyResourceAnchor).GetComponent <ElementResource>();
            resource.transform.position = GameFlow.Instance.GridManager.GetCellWorldPos(cell.Value);
            resource.Initialize();

            m_InteractableTilemap.AddInteractableObject(resource);
        }
    }
コード例 #12
0
    private void SpawnResources()
    {
        m_ResourceSpawnTimer -= Time.deltaTime;
        if (m_ResourceSpawnTimer <= 0.0f)
        {
            int numberResourceTypesToSpawn = Random.Range(1, 3);

            for (int i = 0; i < numberResourceTypesToSpawn; i++)
            {
                GameConstants.eEnergyType type = (GameConstants.eEnergyType)Random.Range(0, System.Enum.GetValues(typeof(GameConstants.eEnergyType)).Length);
                int numberResources            = Random.Range(m_NumberResourcesToSpawn.x, m_NumberResourcesToSpawn.y + 1);
                StartCoroutine(m_ResourceSpawner.SpawnResources(type, numberResources));
            }

            m_ResourceSpawnTimer = Random.Range(m_ResourceSpawnIntervals.x, m_ResourceSpawnIntervals.y);
        }
    }