Guest User

Untitled

a guest
Jul 11th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.33 KB | None | 0 0
  1. class Player
  2.   def  deadlyArcher?(w, spaces)
  3.      w.health < @health and (spaces[0].enemy? or spaces[1].enemy? or spaces[2].enemy?)
  4.   end
  5.  
  6.   def deadlyWizard?(w, spaces)
  7.     w.health <= 12 and w.health > @health and (spaces[0].enemy? or spaces[1].enemy?)
  8.   end
  9.  
  10.   def play_turn(w)
  11.     if not @dir
  12.       @dir = :forward
  13.     end
  14.  
  15.     if @health == nil
  16.       @health = w.health
  17.     end
  18.  
  19.     spaces = w.look(@dir)
  20.     spacesBack = w.look(:backward)
  21.  
  22.     if w.feel(@dir).wall?
  23.       w.pivot!
  24.     # Don't die by archer.
  25.     elsif deadlyArcher?(w, spacesBack) and spaces[0].empty?
  26.       w.walk!(@dir)
  27.     elsif deadlyArcher?(w, spaces) and spacesBack[0].empty?
  28.       w.walk!(:backward)
  29.     # Don't die by wizard.
  30.     elsif deadlyWizard?(w, spaces)
  31.       w.walk!(:backward)
  32.     elsif deadlyWizard?(w, spacesBack)
  33.       w.walk!(@dir)
  34.     elsif w.health < 20 and w.health >= @health and not spaces[0].enemy? and not spaces[1].enemy? and not spaces[2].enemy?
  35.       w.rest!
  36.     else
  37.       # Advance.
  38.       if not spaces[0].empty?
  39.         if w.feel(@dir).captive?
  40.           w.rescue!(@dir)
  41.         else
  42.           w.attack!(@dir)
  43.         end
  44.       elsif spaces[1].enemy? or (spaces[1].empty? and spaces[2].enemy?)
  45.         w.shoot!(@dir)
  46.       else
  47.         w.walk!(@dir)
  48.       end
  49.     end
  50.     @health = w.health
  51.   end
  52. end
Advertisement
Add Comment
Please, Sign In to add comment