예제 #1
0
    private void Expand()
    {
        Unit       unitToMove        = null;
        UnitHolder expandDestination = null;

        foreach (UnitHolder unitHolder in unitHolders)
        {
            if (unitToMove != null && expandDestination != null)
            {
                break;
            }

            if (unitHolder.hashUnits.Count > 1 && unitToMove == null)
            {
                foreach (Unit unit in unitHolder.hashUnits)
                {
                    unitToMove = unit;
                    break;
                }
            }

            if (unitHolder.hashUnits.Count == 0 && expandDestination == null)
            {
                expandDestination = unitHolder;
            }
        }

        if (unitToMove != null && expandDestination != null && unitToMove.TryGetComponent <UnitController>(out var movable))
        {
            movable.MoveTo(expandDestination.transform.position);
        }
    }
예제 #2
0
        public Szerk(MdTermekek termekek)
        {
            rs            = new RktServ();
            this.termekek = termekek;
            InitializeComponent();

            button1.DialogResult = DialogResult.OK;

            NameHolder.setText(termekek.getTNev());

            PriceHolder.setText(termekek.getTar().ToString());

            AmmountHolder.setText(termekek.getTkeszl().ToString());

            UnitHolder.setText(termekek.getMert());

            CodeHolder.setText(termekek.getTkatkod().ToString());


            VonCodeHolder.setText(termekek.getTvonkod().ToString());
            dateTimePicker1.Value = termekek.getSzavido();



            bool eg = false;

            if (termekek.getTegalizalte() == true)
            {
                eg = true;
                checkBox1.CheckState = CheckState.Checked;
            }
        }
예제 #3
0
 public House
 (
     double healRate,
     int occupyingSpace, UnitHolder unitHolder,
     string name, State buildingState, TimeSpan timeToBuildSec, TimeSpan timeToDestroySec, List <ResourseBunch> necessaryResourses
 )
     : base(
         Type.House, occupyingSpace, unitHolder,
         name, buildingState, timeToBuildSec, timeToDestroySec, necessaryResourses
         )
 {
     this.HealRate = healRate;
 }
예제 #4
0
 protected Building
 (
     Type buildingType, int occupyingSpace, UnitHolder unitHolder,
     string name, State buildingState, TimeSpan timeToBuildSec, TimeSpan timeToDestroySec, List <ResourseBunch> necessaryResourses
 )
     : base(
         name, buildingState, timeToBuildSec, timeToDestroySec, necessaryResourses
         )
 {
     this.BuildingType   = buildingType;
     this.OccupyingSpace = occupyingSpace;
     this.UnitHolder     = unitHolder;
 }
예제 #5
0
    public UnitHolder()
    {
        if (instance != null)
        {
            Debug.LogError ("Cannot have two instances of singleton. Self destruction in 3...");
            return;
        }

        instance = this;

        if(populateAtStart)
            Populate();
    }
예제 #6
0
 public StarShip
 (
     double speed, ColonyHolder colonyHolder, SpaceObject spaceObject, UnitHolder unitHolder,
     string name, State buildingState, TimeSpan timeToBuildSec, TimeSpan timeToDestroySec, List <ResourseBunch> necessaryResourses
 )
     : base(
         name, buildingState, timeToBuildSec, timeToDestroySec, necessaryResourses
         )
 {
     this.Speed        = speed;
     this.ColonyHolder = colonyHolder;
     this.SpaceObject  = spaceObject;
     this.UnitHolder   = unitHolder;
 }
예제 #7
0
    // Use this for initialization
    void Start()
    {
        collider   = GetComponent <Collider2D>();
        canJump    = true;
        allUnits   = FindObjectOfType <AllUnits>();
        unitConfig = FindObjectOfType <UnitConfig>();
        unitHolder = FindObjectOfType <UnitHolder>();

        rigidbody2D = GetComponent <Rigidbody2D>();

        gravity = unitConfig.gravity;

        position = transform.position;
        velocity = new Vector2(Random.Range(-1, 1), Random.Range(-1, 1));
    }
예제 #8
0
        static bool TryReadBasicUnit(StringBuilder line, ref int pos, out Unit val)
        {
            if (pos >= line.Length)
            {
                val = default(Unit); return(false);
            }
            if (!char.IsLetter(line[pos]))
            {
                val = default(Unit); return(false);
            }
            string sd = ReadStr(line, ref pos);

            val = UnitHolder.GetRegisteredUnit(sd);
            return(true);
        }
 protected ResourseBuilding
 (
     double damageRate, double strengthMultipler, double enduranceMultipler,
     Type buildingType, int occupyingSpace, UnitHolder unitHolder,
     string name, State buildingState, TimeSpan timeToBuildSec, TimeSpan timeToDestroySec, List <ResourseBunch> necessaryResourses
 )
     : base(
         buildingType, occupyingSpace, unitHolder,
         name, buildingState, timeToBuildSec, timeToDestroySec, necessaryResourses
         )
 {
     this.DamageRate         = damageRate;
     this.StrengthMultipler  = strengthMultipler;
     this.EnduranceMultipler = enduranceMultipler;
 }
