Author: boucman
Date: Fri Mar 27 16:49:22 2009
New Revision: 34185

URL: http://svn.gna.org/viewcvs/wesnoth?rev=34185&view=rev
Log:
added a very basic poison handling. This is a proof of concept to be improved 
on. Patch by Velory

Added:
    trunk/data/ai/formula/poisoner_attack.fai
    trunk/data/ai/formula/poisoner_eval.fai
    trunk/data/scenario-poisoning.cfg
Modified:
    trunk/changelog
    trunk/data/_main.cfg
    trunk/data/core/about.cfg

Modified: trunk/changelog
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/changelog?rev=34185&r1=34184&r2=34185&view=diff
==============================================================================
--- trunk/changelog (original)
+++ trunk/changelog Fri Mar 27 16:49:22 2009
@@ -20,6 +20,8 @@
  * FormulaAI:
    * Fixed bug #13230: added debug_float FormulaAI function to allow debugging
      via floating popups on the specified hex
+   * Added run_file FormulaAI function to allow running .fai scripts directly
+     from in-game console
  * WML Engine:
    * Added [show_objectives] tag (part of bug #13042)
    * Made moveto events set $x2,$y2 to the source hex. (bug #13140)

Modified: trunk/data/_main.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/_main.cfg?rev=34185&r1=34184&r2=34185&view=diff
==============================================================================
--- trunk/data/_main.cfg (original)
+++ trunk/data/_main.cfg Fri Mar 27 16:49:22 2009
@@ -18,6 +18,7 @@
 {scenario-test.cfg}
 {scenario-formula.cfg}
 {scenario-formula-recruitment.cfg}
+{scenario-poisoning.cfg}
 [textdomain]
     name="wesnoth"
 [/textdomain]

Added: trunk/data/ai/formula/poisoner_attack.fai
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/ai/formula/poisoner_attack.fai?rev=34185&view=auto
==============================================================================
--- trunk/data/ai/formula/poisoner_attack.fai (added)
+++ trunk/data/ai/formula/poisoner_attack.fai Fri Mar 27 16:49:22 2009
@@ -1,0 +1,13 @@
+fai 'poisoner_attack.fai'
+
+def get_best_defense_loc(moves, attacker, enemy)
+    choose(filter(map(filter(moves, src=attacker.loc), dst),
+               distance_between(self, enemy.loc) = 1),
+               defense_on(attacker.loc, self));
+
+       attack(me.loc, get_best_defense_loc(my_moves.moves, me, target), 
target.loc, att_weap)
+
+
+    where att_weap = index_of(['poison'],map(me.attacks,special))
+
+faiend

Added: trunk/data/ai/formula/poisoner_eval.fai
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/ai/formula/poisoner_eval.fai?rev=34185&view=auto
==============================================================================
--- trunk/data/ai/formula/poisoner_eval.fai (added)
+++ trunk/data/ai/formula/poisoner_eval.fai Fri Mar 27 16:49:22 2009
@@ -1,0 +1,17 @@
+fai 'poisoner_eval.fai'
+
+if(filter(me.attacks,'att',filter(att.special,'spe',contains_string(spe,'poison'))),
+       if(target.undead = 0,
+               if(target.hitpoints >= 5,
+                       if(target.max_experience - target.experience > 8,
+                               if(index_of('regenerates',target.abilities) = 
-1,
+                                       
if(index_of('poisoned',keys(target.states)) = -1, 1
+                                       ,-1)
+                               ,-1)
+                       ,-1)
+               ,-1)
+       ,-1)
+,-1)
+
+
+faiend

Modified: trunk/data/core/about.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/core/about.cfg?rev=34185&r1=34184&r2=34185&view=diff
==============================================================================
--- trunk/data/core/about.cfg (original)
+++ trunk/data/core/about.cfg Fri Mar 27 16:49:22 2009
@@ -756,6 +756,11 @@
         comment = "unit list"
     [/entry]
     [entry]
+        name = "Burkay Özdemir (Velory)"
+       comment = "Poisoning improvement for Formula AI"
+    [/entry]
+
+    [entry]
         name = "Chris Hopman (cjhopman)"
     [/entry]
     [entry]

Added: trunk/data/scenario-poisoning.cfg
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/data/scenario-poisoning.cfg?rev=34185&view=auto
==============================================================================
--- trunk/data/scenario-poisoning.cfg (added)
+++ trunk/data/scenario-poisoning.cfg Fri Mar 27 16:49:22 2009
@@ -1,0 +1,156 @@
+#textdomain wesnoth
+# @file data/scenario-test.cfg
+
+[test]
+    name="Test scenario"
+    map_data=" border_size=1
+       usage=map
+
+Hh          , Hh          , Gg          , Wwf         , Wwf         , Gs^Fp    
   , Mm          , Hh          , Gg          , Gs^Fp       , Gg          , Hh   
       , Gg          , Mm          , Hh          , Mm          , Wwf         , 
Wwf         , Hh          , Gs^Fp       , Hh          , Mm          , Mm        
  
+Hh          , Hh          , Gg^Ve       , Wwf         , Wwf         , Gs^Fp    
   , Mm          , Hh          , Gg          , Gs^Fp       , Gg          , Hh   
       , Gg          , Mm          , Hh          , Mm          , Wwf         , 
Wwf         , Hh          , Gs^Fp       , Hh          , Mm          , Mm        
  
+Wwf         , Wwf         , Wwf         , Wwf         , Gg          , Wwf      
   , Wwf         , Hh          , Gg          , Gg          , Wwf         , Ch   
       , Wwf         , Gs^Fp       , Wwf         , Wwf         , Re          , 
Re          , Hh          , Mm          , Wwf         , Mm          , Mm        
  
+Mm          , Mm          , Wwf         , Gs^Fp       , Gg^Vh       , Wwf      
   , Gg          , Gg          , Wwf         , Wwf         , Wwf         , 1 Kh 
       , Ch          , Wwf         , Re          , Re          , Rd          , 
Rd          , Wwf         , Wwf         , Gs^Fp       , Wwf         , Wwf       
  
+Wwf         , Wwf         , Mm          , Wwf         , Gs^Fp       , Wwf      
   , Wwf         , Wwf         , Gg^Vh       , Gg          , Wwf         , Ch   
       , Wwf         , Ch          , Rd          , Rd          , Wwf         , 
Wwf         , Gg^Vh       , Gs^Fp       , Re^Gvs      , Hh          , Hh        
  
+Hh          , Hh          , Wwf         , Gs^Fp       , Wwf         , Wwf      
   , Gg          , Gg          , Gg          , Gg          , Wwf         , Ch   
       , Gg          , Wwf         , Wwf         , Wwf         , Mm          , 
Gs^Fp       , Re          , Re^Gvs      , Gg^Wm       , Re^Gvs      , Re^Gvs    
  
+Wwf         , Wwf         , Mm          , Wwf         , Hh          , Gs^Fp    
   , Rd          , Rd          , Gg          , Gg          , Wwf         , Wwf  
       , Gs^Fp       , Gg          , Hh          , Gg          , Re          , 
Re          , Rd          , Rd          , Gg          , Hh          , Hh        
  
+Hh          , Hh          , Gs^Fp       , Gg          , Gg          , Rd       
   , Gg          , Gg          , Wwf         , Wwf         , Gs^Fp       , Wwf  
       , Gs^Fp       , Mm          , Re          , Re          , Rd          , 
Rd          , Gg          , Ggf         , Mm          , Gs^Fp       , Gs^Fp     
  
+Gs^Fp       , Gs^Fp       , Gg          , Gg          , Wwf         , Gg       
   , Wwf         , Wwf         , Mm          , Hh          , Wwf         , Wwf  
       , Re          , Re          , Rd          , Rd          , Rd          , 
Gg          , Gs^Fp       , Gs^Fp       , Gs^Fp       , Hh          , Hh        
  
+Hh          , Hh          , Wwf         , Wwf         , Hh          , Wwf      
   , Gg          , Gg          , Gg          , Gg          , Wwf         , Re   
       , Re          , Rd          , Gg          , Gg          , Gg          , 
Gg^Vh       , Hh          , Gg          , Wwf         , Ggf         , Ggf       
  
+Wwf         , Wwf         , Hh          , Ggf         , Gs^Fp       , Hh^Vhh   
   , Gg          , Gg          , Gg          , Ss^Vhs      , Hh          , Ww   
       , Gs^Fp       , Gg          , Gs^Fp       , Hh          , Wwf         , 
Wwf         , Wwf         , Wwf         , Gg          , Wwf         , Wwf       
  
+Hh          , Hh          , Gg          , Gg          , Re          , Gg       
   , Re          , Re          , Gg          , Ss          , Gs^Fp       , Ww   
       , Hh          , Mm          , Ww          , Wwf         , Gg          , 
Gg          , Ds          , Gg          , Gg          , Gs^Fp       , Gs^Fp     
  
+Gs^Fp       , Gs^Fp       , Gg          , Rd          , Rd          , Re       
   , Rd          , Re          , Hh          , Mm          , Wwf         , Ww   
       , Ww          , Ww          , Gg          , Gg          , Hh          , 
Gs^Fp       , Rd          , Rd          , Hh          , Gg          , Gg        
  
+Rd          , Rd          , Gs^Fp       , Hh          , Rd          , Rd       
   , Gs^Fp       , Re          , Gg          , Gg          , Wwf         , Gg   
       , Wwf         , Gg          , Gg          , Re          , Gs^Fp       , 
Hh          , Rd          , Mm          , Gs^Fp       , Rd          , Rd        
  
+Rd          , Rd          , Hh          , Mm          , Rd          , Hh       
   , Hh          , Re          , Gg          , Gg          , Ww          , Gg   
       , Wwf         , Gg          , Hh          , Re          , Rd          , 
Rd          , Rd          , Hh          , Gg          , Rd          , Rd        
  
+Gg          , Gg          , Gg          , Rd          , Ds          , Gs^Fp    
   , Gg          , Gg          , Ww          , Ww          , Hh          , Ww   
       , Gs^Fp       , Mm          , Gg          , Re          , Re          , 
Re          , Re          , Rd          , Gg          , Gs^Fp       , Gs^Fp     
  
+Gs^Fp       , Gs^Fp       , Gg          , Gg          , Wwf         , Gg       
   , Wwf         , Wwf         , Gs^Fp       , Mm          , Gs^Fp       , Ww   
       , Hh          , Ss          , Gg          , Re          , Gg          , 
Gg          , Gs^Fp       , Gg          , Hh          , Hh          , Hh        
  
+Wwf         , Wwf         , Wwf         , Wwf         , Hh          , Wwf      
   , Gg          , Hh          , Gg          , Gg          , Re          , Ww   
       , Wwf         , Ss^Vhs      , Gg          , Gg          , Gg          , 
Hh^Vhh      , Hh          , Ggf         , Wwf         , Wwf         , Wwf       
  
+Ggf         , Ggf         , Gs^Fp       , Gg          , Gs^Fp       , Gg^Vh    
   , Rd          , Gg          , Rd          , Rd          , Re          , Re   
       , Wwf         , Gg          , Mm          , Gg          , Wwf         , 
Wwf         , Wwf         , Wwf         , Gg          , Mm          , Mm        
  
+Hh          , Hh          , Mm          , Gs^Fp       , Gg          , Gg       
   , Rd          , Rd          , Re          , Re          , Gs^Fp       , Wwf  
       , Gs^Fp       , Hh          , Wwf         , Wwf         , Gg          , 
Gg          , Gg          , Gg          , Gs^Fp       , Gs^Fp       , Gs^Fp     
  
+Gs^Fp       , Gs^Fp       , Gg          , Ggf         , Rd          , Rd       
   , Re          , Re          , Hh          , Mm          , Gg          , Wwf  
       , Wwf         , Wwf         , Gg          , Gg          , Rd          , 
Rd          , Hh          , Gg          , Mm          , Hh          , Hh        
  
+Hh          , Hh          , Gg^Wm       , Rd          , Re          , Re       
   , Mm          , Gg          , Wwf         , Wwf         , Wwf         , Ch   
       , Gg          , Gg          , Gg          , Rd          , Gg          , 
Gs^Fp       , Wwf         , Wwf         , Wwf         , Wwf         , Wwf       
  
+Re^Gvs      , Re^Gvs      , Re^Gvs      , Re^Gvs      , Gg^Vh       , Gs^Fp    
   , Wwf         , Wwf         , Rd          , Ch          , Ch          , Ch   
       , Gg          , Gg          , Gg^Vh       , Gg          , Wwf         , 
Wwf         , Gs^Fp       , Gs^Fp       , Gg^Ve       , Gg          , Gg        
  
+Hh          , Hh          , Gs^Fp       , Gs^Fp       , Wwf         , Wwf      
   , Rd          , Rd          , Re          , Re          , Wwf         , 2 Kh 
       , Wwf         , Gg          , Wwf         , Wwf         , Gg          , 
Wwf         , Wwf         , Wwf         , Wwf         , Gs^Fp       , Gs^Fp     
  
+Gs^Fp       , Gs^Fp       , Wwf         , Wwf         , Mm          , Rd       
   , Gs^Fp       , Hh          , Wwf         , Wwf         , Gg          , Ch   
       , Gg          , Wwf         , Hh          , Gg          , Wwf         , 
Wwf         , Gg^Vh       , Gg          , Wwf         , Mm          , Mm        
  
+Gs^Fp       , Gs^Fp       , Wwf         , Wwf         , Mm          , Rd       
   , Gs^Fp       , Wwf         , Wwf         , Gg          , Gg          , Gg   
       , Gg          , Gg          , Hh          , Gg          , Wwf         , 
Wwf         , Gg          , Gg          , Wwf         , Mm          , Mm        
  
+"
+
+    turns=90
+    id=poison
+
+    {DEFAULT_SCHEDULE}
+
+    [label]
+        x,y=3,8
+        text="Target Choose test"
+    [/label]
+    [label]
+        x,y=17,3
+        text="Weapon test with low hp target"
+    [/label]
+    [label]
+        x,y=13,8
+        text="Regeneration attack Test"
+    [/label]
+    [label]
+        x,y=7,3
+        text="Undead Target Test"
+    [/label]
+
+    [side]
+        name="Azalin"
+        type=Necromancer
+        id=side_1_leader
+        canrecruit=yes
+        recruit=Assassin,Thief,Poacher,Footpad
+        gold=90
+        controller=human
+
+        [unit]
+            x,y=13,8
+            type="Ancient Wose"
+            generate_name=yes
+        [/unit]
+        [unit]
+            x,y=3,7
+            type="Arch Mage"
+            generate_name=yes
+        [/unit]
+        [unit]
+            x,y=2,7
+            type="Elvish Archer"
+            generate_name=yes
+        [/unit]
+       [unit]
+          x,y=16,5
+          type="Elvish Archer"
+          generate_name=yes
+       [/unit]
+        [unit]
+            x,y=2,8
+            type="Elvish Archer"
+            generate_name=yes
+        [/unit]
+        [unit]
+            x,y=17,2
+            type="Elvish Fighter"
+            hitpoints=3
+            generate_nema=yes
+        [/unit]
+        [unit]
+            x,y=7,2
+            type="Skeleton"
+            generate_name=yes
+        [/unit]
+    [/side]
+
+    [side]
+       name=FormulaAı
+       type=Dark Sorcerer
+       side=2
+       canrecruit=yes
+       recruit=Skeleton,Skeleton Archer,Ghost,Ghost,Vampire Bat,Vampire 
Bat,Ghoul
+       gold=100
+       shroud=yes
+
+        [unit]
+            x,y=5,8
+            type="Ghoul"
+            generate_name=yes
+        [/unit]
+        [unit]
+            x,y=6,9
+            type="Cuttle Fish"
+            generate_name=yes
+        [/unit]
+        [unit]
+            x,y=13,7
+            type="Cuttle Fish"
+            generate_name=yes
+        [/unit]
+        [unit]
+            x,y=17,3
+            type="Cuttle Fish"
+            generate_name=yes
+        [/unit]
+        [unit]
+            x,y=7,3
+            type="Ghoul"
+            generate_name=yes
+        [/unit]
+
+        ai_algorithm=formula_ai
+        [ai]
+           eval_list=yes
+
+            [register_candidate_move]
+                name=poisoner
+                type=attack
+                evaluation="{ai/formula/poisoner_eval.fai}"
+                action="{ai/formula/poisoner_attack.fai}"
+            [/register_candidate_move]
+
+        [/ai]
+    [/side]
+[/test]
+
+# vim: tabstop=4: shiftwidth=4: expandtab: softtabstop=4: autoindent:


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to