Пример #1
0
 public RegularLevel(int currentWaterLevel, Dam dam)
 {
     WaterLevel = currentWaterLevel;
     lowerLever = 100;
     upperLever = 300;
     Dam        = dam;
 }
Пример #2
0
        public int Insert(Dam dam)
        {
            InsertCommand.Parameters["@DamID"].Value       = dam.DamID;
            InsertCommand.Parameters["@DamName"].Value     = dam.DamName;
            InsertCommand.Parameters["@Latitude"].Value    = dam.Latitude;
            InsertCommand.Parameters["@Longitude"].Value   = dam.Longitude;
            InsertCommand.Parameters["@Description"].Value = dam.Description;
            InsertCommand.Parameters["@Status"].Value      = dam.Status;


            int returnValue = -1;

            try
            {
                InsertCommand.Connection.Open();
                returnValue = (int)InsertCommand.ExecuteScalar();
            }
            catch (SqlException ex)
            {
                Logger.Write(ex);
            }
            finally
            {
                InsertCommand.Connection.Close();
            }
            return(returnValue);
        }
Пример #3
0
    /**
     * Attach a dam to this location
     *
     * @param dam The dam being placed in the level
     */
    public void AttachDam(Dam dam)
    {
        if (!inUse)
        {
            // Position the dam within hierarchy and game space to match the dam location
            Transform transform1;
            (transform1 = dam.transform).SetParent(transform.parent);
            var transform2 = transform;
            transform1.position   = transform2.position;
            transform1.rotation   = transform2.rotation;
            transform1.localScale = transform2.localScale;

            dam.Activate(dropOffBox);

            // The location is now in use and cannot be used by any other dam
            inUse = true;

            // Keep track of the dam for use later
            currentDam = dam;

            //print("Turn attached");

            //placementTurn = GameManager.Instance.Turn;
        }
        else
        {
            Debug.Log("Trying to attach dam to in-use location -- this line should not be reached!");
        }
    }
Пример #4
0
        public int Update(Dam dam)
        {
            UpdateCommand.Parameters["@ID"].Value          = dam.ID;
            UpdateCommand.Parameters["@DamID"].Value       = dam.DamID;
            UpdateCommand.Parameters["@DamName"].Value     = dam.DamName;
            UpdateCommand.Parameters["@Latitude"].Value    = dam.Latitude;
            UpdateCommand.Parameters["@Longitude"].Value   = dam.Longitude;
            UpdateCommand.Parameters["@Description"].Value = dam.Description;
            UpdateCommand.Parameters["@Status"].Value      = dam.Status;

            int returnValue = -1;

            try
            {
                UpdateCommand.Connection.Open();
                returnValue = UpdateCommand.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                Logger.Write(ex);
            }
            finally
            {
                UpdateCommand.Connection.Close();
            }
            return(returnValue);
        }
Пример #5
0
        protected void btnEdit_Click(object sender, EventArgs e)
        {
            DamTableAdapter DamTableAdapter = new DamTableAdapter();
            Dam             originalDam     = DamTableAdapter.GetDamByID(Convert.ToInt32(Request["DamID"]));

            Dam Dam = new Dam();

            if (IsValidData())
            {
                Dam.ID          = originalDam.ID;
                Dam.DamName     = txtDamName.Text.Trim();
                Dam.DamID       = Guid.NewGuid().ToString();
                Dam.Latitude    = txtLatitude.Text.Trim();
                Dam.Longitude   = txtLongitude.Text.Trim();
                Dam.Description = txtDescription.Text.Trim();
                Dam.Status      = "ACTIVE";


                if (DamTableAdapter.Update(Dam) > 0)
                {
                    ltlMessage.Text = "<div class=\"alert alert-success alert-dismissible\"><button type = \"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button> <h4><i class=\"icon fa fa-check\"></i> Alert!</h4> Sucessfully Updated <b>" + txtDamName.Text.Trim() + "</b>.</div>";
                    Response.Redirect("~/Dams/damlist.aspx");
                }
            }
        }
