Ejemplo n.º 1
0
    void OnTriggerEnter2D(Collider2D col)
    {
        switch (Caster)
        {
        case EntityType.Player:
            if (col.gameObject.CompareTag("Enemy") && !_hitted)
            {
                _hitted = true;
                _particlePool.GetParticle().transform.position = col.gameObject.transform.position;
                GameEntityController gec = col.gameObject.GetComponent <GameEntityController>();
                gec.DecrementHealth(_damage);
                _pool.FreeBullet(BulletType, gameObject);
            }

            break;

        case EntityType.Enemy:
            if (col.gameObject.CompareTag("Player") && !_hitted)
            {
                _hitted = true;
                _particlePool.GetParticle().transform.position = col.gameObject.transform.position;
                PlayerController pc = col.gameObject.GetComponent <PlayerController>();
                pc.DecrementHealth(_damage);
                _pool.FreeBullet(BulletType, gameObject);
            }

            break;
        }
    }
Ejemplo n.º 2
0
 void Awake()
 {
     settings = Settings.Instance();
     util = Util.Instance;
     gameEntityController = gameObject.GetComponent<GameEntityController>() as GameEntityController;
     inputController = gameObject.GetComponent<IGameEntityInput>() as IGameEntityInput;
     networkFields = gameObject.GetComponent<NetworkFields>() as NetworkFields;
 }
Ejemplo n.º 3
0
 void Awake()
 {
     gameEntityController = gameObject.GetComponent <GameEntityController>() as GameEntityController;
     inputController      = gameObject.GetComponent <IGameEntityInput>() as IGameEntityInput;
     networkFieldsDb.GetData();
     networkFieldsDef = networkFieldsDb.Clone();
     networkFieldsDef.Init();
 }
Ejemplo n.º 4
0
    public virtual Vector2[] GetShoot(PlayerController player, GameEntityController shot)
    {
        Vector2 v = Vector2DistanceObjectToPlayer(player.transform.position, shot.transform.position);

        Vector2[] m = new Vector2[1];
        m [0] = v;
        return(m);
    }
Ejemplo n.º 5
0
 void Awake()
 {
     gameEntityController = gameObject.GetComponent<GameEntityController>() as GameEntityController;
     inputController = gameObject.GetComponent<IGameEntityInput>() as IGameEntityInput;
     networkFieldsDb.GetData();
     networkFieldsDef = networkFieldsDb.Clone();
     networkFieldsDef.Init();
 }
Ejemplo n.º 6
0
    public override Vector2[] GetShoot(PlayerController player, GameEntityController shot)
    {
        array_distancia = new Vector2[num_disparos];
        Vector2 lookAt = new Vector2(player.transform.position.x - shot.transform.position.x,
                                     player.transform.position.y - shot.transform.position.y).normalized;

        for (int i = 0; i < num_disparos; i++)
        {
            array_distancia[i] = Rotate(lookAt, (i - num_disparos / 2) * 22.5f);
        }

        return(array_distancia);
    }
Ejemplo n.º 7
0
    public override Vector3 GetMovement(PlayerController player, GameEntityController enemy)
    {
        Vector3 position_with_radio = player.transform.position;
        Vector3 distancia           = player.transform.position - enemy.transform.position;

        if (distancia.magnitude < RadioInterno)
        {
            return(-distancia.normalized);
        }
        else if (distancia.magnitude > RadioExterno)
        {
            return(distancia.normalized);
        }
        else
        {
            return(MathUtils.Rotate(distancia.normalized, 90) * 2f / 3f);
        }
    }
Ejemplo n.º 8
0
    private void UpdateShadow(GameEntityModel model, GameObject entityObject)
    {
        GameObject       shadowObj  = CharacterLoader.GetCharacterShadow(model, entityObject);
        PhysicPointModel pointModel = GameEntityController.GetPointModel(model);

        if (shadowObj == null || pointModel == null)
        {
            return;
        }

        Vector3 newShadowPosition;

        if (pointModel.collisionInpact.Y < 0)
        {
            newShadowPosition = pointModel.position.AsVector3();
        }
        else
        {
            // Raycast on physics
            WorldModel world = StateManager.state.MainModel as WorldModel;
            if (world == null)
            {
                return;
            }
            PhysicWorldModel physicsModel = StateManager.state.GetModel(world.physicsModelId) as PhysicWorldModel;
            if (physicsModel == null)
            {
                return;
            }
            PhysicWorldController physicsController = physicsModel.Controller() as PhysicWorldController;
            if (physicsController == null)
            {
                return;
            }

            PhysicPointModel entityPoint  = GameEntityController.GetPointModel(model);
            FixedVector3     intersection = physicsController.Raycast(physicsModel, entityPoint.position, FixedVector3.Down);

            newShadowPosition = intersection.AsVector3();
        }
        // TODO: coordinates conversion from a setup file
        shadowObj.transform.position      = PhysicPoint2DView.ConvertGameToViewCoordinates(newShadowPosition);
        shadowObj.transform.localPosition = new Vector3(0, shadowObj.transform.localPosition.y, 0.02f);
    }
