falyptus

Faith - Agression des monstres

Jun 10th, 2012
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.14 KB | None | 0 0
  1. /**
  2. *
  3. *@author Keal
  4. */
  5.  
  6. // dans la classe Monster:
  7. private int assaultDistance = -1;
  8.  
  9. public int getAssaultDistance()
  10. {
  11.     return assaultDistance;
  12. }
  13.  
  14. // dans la classe MobGroup
  15. private int assaultDistance = -1;
  16.  
  17. public boolean isAgressive(int align)
  18. {
  19.     if(align > 0)
  20.     {
  21.         int knightBonta = 296;
  22.         int knightBrak = 372;
  23.         for(MobGrade MG : _Mobs.values())
  24.         {
  25.             int templateId = MG.getTemplate().getID();
  26.             if(templateId == knightBrak || templateId == knightBonta)
  27.             {
  28.                 if(align == Constants.ALIGNEMENT_BONTARIEN)
  29.                 {
  30.                     if(templateId == knightBrak)
  31.                         return true
  32.                     else
  33.                         return false;
  34.                 }
  35.                 else if(align == Constants.ALIGNEMENT_BRAKMARIEN)
  36.                 {
  37.                     if(templateId == knightBonta)
  38.                         return true;
  39.                     else
  40.                         return false;
  41.                 }
  42.                 else
  43.                 {
  44.                     //FIXME: Les mercenaires ce font-il agresser par les miliciens des cités d'alignement ?
  45.                 }
  46.             }
  47.         }
  48.     }
  49.     return assaultDistance > -1;
  50. }
  51.  
  52. // dans le constructeur MobGroup après ou avant orientation = Formulas.getRandomOrientation(); (peu importe)
  53.  
  54. for(MobGrade MG : _Mobs.values())
  55. {
  56.     int newAssaultDistance = MG.getTemplate().getAssaultDistance();
  57.     if(assaultDistance < newAssaultDistance)
  58.         assaultDistance = newAssaultDistance; //On met attribue la plus grande distance d'agression possible.
  59. }
  60.  
  61. // dans la classe Carte
  62.  
  63. public boolean haveAgressiveMobGroupeAtCell(int cellId)
  64. {
  65.     MobGroup mobGroup = _cases.get(cellId).getMobGroup();
  66.     if(mobGroup != null)
  67.     {
  68.         if(mobGroup.isAgressive)
  69.             return true;
  70.     }
  71.     return false;
  72. }
  73.  
  74. // dans les méthodes spawnGroup(), addStaticGroup() rajoutez après _mobGroups.put(_nextObjectID, group);
  75.  
  76. _cases.get(group.getCellID).setMobGroup(group);
  77.  
  78. // dans la classe Case
  79.  
  80. private MobGroup mobGroup = null;
  81.  
  82. public void setMobGroup(MobGroup mobGroup)
  83. {
  84.     this.mobGroup = mobGroup;
  85. }
  86.  
  87. public MobGroup getMobGroup()
  88. {
  89.     return mobGroup;
  90. }
  91.  
  92. // dans la classe Pathfinding, dans la méthode ValidSinglePath() après la ligne: if(fight != null && fight.isOccuped(dirCaseID))return "stop:"+lastPos;
  93. if(fight == null && map.haveAgressiveMobGroupeAtCell(dirCaseID))return "stop:"+lastPos;
Advertisement
Add Comment
Please, Sign In to add comment