Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ZOMBIE MOTOR
- #pragma strict
- var ZombieIntelligence: ZombieAI ;
- var animator : Animator ;
- function Start () {
- ZombieIntelligence = gameObject.GetComponent ( ZombieAI );
- animator = GetComponent ( Animator ) ;
- }
- function Update () {
- animator.SetFloat ( "Speed", ZombieIntelligence.Zombie.Kombat.Speed ) ;
- if ( ZombieIntelligence.Zombie.Kombat.State.TargetingPlayer )
- {
- FollowTarget ( ) ;
- if ( ZombieIntelligence.Zombie.Kombat.Target.Distance > 7 )
- {
- ZombieIntelligence.Zombie.Kombat.State.Running = true ;
- ZombieIntelligence.Zombie.Kombat.State.Walking = false ;
- ZombieIntelligence.Zombie.Kombat.State.Attacking = false ;
- }else if ( ZombieIntelligence.Zombie.Kombat.Target.Distance > 3 )
- {
- ZombieIntelligence.Zombie.Kombat.State.Running = false ;
- ZombieIntelligence.Zombie.Kombat.State.Walking = true ;
- ZombieIntelligence.Zombie.Kombat.State.Attacking = false ;
- }
- }
- }
- function DamageFactor ( damage : float )
- {
- if ( ZombieIntelligence.Zombie.Kombat.Health < 0 ){
- Kill ( ) ;
- }else{
- var myForce : AddForce ;
- myForce = GetComponent ( AddForce ) ;
- myForce.addImpact ( Vector3.forward, 10 ) ;
- }
- ZombieIntelligence.Zombie.Kombat.Health -= damage * ( ZombieIntelligence.Zombie.Kombat.Defense / 100 );
- }
- function FollowTarget ( )
- {
- /*if ( ZombieIntelligence.Zombie.Kombat.Speed < ZombieIntelligence.Zombie.Kombat.WalkSpeed && ZombieIntelligence.Zombie.Kombat.State.Walking )
- {
- ZombieIntelligence.Zombie.Kombat.Speed += ZombieIntelligence.Zombie.Kombat.Velocity * Time.deltaTime ;
- }else if ( ZombieIntelligence.Zombie.Kombat.Speed < ZombieIntelligence.Zombie.Kombat.RunSpeed && ZombieIntelligence.Zombie.Kombat.State.Running )
- {
- ZombieIntelligence.Zombie.Kombat.Speed += ZombieIntelligence.Zombie.Kombat.Velocity * Time.deltaTime ;
- }*/
- if ( Mathf.Ceil ( ZombieIntelligence.Zombie.Kombat.Speed ) != 6 )
- {
- ZombieIntelligence.Zombie.Kombat.Speed += 1 * Time.deltaTime ;
- }
- var ZTarget = ZombieIntelligence.Zombie.Kombat.Target ; // Assign Target To ZTarget
- transform.position += transform.forward * ZombieIntelligence.Zombie.Kombat.Speed * Time.deltaTime; // Move Entity Toward Target
- transform.LookAt ( ZTarget.Object.transform ) ;
- ///transform.rotation = Quaternion.Slerp( Vector3.zero, Quaternion.LookRotation ( ZTarget.Object.transform.position - transform.position ), 3 * Time.deltaTime ); // Rotate Toward Target
- }
- function Attack ( AttackType : String )
- {
- switch ( AttackType )
- {
- case "Normal":
- break;
- }
- }
- function RunFromTarget ( )
- {
- var ZTarget = ZombieIntelligence.Zombie.Kombat ; // Assign Target To ZTarget
- transform.position += transform.forward * ZTarget.Speed * Time.deltaTime; // Move Entity Toward Target
- transform.rotation = Quaternion.Slerp( transform.rotation, Quaternion.LookRotation ( ZTarget.Target.Object.transform.position + transform.position ), 3 * Time.deltaTime ); // Rotate Toward Target
- }
- function OnCollisionEnter ( collision : Collision )
- {
- Debug.LogError(collision.collider.tag);
- switch ( collision.collider.tag ) // Read From Collisions
- {
- case "Player": // Case Collider = Player
- ZombieIntelligence.Zombie.Kombat.Speed = 0 ;
- ZombieIntelligence.Zombie.Kombat.State.Attacking = true; // Zombie State -> Attacking = true
- ZombieIntelligence.Zombie.Kombat.State.Running = false ; // Zombie State -> Running = false
- ZombieIntelligence.Zombie.Kombat.State.Walking = false ; // Zombie State -> Walking = false
- ZombieIntelligence.Zombie.Kombat.State.TargetingPlayer = false ;
- ZombieIntelligence.Zombie.Kombat.Speed = 0;
- break;
- }
- }
- function OnCollisionExit ( collision : Collision )
- {
- switch ( collision.collider.tag ) // Read From Collisions
- {
- case "Player": // Case Collider = Player
- ZombieIntelligence.Zombie.Kombat.State.Attacking = false; // Zombie State -> Attacking = false
- ZombieIntelligence.Zombie.Kombat.State.Running = false ; // Zombie State -> Running = false
- ZombieIntelligence.Zombie.Kombat.State.Walking = true ; // Zombie State -> Walking = true
- ZombieIntelligence.Zombie.Kombat.State.TargetingPlayer = true ;
- break;
- }
- }
- function RecieveDamage ( damage : float )
- {
- ZombieIntelligence.Zombie.Kombat.Health -= damage * ( ZombieIntelligence.Zombie.Kombat.Defense / 100 );
- }
- function Kill ( )
- {
- var RandomVectorPosition = Vector3 ( Random.Range ( 0, 100 ), Random.Range ( 10, 15 ), Random.Range ( 0, 100 ) ) ;
- ZombieIntelligence.Zombie.Kombat.Health = 100 ;
- ZombieIntelligence.Zombie.Kombat.State.Attacking = false ;
- ZombieIntelligence.Zombie.Kombat.State.Idle = true ;
- var newInst = Instantiate ( gameObject, RandomVectorPosition, transform.rotation ) ; // Spawn New Zombie
- newInst.name = "Troll" ;
- GameObject.Destroy ( gameObject ) ; // Destroy Object
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement