void Awake() { if (m_instance == null) { m_instance = this; } else if (m_instance != this) { Destroy(gameObject); return; } foreach (System.Type type in Assembly.GetAssembly(typeof(Verb)).GetTypes().Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(typeof(Verb)))) { Verb v = (Verb)Activator.CreateInstance(type); m_Verbs.Add(v.GetType().ToString(), v); } foreach (System.Type type in Assembly.GetAssembly(typeof(Noun)).GetTypes().Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(typeof(Noun)))) { Noun n = (Noun)Activator.CreateInstance(type); Debug.Log(n.GetType().ToString()); m_Nouns.Add(n.GetType().ToString(), n); } }
public float GetImpressionModifiers(Noun imp) { Noun targetI; if (!m_typeLookup.ContainsKey(imp.GetType())) { foreach (Noun i in m_impressionEvaluation.Keys) { if (LogicManager.IsA(i, imp, m_observer)) { targetI = i; continue; } } return(0.0f); } else { targetI = m_typeLookup[imp.GetType()]; } updateImpressionModifiers(); float value = 0; if (!m_impressionEvaluation.ContainsKey(targetI)) { return(0f); } foreach (ImpressionModifier dm in m_impressionEvaluation[targetI]) { value += dm.getModValue(); } return(value); }
public void ClearModifier(Noun i, ImpressionModifier newDM) { if (!m_typeLookup.ContainsKey(i.GetType())) { return; } Debug.Log("Attempting to remove: " + i.GetType()); if (m_typeLookup[i.GetType()] == null) { m_typeLookup[i.GetType()] = i; } i = m_typeLookup[i.GetType()]; Debug.Log("Found: " + i); updateImpressionModifiers(); List <ImpressionModifier> newL = new List <ImpressionModifier>(); if (!m_impressionEvaluation.ContainsKey(i)) { m_impressionEvaluation[i] = newL; return; } foreach (ImpressionModifier dm in m_impressionEvaluation[i]) { if (dm.ID != newDM.ID) { newL.Add(dm); } } m_isDirty = true; m_impressionEvaluation[i] = newL; }
public void AddModifier(Noun i, ImpressionModifier newDM) { if (!m_typeLookup.ContainsKey(i.GetType())) { Debug.Log("Adding: " + i.GetType()); m_typeLookup[i.GetType()] = i; m_impressionEvaluation[i] = new List <ImpressionModifier>(); } i = m_typeLookup[i.GetType()]; Debug.Log("I is: " + i); updateImpressionModifiers(); foreach (ImpressionModifier dm in m_impressionEvaluation[i]) { if (dm.ID == newDM.ID) { m_isDirty = m_isDirty || dm.attempt_stack(newDM.CurrentStack); return; } } m_isDirty = true; m_impressionEvaluation[i].Add(newDM); Debug.Log("I is: " + i); }
public bool containsImpression(Noun i) { return(m_typeLookup.ContainsKey(i.GetType())); }