private void Move(StateController controller) { SStateController scon = (SStateController)controller; scon.thisTransform.position = scon.GetRandomLocation(); scon.startPosition = scon.thisTransform.position; }
/// <summary> /// Creates an enemy for the spirit side of the battlefield. /// </summary> /// <param name="values"></param> /// <param name="group"></param> /// <param name="index"></param> private void CreateS(EnemyEntry values, EnemyGroup group) { if (!spawnTop) { return; } ggobjS = Instantiate(values.enemyModelS) as Transform; int side = Random.Range(0, 2); SStateController state = ggobjS.GetComponent <SStateController>(); HurtableEnemyScript hurt = ggobjS.GetComponent <HurtableEnemyScript>(); AttackScript attack = ggobjS.GetComponent <AttackScript>(); if (side == 0) { state.leftSide = true; } ggobjS.position = state.GetRandomLocation(); hurt.group = group; state.enemyid = enemyId; state.values = ScriptableObject.CreateInstance <EnemyEntry>(); state.values.CopyValues(values); group.top = hurt; group.sStateController = state; group.sTransform = ggobjS; group.sAttackScript = attack; }
public override void Attack(StateController controller, AttackScript attackScript) { if (!(controller is SStateController)) { Debug.LogError("Wrong controller user!"); return; } SStateController scon = (SStateController)controller; var shotTransform = Instantiate(attackScript.projectile) as Transform; Projectile projectile = shotTransform.GetComponent <Projectile>(); shotTransform.position = scon.thisTransform.position; MouseInformation info = new MouseInformation(); info.position1 = controller.thisTransform.position; info.setPosition2(controller.sPlayer.position); if (setRotation) { float rotation = info.rotationInternal * 180 / Mathf.PI; shotTransform.localRotation = Quaternion.AngleAxis(rotation, Vector3.forward); } projectile.isEnemy = true; projectile.multiHit = false; projectile.multiHit = attackScript.multihit; projectile.lifeTime = attackScript.lifeTime; projectile.SetDamage(attackScript.damage, 0, 1); projectile.SetMovement(attackScript.speed, info.rotationInternal); attackScript.bgui.effectList.Add(projectile); }