Inheritance: Building
 public AbstractBuilding Build(string type, Game.Point coords)
 {
     AbstractBuilding building = null;
     switch (type)
     {
         case ("Farm"):
             {
                 building = new Farm(coords);
                 break;
             }
         case ("Barrack"):
             {
                 building = new Barrack(coords);
                 break;
             }
         case ("BowWorkshop"):
             {
                 building = new BowWorkshop(coords);
                 break;
             }
         case ("Tower"):
             {
                 building = new Tower(coords);
                 break;
             }
         default:
             break;
     }
     return building;
 }
Example #2
0
 public override void Open(Building building)
 {
     barrack = (Barrack)building;
     base.Open(building);
     CloseUnitList();
     InitOrUpdateUnitList();
 }
    public void UnitClick()
    {
        Barrack barrack = GameObject.FindGameObjectsWithTag("Barrack") [barrackID - 1].GetComponent <Barrack> ();

        barrack.unit_count++;
        barrack.spawnUnit();
    }
Example #4
0
        public static string Add(string name, int capacity)
        {
            using (ArmyBaseContext db = new ArmyBaseContext())
            {
                string  error      = null;
                Barrack newBarrack = new Barrack();
                newBarrack.Name     = name;
                newBarrack.Capacity = capacity;



                var context = new ValidationContext(newBarrack, null, null);
                var result  = new List <ValidationResult>();
                Validator.TryValidateObject(newBarrack, context, result, true);

                foreach (var x in result)
                {
                    error = error + x.ErrorMessage + "\n";
                }



                if (error == null)
                {
                    db.Barracks.Add(newBarrack);
                    db.SaveChanges();
                }
                return(error);
            }
        }
Example #5
0
    public void ReloadScene(int scene)
    {
        this.START_METHOD("ReloadScene");

        Vector3 obstacle1Pos = new Vector3(10f, 0f, 15f);
        Cannon  cannon       = (Cannon)charaManager.SpawnChar(CharaData.CharClassType.BUILDING, (int)CharaData.BuildingModel.CANNON,
                                                              1, 1, obstacle1Pos, new Vector3(0, 0, 0), CharaStatus.Pose.Idle);

        Vector3 obstacle2Pos = new Vector3(19f, 0f, 13f);

        cannon = (Cannon)charaManager.SpawnChar(CharaData.CharClassType.BUILDING, (int)CharaData.BuildingModel.CANNON,
                                                1, 1, obstacle2Pos, new Vector3(0, 0, 0), CharaStatus.Pose.Idle);

        Vector3 obstacle3Pos = new Vector3(9.77f, 0f, 9.30f);
        Barrack barrack      = (Barrack)charaManager.SpawnChar(CharaData.CharClassType.BUILDING, (int)CharaData.BuildingModel.BARRACK,
                                                               1, 1, obstacle3Pos, new Vector3(0, 0, 0), CharaStatus.Pose.Idle);

        Vector3 obstacle4Pos = new Vector3(13.17f, 0f, 9.73f);

        barrack = (Barrack)charaManager.SpawnChar(CharaData.CharClassType.BUILDING, (int)CharaData.BuildingModel.BARRACK,
                                                  1, 1, obstacle4Pos, new Vector3(0, 0, 0), CharaStatus.Pose.Idle);

        Vector3 obstacle5Pos = new Vector3(10.63f, 0f, 21.06f);

        barrack = (Barrack)charaManager.SpawnChar(CharaData.CharClassType.BUILDING, (int)CharaData.BuildingModel.BARRACK,
                                                  1, 1, obstacle5Pos, new Vector3(0, 0, 0), CharaStatus.Pose.Idle);

        Vector3 obstacle6Pos = new Vector3(30.75f, 0f, 18.58f);

        barrack = (Barrack)charaManager.SpawnChar(CharaData.CharClassType.BUILDING, (int)CharaData.BuildingModel.BARRACK,
                                                  1, 1, obstacle6Pos, new Vector3(0, 0, 0), CharaStatus.Pose.Idle);

        StartCoroutine(DoDelay());
        this.END_METHOD("ReloadScene");
    }
