Пример #1
0
 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);
     }
 }
Пример #2
0
    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);
    }
Пример #3
0
    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;
    }
Пример #4
0
 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);
 }
Пример #5
0
 public bool containsImpression(Noun i)
 {
     return(m_typeLookup.ContainsKey(i.GetType()));
 }