예제 #1
0
	public void readyToCast(NinJaController entity){
		int idx = entityControllers.IndexOf (entity);
		if (idx == -1) {
			return;		
		}
		generalButtons [idx].isEnabled = true;
	}
예제 #2
0
파일: Buff.cs 프로젝트: ennuma/AssetsFolder
	public void attachTo(NinJaController entity, GameController ctrl)
	{
		parentController = entity;
		gameCtrl = ctrl;
		entity.addBuff (this);
		Begin ();
	}
예제 #3
0
	public override void setParentController(NinJaController p, GameController gCtrl)
	{
		parentController = p;
		gameCtrl = gCtrl;

		GameObject m1 = Instantiate (Resources.Load ("prefab/testMagic")) as GameObject;
		GameObject m2 = Instantiate (Resources.Load ("prefab/testMagic")) as GameObject;
		GameObject m3 = Instantiate (Resources.Load ("prefab/testMagic")) as GameObject;
		GameObject m4 = Instantiate (Resources.Load ("prefab/testMagic")) as GameObject;
		m1.transform.parent = transform;
		m2.transform.parent = transform;
		m3.transform.parent = transform;
		m4.transform.parent = transform;
		//Debug.Log()
		MagicController mc1 = m1.GetComponent<MagicController> () as MagicController;
		MagicController mc2 = m2.GetComponent<MagicController> () as MagicController;
		MagicController mc3 = m3.GetComponent<MagicController> () as MagicController;
		MagicController mc4 = m4.GetComponent<MagicController> () as MagicController;
		subMagics.Add (mc1);
		subMagics.Add (mc2);
		subMagics.Add (mc3);
		subMagics.Add (mc4);
		mc1.gameObject.SetActive (false);
		mc2.gameObject.SetActive (false);
		mc3.gameObject.SetActive (false);
		mc4.gameObject.SetActive (false);
		foreach (MagicController mc in subMagics) {
			mc.setParentController(p,gCtrl);		
		}
	}
예제 #4
0
	public void attackEnemyControllerRange(NinJaController from, NinJaController to)
	{
		GameObject dart = Instantiate (Resources.Load ("prefab/darts")) as GameObject;
		dart.transform.position = from.transform.Find ("rangeAttackPoint").transform.position;
		rangeBullet rb = dart.GetComponent<rangeBullet> ();
		rb.target = to;
		rb.owner = from;
		//to.takeDamageFromEnemy (from);
	}
예제 #5
0
	public NinJaController getTargetEnemyForEntity(NinJaController me){
		NinJaController ret = null;
		float minDis = 9999;

		List<NinJaController> enemySide;
		if (me.side == Side.leftSide) {			
			enemySide = rightEntities;		
		} else {
			enemySide = leftEntities;		
		}
		foreach (NinJaController temp in enemySide) {
			if(temp.side == me.side){
				continue;
			}
			float currentDis = Vector3.Distance(me.transform.position, temp.transform.position);
			if(currentDis<minDis){
				minDis = currentDis;
				ret = temp;
			}
		}

		return ret;
	}
예제 #6
0
	public void entityDead(NinJaController entity){
		Debug.Log("dead");
		int a = leftEntities.IndexOf (entity);
		if (a != -1) {
			leftEntities.RemoveAt(a);		
		}
		int b = rightEntities.IndexOf (entity);
		if (b != -1) {
			rightEntities.RemoveAt(b);		
		}
		entity.renderer.sortingOrder = -99;
	}
예제 #7
0
	public void attackEnemyController(NinJaController from, NinJaController to)
	{
		to.takeDamageFromEnemy (from);
	}
예제 #8
0
	public void finishCast(NinJaController entity){
		//nothing need to do now
	}
예제 #9
0
	public void readyToCast(NinJaController entity){
		uiCtrl.readyToCast (entity);
	}