Example #6
0
    private Barrack BuildBarrack(Vector2 position, GoldReserve goldReserve)
    {
        Node clickedCell = tilemapHandler.ScreenPositionToTilemapNode(position);

        if (clickedCell.tile.isSlot && clickedCell.isAvailable)
        {
            Vector2 clickPosition = Camera.main.ScreenToWorldPoint(position);

            Barrack barrack = barrackFactory.CreateBarrack(barrackID, false, playerObjective);

            if (goldReserve.SpendGold(barrack.ValCost))
            {
                barrack.GameObject.transform.position = new Vector3(clickPosition.x, clickPosition.y, 0);

                slotService.BlockSlot(slotService.GetSlotTilesFromTile(clickedCell));

                AvaliableTileSelection.ChangeMask(tilemapHandler, false);
                return(barrack);
            }
            else
            {
                alertManager.ShowWarningModal("Você não tem dinheiro suficiente para comprar essa caserna!");
                Destroy(barrack.GameObject);
            }
        }
        else
        {
            AvaliableTileSelection.ChangeMask(tilemapHandler, false);
            alertManager.ShowWarningModal("Esse slot está bloqueado!");
        }

        return(null);
    }
 //	设置主兵营
 public void SetMainBarrack(Barrack b)
 {
     //	移除兵营
     barracks.Remove(b);
     //	重新将兵营插入到数组首位
     barracks.Insert(0, b);
 }
    public void ButtonClicked()
    {
        if (GameBoardViewModel.Instance.IsProductSelected())
        {
            GameBoardViewModel.Instance.DeselectProduct();
        }

        var        buttonName     = gameObject.name;
        GameObject createdProduct = null;
        IProduct   product;

        if (buttonName.Contains("Barrack"))
        {
            product             = new Barrack("Barrack", ProductType.Building, true, 0.5f);
            createdProduct      = ViewFactory.Create <IProduct, BuildingViewModel>(product, Resources.Load <GameObject>("Prefabs/Barrack"), null);
            createdProduct.name = "Barrack_Template";
        }

        if (buttonName.Contains("PowerPlant"))
        {
            product             = new PowerPlant("Power Plant", ProductType.Building, true, 0.5f);
            createdProduct      = ViewFactory.Create <IProduct, BuildingViewModel>(product, Resources.Load <GameObject>("Prefabs/PowerPlant"), null);
            createdProduct.name = "PowerPlant_Template";
        }
        GameBoardViewModel.Instance.SelectProduct(createdProduct);
    }
Example #9
0
 private void unregisterEntityEvents(IGameEntity entity)
 {
     if (entity.info.isBarrack)
     {
         Barrack barrack = (Barrack)entity;
         barrack.unregister(Barrack.Actions.DAMAGED, events.DisplayUnderAttack);
         barrack.unregister(Barrack.Actions.DESTROYED, events.DisplayBuildingDestroyed);
         barrack.unregister(Barrack.Actions.CREATE_UNIT, OnUnitCreated);
         barrack.unregister(Barrack.Actions.BUILDING_FINISHED, events.DisplayBuildingCreated);
     }
     else if (entity.info.isResource)
     {
         Resource resourcesBuilding = (Resource)entity;
         resourcesBuilding.unregister(Resource.Actions.DAMAGED, events.DisplayUnderAttack);
         resourcesBuilding.unregister(Resource.Actions.DESTROYED, events.DisplayBuildingDestroyed);
         resourcesBuilding.unregister(Resource.Actions.BUILDING_FINISHED, events.DisplayBuildingCreated);
         resourcesBuilding.unregister(Resource.Actions.CREATE_UNIT, OnUnitCreated);
     }
     else if (entity.info.isUnit)
     {
         Unit unit = (Unit)entity;
         unit.unregister(Unit.Actions.DIED, events.DisplayUnitDead);
         unit.unregister(Unit.Actions.DAMAGED, events.DisplayUnderAttack);
         unit.unregister(Unit.Actions.TARGET_TERMINATED, signalMissionUpdate);
         unit.unregister(Unit.Actions.EAT, onUnitEats);
     }
 }
Example #10
0
    public Chara SpawnChar(CharaData.CharClassType classType,int charModelType,int camp,int level,Vector3 pos,Vector3 dir,CharaStatus.Pose pose)
    {
        this.START_METHOD("SpawnChar");
        Chara tempChar = null;
        if(classType==CharaData.CharClassType.CHARACTER)
        {

        }
        else if(classType==CharaData.CharClassType.BUILDING)
        {
            if((CharaData.buildingModel)charModelType==CharaData.buildingModel.BARRACK)
            {
                Barrack chara = new Barrack();//TODO: need change class to resource pool
                chara.SetPos(pos);
                chara.SetDir(dir);
                chara.SetCamp(camp);
                tempChar = chara;
            }
            if (tempChar != null)
                building.Add(tempChar);
            else
                throw new UnityException("no current building type to spawn!!");
        }

        allChara.Add(tempChar);
        this.END_METHOD("SpawnChar");
        return tempChar;
    }
 //    设置主兵营
 public void SetMainBarrack(Barrack b)
 {
     //	移除兵营
     barracks.Remove (b);
     //	重新将兵营插入到数组首位
     barracks.Insert (0, b);
 }
