public ActionResult ChooseUnits(AdventuresChooseUnitsModel model)
        {
            var units = new List <UnitDTO>(UnitFacade.ListUnitsByVillage(model.VillageID));

            model.UnitsTypes = new List <string>(units.Select(u => u.UnitType));
            model.UnitsCount = new List <int>(new int [units.Count()]);

            return(View(model));
        }
    public IPromise <UnitFacade> Initialize(UnitFacade striker, UnitFacade target, Vector3 from, Vector3 direction, int damage)
    {
        this.target    = target.UnitModel;
        this.from      = from;
        this.direction = direction;

        hitPromise = new Promise <UnitFacade>();
        return(hitPromise.Then(hitUnit => ProcessHit(hitUnit, striker, damage)));
    }
Esempio n. 3
0
    public IBullet Create(UnitFacade attacker, UnitFacade target, WeaponConfig weapon, Vector3 fireDirection)
    {
        var bullet = GameObject.Instantiate(weapon.BulletPrefab) as GameObject;

        _container.InjectGameObject(bullet);
        var bulletFireComponent = bullet.GetComponent <BulletBase>();

        bulletFireComponent.Initialize(attacker, target, weapon.firePoint.position, fireDirection, weapon.damagePerShot);

        return(bulletFireComponent);
    }
        public ActionResult ChooseUnitsPost(AdventuresChooseUnitsModel model)
        {
            List <UnitDTO> units = new List <UnitDTO>(UnitFacade.ListUnitsByVillage(model.VillageID));

            for (int i = 0; i < units.Count(); ++i)
            {
                units[i].Count = model.UnitsCount[i];
            }
            if (ModelState.IsValid)
            {
                AdventureFacade.Adventure(units, model.AdventureTypeId);//esteze okej cakaj
            }
            return(RedirectToAction("Index", "Adventures", new { id = model.VillageID }));
        }
Esempio n. 5
0
        // GET: Units
        public ActionResult Index(int id)
        {
            if (!BuildingFacade.GetBuildingByNameAndVillageId("TrainingCamp", id).Built)
            {
                //w
                return(RedirectToAction("VisitVillage", "Villages", new { id = id }));
            }
            var result = new List <UnitDTO>(UnitFacade.ListUnitsByVillage(id));
            var model  = new UnitsListViewModel {
                VillageId = id, Units = result
            };

            return(View("UnitsListView", model));
        }
    private UnitFacade ProcessHit(UnitFacade hitUnit, UnitFacade striker, int damage)
    {
        if (hitUnit != null)
        {
            if (hitUnit.UnitModel.hp > 0)
            {
                hitUnit.UnitModel.DoDamage(damage);
                if (hitUnit.UnitModel.hp <= 0)
                {
                    _signalBus.Fire(new UnitDestroyedBySignal(hitUnit, striker));
                }
            }
        }

        return(hitUnit);
    }
        // GET: Adventures
        public ActionResult Index(int id)
        {
            if (!BuildingFacade.GetBuildingByNameAndVillageId("Tavern", id).Built)
            {
                return(RedirectToAction("VisitVillage", "Villages", new { id = id }));
            }

            var result1 = new List <AdventureDTO>(AdventureFacade.ListAdventures(id));
            var result2 = new List <UnitDTO>(UnitFacade.ListUnitsByVillage(id));
            var model   = new AdventureListViewModel()
            {
                Adventures = result1, Units = result2, VillageID = id
            };

            return(View("AdventureListView", model));
        }
    private UnitFacade GetClosestAttackableEnemy(IEnumerable <UnitFacade> unitsToIterate)
    {
        UnitFacade closest = null;

        foreach (var unit in unitsToIterate)
        {
            if (_model.teamId != unit.UnitModel.teamId)
            {
                var distance = Vector3.Distance(_model.position, unit.UnitModel.position);
                if (distance <= _model.detectRadius)
                {
                    if (closest == null || distance < Vector3.Distance(_model.position, closest.UnitModel.position))
                    {
                        closest = unit;
                    }
                }
            }
        }
        return(closest);
    }
Esempio n. 9
0
 public ActionResult TrainUnit(int id, int amount, int villageId)
 {
     UnitFacade.Train(id, amount);
     return(RedirectToAction("Index", new { id = villageId }));
 }
 public UnitDestroyedBySignal(UnitFacade hitUnit, UnitFacade striker)
 {
     this.hitUnit = hitUnit;
     this.striker = striker;
 }