예제 #10
0
 public Mine
 (
     Resourse miningResourse, double mineRate,
     double damageRate, double strengthMultipler, double enduranceMultipler,
     int occupyingSpace, UnitHolder unitHolder,
     string name, State buildingState, TimeSpan timeToBuildSec, TimeSpan timeToDestroySec, List <ResourseBunch> necessaryResourses
 )
     : base(
         damageRate, strengthMultipler, enduranceMultipler,
         Type.Mine, occupyingSpace, unitHolder,
         name, buildingState, timeToBuildSec, timeToDestroySec, necessaryResourses
         )
 {
     this.MiningResourse = miningResourse;
     this.MineRate       = mineRate;
 }
예제 #11
0
 public Factory
 (
     Resourse rawResourse, Resourse productResourse, double factoryRate,
     double damageRate, double strengthMultipler, double enduranceMultipler,
     int occupyingSpace, UnitHolder unitHolder,
     string name, State buildingState, TimeSpan timeToBuildSec, TimeSpan timeToDestroySec, List <ResourseBunch> necessaryResourses
 )
     : base(
         damageRate, strengthMultipler, enduranceMultipler,
         Type.Factory, occupyingSpace, unitHolder,
         name, buildingState, timeToBuildSec, timeToDestroySec, necessaryResourses
         )
 {
     this.RawResourse     = rawResourse;
     this.ProductResourse = productResourse;
     this.FactoryRate     = factoryRate;
 }
예제 #12
0
    public void OnUnitDrop(DragSource source)
    {
        UnitHolder originalHolder = source.originalParent.GetComponent <UnitHolder>();

        RemovePlayAction(originalHolder.playAction);
        originalHolder.playAction = null;

        GameObject cardObject = CreateCardDisplay(source.GetComponent <UnitUI>().cardData);

        cardObject.transform.position = cardObject.transform.parent.position;

        foreach (DropTarget target in originalHolder.GetComponents <DropTarget>())
        {
            target.enabled = true;
        }

        Destroy(source.gameObject);
        UIManager.instance.ValidateDropCost();
    }
예제 #13
0
    private IEnumerator MoveCo(List <GameObject> finalList) // Coroutine olması için IEnumerator türünde hareket.
    {
        isMoving = true;
        for (int i = 0; i < finalList.Count; i++) // parent düzeninden dolayı ters çevrilmiş olan liste.
        {
            UnitHolder MovingUnitsHolder = GetComponent <UnitHolder>();
            updatedLocation = finalList[i];                                                 // updatelocation'ı güncelle.
            MovingUnitsHolder.StartingGrid.GetComponent <TerrainGrid>().isOccupied = false; // eski noktanın isOccupied'ını değiştir.
            MovingUnitsHolder.StartingGrid = finalList[i];                                  // yeni startingGrid'i oluştur.
            finalList[i].GetComponent <TerrainGrid>().isOccupied = true;                    // o anki yeni noktayı occupy et

            if (i > 0)                                                                      // eğer ilk noktada değilsek
            {
                finalList[i - 1].GetComponent <TerrainGrid>().isOccupied = false;           // bir önceki noktanın isOccupied'ını güncelle.
            }
            yield return(new WaitForSeconds(1.0f));                                         // bir saniye bekle
        }
        isMoving = false;
    }
예제 #14
0
    public void OnUnitDrop(DragSource source)
    {
        UnitHolder originalHolder = source.originalParent.GetComponent <UnitHolder>();

        source.transform.SetParent(transform);
        source.transform.position = transform.position;

        handManager.RemovePlayAction(originalHolder.playAction);
        originalHolder.playAction = null;
        playAction = CreatePlayCardAction(source.GetComponent <UnitUI>().cardData);
        handManager.AddPlayAction(playAction);

        foreach (DropTarget target in GetComponents <DropTarget>())
        {
            target.enabled = false;
        }
        foreach (DropTarget target in originalHolder.GetComponents <DropTarget>())
        {
            target.enabled = true;
        }
    }
