/// <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>(); } }
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)); }
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; } } }