Advertisement
Guest User

Zombie AI

a guest
Oct 25th, 2012
1,374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #pragma strict
  2.  
  3. class ZombieEntityTarget {
  4.     var Object : GameObject ; // Target.GameObject
  5.     var Distance : float ; // Target Distance
  6.     var Intelligence : ZombieAI ;
  7. }
  8.  
  9. class KombatIntelligence{
  10.     var AttackDelay : float ; // Entity Delay Between Attacks
  11.     var Defense : float = 5 ; // Entity Defense
  12.     var Health : float = 100 ; // Entity Health
  13.     var Strength : float = 10 ; // Entity Attack Power
  14.     var Speed : float = 0 ; // Entity Current Speed
  15.     var RunSpeed : float = 3.5 ; // Entity Run Speed
  16.     var WalkSpeed : float = 2.0 ;
  17.     var StateSpeed : float = 0 ;
  18.     var Velocity : float = 1.0 ;
  19.  
  20.     var Stunned : boolean = false ;
  21.  
  22.     var State : ZombieState ; // Entity States
  23.     var Target : ZombieEntityTarget = null ; // Target Intelligence
  24. }
  25.  
  26. class ZombieState {
  27.     var Attacking : boolean = false ;
  28.     var Idle : boolean = true;
  29.     var Running : boolean = false ;
  30.     var Walking : boolean = false ;
  31.     var Infected : boolean = true ;
  32.     var TargetingPlayer : boolean = false ;
  33.     var Dying : boolean = false ;
  34. }
  35.  
  36. class ZombieClass {
  37.     var Name : String ;
  38.     var UniqueID : String ; // Unique ID 'STRING' for Individual Zombies
  39.     var UID : int ; // Unique ID 'NUMBER'
  40.    
  41.    
  42.     var Kombat : KombatIntelligence ;
  43. }
  44.  
  45. var Zombie : ZombieClass ;
  46.  
  47.  
  48. function Start () {
  49.     Zombie.Kombat.Target.Object = GameObject.Find ( "Player" ) ; // Set Game Object To Player
  50.     Zombie.Kombat.State.TargetingPlayer = true ; // Zombie State -> TargetingPlayer = true
  51.     Zombie.UniqueID = gameObject.tag ;
  52.     Zombie.UID = Random.Range ( 1, 100 ) * Random.Range( 1, 9 ) + Random.Range ( 10, 1000 ) ; // Give it Random Unique ID
  53.  
  54.     Zombie.Kombat.Target.Object = GameObject.Find("Player");
  55. }
  56.  
  57. function LearnFrom ( objectToLearnFrom : String )
  58. {
  59.     switch ( objectToLearnFrom )
  60.     {
  61.         case "Target":
  62.             if ( Zombie.Kombat.Target.Object != null )
  63.     {
  64.             Zombie.Kombat.Target.Distance = ( transform.position - Zombie.Kombat.Target.Object.transform.position ).sqrMagnitude * ( transform.position - Zombie.Kombat.Target.Object.transform.position ).sqrMagnitude ; // Get Distance From Target ( Square Magnitude * Square Magnitude )
  65.     }
  66.             break ;
  67.  
  68.         default:
  69.             if ( objectToLearnFrom == "" )
  70.             {
  71.                 Zombie.Kombat.Target.Object = null ; // Prevent Reference Exceptions   
  72.             }else{
  73. Zombie.Kombat.Target.Distance = ( transform.position - GameObject.Find(objectToLearnFrom).transform.position ).sqrMagnitude * (GameObject.Find(objectToLearnFrom).transform.position ).sqrMagnitude ; // Get Distance From Target
  74.             }
  75.             break;
  76.     }
  77. }
  78.  
  79. function LearnFromSelf ( )
  80. {
  81.     if ( Zombie.Kombat.State.Walking )
  82.     {
  83.         Zombie.Kombat.StateSpeed = Zombie.Kombat.WalkSpeed ;
  84.     }else if ( Zombie.Kombat.State.Running ){
  85.         Zombie.Kombat.StateSpeed = Zombie.Kombat.RunSpeed ;
  86.     }else if ( Zombie.Kombat.State.Attacking ){
  87.  
  88.     }   Zombie.Kombat.StateSpeed = 0 ;
  89. }
  90.  
  91. function Update () {
  92.     LearnFrom ( "Target" ) ; // Learn From Target  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement