Example #1
0
 public void Initialize(EnemyBirth birth)
 {
     Relocation2D(birth.origin);
     transform.Translate(Vector3.right * birth.radius, Space.World);
     transform.RotateAround(Vector3.zero, transform.up, birth.angle + 90f * birth.region);
     LookAt2D(Vector3.zero);
     centerLine    = transform.position;
     speed         = birth.speed;
     amplitude     = birth.amplitude;
     hitpoints     = birth.hitpoints;
     attack        = birth.attack;
     score         = birth.score;
     movingPattern = birth.movingPattern;
     right         = transform.right;
     forward       = transform.forward;
     if (GameController.enemyInward)
     {
         center = GameObject.Find("Center").transform;
     }
     else
     {
         Transform target = GameObject.Find("Drum" + Random.Range(1, 5)).transform;
         circleCenter   = 0.5f * (target.position + birth.origin);
         circleCenter.y = 0f;
         LookAt2D(circleCenter);
         int dir = GameController.RollOne();
         rb = GetComponent <Rigidbody>();
         rb.AddForce(dir * speed * transform.right, ForceMode.VelocityChange);
         circleRadius = (birth.origin - circleCenter).magnitude;
         noDamage     = true;
         Invoke("ResetNoDamage", 2f);
     }
 }
Example #2
0
	public void MultipliedBy(LevelModifier modifier) {
		speed *= modifier.speed;
		amplitude *= modifier.amplitude;
		hitpoints *= modifier.hitpoint;
		attack =(int)(attack * modifier.attack);
		score *= modifier.score;
		movingPattern = modifier.movingPattern;
	}
Example #3
0
 public void MultipliedBy(LevelModifier modifier)
 {
     speed        *= modifier.speed;
     amplitude    *= modifier.amplitude;
     hitpoints    *= modifier.hitpoint;
     attack        = (int)(attack * modifier.attack);
     score        *= modifier.score;
     movingPattern = modifier.movingPattern;
 }
Example #4
0
 public void BecomeFrightened()
 {
     IsFrightened   = true;
     movingPattern  = MovingPattern.Frightened;
     Speed          = 15;
     material       = frightenedMaterial;
     targetNode     = currentNode;
     targetPosition = targetNode.transform.position;
     Invoke("BecomeUnfrightened", FrightenedTimer);
 }
Example #5
0
 public void ChangeMovingPattern()
 {
     if (movingPattern == MovingPattern.Chase)
     {
         movingPattern = MovingPattern.Scatter;
     }
     else if (movingPattern == MovingPattern.Scatter)
     {
         movingPattern = MovingPattern.Chase;
     }
     else if (!IsFrightened)
     {
         movingPattern = MovingPattern.Chase;
     }
 }
Example #6
0
	public void Initialize(EnemyBirth birth){
		Relocation2D(Vector3.zero);
		transform.Translate(transform.right * GameController.tableRadius, Space.World);
		transform.RotateAround(Vector3.zero, transform.up, birth.angle + 90f * birth.region);
		LookAt2D(Vector3.zero);
		centerLine = transform.position;
		speed = birth.speed;
		amplitude = birth.amplitude;
		hitpoints = birth.hitpoints;
		attack = birth.attack;
		score = birth.score;
		movingPattern = birth.movingPattern;
		right = transform.right;
		forward = transform.forward;
	}
Example #7
0
 public void Initialize(EnemyBirth birth)
 {
     Relocation2D(Vector3.zero);
     transform.Translate(transform.right * GameController.tableRadius, Space.World);
     transform.RotateAround(Vector3.zero, transform.up, birth.angle + 90f * birth.region);
     LookAt2D(Vector3.zero);
     centerLine    = transform.position;
     speed         = birth.speed;
     amplitude     = birth.amplitude;
     hitpoints     = birth.hitpoints;
     attack        = birth.attack;
     score         = birth.score;
     movingPattern = birth.movingPattern;
     right         = transform.right;
     forward       = transform.forward;
 }