Ejemplo n.º 9
0
    public override Vector2[] GetShoot(PlayerController player, GameEntityController shot)
    {
        int num_disparos = 20;

        Vector2[] array_distancia = new Vector2[num_disparos];
        Vector2   lookAt          = new Vector2(shot.transform.position.x, shot.transform.position.y).normalized;

        for (int i = 0; i < num_disparos; i++)
        {
            array_distancia [i] = Rotate(lookAt, (i - num_disparos / 2) * 22.5f);
        }
        array_distancia     = new Vector2[8];
        array_distancia [0] = new Vector2(Mathf.Sin(TimeCounter), Mathf.Cos(TimeCounter));
        array_distancia [1] = new Vector2(Mathf.Sin(TimeCounter + Mathf.PI / 2), Mathf.Cos(TimeCounter + Mathf.PI / 2));
        array_distancia [2] = new Vector2(Mathf.Sin(TimeCounter + Mathf.PI), Mathf.Cos(TimeCounter + Mathf.PI));
        array_distancia [3] = new Vector2(Mathf.Sin(TimeCounter + Mathf.PI * 3 / 2), Mathf.Cos(TimeCounter + Mathf.PI * 3 / 2));

        array_distancia [4] = new Vector2(Mathf.Sin(-TimeCounter), Mathf.Cos(-TimeCounter));
        array_distancia [5] = new Vector2(Mathf.Sin(-TimeCounter + Mathf.PI / 2), Mathf.Cos(-TimeCounter + Mathf.PI / 2));
        array_distancia [6] = new Vector2(Mathf.Sin(-TimeCounter + Mathf.PI), Mathf.Cos(-TimeCounter + Mathf.PI));
        array_distancia [7] = new Vector2(Mathf.Sin(-TimeCounter + Mathf.PI * 3 / 2), Mathf.Cos(-TimeCounter + Mathf.PI * 3 / 2));
        return(array_distancia);
    }
Ejemplo n.º 10
0
 public ReinaBrain(GameEntityController Game_entity_controller, InvokeEnemiesController Invoke_enemies_controller) : base(Game_entity_controller, Invoke_enemies_controller)
 {
 }
Ejemplo n.º 11
0
 public ReyBrain(GameEntityController Game_entity_controller, InvokeEnemiesController Invoke_enemies_controller)
 {
     GEC = Game_entity_controller;
     IEC = Invoke_enemies_controller;
 }
Ejemplo n.º 12
0
 public override Vector3 GetMovement(PlayerController player, GameEntityController enemy)
 {
     return(Vector3DistanceObjectToPlayer(player.transform.position, enemy.transform.position));
 }
Ejemplo n.º 13
0
    public override Vector3 GetMovement(PlayerController player, GameEntityController enemy)
    {
        if (_embiste)
        {
            if (TimeCounter < durada_embestir)
            {
                return(_aux_move);
            }
            else
            {
                //termina embestir
                _embiste = false;
                return(Vector3.zero);
            }
        }
        else
        {
            Vector3 position_with_radio = player.transform.position;
            Vector3 distancia           = player.transform.position - enemy.transform.position;
            if (distancia.magnitude < RadioEmbiste)
            {
                _embiste  = true;
                _aux_move = Vector3DistanceObjectToPlayer(player.transform.position, enemy.transform.position)
                            .normalized;
                TimeCounter = 0;
                return(_aux_move);
            }
            else
            {
                if (_embiste)
                {
                    _embiste  = false;
                    _vertical = true;
                    _aux_move = player.transform.position - enemy.transform.position;
                }

                if (_vertical)
                {
                    if (TimeCounter < durada_L)
                    {
                        _aux_move.x = 0;
                        if ((int)_aux_move.y == 0)
                        {
                            _aux_move.y = 2;
                        }

                        return(_aux_move.normalized);
                    }
                    else
                    {
                        //termina embestir
                        _vertical   = false;
                        _aux_move   = player.transform.position - enemy.transform.position;
                        TimeCounter = 0;
                        return(Vector3.zero);
                    }
                }
                else
                {
                    if (TimeCounter < durada_L)
                    {
                        _aux_move.y = 0;
                        if ((int)_aux_move.x == 0)
                        {
                            _aux_move.x = 2;
                        }

                        return(_aux_move.normalized);
                    }
                    else
                    {
                        //termina embestir
                        _vertical   = true;
                        _aux_move   = player.transform.position - enemy.transform.position;
                        TimeCounter = 0;
                        return(Vector3.zero);
                    }
                }
            }
        }
    }
Ejemplo n.º 14
0
 public override Vector3 GetMovement(PlayerController player, GameEntityController enemy)
 {
     return(Vector3.zero);
 }