Пример #6
0
        public override void Run()
        {
            var dam = new Dam("Zapora Porabka (49.48.26N 19.12.07E)");

            dam.WaterIncreased(70);
            dam.WaterDecreased(100);
            dam.WaterIncreased(150);
            dam.WaterIncreased(200);
            dam.OpenEmergencyGate();
        }
Пример #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ltlMessage.Text = null;
            if (!IsPostBack)
            {
                DamTableAdapter DamTableAdapter = new DamTableAdapter();
                Dam             originalDam     = DamTableAdapter.GetDamByID(Convert.ToInt32(Request["DamID"]));

                txtDamName.Text     = originalDam.DamName;
                txtLatitude.Text    = originalDam.Latitude;
                txtLongitude.Text   = originalDam.Longitude;
                txtDescription.Text = originalDam.Description;
                ltlViewMap.Text     = "<iframe width=\"100%\" height=\"500\" src=\"https://maps.google.com/maps?width=100%&amp;height=500&amp;hl=en&amp;coord=" + txtLatitude.Text + "," + txtLongitude.Text + "&amp;q=" + txtDamName.Text + "+(" + txtDescription.Text + ")&amp;ie=UTF8&amp;t=&amp;z=14&amp;iwloc=B&amp;output=embed\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\"></iframe>";
            }
        }
Пример #8
0
 public string GetSrcInfo(string damid, string apihost)
 {
     if (!string.IsNullOrEmpty(damid))
     {
         List <Dam> dams = new List <Dam>();
         Dam        dam  = new Dam
         {
             ID            = damid,
             WebApiHostUrl = apihost
         };
         dams.Add(dam);
         DAMCommon.SetDams(dams);
     }
     return(Utilities.GetProcessID());
 }
Пример #9
0
    // Use this for initialization
    void Start()
    {
        GameObject damObject = new GameObject("Dam");

        damObject.transform.parent = transform;
        dam            = damObject.AddComponent <Dam>();
        dam.tilePrefab = (GameObject)Resources.Load("Cube");
        GameObject rlogObject = new GameObject("ReadLog");

        rlogObject.transform.parent = transform;
        rlog     = rlogObject.AddComponent <ReadLog>();
        rlog.dam = dam;
        rlog.prefabs.Add((GameObject)Resources.Load("Robot"));
        rlog.prefabs.Add((GameObject)Resources.Load("Battery"));
        rlog.prefabs.Add((GameObject)Resources.Load("Linemate"));
        rlog.prefabs.Add((GameObject)Resources.Load("Deraumere"));
        rlog.prefabs.Add((GameObject)Resources.Load("Sibur"));
        rlog.prefabs.Add((GameObject)Resources.Load("Mendiane"));
        rlog.prefabs.Add((GameObject)Resources.Load("Phiras"));
        rlog.prefabs.Add((GameObject)Resources.Load("Thystame"));
    }
Пример #10
0
 public void copyBoard(Board originalBoard)
 {
     for (int y = 0; y < 8; y++)
     {
         for (int x = 0; x < 8; x++)
         {
             Pjäs pjäs = originalBoard.Pjäser[y, x];
             if (pjäs == null)
             {
                 continue;
             }
             else if (pjäs is Bonde)
             {
                 Pjäser[y, x] = new Bonde(pjäs.färg);
             }
             else if (pjäs is Torn)
             {
                 Pjäser[y, x] = new Torn(pjäs.färg);
             }
             else if (pjäs is Häst)
             {
                 Pjäser[y, x] = new Häst(pjäs.färg);
             }
             else if (pjäs is Löpare)
             {
                 Pjäser[y, x] = new Löpare(pjäs.färg);
             }
             else if (pjäs is Kung)
             {
                 Pjäser[y, x] = new Kung(pjäs.färg);
             }
             else if (pjäs is Dam)
             {
                 Pjäser[y, x] = new Dam(pjäs.färg);
             }
         }
     }
 }
    /**
     * Attach a dam to this location
     */
    public void AttachDam(Dam dam)
    {
        if (!inUse)
        {
            // position the dam within hierarchy and game space to match the dam location
            dam.transform.SetParent(transform.parent);
            dam.transform.position   = transform.position;
            dam.transform.rotation   = transform.rotation;
            dam.transform.localScale = transform.localScale;

            dam.Activate(dropOffBox);

            // the location is now in use and cannot be used by any other dam
            inUse = true;

            // keep track of the dam for use later
            currentDam = dam;
        }
        else
        {
            Debug.Log("Trying to attach dam to in-use location -- this line should not be reached!");
        }
    }