Example #8
0
	// must be called
	public void Initialize(float angle, 
	                       MovingPattern moving, 
	                       int region,
	                       float speed, 
	                       float amplitude,
	                       float hitpoints,
	                       int attack,
	                       int score){
		Relocation2D(Vector3.zero);
		transform.Translate(transform.right * GameController.tableRadius, Space.World);
		transform.RotateAround(Vector3.zero, transform.up, angle + 90f * region);
		LookAt2D(Vector3.zero);
		centerLine = transform.position;
		this.speed = speed;
		this.amplitude = amplitude;
		this.hitpoints = hitpoints;
		this.attack = attack;
		this.score = score;
		movingPattern = moving;
		right = transform.right;
		forward = transform.forward;
	}
Example #9
0
    void GenerateEnemy(float angle          = 0f,
                       MovingPattern moving = MovingPattern.STRAIGHT,
                       int region           = 0,
                       float speed          = 3f,
                       float amplitude      = 4f,
                       float hitpoints      = 100,
                       int attack           = basicAttack,
                       int score            = basicScore)
    {
        int enemyLevel = RollEnemyLevel();
        var modifier   = levelModifiers[enemyLevel];
        var enemy      = Instantiate(modifier.prefab).GetComponent <Enemy>();

        enemy.transform.parent = enemies.transform;
        enemy.Initialize(angle,
                         modifier.movingPattern,
                         region,
                         speed * modifier.speed,
                         amplitude * modifier.amplitude,
                         (int)(hitpoints * modifier.hitpoint),
                         (int)(attack * modifier.attack),
                         score * modifier.score);
    }
Example #10
0
 // must be called
 public void Initialize(float angle,
                        MovingPattern moving,
                        int region,
                        float speed,
                        float amplitude,
                        float hitpoints,
                        int attack,
                        int score)
 {
     Relocation2D(Vector3.zero);
     transform.Translate(transform.right * GameController.tableRadius, Space.World);
     transform.RotateAround(Vector3.zero, transform.up, angle + 90f * region);
     LookAt2D(Vector3.zero);
     centerLine     = transform.position;
     this.speed     = speed;
     this.amplitude = amplitude;
     this.hitpoints = hitpoints;
     this.attack    = attack;
     this.score     = score;
     movingPattern  = moving;
     right          = transform.right;
     forward        = transform.forward;
 }
Example #11
0
	public void Initialize(EnemyBirth birth){
		Relocation2D(birth.origin);
		transform.Translate(Vector3.right * birth.radius, Space.World);
		transform.RotateAround(Vector3.zero, transform.up, birth.angle + 90f * birth.region);
		LookAt2D(Vector3.zero);
		centerLine = transform.position;
		speed = birth.speed;
		amplitude = birth.amplitude;
		hitpoints = birth.hitpoints;
		attack = birth.attack;
		score = birth.score;
		movingPattern = birth.movingPattern;
		right = transform.right;
		forward = transform.forward;
		if (GameController.enemyInward) {
			center = GameObject.Find("Center").transform;
		}
		else {
			Transform target = GameObject.Find ("Drum" + Random.Range (1,5)).transform;
			circleCenter = 0.5f * (target.position + birth.origin);
			circleCenter.y = 0f;
			LookAt2D(circleCenter);
			int dir = GameController.RollOne();
			rb = GetComponent<Rigidbody>();
			rb.AddForce(dir * speed * transform.right, ForceMode.VelocityChange);
			circleRadius = (birth.origin - circleCenter).magnitude;
			noDamage = true;
			Invoke ("ResetNoDamage", 2f);
		}
	}
Example #12
0
	void GenerateEnemy(float angle = 0f, 
	                   MovingPattern moving = MovingPattern.STRAIGHT, 
	                   int region = 0,
	                   float speed = 3f, 
	                   float amplitude = 4f,
	                   float hitpoints = 100,
	                   int attack = basicAttack,
	                   int score = basicScore) {
		int enemyLevel = RollEnemyLevel();
		var modifier = levelModifiers[enemyLevel];
		var enemy = Instantiate(modifier.prefab).GetComponent<Enemy>();
		enemy.transform.parent = enemies.transform;
		enemy.Initialize(angle,
		                 modifier.movingPattern, 
		                 region, 
		                 speed * modifier.speed, 
		                 amplitude * modifier.amplitude, 
		                 (int)(hitpoints * modifier.hitpoint),
		                 (int)(attack * modifier.attack),
		                 score * modifier.score);
	}