Example #12
0
    public Core(Color color, GameObject positionCore)
    {
        this.color        = color;
        this.PositionCore = positionCore;
        lvl         = 1;
        name        = "База";
        peopleLimit = 1000;

        building.Add(this);
        this.eventAddArmy   += AddLimitArmy;
        this.eventAddPeople += AddLimitPeople;

        workShop = new WorkShop();
        building.Add(workShop);

        storage = new Storage();
        storage.eventAddPeople += AddLimitPeople;
        building.Add(storage);

        walls = new Walls();
        building.Add(walls);

        barrack = new Barrack();
        barrack.eventAddArmy += AddLimitArmy;
        building.Add(barrack);

        portal = new Portal();
        building.Add(portal);

        resources = new GameResources(200, 300, 500, 0);
        UpPriceImprovement();
    }
Example #13
0
    public Barrack CreateBarrack(int codBarrack, bool isEnemy, PhaseObjectives barrackObjective)
    {
        GameObject barrackGameObject        = GameObject.Instantiate(barrackPrefab);
        Barrack    barrack                  = new Barrack();
        BarrackScriptableObject barrackData = GetBarrackScriptableObject(codBarrack);

        barrack.CodBarrack        = barrackData.codBarrack;
        barrack.CodPart           = barrackData.codPart;
        barrack.CodTroop          = barrackData.codTroop;
        barrack.NamBarrack        = barrackData.namBarrack;
        barrack.DesBarrack        = barrackData.desBarrack;
        barrack.NumTroopLimit     = barrackData.numTroopLimit;
        barrack.ValCost           = barrackData.valCost;
        barrack.ValSpawnFrequency = barrackData.valSpawnFrequency;
        barrack.GameObject        = barrackGameObject;
        barrack.IsEnemy           = isEnemy;
        barrack.Objective         = barrackObjective;

        barrack.SetUpSpawner();
        barrack.GameObject.GetComponent <SpriteRenderer>().sprite = barrackData.sprite;
        barrack.GameObject.GetComponent <Animator>().runtimeAnimatorController = barrackData.animatorController;

        barrack.GameObject.GetComponent <RunTimeBarrackData>().SetData(barrack);

        return(barrack);
    }
Example #14
0
    public Chara SpawnChar(CharaData.CharClassType classType, int charModelType, int camp, int level, Vector3 pos, Vector3 dir, CharaStatus.Pose pose)
    {
        this.START_METHOD("SpawnChar");
        Chara tempChar = null;

        if (classType == CharaData.CharClassType.CHARACTER)
        {
        }
        else if (classType == CharaData.CharClassType.BUILDING)
        {
            if ((CharaData.buildingModel)charModelType == CharaData.buildingModel.BARRACK)
            {
                Barrack chara = new Barrack();//TODO: need change class to resource pool
                chara.SetPos(pos);
                chara.SetDir(dir);
                chara.SetCamp(camp);
                tempChar = chara;
            }
            if (tempChar != null)
            {
                building.Add(tempChar);
            }
            else
            {
                throw new UnityException("no current building type to spawn!!");
            }
        }

        allChara.Add(tempChar);
        this.END_METHOD("SpawnChar");
        return(tempChar);
    }
        public override async Task <ExtPostContainer <string> > SaveInput(BarrackInput input)
        {
            await Validate(input);

            var id      = !string.IsNullOrWhiteSpace(input.Id) ? input.Id : Guid.NewGuid().ToString("N");
            var barrack = new Barrack {
                Id             = id,
                Name           = input.Name,
                Hectares       = input.Hectares,
                IdPlotLand     = input.IdPlotLand,
                IdPollinator   = input.IdPollinator,
                IdRootstock    = input.IdRootstock,
                IdVariety      = input.IdVariety,
                NumberOfPlants = input.NumberOfPlants,
                PlantingYear   = input.PlantingYear,
                SeasonId       = input.SeasonId
            };

            //GeoBarracks, dependencia de geospacial
            #if !CONNECT
            if (input.GeographicalPoints != null && input.GeographicalPoints.Any())
            {
                barrack.GeographicalPoints = input.GeographicalPoints.Select(geoPoint => new Point(geoPoint.Lng, geoPoint.Lat)).ToArray();
            }
            #endif

            search.DeleteElementsWithRelatedElement(EntityRelated.GEOPOINT, EntityRelated.BARRACK, barrack.Id);


            await SaveDb(barrack);

            return(await SaveSearch(barrack));
        }
 //    移除兵营
 public void RemoveBarrack(Barrack b)
 {
     barracks.Remove (b);
     if (barracks.Count == 0) {
         //	不显示生产士兵按钮
         createSoldier.SetActive (false);
     }
 }
    private ArrayList barracks; //    所有兵营

    #endregion Fields

    #region Methods

    //    添加兵营
    public void AddBarrack(Barrack b)
    {
        barracks.Add (b);
        //	如果是第一次添加, 显示创建士兵的按钮
        if (barracks.Count == 1) {
            createSoldier.SetActive (true);
        }
    }
