Exemplo n.º 1
0
    private void MovePositionObjectDraggedToMap()
    {
        Map_manager map = GetComponent <Map_manager>();

        if (Input.GetMouseButtonUp(0))
        {
            if ((_ObjectDragged != null) && (map.CurrentMap != null))
            {
                int num_positions = map.CurrentMap.GetComponent <District>().CurrentPosition;
                //checkear si puedes añadir tropas
                if (num_positions < map.CurrentMap.GetComponent <District>().MaxPutPositions)

                {
                    //colocar tropa
                    _ObjectDragged.transform.position = map.CurrentMap.GetComponent <District>().AttachPositions[num_positions].transform.position;
                    //aumentar numero de tropa
                    _ObjectDragged.tag = "Colocadas";
                    map.CurrentMap.GetComponent <District>().CurrentPosition++;
                    //Identificar agente
                    AgentInfo agentInfo = _ObjectDragged.GetComponent <AgentInfo>();

                    //Aumentar el contador en distrito
                    map.CurrentMap.GetComponent <District>().incrementAgent(agentInfo);


                    DataDistrict Ddistrict = GameMngr.Instance.GetDataDistric()[map.CurrentMap.GetComponent <District>().IdDistrict];
                    Ddistrict.hacker   = map.CurrentMap.GetComponent <District>().HackerCount;
                    Ddistrict.spy      = map.CurrentMap.GetComponent <District>().SpyCount;
                    Ddistrict.speecher = map.CurrentMap.GetComponent <District>().SpeecherCount;
                    //GameMngr.Instance.setDataDistrict(map.CurrentMap.GetComponent<District>().IdDistrict, new DataDistrict();

                    DataDistrict Dddistrict = GameMngr.Instance.GetDataDistric()[map.CurrentMap.GetComponent <District>().IdDistrict];

                    Debug.Log("numero de agentes: " + GameMngr.Instance.GetDataDistric()[map.CurrentMap.GetComponent <District>().IdDistrict]);

                    GameMngr.Instance.MaxTroops--;
                }
                else
                {
                    _ObjectDragged.SetActive(false);
                    //GameMngr.Instance.MaxTroops++;
                }

                //TODO: destruir tropa
            }
        }
    }
Exemplo n.º 2
0
    public void Defeat(int i)
    {
        DataDistrict Ddistrict = GameMngr.Instance.GetDataDistric()[i];

        //eliminar 1 tropa del general
        GameMngr.Instance.MaxTroops--;
        //Auxiliar data for results
        GameMngr.Instance.AgentsLost++;
        //Regresar las tropas restantes
        GameMngr.Instance.GetDataDistric()[i].infiltrado = false;
        //aumenta derrota
        Ddistrict.defeats++;
        //Auxiliar data for results
        GameMngr.Instance.PreviousAfiliateNumber = GameMngr.Instance.AfiliateNumber;
        //- 500 poblacion
        GameMngr.Instance.AfiliateNumber -= 500;
        //Auxiliar data for results
        GameMngr.Instance.FailedMissions++;

        if ((num_defeats > 25) || (GameMngr.Instance.AfiliateNumber <= 0))
        {
            Panel_derrrota.SetActive(true);
        }
    }
Exemplo n.º 3
0
 public void setDataDistrict(int district, DataDistrict data)
 {
     DataDistrict[district] = data;
 }
Exemplo n.º 4
0
    public void CheckSuccess()
    {
        float exito_total = 100;

        for (int i = 0; i < GameMngr.Instance.GetDataDistric().Length; i++)
        {
            DataDistrict Ddistrict = GameMngr.Instance.GetDataDistric()[i];
            if ((Ddistrict.speecher + Ddistrict.spy + Ddistrict.hacker) > 0)
            {
                float fallo_base = GameMngr.Instance.getBasedifficulty();
                //correcion base por difcultad
                switch (Ddistrict.Difficult)
                {
                case Enumdata.Influence.easy:
                    fallo_base = GameMngr.Instance.getBasedifficulty();
                    break;

                case Enumdata.Influence.average:
                    fallo_base *= 2;
                    break;

                case Enumdata.Influence.hard:
                    fallo_base *= 3;
                    break;

                default:
                    break;
                }
                // calculo de colocacion correcta
                float bonus_colocacion_correcta, colocados = 0;
                float max_agents = Ddistrict.MaxAgents;

                switch (GameMngr.Instance.GetDataDistric()[i].Mission)
                {
                case Enumdata.MissionType.rescue:
                    colocados = Ddistrict.hacker / max_agents;

                    break;

                case Enumdata.MissionType.inflitration:
                    colocados = Ddistrict.spy / max_agents;

                    break;

                case Enumdata.MissionType.propaganda:
                    colocados = Ddistrict.speecher / max_agents;

                    break;
                    //default:
                    //    colocados = 0;
                    //    break;
                }

                bonus_colocacion_correcta = fallo_base - (colocados * fallo_base);

                float segundafase = fallo_base * (1 - ((Ddistrict.speecher + Ddistrict.spy + Ddistrict.hacker) / max_agents));

                float exito = exito_total - bonus_colocacion_correcta - segundafase;
                Ddistrict.CurrectSuccess = exito;

                if (Ddistrict.infiltrado)
                {
                    Ddistrict.CurrectSuccess += 10;
                }

                //calcular si hay victoria
                float result = Random.Range(0.0f, 100.0f);
                if (result <= Ddistrict.CurrectSuccess)
                {
                    //vistoriaaa
                    Success(i);
                }
                else
                {
                    //derrota
                    Defeat(i);
                }

                //Devolver tropas
                GameMngr.Instance.MaxTroops += GameMngr.Instance.GetDataDistric()[i].speecher + GameMngr.Instance.GetDataDistric()[i].spy + GameMngr.Instance.GetDataDistric()[i].hacker;
            }
            else
            {
                Ddistrict.CurrectSuccess = 0;
            }
        }
        GameMngr.Instance.GetDataDistric();
    }