示例#1
0
 public void RemoveState(GoapCondition key)
 {
     if (statusDic.ContainsKey(key))
     {
         statusDic.Remove(key);
     }
 }
示例#2
0
 public GoapCondition(GoapCondition status)
 {
     _bitmap = new int[MAX];
     for (int i = 0; i < MAX; i++)
     {
         _bitmap[i] = status._bitmap[i];
     }
 }
示例#3
0
        public object GetState(GoapCondition key)
        {
            object value = null;

            if (statusDic.TryGetValue(key, out value))
            {
                return(value);
            }
            return(value);
        }
示例#4
0
        public GoapCondition Remove(GoapCondition effects)
        {
            if (effects == null)
            {
                return(this);
            }
            for (int i = 0; i < MAX; i++)
            {
                _bitmap[i] &= ~effects._bitmap[i];
            }

            return(this);
        }
示例#5
0
        public bool Contains(GoapCondition goal)
        {
            if (goal == null)
            {
                return(true);
            }
            for (int i = 0; i < MAX; i++)
            {
                if ((_bitmap[i] & goal._bitmap[i]) != goal._bitmap[i])
                {
                    return(false);
                }
            }

            return(true);
        }
示例#6
0
 public void AddState(GoapCondition key, object value)
 {
     statusDic[key] = value;
 }
示例#7
0
 protected void SetGoal(GoapCondition condition, object value)
 {
     goalStatus.AddState(condition, value);
 }