Пример #12
0
    /*
     * Loads the game state of the turn in the list of saves to revert the game to
     */
    public static void LoadGame()
    {
        // The turn number from the Pause Menu UI slider that we want to revert the game to
        int turn = (int)GameManager.Instance.pauseMenu.turnSlider.value;

        // List counters for each kind of tower we are loading in
        int currentAngler  = 0;
        int currentRanger  = 0;
        int currentSealion = 0;
        int currentTower   = 0;

        // Clear all the existing towers
        foreach (TowerBase tower in GameManager.Instance.GetTowerList())
        {
            Destroy(tower.transform.parent.gameObject);
        }

        // Grab the save from turn - 1 as we start at turn 0, but the pause menu slider starts at 1
        Save loadSave = saves[turn - 1];

        // Loop through each saved tower and load them back into the scene appropriately
        foreach (int towerType in loadSave.towerTypes)
        {
            // NOTE: This can also be accomplished with a Swicth statement, but this seems more readable for little loss of performance
            // Angler
            if (towerType == 0)
            {
                GameObject  angler      = Instantiate(GameManager.Instance.GetTowerPrefabs()[0]);
                AnglerTower towerScript = angler.GetComponent <AnglerTower>();
                angler.transform.position   = new Vector3(loadSave.towerPositions[currentTower][0], loadSave.towerPositions[currentTower][1], loadSave.towerPositions[currentTower][2]);
                angler.transform.rotation   = Quaternion.Euler(loadSave.towerRotations[currentTower][0], loadSave.towerRotations[currentTower][1], loadSave.towerRotations[currentTower][2]);
                towerScript.turnPlaced      = loadSave.anglerPlaced[currentAngler];
                towerScript.fishCaught      = loadSave.caughtFish[currentAngler];
                towerScript.smallCatchRate  = loadSave.anglerCatchRates[currentAngler][0];
                towerScript.mediumCatchRate = loadSave.anglerCatchRates[currentAngler][1];
                towerScript.largeCatchRate  = loadSave.anglerCatchRates[currentAngler][2];
                currentTower++;
                currentAngler++;
            }
            // Ranger
            else if (towerType == 1)
            {
                GameObject  ranger      = Instantiate(GameManager.Instance.GetTowerPrefabs()[1]);
                RangerTower towerScript = ranger.GetComponent <RangerTower>();
                ranger.transform.position        = new Vector3(loadSave.towerPositions[currentTower][0], loadSave.towerPositions[currentTower][1], loadSave.towerPositions[currentTower][2]);
                ranger.transform.rotation        = Quaternion.Euler(loadSave.towerRotations[currentTower][0], loadSave.towerRotations[currentTower][1], loadSave.towerRotations[currentTower][2]);
                towerScript.turnPlaced           = loadSave.rangerPlaced[currentRanger];
                towerScript.slowdownEffectSmall  = loadSave.rangerRegulateRates[currentRanger][0];
                towerScript.slowdownEffectMedium = loadSave.rangerRegulateRates[currentRanger][1];
                towerScript.slowdownEffectLarge  = loadSave.rangerRegulateRates[currentRanger][2];
                currentTower++;
                currentRanger++;
            }
            // Sealion
            else if (towerType == 4)
            {
                GameObject   sealion     = Instantiate(GameManager.Instance.GetTowerPrefabs()[4]);
                SealionTower towerScript = sealion.GetComponent <SealionTower>();
                sealion.transform.position  = new Vector3(loadSave.towerPositions[currentTower][0], loadSave.towerPositions[currentTower][1], loadSave.towerPositions[currentTower][2]);
                sealion.transform.rotation  = Quaternion.Euler(loadSave.towerRotations[currentTower][0], loadSave.towerRotations[currentTower][1], loadSave.towerRotations[currentTower][2]);
                towerScript.turnPlaced      = loadSave.sealionAppeared[currentSealion];
                towerScript.maleCatchRate   = loadSave.sealionCatchRates[currentSealion][0];
                towerScript.femaleCatchRate = loadSave.sealionCatchRates[currentSealion][1];
                currentTower++;
                currentSealion++;
            }
            // Dam
            else if (towerType == 2)
            {
                GameObject dam         = Instantiate(GameManager.Instance.GetTowerPrefabs()[2]);
                Dam        towerScript = dam.GetComponent <Dam>();
                dam.transform.position = new Vector3(loadSave.towerPositions[currentTower][0], loadSave.towerPositions[currentTower][1], loadSave.towerPositions[currentTower][2]);
                dam.transform.rotation = Quaternion.Euler(loadSave.towerRotations[currentTower][0], loadSave.towerRotations[currentTower][1], loadSave.towerRotations[currentTower][2]);
                towerScript.turnPlaced = loadSave.damPlaced;
                currentTower++;
            }
            // Ladder
            else if (towerType == 3)
            {
                GameObject ladder      = Instantiate(GameManager.Instance.GetTowerPrefabs()[3]);
                DamLadder  towerScript = ladder.GetComponent <DamLadder>();
                ladder.transform.position = new Vector3(loadSave.towerPositions[currentTower][0], loadSave.towerPositions[currentTower][1], loadSave.towerPositions[currentTower][2]);
                ladder.transform.rotation = Quaternion.Euler(loadSave.towerRotations[currentTower][0], loadSave.towerRotations[currentTower][1], loadSave.towerRotations[currentTower][2]);
                towerScript.turnPlaced    = loadSave.ladderType;
                currentTower++;
            }
        }

        // Load in the generation of fish from this turn
        List <FishGenome> revertGeneration = new List <FishGenome>();

        /*
         * This is lengthy. The gist is we COULD just grab the list via GetFish in FishSchool, but then the save
         * would not be potentially serializable if we want that in the future. So instead, we are reconstructing the
         * appropriate generation based on the counts of small, medium, and large fish (both male and female) we saved
         * at the place stage of that turn.
         */

        // Small Male Fish
        FishGenePair[] SMgenes = new FishGenePair[FishGenome.Length];
        FishGenePair   sexPair;

        sexPair.momGene = FishGenome.X;
        sexPair.dadGene = FishGenome.Y;
        FishGenePair sizePair;

        sizePair.momGene = FishGenome.b;
        sizePair.dadGene = FishGenome.b;
        SMgenes[(int)FishGenome.GeneType.Sex]  = sexPair;
        SMgenes[(int)FishGenome.GeneType.Size] = sizePair;
        FishGenome smallMGenome = new FishGenome(SMgenes);

        for (int i = 0; i < loadSave.smallMale; i++)
        {
            revertGeneration.Add(smallMGenome);
        }

        // Medium Male Fish
        FishGenePair[] MMgenes = new FishGenePair[FishGenome.Length];
        sizePair.momGene = FishGenome.b;
        sizePair.dadGene = FishGenome.B;
        MMgenes[(int)FishGenome.GeneType.Sex]  = sexPair;
        MMgenes[(int)FishGenome.GeneType.Size] = sizePair;
        FishGenome mediumMGenome = new FishGenome(MMgenes);

        for (int i = 0; i < loadSave.mediumMale; i++)
        {
            revertGeneration.Add(mediumMGenome);
        }

        // Large Male Fish
        FishGenePair[] LMgenes = new FishGenePair[FishGenome.Length];
        sizePair.momGene = FishGenome.B;
        sizePair.dadGene = FishGenome.B;
        LMgenes[(int)FishGenome.GeneType.Sex]  = sexPair;
        LMgenes[(int)FishGenome.GeneType.Size] = sizePair;
        FishGenome largeMGenome = new FishGenome(LMgenes);

        for (int i = 0; i < loadSave.largeMale; i++)
        {
            revertGeneration.Add(largeMGenome);
        }

        // Small Female Fish
        FishGenePair[] SFgenes = new FishGenePair[FishGenome.Length];
        sexPair.dadGene = FishGenome.X;
        SFgenes[(int)FishGenome.GeneType.Sex] = sexPair;
        sizePair.momGene = FishGenome.b;
        sizePair.dadGene = FishGenome.b;
        SFgenes[(int)FishGenome.GeneType.Size] = sizePair;
        FishGenome smallFGenome = new FishGenome(SFgenes);

        for (int i = 0; i < loadSave.smallFemale; i++)
        {
            revertGeneration.Add(smallFGenome);
        }

        // Medium Female Fish
        FishGenePair[] MFgenes = new FishGenePair[FishGenome.Length];
        sizePair.momGene = FishGenome.B;
        sizePair.dadGene = FishGenome.b;
        MFgenes[(int)FishGenome.GeneType.Sex]  = sexPair;
        MFgenes[(int)FishGenome.GeneType.Size] = sizePair;
        FishGenome mediumFGenome = new FishGenome(MFgenes);

        for (int i = 0; i < loadSave.mediumFemale; i++)
        {
            revertGeneration.Add(mediumFGenome);
        }

        // Large Female Fish
        FishGenePair[] LFgenes = new FishGenePair[FishGenome.Length];
        sizePair.momGene = FishGenome.B;
        sizePair.dadGene = FishGenome.B;
        LFgenes[(int)FishGenome.GeneType.Sex]  = sexPair;
        LFgenes[(int)FishGenome.GeneType.Size] = sizePair;
        FishGenome largeFGenome = new FishGenome(LFgenes);

        for (int i = 0; i < loadSave.largeFemale; i++)
        {
            revertGeneration.Add(largeFGenome);
        }
        FishGenomeUtilities.Shuffle(revertGeneration);
        GameManager.Instance.school.nextGenerationGenomes = revertGeneration;

        // Remove future turns we reverted over and set the UI slider in the pause menu appropriately
        GameManager.Instance.pauseMenu.turnSlider.maxValue = turn;
        GameManager.Instance.pauseMenu.turnSlider.value    = turn;
        GameManager.Instance.Turn = turn;
        GameManager.Instance.SetState(new PlaceState());
        currentSaveIndex = turn;
    }
