Exemple #1
0
    void LoadData()
    {
        GameVariable     auxVar;
        GamePercentGroup auxGroup;
        Action           auxAction;

        VariablesHelper.baseVariables.Clear();
        VariablesHelper.groupVariables.Clear();
        VariablesHelper.actions.Clear();
        VariablesHelper.actionsAppearences.Clear();

        //Indexes for variables
        //CO2 -> 0
        //population -> 1
        //food -> 2
        //happiness -> 3

        auxVar = new GameVariable("CO2", "kilotons", 2000, 0, 500000, -500000);
        auxVar.maxConsequence.isGameOver = true;
        auxVar.minConsequence.isGameOver = false;
        VariablesHelper.baseVariables.Add(auxVar);
        CO2Index = 0;

        auxVar = new GameVariable("Population", "persons", 500, 0.1f, 4000, 0);
        //eat food
        auxVar.AddAction(2, -0.5f);
        auxVar.maxConsequence.isGameOver = false;
        auxAction = new Action("People too cramped, unhappy!");
        auxAction.AddVariableAction(3, -20);
        auxVar.maxConsequence.AddConsequenceActions(auxAction);
        auxVar.minConsequence.isGameOver = true;
        VariablesHelper.baseVariables.Add(auxVar);

        auxVar = new GameVariable("Food", "kg", 5000, 0, 6000, 2000);
        auxVar.maxConsequence.isGameOver = false;
        auxAction = new Action("People unhappy we are trowing away food!");
        auxAction.AddVariableAction(3, -20);
        auxVar.maxConsequence.AddConsequenceActions(auxAction);
        auxVar.minConsequence.isGameOver = false;
        auxAction = new Action("People migrate out of country because of starvation!");
        auxAction.AddVariableAction(1, -20);
        auxVar.minConsequence.AddConsequenceActions(auxAction);
        auxAction = new Action("People unhappy because of starvation!");
        auxAction.AddVariableAction(3, -20);
        auxVar.minConsequence.AddConsequenceActions(auxAction);
        VariablesHelper.baseVariables.Add(auxVar);

        auxVar = new GameVariable("Happiness", "%", 60, 0, 100, 0);
        auxVar.minConsequence.isGameOver = true;
        auxVar.maxConsequence.isGameOver = false;
        VariablesHelper.baseVariables.Add(auxVar);

        auxGroup = new GamePercentGroup();
        auxVar   = new GameVariable("City Land", "m2", 10, 40, 100, 0);
        auxVar.minConsequence.isGameOver = true;
        auxVar.maxConsequence.isGameOver = true;
        auxGroup.AddToGroup(auxVar);
        auxVar = new GameVariable("Farming Land", "m2", 30, 60, 100, 0);
        auxVar.minConsequence.isGameOver = true;
        auxVar.maxConsequence.isGameOver = true;
        auxVar.AddAction(2, 1.0f);
        auxGroup.AddToGroup(auxVar);
        auxVar = new GameVariable("Forest", "m2", 40, -2000, 100, 0);
        auxVar.minConsequence.isGameOver = true;
        auxVar.maxConsequence.isGameOver = true;
        auxGroup.AddToGroup(auxVar);
        auxVar = new GameVariable("Sea", "m2", 20, 0, 100, 0);
        auxVar.minConsequence.isGameOver = true;
        auxVar.maxConsequence.isGameOver = true;
        auxGroup.AddToGroup(auxVar);
        VariablesHelper.groupVariables.Add(auxGroup);

        //add actions to action vector
        auxAction = new Action("Increase city land");
        auxAction.AddGroupAction(0, 2, 0, 20);
        auxAction.AddVariableAction(1, 10);
        VariablesHelper.actions.Add(auxAction);
        VariablesHelper.actionsAppearences.Add(0);

        auxAction = new Action("Add farming land");
        auxAction.AddGroupAction(0, 2, 1, 10);
        VariablesHelper.actions.Add(auxAction);
        VariablesHelper.actionsAppearences.Add(0);

        auxAction = new Action("Turn farming land to forest");
        auxAction.AddGroupAction(0, 1, 2, 30);
        VariablesHelper.actions.Add(auxAction);
        VariablesHelper.actionsAppearences.Add(0);

        auxAction = new Action("Increase farming and city land");
        auxAction.AddGroupAction(0, 2, 1, 40);
        auxAction.AddGroupAction(0, 2, 0, 20);
        VariablesHelper.actions.Add(auxAction);
        VariablesHelper.actionsAppearences.Add(0);

        auxAction = new Action("Organize big party on your city");
        auxAction.AddVariableAction(0, 400);
        auxAction.AddVariableAction(3, 20);
        VariablesHelper.actions.Add(auxAction);
        VariablesHelper.actionsAppearences.Add(0);

        //add CO2 cycle Action for all variables
        foreach (GameVariable var in VariablesHelper.baseVariables)
        {
            var.AddAction(CO2Index, var.CalculateCO2());
        }
        foreach (GamePercentGroup var in VariablesHelper.groupVariables)
        {
            foreach (GameVariable varVar in var.variables)
            {
                varVar.AddAction(CO2Index, varVar.CalculateCO2());
            }
        }
    }