Esempio n. 1
0
    /// <summary>
    /// Initializes an entity controller
    /// </summary>
    public void InitEntityController()
    {
        if (current != null)
        {
            // Set the params to the entity's params
            param             = new EntityParams();
            param.entityHP    = ((current.vals.entityHP * 2 * Spell.DAMAGE_CONSTANT) / 100) + Spell.DAMAGE_CONSTANT + 10;
            param.entityMP    = current.vals.entityMP;
            param.entityAtk   = ((current.vals.entityAtk * 2 * Spell.DAMAGE_CONSTANT) / 100) + 5;
            param.entityDef   = ((current.vals.entityDef * 2 * Spell.DAMAGE_CONSTANT) / 100) + 5;
            param.entityName  = current.vals.entityName;
            param.entitySpeed = ((current.vals.entitySpeed * 2 * Spell.DAMAGE_CONSTANT) / 100) + 5;

            maxHP = param.entityHP;
            maxMP = param.entityMP;

            // Reset stats and effects
            atkStage      = 0;
            defStage      = 0;
            spdStage      = 0;
            evasionStage  = 0;
            accuracyStage = 0;

            effects           = new List <EffectInstance>();
            properties        = new List <EffectInstance>();
            offenseModifiers  = new Dictionary <string, float>();
            defenseModifiers  = new Dictionary <string, float>();
            accuracyModifiers = new Dictionary <string, float>();
        }
    }
Esempio n. 2
0
    private IEnumerator BattleStartSequence()
    {
        while (entities.Count < 2)
        {
            yield return(null);
        }

        string       battleStart = "";
        EntityParams ep          = enemies[0].GetEntity().vals;

        // Will eventually change this to a loop/account for duplicates/variety
        battleStart  = ep.useArticle ? ep.article + " " + ep.entityName : ep.entityName;
        battleStart += " approaches!";

        EventManager.Instance.RaiseStringEvent(EventConstants.ON_DIALOGUE_QUEUE, battleStart);
        sequencer.StartSequence();

        // Start a coroutine that waits for the sequence to end. Once it ends, invoke the next event.
        StartCoroutine(InvokeOnSequenceEnd(EventConstants.ON_TURN_BEGIN));
    }
Esempio n. 3
0
        private void PerformEntitySearch(EntityParams inEntityParams)
        {
            m_EntityRefs.Clear();

            if (m_EntityMgr == null)
            {
                Debug.LogError("No entity manager found");
                return;
            }

            switch (inEntityParams.Mode)
            {
            case EntityMode.Id:
            {
                foreach (var entity in m_EntityMgr.Lookup.AllEntities())
                {
                    if ((int)entity.Id == inEntityParams.EntityIdSearch)
                    {
                        m_EntityRefs.Add(EntityRef.FromEntity(entity).WithDescriptor(inEntityParams.EntityIdSearch.ToString()));
                    }
                }
                break;
            }

            case EntityMode.LinkId:
            {
                foreach (var entity in m_EntityMgr.Lookup.AllEntities())
                {
                    foreach (var link in entity.Links.AllLinks())
                    {
                        if (StringMatch(link.Value, inEntityParams.StringSearch))
                        {
                            m_EntityRefs.Add(EntityRef.FromEntity(entity).WithDescriptor(link.Value));
                        }
                    }
                }
                break;
            }

            case EntityMode.LinkEntity:
            {
                foreach (var entity in m_EntityMgr.Lookup.AllEntities())
                {
                    foreach (var link in entity.Links.AllLinks())
                    {
                        if (link.Key == inEntityParams.EntityRefSearch)
                        {
                            m_EntityRefs.Add(EntityRef.FromEntity(entity).WithDescriptor(link.Value));
                        }
                    }
                }
                break;
            }

            case EntityMode.Name:
            {
                foreach (var entity in m_EntityMgr.Lookup.AllEntities())
                {
                    if (StringMatch(entity.Name, inEntityParams.StringSearch))
                    {
                        m_EntityRefs.Add(EntityRef.FromEntity(entity).WithDescriptor(entity.Name));
                    }
                }
                break;
            }

            case EntityMode.PrefabName:
            {
                foreach (var entity in m_EntityMgr.Lookup.AllEntities())
                {
                    if (StringMatch(entity.Prefab, inEntityParams.StringSearch))
                    {
                        m_EntityRefs.Add(EntityRef.FromEntity(entity).WithDescriptor(entity.Prefab));
                    }
                }
                break;
            }

            case EntityMode.Table:
            {
                // TODO(Beau): Implement
                break;
            }
            }
        }