Пример #13
0
        private Dam DataTableToEntity(DataTable dt)
        {
            Dam dam = new Dam();

            if (Null.IsNotNull(dt) == true && dt.Rows.Count > 0)
            {
                if (Null.IsNotNull(dt.Rows[0]))
                {
                    DataRow dr = dt.Rows[0];
                    if (Null.IsNotNull(dr["ID"]))
                    {
                        dam.ID = Convert.ToInt32(dr["ID"]);
                    }
                    else
                    {
                        dam.ID = 0;
                    }
                    if (Null.IsNotNull(dr["DamID"]))
                    {
                        dam.DamID = Convert.ToString(dr["DamID"]);
                    }
                    else
                    {
                        dam.DamID = string.Empty;
                    }
                    if (Null.IsNotNull(dr["DamName"]))
                    {
                        dam.DamName = Convert.ToString(dr["DamName"]);
                    }
                    else
                    {
                        dam.DamName = string.Empty;
                    }
                    if (Null.IsNotNull(dr["Latitude"]))
                    {
                        dam.Latitude = Convert.ToString(dr["Latitude"]);
                    }
                    else
                    {
                        dam.Latitude = string.Empty;
                    }
                    if (Null.IsNotNull(dr["Longitude"]))
                    {
                        dam.Longitude = Convert.ToString(dr["Longitude"]);
                    }
                    else
                    {
                        dam.Longitude = string.Empty;
                    }
                    if (Null.IsNotNull(dr["Description"]))
                    {
                        dam.Description = Convert.ToString(dr["Description"]);
                    }
                    else
                    {
                        dam.Description = string.Empty;
                    }
                    if (Null.IsNotNull(dr["Status"]))
                    {
                        dam.Status = Convert.ToString(dr["Status"]);
                    }
                    else
                    {
                        dam.Status = string.Empty;
                    }
                }
            }
            return(dam);
        }
Пример #14
0
 public AlarmLevel(int currentWaterLevel, Dam dam)
 {
     WaterLevel = currentWaterLevel;
     lowerLever = 400;
     Dam        = dam;
 }