Changeset 237


Ignore:
Timestamp:
11/18/2009 02:07:33 PM (10 years ago)
Author:
joao.dias
Message:

Restructure of the motivational state. The needs of others are now properly stored in the ToM.

The agent determines other's emotional state, from the effects of actions in other's needs (using the ToM).

Change in the display of needs of others. Now it is done in the ToM Panel.

Location:
AgentMind/branches/FAtiMA2/src/FAtiMA
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA2/src/FAtiMA/Agent.java

    r236 r237  
    8080                        SAXParserFactory factory = SAXParserFactory.newInstance(); 
    8181                        SAXParser parser = factory.newSAXParser(); 
    82                         parser.parse(new File(MIND_PATH + "Scenarios.xml"), scenHandler); 
     82                        parser.parse(new File(MIND_PATH + "LirecScenarios.xml"), scenHandler); 
    8383                        args = scenHandler.getAgentArguments(); 
    8484                } 
     
    408408                if(!_ToM.containsKey(name)) 
    409409                { 
    410                         ModelOfOther model = new ModelOfOther(name, _reactiveLayer.getEmotionalReactions(), _reactiveLayer.getActionTendencies()); 
     410                        ModelOfOther model = new ModelOfOther(name, this); 
    411411                        _ToM.put(name, model); 
    412412                } 
     
    602602                                if (_remoteAgent.isRunning()) { 
    603603                                        //decay the agent's emotional state 
     604                                        //self 
    604605                                        _emotionalState.Decay(); 
    605606                                        _motivationalState.Decay(); 
    606607                                        _dialogManager.DecayCauseIDontHaveABetterName(_memory); 
     608                                         
     609                                        //others 
     610                                        //TODO question: apply decay to all models or only to the agents nearby? 
     611                                        for(String other: _nearbyAgents) 
     612                                        { 
     613                                                ModelOfOther m = _ToM.get(other); 
     614                                                m.getEmotionalState().Decay(); 
     615                                                m.getMotivationalState().Decay(); 
     616                                        } 
    607617                                         
    608618                                        //perceives and appraises new events 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/Display/DrivesDisplay.java

    r209 r237  
    2323        JProgressBar _competenceBar; 
    2424 
    25         private String _agentName; 
    26  
    2725        //TODO: The way that the constructor distinguishes from the agent's needs panel 
    2826        //of the other agents needs panel is getting agentName == null;  
     
    3129                super(); 
    3230 
    33                 _agentName = agentName; 
    3431                boolean isSelf = (agentName.equalsIgnoreCase(Constants.SELF)); 
    3532 
     
    8279        MotivationalState ms = ag.getMotivationalState(); 
    8380         
    84         aux = new Float(ms.GetIntensity(_agentName,MotivatorType.ENERGY)); 
     81        aux = new Float(ms.GetIntensity(MotivatorType.ENERGY)); 
    8582        _energyBar.setString(aux.toString()); 
    8683        _energyBar.setValue(Math.round(aux.floatValue()*10)); 
    8784         
    88         aux = new Float(ms.GetIntensity(_agentName,MotivatorType.INTEGRITY)); 
     85        aux = new Float(ms.GetIntensity(MotivatorType.INTEGRITY)); 
    8986        _integrityBar.setString(aux.toString()); 
    9087        _integrityBar.setValue(Math.round(aux.floatValue()*10)); 
    9188         
    92         aux = new Float(ms.GetIntensity(_agentName,MotivatorType.AFFILIATION)); 
     89        aux = new Float(ms.GetIntensity(MotivatorType.AFFILIATION)); 
    9390        _affiliationBar.setString(aux.toString()); 
    9491        _affiliationBar.setValue(Math.round(aux.floatValue()*10)); 
    9592         
    96         aux = new Float(ms.GetIntensity(_agentName,MotivatorType.CERTAINTY)); 
     93        aux = new Float(ms.GetIntensity(MotivatorType.CERTAINTY)); 
    9794        _certaintyBar.setString(aux.toString()); 
    9895        _certaintyBar.setValue(Math.round(aux.floatValue()*10)); 
    9996         
    100         aux = new Float(ms.GetIntensity(_agentName,MotivatorType.COMPETENCE)); 
     97        aux = new Float(ms.GetIntensity(MotivatorType.COMPETENCE)); 
    10198        _competenceBar.setString(aux.toString()); 
    10299        _competenceBar.setValue(Math.round(aux.floatValue()*10)); 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/Display/ModelOfOtherPanel.java

    r236 r237  
    2828             _components.addTab("Emotional State", null, new EmotionalStatePanel()); 
    2929              
     30             _components.addTab("Relations", null, new SocialRelationsPanel()); 
     31              
     32             _components.addTab("Needs", null, new NeedsPanel()); 
     33              
    3034             _components.addTab("ShortTermMemory", null, new ShortTermMemoryPanel()); 
    3135              
    3236             _components.addTab("ActionTendencies", null, new ActionTendenciesPanel()); 
     37              
    3338              
    3439              
  • AgentMind/branches/FAtiMA2/src/FAtiMA/Display/NeedsPanel.java

    r211 r237  
    22 
    33import java.awt.Dimension; 
    4 import java.util.Collection; 
    54import java.util.Hashtable; 
    6 import java.util.Iterator; 
    75 
    86import javax.swing.BorderFactory; 
     
    2119          
    2220        private JPanel _needs; 
    23         private int _previousKnownAgents; 
    2421 
    2522        public NeedsPanel() { 
    2623                 
    2724                super(); 
    28                 _previousKnownAgents = 0; 
    2925                 
    3026        this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); 
     
    5854        public boolean Update(AgentModel ag) { 
    5955 
    60                 CheckForOtherAgents(ag); 
     56                //CheckForOtherAgents(ag); 
    6157                 
    6258                for(DrivesDisplay dd : _drivesDisplays.values()) 
     
    6965          
    7066         
    71         private void CheckForOtherAgents(AgentModel am){ 
     67        /*private void CheckForOtherAgents(AgentModel am){ 
    7268                int numOfKnownAgents = am.getMotivationalState().getOtherAgentsMotivators().size(); 
    7369                 
     
    8985                        }        
    9086                } 
    91         } 
     87        }*/ 
    9288         
    9389         
  • AgentMind/branches/FAtiMA2/src/FAtiMA/ModelOfOther.java

    r236 r237  
    55import java.util.HashMap; 
    66 
     7import FAtiMA.emotionalState.EmotionDisposition; 
    78import FAtiMA.emotionalState.EmotionalState; 
    89import FAtiMA.memory.Memory; 
    910import FAtiMA.motivationalSystem.MotivationalState; 
     11import FAtiMA.motivationalSystem.Motivator; 
    1012import FAtiMA.reactiveLayer.ActionTendencies; 
    1113import FAtiMA.reactiveLayer.EmotionalReactionTreeNode; 
     
    2224        private ActionTendencies _actionTendencies; 
    2325         
    24         public ModelOfOther(String name, EmotionalReactionTreeNode reactions, ActionTendencies at) 
     26        public ModelOfOther(String name, AgentModel am) 
    2527        { 
    2628                _name = name; 
     
    2830                _mem = new Memory(); 
    2931                _ms = new MotivationalState(); 
     32                 
     33                for(Motivator m : am.getMotivationalState().getMotivators()) 
     34                { 
     35                        Motivator m2 = new Motivator(m); 
     36                        m2.SetIntensity(5); 
     37                        _ms.AddMotivator(m2); 
     38                } 
     39                 
     40                for(EmotionDisposition ed : am.getEmotionalState().getEmotionDispositions()) 
     41                { 
     42                        _es.AddEmotionDisposition(ed); 
     43                } 
     44                 
     45                 
    3046                _perceivedEvents = new ArrayList<Event>(); 
    31                 _emotionalReactions = (EmotionalReactionTreeNode) reactions.clone(); 
    32                 _actionTendencies = (ActionTendencies) at.clone(); 
     47                _emotionalReactions = (EmotionalReactionTreeNode) am.getEmotionalReactions().clone(); 
     48                _actionTendencies = (ActionTendencies) am.getActionTendencies().clone(); 
    3349                _actionTendencies.ClearFilters(); 
    3450                 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/culture/CulturalDimensions.java

    r198 r237  
    8080 
    8181                float collectivismCoefficient = _dimensionalValues[CulturalDimensionType.COLLECTIVISM] * 0.01f; 
    82                 Motivator affiliationMotivator = am.getMotivationalState().GetSelfMotivator(MotivatorType.AFFILIATION);          
     82                Motivator affiliationMotivator = am.getMotivationalState().GetMotivator(MotivatorType.AFFILIATION);              
    8383                float personalityAffiliationWeight = affiliationMotivator.GetWeight(); 
    8484                float personalityAffiliationDecayFactor = affiliationMotivator.GetDecayFactor(); 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/deliberativeLayer/DeliberativeProcess.java

    r212 r237  
    126126import FAtiMA.AgentModel; 
    127127import FAtiMA.AgentProcess; 
     128import FAtiMA.ModelOfOther; 
    128129import FAtiMA.ValuedAction; 
    129130import FAtiMA.conditions.Condition; 
     
    627628                                        event = li.next(); 
    628629                                         
     630                                        //updating selfMotivators 
    629631                                        am.getMotivationalState().UpdateMotivators(am, event, _planner.GetOperators()); 
    630632                                         
    631                                         if(_actionMonitor != null) 
     633                                        Event event2 = event.RemovePerspective(am.getName()); 
     634                                        //TODO this should not be done here but at the agent level, by calling the deliberative 
     635                                        //appraisal process to all models of others 
     636                                        for(String other : am.getNearByAgents()) 
    632637                                        { 
    633                                                 int t = 1; 
    634                                                 t = t+1; 
     638                                                Event event3 = event2.ApplyPerspective(other); 
     639                                                ModelOfOther m = am.getToM().get(other); 
     640                                                m.getMotivationalState().UpdateMotivators(m, event3, _planner.GetOperators()); 
    635641                                        } 
    636642                                                 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/deliberativeLayer/goals/ActivePursuitGoal.java

    r198 r237  
    7979import FAtiMA.AgentModel; 
    8080import FAtiMA.IntegrityValidator; 
     81import FAtiMA.ModelOfOther; 
    8182import FAtiMA.conditions.Condition; 
    8283import FAtiMA.conditions.NewEventCondition; 
     
    445446                                        for(int i = 0; i < nonCognitiveDrives.length; i++){ 
    446447                                                expectedContribution = this.GetExpectedEffectOnDrive(effectTypes[c], nonCognitiveDrives[i], "[SELF]").floatValue(); 
    447                                                 currentIntensity =  am.getMotivationalState().GetIntensity(_agent.getName(),MotivatorType.ParseType(nonCognitiveDrives[i])); 
     448                                                currentIntensity =  am.getMotivationalState().GetIntensity(MotivatorType.ParseType(nonCognitiveDrives[i])); 
    448449                                                result +=  auxMultiplier * this.determineQuadraticNeedVariation(currentIntensity, expectedContribution);  
    449450                                        } 
     
    452453                                } 
    453454                                 
    454                                 float currentCompetenceIntensity = am.getMotivationalState().GetIntensity(_agent.getName(),MotivatorType.COMPETENCE); 
     455                                float currentCompetenceIntensity = am.getMotivationalState().GetIntensity(MotivatorType.COMPETENCE); 
    455456                                float expectedCompetenceContribution = am.getMotivationalState().PredictCompetenceChange(true); 
    456457                                result += this.determineQuadraticNeedVariation(currentCompetenceIntensity, expectedCompetenceContribution); 
    457458                                 
    458                                 float currentUncertaintyIntensity = am.getMotivationalState().GetIntensity(_agent.getName(), MotivatorType.CERTAINTY); 
    459                                 //expected error assuming that the goal is successfull 
     459                                float currentUncertaintyIntensity = am.getMotivationalState().GetIntensity(MotivatorType.CERTAINTY); 
     460                                //expected error assuming that the goal is successful 
    460461                                float expectedError = 1 - getProbability(am); 
    461462                                float currentError = getUncertainty(am); 
     
    464465                                                                 
    465466                        } 
    466                  
    467                          
     467                        else{ 
    468468                        // If target is NOT SELF 
    469469                        // Only the non-cognitive needs are taken into account for other agents. This is because his actions cannot impact those needs. 
    470                         if(!target.equalsIgnoreCase("[SELF]")){ 
    471                                 auxMultiplier = 1; 
    472                                 //Calculate the effect on Non-Cognitive Needs 
    473                                 for (int c = 0; c < effectTypes.length; c++ ){ 
    474                                         for(int i = 0; i < nonCognitiveDrives.length; i++){ 
    475                                                 expectedContribution = this.GetExpectedEffectOnDrive(effectTypes[c], nonCognitiveDrives[i], "[target]").floatValue(); 
    476                                                 currentIntensity =  am.getMotivationalState().GetIntensity(target,MotivatorType.ParseType(nonCognitiveDrives[i])); 
    477                                                 result += auxMultiplier * this.determineQuadraticNeedVariation(currentIntensity, expectedContribution);                  
    478                                         } 
    479                                         auxMultiplier = -1; 
    480                                 }  
     470                                 
     471                                if(am.getToM().containsKey(target)) 
     472                                { 
     473                                        auxMultiplier = 1; 
     474                                        ModelOfOther m = am.getToM().get(target); 
     475                                         
     476                                        //Calculate the effect on Non-Cognitive Needs 
     477                                        for (int c = 0; c < effectTypes.length; c++ ){ 
     478                                                for(int i = 0; i < nonCognitiveDrives.length; i++){ 
     479                                                        expectedContribution = this.GetExpectedEffectOnDrive(effectTypes[c], nonCognitiveDrives[i], "[target]").floatValue(); 
     480                                                        currentIntensity =  m.getMotivationalState().GetIntensity(MotivatorType.ParseType(nonCognitiveDrives[i])); 
     481                                                        result += auxMultiplier * this.determineQuadraticNeedVariation(currentIntensity, expectedContribution);                  
     482                                                } 
     483                                                auxMultiplier = -1; 
     484                                        }                
     485                                } 
    481486                        } 
    482487                } catch (InvalidMotivatorTypeException e) { 
     
    521526         
    522527        private float getCompetence(AgentModel am){ 
    523                 float generalCompetence = am.getMotivationalState().GetIntensity(_agent.getName(),MotivatorType.COMPETENCE)/10; 
     528                float generalCompetence = am.getMotivationalState().GetIntensity(MotivatorType.COMPETENCE)/10; 
    524529                Float probability = GetProbability(am); 
    525530                 
     
    528533                }else{ 
    529534                        //if there is no knowledge about the goal probability, the goal was never executed before 
    530                         //however, the agent assumes that he will be succesfull in achieving it  
     535                        //however, the agent assumes that he will be successful in achieving it  
    531536                        return (generalCompetence + 1)/2; 
    532537                } 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/emotionalState/EmotionalState.java

    r211 r237  
    216216         
    217217         
    218          
     218        public EmotionDisposition[] getEmotionDispositions() 
     219        { 
     220                return _emotionDispositions; 
     221        } 
    219222 
    220223         
  • AgentMind/branches/FAtiMA2/src/FAtiMA/motivationalSystem/MotivationalState.java

    r236 r237  
    88import java.io.Serializable; 
    99import java.util.ArrayList; 
    10 import java.util.Collection; 
    11 import java.util.Hashtable; 
    12 import java.util.Iterator; 
    1310import java.util.ListIterator; 
    1411 
     
    4239 */ 
    4340 
    44 public class MotivationalState implements Serializable { 
     41public class MotivationalState implements Serializable, Cloneable { 
    4542         
    4643         
    4744        private static final long serialVersionUID = 1L; 
    48         protected Motivator[]  _selfMotivators; 
    49         protected Hashtable<String,Motivator[]> _otherAgentsMotivators; 
     45        protected Motivator[]  _motivators; 
     46        //protected Hashtable<String,Motivator[]> _otherAgentsMotivators; 
    5047        protected long _lastTime; 
    5148        protected int _goalTried; 
     
    5855         */ 
    5956        public MotivationalState() { 
    60                 _selfMotivators = new Motivator[MotivatorType.numberOfTypes()]; 
    61                 _otherAgentsMotivators = new Hashtable<String,Motivator[]>(); 
     57                _motivators = new Motivator[MotivatorType.numberOfTypes()]; 
     58                //_otherAgentsMotivators = new Hashtable<String,Motivator[]>(); 
    6259                _goalTried = 0; 
    6360                _goalSucceeded = 0; 
     
    6562        } 
    6663 
    67         public Hashtable<String,Motivator[]> getOtherAgentsMotivators(){ 
    68                 return _otherAgentsMotivators; 
    69         } 
    70          
    71         public Motivator[] getSelfMotivators(){ 
    72                 return _selfMotivators; 
    73         } 
    74          
    75          
    76         public void InitializeOtherAgentMotivators(String agentName){ 
    77                 Motivator[]  agentMotivators = new Motivator[5]; 
    78                                  
    79                 for(int i=0; i < agentMotivators.length; i++){ 
    80                         agentMotivators[i] = new Motivator(_selfMotivators[i]); 
    81                         agentMotivators[i].SetIntensity(5); 
    82                 } 
    83                  
    84                 _otherAgentsMotivators.put(agentName, agentMotivators); 
     64         
     65        public Motivator[] getMotivators(){ 
     66                return _motivators; 
    8567        } 
    8668         
     
    8971         * Adds a motivator to the MotivationalState 
    9072         */ 
    91         public void AddSelfMotivator(Motivator motivator) 
    92         { 
    93                 _selfMotivators[motivator.GetType()] = new Motivator(motivator); 
    94         } 
    95          
    96          
    97         public Motivator GetSelfMotivator(short motivatorType){ 
    98                 return _selfMotivators[motivatorType]; 
     73        public void AddMotivator(Motivator motivator) 
     74        { 
     75                _motivators[motivator.GetType()] = new Motivator(motivator); 
     76        } 
     77         
     78         
     79        public Motivator GetMotivator(short motivatorType){ 
     80                return _motivators[motivatorType]; 
    9981        } 
    10082         
     
    134116                         
    135117                         
    136                         if(eventTarget.equalsIgnoreCase(am.getName())){          
    137                                 contributionToSelfNeeds += _selfMotivators[MotivatorType.AFFILIATION].UpdateIntensity(affiliationEffect); 
     118                        if(eventTarget.equalsIgnoreCase(Constants.SELF)){                
     119                                contributionToSelfNeeds += _motivators[MotivatorType.AFFILIATION].UpdateIntensity(affiliationEffect); 
    138120                                 
    139                         }else{ 
    140                                 Motivator[] otherAgentsMotivators = (Motivator[]) _otherAgentsMotivators.get(eventTarget.toString()); 
    141                                 if(otherAgentsMotivators != null){ 
    142                                         otherAgentsMotivators[MotivatorType.AFFILIATION].UpdateIntensity(affiliationEffect); 
    143                                 } 
    144121                        }        
    145122                } 
     
    173150                                                        try { 
    174151                                                                short driveType = MotivatorType.ParseType(motCondition.GetDrive()); 
    175                                                                 contributionToNeed = _selfMotivators[driveType].UpdateIntensity(motCondition.GetEffect()); 
     152                                                                contributionToNeed = _motivators[driveType].UpdateIntensity(motCondition.GetEffect()); 
    176153                                                                contributionToSelfNeeds += contributionToNeed; 
    177                                                         } catch (InvalidMotivatorTypeException e1) { 
    178                                                                 e1.printStackTrace(); 
    179                                                         } 
    180                                                 }else{ 
    181                                                         try { 
    182                                                                 short driveType = MotivatorType.ParseType(motCondition.GetDrive()); 
    183                                                                 Motivator[] otherAgentsMotivators = (Motivator[]) _otherAgentsMotivators.get(target.toString());                 
    184                                                                 contributionToNeed = otherAgentsMotivators[driveType].UpdateIntensity(motCondition.GetEffect()); 
    185154                                                        } catch (InvalidMotivatorTypeException e1) { 
    186155                                                                e1.printStackTrace(); 
     
    198167                } 
    199168                 
    200          
    201          
    202169                 
    203170                this.updateEmotionalState(am, e, contributionToSelfNeeds, contributionToSubjectNeeds, contributionToTargetNeeds); 
     
    217184                vec.setAppraisalVariable(AppraisalVector.PRAISEWORTHINESS, praiseWorthiness); 
    218185         
     186                //emotions of self 
    219187                emotions = Appraisal.GenerateSelfEmotions(am, e, vec); 
    220188                 
     
    226194                        am.getEmotionalState().AddEmotion(em, am); 
    227195                } 
    228                  
    229  
    230196        } 
    231197 
     
    236202         */ 
    237203        // CURRENTLY NOT BEING USED 
    238         public Motivator GetSelfHighestNeedMotivator() { 
     204        public Motivator GetHighestNeedMotivator() { 
    239205                float maxNeed = 0; 
    240206                Motivator maxMotivator=null; 
    241207                 
    242                 for(int i = 0; i < _selfMotivators.length; i++){ 
    243                         if(_selfMotivators[i].GetNeed() > maxNeed) { 
    244                                 maxMotivator = _selfMotivators[i]; 
    245                                 maxNeed = _selfMotivators[i].GetNeed(); 
     208                for(int i = 0; i < _motivators.length; i++){ 
     209                        if(_motivators[i].GetNeed() > maxNeed) { 
     210                                maxMotivator = _motivators[i]; 
     211                                maxNeed = _motivators[i].GetNeed(); 
    246212                        } 
    247213                } 
     
    254220         * @return a float value corresponding to the motivator's intensity 
    255221         */ 
    256         public float GetIntensity(String agentName, short type) 
    257         { 
    258                 if(agentName.equalsIgnoreCase(Constants.SELF)){ 
     222        public float GetIntensity(short type) 
     223        { 
     224                return _motivators[type].GetIntensity(); 
     225                 
     226                /*if(agentName.equalsIgnoreCase(Constants.SELF)){ 
    259227                        return _selfMotivators[type].GetIntensity(); 
    260228                }else{ 
     
    267235                                return 0; 
    268236                        } 
    269                 } 
     237                }*/ 
    270238        } 
    271239         
     
    301269        public float GetNeedUrgency(String agentName, short type) 
    302270        { 
    303                 if(agentName.equalsIgnoreCase(Constants.SELF)){ 
    304                         return _selfMotivators[type].GetNeedUrgency(); 
    305                 }else{ 
    306                  
    307                          
    308                         Motivator[] otherAgentMotivator = (Motivator[])_otherAgentsMotivators.get(agentName); 
    309                  
    310                          
    311                         if(otherAgentMotivator != null){ 
    312                                 return otherAgentMotivator[type].GetNeedUrgency(); 
    313                         }else{ 
    314                                 return 0; 
    315                         } 
    316                          
    317                 } 
     271                return _motivators[type].GetNeedUrgency(); 
    318272        } 
    319273         
     
    324278         * @return a float value corresponding to the motivator's weight 
    325279         */ 
    326         public float GetWeight(String agentName, short type) 
    327         { 
    328                 if(agentName.equalsIgnoreCase(Constants.SELF)){ 
    329                         return _selfMotivators[type].GetWeight(); 
    330                 }else{ 
    331                         return ((Motivator[])_otherAgentsMotivators.get(agentName))[type].GetWeight(); 
    332                 } 
     280        public float GetWeight(short type) 
     281        {        
     282                return _motivators[type].GetWeight(); 
    333283        } 
    334284         
     
    340290        public void UpdateCompetence(boolean succeed) 
    341291        { 
    342                 Motivator competenceM = _selfMotivators[MotivatorType.COMPETENCE]; 
     292                Motivator competenceM = _motivators[MotivatorType.COMPETENCE]; 
    343293                //System.out.println("Competence before update" + competenceM.GetIntensity()); 
    344294                 
     
    357307                } 
    358308                 
    359                 Motivator competenceM = _selfMotivators[MotivatorType.COMPETENCE]; 
     309                Motivator competenceM = _motivators[MotivatorType.COMPETENCE]; 
    360310                 
    361311                newCompetence = alpha * value + (1 - alpha) * competenceM.GetIntensity(); 
     
    371321        public float PredictCompetenceChange(boolean succeed) 
    372322        { 
    373                 Motivator competenceM = _selfMotivators[MotivatorType.COMPETENCE]; 
     323                Motivator competenceM = _motivators[MotivatorType.COMPETENCE]; 
    374324                return newCompetence(succeed) - competenceM.GetIntensity(); 
    375325        } 
     
    384334        { 
    385335                //System.out.println("Certainty before update" + _selfMotivators[MotivatorType.CERTAINTY].GetIntensity()); 
    386                 _selfMotivators[MotivatorType.CERTAINTY].UpdateIntensity(expectation*3); 
     336                _motivators[MotivatorType.CERTAINTY].UpdateIntensity(expectation*3); 
    387337                //System.out.println("Certainty after update" + _selfMotivators[MotivatorType.CERTAINTY].GetIntensity()); 
    388338        } 
     
    400350                         
    401351                        //decay self motivators 
    402                         for(int i = 0; i < _selfMotivators.length; i++){ 
    403                                 _selfMotivators[i].DecayMotivator(); 
     352                        for(int i = 0; i < _motivators.length; i++){ 
     353                                _motivators[i].DecayMotivator(); 
    404354                        } 
    405355                         
    406                          
    407                         //decay other motivators 
    408                          
    409                         Collection<Motivator[]> listOfOtherAgentsMotivators = _otherAgentsMotivators.values(); 
    410  
    411                         Iterator<Motivator[]> it; 
    412                  
    413                         it = listOfOtherAgentsMotivators.iterator(); 
    414                          
    415                         while (it.hasNext()){ 
    416                                 Motivator[] otherAgentsMotivators = it.next(); 
    417                                 for(int i = 0; i < _selfMotivators.length; i++){ 
    418                                         otherAgentsMotivators[i].DecayMotivator(); 
    419                                 }        
    420                         } 
    421356                } 
    422357        } 
     
    431366 
    432367                result = "<MotivationalState>"; 
    433                 for(int i = 0; i < _selfMotivators.length; i++){ 
    434                         result = result + _selfMotivators[i].toXml(); 
     368                for(int i = 0; i < _motivators.length; i++){ 
     369                        result = result + _motivators[i].toXml(); 
    435370                } 
    436371                 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/motivationalSystem/Motivator.java

    r191 r237  
    5555         * @param mot - the motivator that will be copied into the new motivator 
    5656         */ 
    57         protected Motivator(Motivator mot) { 
     57        public Motivator(Motivator mot) { 
    5858                _type = mot._type; 
    5959                _decayFactor = mot._decayFactor; 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/sensorEffector/RemoteAgent.java

    r236 r237  
    764764                        //If the agent looks at another agent it initializes it's needs 
    765765                        if(!subject.equalsIgnoreCase(_agent.getName()) &&  
    766                        properties[0].equalsIgnoreCase("isPerson") || 
    767                        (properties[0].equalsIgnoreCase("type") && properties[1].equalsIgnoreCase("character"))) 
     766                       (properties[0].equalsIgnoreCase("isPerson") || 
     767                       (properties[0].equalsIgnoreCase("type") && properties[1].equalsIgnoreCase("character")))) 
    768768                        { 
    769769                                _agent.initializeModelOfOther(subject); 
    770                                 _agent.getMotivationalState().InitializeOtherAgentMotivators(subject); 
    771770                                _agent.AddNearByAgent(subject); 
    772771                                 
  • AgentMind/branches/FAtiMA2/src/FAtiMA/util/parsers/AgentLoaderHandler.java

    r199 r237  
    175175        motivatorName = attributes.getValue("motivator"); 
    176176        type = MotivatorType.ParseType(motivatorName); 
    177         _am.getMotivationalState().AddSelfMotivator(new Motivator(type, 
     177        _am.getMotivationalState().AddMotivator(new Motivator(type, 
    178178                                                                                                        new Float(attributes.getValue("decayFactor")).floatValue(), 
    179179                                                                                                        new Float(attributes.getValue("weight")).floatValue(), 
Note: See TracChangeset for help on using the changeset viewer.