예제 #15
0
    public Coroutine RemoveUnit(int laneIndex, int sideIndex, int positionIndex)
    {
        UnitHolder holder = unitManagers[sideIndex].unitHolders[laneIndex, positionIndex];

        return(holder.RemoveUnit());
    }
예제 #16
0
 private void Start()
 {
     unitHolder = GetComponent <UnitHolder>();
     unitHolder.ProceedMoveOrder += FindShortestPath; // Eğer Clickable'dan bir moveOrder geldiyse, bu unit isSelected kontrolü yapacak. Eğer kontrol true ise
                                                      // Emri yerine getirecek.
 }
예제 #17
0
 public bool Remove(Unit t)
 {
     return(UnitHolder.Remove(t));
 }
예제 #18
0
 public bool Remove(List <Unit> ts)
 {
     return(UnitHolder.Remove(ts));
 }
예제 #19
0
 public bool Move(Unit t, IGeneralHolder <Unit> generalHolder)
 {
     return(UnitHolder.Move(t, generalHolder));
 }
예제 #20
0
 public bool Move(List <Unit> ts, IGeneralHolder <Unit> generalHolder)
 {
     return(UnitHolder.Move(ts, generalHolder));
 }
예제 #21
0
 public bool Add(List <Unit> ts)
 {
     return(UnitHolder.Add(ts));
 }
예제 #22
0
 public bool Add(Unit t)
 {
     return(UnitHolder.Add(t));
 }
예제 #23
0
 void Start()
 {
     unitHolder = GetComponentInParent <UnitHolder>();
 }
예제 #24
0
 private void Start()
 {
     unitHolder = GetComponentInParent <UnitHolder>();
     Initialize();
 }
예제 #25
0
        private void AddViaAnimButton_Click(object sender, EventArgs e)
        {
            try
            {
                string filename = Path.Combine(CoreGlobals.getWorkPaths().mGameDataDirectory, "xobjects.xml");

                if (File.GetAttributes(filename) == FileAttributes.ReadOnly)
                {
                    MessageBox.Show(filename + " is readonly.  please check it out");
                }

                if (NodeComboBox.SelectedItem == null)
                {
                    return;
                }
                UnitHolder copyholder = NodeComboBox.SelectedItem as UnitHolder;
                if (copyholder == null)
                {
                    return;
                }


                OpenFileDialog d = new OpenFileDialog();
                d.Filter           = "AnimXML (*.xml)|*.xml";
                d.FilterIndex      = 0;
                d.InitialDirectory = CoreGlobals.getSaveLoadPaths().mGameArtDirectory;

                if (d.ShowDialog() == DialogResult.OK)
                {
                    //Validate xml
                    List <string> models = SimUnitXML.getGrannyFileNames(d.FileName);
                    if (models.Count == 0)
                    {
                        if (MessageBox.Show(String.Format("No models found in {0} add anyway?", d.FileName), "", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                        }
                        else
                        {
                            return;
                        }
                    }


                    string name = Path.GetFileNameWithoutExtension(d.FileName);

                    //check for duplicates
                    foreach (UnitHolder holder in this.NodeComboBox.Items)
                    {
                        if (holder.mName == name)
                        {
                            MessageBox.Show(name + " has already been added to xobjects");
                            return;
                        }
                    }



                    mHightestID++;
                    int id = mHightestID;

                    string artpath      = CoreGlobals.getWorkPaths().mGameArtDirectory + "\\";
                    string animFileName = d.FileName.Substring(artpath.Length);

                    //BuildNode
                    XmlNode      unit     = copyholder.mNode.Clone();
                    XmlAttribute nameAttr = (XmlAttribute)unit.Attributes.GetNamedItem("name");
                    nameAttr.Value = name;
                    XmlAttribute idAttr = (XmlAttribute)unit.Attributes.GetNamedItem("id");
                    idAttr.Value = id.ToString();
                    XmlNode animFile = ((XmlElement)unit).GetElementsByTagName("Visual")[0];
                    animFile.InnerText = animFileName;

                    //Add to File
                    XmlNode protoNode = doc.GetElementsByTagName("Proto")[0];

                    protoNode.AppendChild(unit);
                    doc.Save(filename);
                    CoreGlobals.getSaveLoadPaths().mGameArtDirectory = Path.GetDirectoryName(d.FileName);

                    listBox1.Items.Add(String.Format("Added: {0}", name));

                    this.NodeComboBox.Items.Add(new UnitHolder(name, unit));

                    foreach (string modelname in models)
                    {
                        listBox1.Items.Add(String.Format("    Model: {0}", modelname));
                    }
                }
            }
            catch (System.Exception ex)
            {
                CoreGlobals.getErrorManager().OnException(ex);
            }
        }