Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma strict
- class ZombieEntityTarget {
- var Object : GameObject ; // Target.GameObject
- var Distance : float ; // Target Distance
- var Intelligence : ZombieAI ;
- }
- class KombatIntelligence{
- var AttackDelay : float ; // Entity Delay Between Attacks
- var Defense : float = 5 ; // Entity Defense
- var Health : float = 100 ; // Entity Health
- var Strength : float = 10 ; // Entity Attack Power
- var Speed : float = 0 ; // Entity Current Speed
- var RunSpeed : float = 3.5 ; // Entity Run Speed
- var WalkSpeed : float = 2.0 ;
- var StateSpeed : float = 0 ;
- var Velocity : float = 1.0 ;
- var Stunned : boolean = false ;
- var State : ZombieState ; // Entity States
- var Target : ZombieEntityTarget = null ; // Target Intelligence
- }
- class ZombieState {
- var Attacking : boolean = false ;
- var Idle : boolean = true;
- var Running : boolean = false ;
- var Walking : boolean = false ;
- var Infected : boolean = true ;
- var TargetingPlayer : boolean = false ;
- var Dying : boolean = false ;
- }
- class ZombieClass {
- var Name : String ;
- var UniqueID : String ; // Unique ID 'STRING' for Individual Zombies
- var UID : int ; // Unique ID 'NUMBER'
- var Kombat : KombatIntelligence ;
- }
- var Zombie : ZombieClass ;
- function Start () {
- Zombie.Kombat.Target.Object = GameObject.Find ( "Player" ) ; // Set Game Object To Player
- Zombie.Kombat.State.TargetingPlayer = true ; // Zombie State -> TargetingPlayer = true
- Zombie.UniqueID = gameObject.tag ;
- Zombie.UID = Random.Range ( 1, 100 ) * Random.Range( 1, 9 ) + Random.Range ( 10, 1000 ) ; // Give it Random Unique ID
- Zombie.Kombat.Target.Object = GameObject.Find("Player");
- }
- function LearnFrom ( objectToLearnFrom : String )
- {
- switch ( objectToLearnFrom )
- {
- case "Target":
- if ( Zombie.Kombat.Target.Object != null )
- {
- 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 )
- }
- break ;
- default:
- if ( objectToLearnFrom == "" )
- {
- Zombie.Kombat.Target.Object = null ; // Prevent Reference Exceptions
- }else{
- Zombie.Kombat.Target.Distance = ( transform.position - GameObject.Find(objectToLearnFrom).transform.position ).sqrMagnitude * (GameObject.Find(objectToLearnFrom).transform.position ).sqrMagnitude ; // Get Distance From Target
- }
- break;
- }
- }
- function LearnFromSelf ( )
- {
- if ( Zombie.Kombat.State.Walking )
- {
- Zombie.Kombat.StateSpeed = Zombie.Kombat.WalkSpeed ;
- }else if ( Zombie.Kombat.State.Running ){
- Zombie.Kombat.StateSpeed = Zombie.Kombat.RunSpeed ;
- }else if ( Zombie.Kombat.State.Attacking ){
- } Zombie.Kombat.StateSpeed = 0 ;
- }
- function Update () {
- LearnFrom ( "Target" ) ; // Learn From Target
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement