Пример #1
0
    private void Move(StateController controller)
    {
        SStateController scon = (SStateController)controller;

        scon.thisTransform.position = scon.GetRandomLocation();
        scon.startPosition          = scon.thisTransform.position;
    }
Пример #2
0
    /// <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);
    }