예제 #10
0
	protected virtual void onFindHandler(){
		if (tryCastMagic ()) {
			//ctrl.pauseForSeconds (1.0f);
			//state = State.Cast;
			return;
		}

		if (!targetEnemy||targetEnemy.isDead) {
			targetEnemy = ctrl.getTargetEnemyForEntity (this);
		}
		if (targetEnemy == null) {
			Debug.Log("victory");
			onIdle();
			//ctrl.pauseAllEntityAndMagic();
			return;
		}
		float distance = Vector2.Distance (targetEnemy.transform.position, transform.position);
		Vector2 nextPos = Vector2.Lerp (transform.position, targetEnemy.transform.position, velocity*Time.deltaTime / distance);
		rigidbody2D.MovePosition (nextPos);
		//Debug.Log (nextPos);
		if (nextPos.x > transform.position.x&&!isFacingRight) {
			flipFacing();
		} else if(nextPos.x < transform.position.x&&isFacingRight){
			flipFacing();
		}
		onMove ();
	}
예제 #11
0
	void OnCollisionStay2D(Collision2D coll){
		if (coll.gameObject.tag != "entity") {
			//Debug.Log("magic col");
			return;		
		}
		if (state == State.Wild) {//wild state cannot attack
			return;		
		}
		NinJaController colliderContoller = coll.gameObject.GetComponent(typeof(NinJaController)) as NinJaController;
		if (isEnemy (colliderContoller)) {
			targetEnemy = colliderContoller;
			state = State.Fight;
		}
	}
예제 #12
0
	public void setBetray(bool b)
	{
		if (b) {
			if(side==GameController.Side.leftSide){
				side = GameController.Side.rightSide;
				//int idx = ctrl.leftEntities.IndexOf(this);
				ctrl.leftEntities.Remove(this);
				ctrl.rightEntities.Add(this);
			}else{
				side = GameController.Side.leftSide;
				ctrl.rightEntities.Remove(this);
				ctrl.leftEntities.Add(this);
			}
			targetEnemy = null;
		}else{
			if(side==GameController.Side.leftSide){
				side = GameController.Side.rightSide;
				//int idx = ctrl.leftEntities.IndexOf(this);
				ctrl.leftEntities.Remove(this);
				ctrl.rightEntities.Add(this);
			}else{
				side = GameController.Side.leftSide;
				ctrl.rightEntities.Remove(this);
				ctrl.leftEntities.Add(this);
			}
			targetEnemy = null;
		}
	}
예제 #13
0
	protected void onFight(){
		animator.SetBool ("setAttack", true);
		attackTarget = targetEnemy;
		isFighting = true;

		//trigger passive here
		foreach (PassiveSkill skl in passiveSkillList) {
			if(skl.phase == PassiveSkill.Phase.Attack)
			{
				skl.activeSkill(attackTarget);
			}
		}
	}
예제 #14
0
	protected virtual void attackCallBackFunc(){
		animator.SetBool ("setAttack", false);
		isFighting = false;
		ctrl.attackEnemyController (this, attackTarget);
		targetEnemy = null;
		attackTarget = null;
		if (state == State.Fight) {
			state = State.Find;
		}
	}
예제 #15
0
	public void takeDamageFromEnemy(NinJaController other){
		float dechealth = other.attack;
		dechealth *= physicalHurtMultiplier;
		health = (int)(health - dechealth);
		//=--------------------------------
		//trigger passive skill
		foreach (PassiveSkill skl in passiveSkillList) {
			if(skl.phase == PassiveSkill.Phase.Defend)
			{
				skl.activeSkill(other);
			}
		}
		//--------------------------------
		updateHealthBar ();
		if (health <= 0) {
			state = State.Dead;	
			//==========================
			//trigger passive skill
			foreach (PassiveSkill skl in passiveSkillList) {
				if(skl.phase == PassiveSkill.Phase.Dead)
				{
					skl.activeSkill(null);
				}
			}
			//===========================
		}
	}
예제 #16
0
	public virtual void setParentController(NinJaController p, GameController gCtrl)
	{
		//Debug.Log("there");
		parentController = p;
		gameCtrl = gCtrl;
	}
예제 #17
0
	public void dettachBuffFromEntityController(Buff buff, NinJaController entity)
	{
		buffDeleteList.Add (buff);
	}
예제 #18
0
	public void attachBuffToEntityController(Buff buff, NinJaController entity)
	{
		buff.attachTo (entity, this);
	}
예제 #19
0
	protected bool isEnemy(NinJaController other)
	{
		//Debug.Log (other.gameObject.tag);
		if (side == other.side) {
			return false;
		}
		return true;
	}