Example #18
0
        public ActionResult DeleteConfirmed(int id)
        {
            Barrack barrack = db.Barracks.Find(id);

            db.Barracks.Remove(barrack);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #19
0
 public BarrackDto(Barrack b)
 {
     BuildingId = b.BuildingId;
     Price      = b.Price;
     Capacity   = b.Capacity;
     Counter    = b.Counter;
     Builder    = b.Builder;
 }
Example #20
0
    public void addBarrack(Player owner)
    {
        Barrack bar = Instantiate(barrackPref);

        bar.transform.SetParent(gameObject.transform);
        bar.transform.position = gameObject.transform.position;
        bar.owner = PlayerHandler.instance.currentPlayer;
        bar.inic();
    }
 //	添加兵营
 public void AddBarrack(Barrack b)
 {
     barracks.Add(b);
     //	如果是第一次添加, 显示创建士兵的按钮
     if (barracks.Count == 1)
     {
         createSoldier.SetActive(true);
     }
 }
 //	移除兵营
 public void RemoveBarrack(Barrack b)
 {
     barracks.Remove(b);
     if (barracks.Count == 0)
     {
         //	不显示生产士兵按钮
         createSoldier.SetActive(false);
     }
 }
Example #23
0
        //
        // GET: /Barrack/Details/5

        public ActionResult Details(int id = 0)
        {
            Barrack barrack = db.Barracks.Find(id);

            if (barrack == null)
            {
                return(HttpNotFound());
            }
            return(View(barrack));
        }
 // Constructor
 public JobsManager() : base()
 {
     myHuntingBuilding     = new Hunting();
     myFishingBuilding     = new Fishing();
     myShipBuilderBuilding = new ShipBuilder();
     myMineralBuilding     = new MineralGathering();
     myWoodBuilding        = new WoodGathering();
     myBarrack             = new Barrack();
     nameJob = "";
 }
Example #25
0
 void SetUpDefenceUnit()
 {
     buildTimer = 0f;
     Barrack.GetComponent <Barracks>().CreateUnit(1);
     if (numOfUnits.Count >= 2)
     {
         isDefenceSet  = true;
         UnitBuildTime = 10f;
     }
 }
Example #26
0
    protected AbilityList BaseBarrackAbilities(Barrack barrack)
    {
        Ability[] barrackAbilities = new Ability[AbilityList.MAX_SIZE];

        barrackAbilities[0] = new RepairAbility(new Tooltip());



        return(new AbilityList(barrackAbilities));
    }
Example #27
0
    // Use this for initialization
    void Start()
    {
        //get the barrack this RaxCounter is attached to
        rax = (gameObject.GetComponentInParent <Transform>()).gameObject.GetComponentInParent <Barrack>();

        //set the spawn timer initially to the spawn rate
        spawnTimer = spawnRate;

        timerText = gameObject.GetComponentInChildren <Text>();
    }
Example #28
0
 public ActionResult Edit(Barrack barrack)
 {
     if (ModelState.IsValid)
     {
         db.Entry(barrack).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.JailId = new SelectList(db.Jails, "JailId", "Name", barrack.JailId);
     return(View(barrack));
 }
Example #29
0
        //
        // GET: /Barrack/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Barrack barrack = db.Barracks.Find(id);

            if (barrack == null)
            {
                return(HttpNotFound());
            }
            ViewBag.JailId = new SelectList(db.Jails, "JailId", "Name", barrack.JailId);
            return(View(barrack));
        }
Example #30
0
    private void BuildBarrack(BarrackScriptableObject barrackToBuild)
    {
        // TO:DO --> Use RuntimeData to create the barrack
        Barrack barrack = barrackFactory.CreateBarrack(barrackToBuild.codBarrack, true, bobAIObjective);

        Vector2 buildPosition = PickBuildPosition();

        barrack.GameObject.transform.position = buildPosition;
        bobAIGoldReserve.SpendGold(barrack.ValCost);

        buildingPositions.Remove(buildPosition);
    }
Example #31
0
    public bool doIfBarrack(Action <Barrack> callIfTrue)
    {
        Barrack barrack = this as Barrack;

        if (barrack != null)
        {
            callIfTrue(barrack);
            return(true);
        }

        return(false);
    }
Example #32
0
        internal int GetTrainingTime(CharacterData Character)
        {
            List <Building> Barracks = (Character.UnitOfType == 1 ? this.Level.ComponentManager.Barracks : this.Level.ComponentManager.DarkBarracks)
                                       .FindAll(Barrack => Barrack.GetUpgradeLevel() >= Character.BarrackLevel - 1);

            if (Barracks.Count != 0)
            {
                return(Character.TrainingTime / Barracks.Count);
            }

            return(Character.TrainingTime);
        }
Example #33
0
        public ActionResult Create(Barrack barrack)
        {
            if (ModelState.IsValid)
            {
                db.Barracks.Add(barrack);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.JailId = new SelectList(db.Jails, "JailId", "Name", barrack.JailId);
            return(View(barrack));
        }
 public void SetData(Barrack barrackData)
 {
     codBarrack        = barrackData.CodBarrack;
     codPart           = barrackData.CodPart;
     codTroop          = barrackData.CodTroop;
     namBarrack        = barrackData.NamBarrack;
     desBarrack        = barrackData.DesBarrack;
     valSpawnFrequency = barrackData.ValSpawnFrequency;
     valCost           = barrackData.ValCost;
     numTroopLimit     = barrackData.NumTroopLimit;
     isEnemy           = barrackData.IsEnemy;
     objective         = barrackData.Objective;
 }
Example #35
0
        public async Task <Building> postB(int id)
        {
            var country = _dbcontext.Countries.Where(c => c.CountryId == id).SingleOrDefault();

            var a = new Barrack()
            {
                OwnerCountry = country
            };

            _dbcontext.Barracks.Add(a);
            await _dbcontext.SaveChangesAsync();

            return(a);
        }
Example #36
0
        public void Test_IsInAttackRange_MustMatch()
        {
            var enemy = new Infantery();
            enemy.OwnerId = "2";
            enemy.Position = new Vector2(500, 510);

            var infantery = new Infantery();
            infantery.OwnerId = "1";
            infantery.Position = new Vector2(0,0);

            var barrack = new Barrack();
            barrack.OwnerId = "1";
            barrack.Position = new Vector2(500,500);

            Assert.False(infantery.IsInAttackRange(enemy.Position));
            Assert.True(enemy.IsInAttackRange(barrack.Position));
        }
Example #37
0
 private void BuildUnit(Barrack barrack)
 {
     if (barrack != null)
     {
         //_busyBarracks.Add(barrack.Id);
         barrack.Produce(new ProduceEvent<Infantery>(HeadQuarter.OwnerId, barrack.Id, barrack.Position.X + 5,
                                         barrack.Position.Y), Agent);
     }
 }
Example #38
0
 private ProduceEvent<Infantery> GetProduceEvent(Barrack barrack, Vector2 position)
 {
     return new ProduceEvent<Infantery>(_ai.Id, barrack.Id, position.X + _random.Next(50), position.Y + _random.Next(50));
 }
Example #39
0
 private IEnumerable<EnemyUnitSignature> GetEnemiesNearBarrack(Barrack x)
 {
     return GetEnemiesNearPosition(x.Position);
 }
Example #40
0
 public void ProduceNewInfantery(Barrack obama)
 {
     var pos = _positionHandler.GetNextUnitSpawnPosition<Infantery>();
     obama.Produce(new ProduceEvent<Infantery>(_ai.Id, obama.Id, pos.X, pos.Y), _eventAgent);
 }