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()); } } }