void SpawnUnit(bool isPlayer, BaseUnitController toSpawn, int numberToSpawn) { if (isPlayer) { for (int i = 0; i < numberToSpawn; i++) { int position = Random.Range(0, playerSpawnPoints.Count - 1); BaseUnitController unit = Instantiate(toSpawn, playerSpawnPoints[position].transform.position, Quaternion.identity, playerFolder.transform); playerSpawnPoints[position].GetComponent <SquareTile>().currentUnit = unit; unit.bIsPlayer = true; playerSpawnPoints.RemoveAt(position); } } else { for (int i = 0; i < numberToSpawn; i++) { int position = Random.Range(0, enemySpawnPoints.Count - 1); BaseUnitController unit = Instantiate(toSpawn, enemySpawnPoints[position].transform.position, Quaternion.identity, enemyFolder.transform); enemySpawnPoints[position].GetComponent <SquareTile>().currentUnit = unit; unit.bIsPlayer = false; enemySpawnPoints.RemoveAt(position); } } }
public void OnBeginDrag(PointerEventData eventData) { if (Input.GetMouseButton(0)) { BaseUnitController.DeselectAll(new BaseEventData(EventSystem.current)); SelectionBoxImage.gameObject.SetActive(true); _startPosition = eventData.position; _selectionRect = new Rect(); } }
public static Rect GetBoundsOfObject(BaseUnitController unitController) { var screenSpaceCorners = new Vector3[8]; var theCamera = GameObject.FindObjectOfType <Camera>(); var renderers = unitController.GetComponentInChildren <Renderer>(); var bigBounds = renderers.bounds; // For each of the 8 corners of our renderer's world space bounding box, // convert those corners into screen space. screenSpaceCorners[0] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x + bigBounds.extents.x, bigBounds.center.y + bigBounds.extents.y, bigBounds.center.z + bigBounds.extents.z)); screenSpaceCorners[1] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x + bigBounds.extents.x, bigBounds.center.y + bigBounds.extents.y, bigBounds.center.z - bigBounds.extents.z)); screenSpaceCorners[2] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x + bigBounds.extents.x, bigBounds.center.y - bigBounds.extents.y, bigBounds.center.z + bigBounds.extents.z)); screenSpaceCorners[3] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x + bigBounds.extents.x, bigBounds.center.y - bigBounds.extents.y, bigBounds.center.z - bigBounds.extents.z)); screenSpaceCorners[4] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x - bigBounds.extents.x, bigBounds.center.y + bigBounds.extents.y, bigBounds.center.z + bigBounds.extents.z)); screenSpaceCorners[5] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x - bigBounds.extents.x, bigBounds.center.y + bigBounds.extents.y, bigBounds.center.z - bigBounds.extents.z)); screenSpaceCorners[6] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x - bigBounds.extents.x, bigBounds.center.y - bigBounds.extents.y, bigBounds.center.z + bigBounds.extents.z)); screenSpaceCorners[7] = theCamera.WorldToScreenPoint(new Vector3(bigBounds.center.x - bigBounds.extents.x, bigBounds.center.y - bigBounds.extents.y, bigBounds.center.z - bigBounds.extents.z)); // Now find the min/max X & Y of these screen space corners. var min_x = screenSpaceCorners[0].x; var min_y = screenSpaceCorners[0].y; var max_x = screenSpaceCorners[0].x; var max_y = screenSpaceCorners[0].y; for (var i = 1; i < 8; i++) { if (screenSpaceCorners[i].x < min_x) { min_x = screenSpaceCorners[i].x; } if (screenSpaceCorners[i].y < min_y) { min_y = screenSpaceCorners[i].y; } if (screenSpaceCorners[i].x > max_x) { max_x = screenSpaceCorners[i].x; } if (screenSpaceCorners[i].y > max_y) { max_y = screenSpaceCorners[i].y; } } return(Rect.MinMaxRect(min_x, min_y, max_x, max_y)); }
public void DestroyUnit(BaseUnitController unitController ) { if ( unitsControllersSelectedBlue.Contains( unitController ) ) { unitsControllersSelectedBlue.Remove( unitController ); } if ( unitsControllersBlue.Contains( unitController ) ) { unitsControllersBlue.Remove( unitController ); } if ( unitsControllersRed.Contains( unitController ) ) { unitsControllersRed.Remove( unitController ); } }
public BuildUnit( UnitCharacteristics characteristics, EntityController.Faction faction, EffectsController effectsController, BaseUnitController.UpdateCharacteristics updateCharacteristics, BaseUnitController.Death updateDeath, BaraksModel.SetUpdeteCharacteristicsDelegate setUpdeteCharacteristicsDelegate, Action deleteVisualEffect ) : base(characteristics, faction, effectsController, updateCharacteristics, updateDeath, setUpdeteCharacteristicsDelegate, deleteVisualEffect) { }
public BaseUnit( UnitCharacteristics characteristics, EntityController.Faction faction, EffectsController effectsController, BaseUnitController.UpdateCharacteristics updateCharacteristics, BaseUnitController.Death updateDeath, BaraksModel.SetUpdeteCharacteristicsDelegate setUpdeteCharacteristicsDelegate, Action deleteVisualEffect ) { this.deleteVisualEffect = deleteVisualEffect; this.setUpdeteCharacteristicsDelegate = setUpdeteCharacteristicsDelegate; setUpdeteCharacteristicsDelegate( UpdateBaseCharacteristics, false ); updateCharacteristicsDelegate = updateCharacteristics; this.updateDeath = updateDeath; baseCharacteristics = characteristics; currentHp = baseCharacteristics.hp; this.faction = faction; this.effectsController = effectsController; UpdateCharacteristics( baseCharacteristics ); }
public HeroUnit( string name, UnitCharacteristics characteristics, Spell[] spells, EntityController.Faction faction, EffectsController effectsController, BaseUnitController.UpdateCharacteristics updateCharacteristics, BaseUnitController.Death updateDeath, HeroUnitController.LevelUpEffectDelegate levelUpEffect, BaraksModel.SetUpdeteCharacteristicsDelegate setUpdeteCharacteristicsDelegate, Action deleteVisualEffect ) : base(characteristics, faction, effectsController, updateCharacteristics, updateDeath, setUpdeteCharacteristicsDelegate, deleteVisualEffect) { this.spells = spells; this.levelUpEffect = levelUpEffect; }
public void CreateUnit( UnitViewPresenter unitViewPresenter, BaseUnit.UnitCharacteristics unitCharacteristics, Faction faction, BaraksModel.SetUpdeteCharacteristicsDelegate setUpdeteCharacteristicsDelegate ) { unitViewPresenter.faction = faction; unitViewPresenter.GetPlayer( player ); BaseUnitController unitController; if ( unitViewPresenter.unitType == BaseUnit.UnitType.hero ) { unitController = new HeroUnitController( SelectUnit, (HeroViewPresentor)unitViewPresenter, unitCharacteristics, GetUnitTarget, faction, DestroyUnit, _HeroResurrect, setUpdeteCharacteristicsDelegate ); buildController = new BuildController( SelectUnit, buildViewPresenter, unitCharacteristics, GetUnitTarget, faction, DestroyUnit, setUpdeteCharacteristicsDelegate ); } else { unitController = new BaseUnitController( SelectUnit, unitViewPresenter, unitCharacteristics, GetUnitTarget, faction, DestroyUnit, setUpdeteCharacteristicsDelegate ); } if ( faction == Faction.Blue ) { unitsControllersBlue.Add( unitController ); } else { unitsControllersRed.Add( unitController ); } }
public BuildView( BuildViewPresenter unitViewPresenter, BaseUnitController.SelectUnit selectUnit, BaseUnit.DamageDelegate damageDelegate ) : base(unitViewPresenter, selectUnit, damageDelegate) { unitViewPresenter.AddDamageDelegate( damageDelegate ); }
public override void Setup(BaseUnitController invoker) { this.invoker = invoker; grid = Grid.Instance; }
public abstract void Setup(BaseUnitController invoker);
public void AddSelectDelegate( BaseUnitController.SelectUnit selectUnit ) { this.selectUnit = selectUnit; }
public HeroView( HeroViewPresentor unitViewPresenter, BaseUnitController.SelectUnit selectUnit, BaseUnit.DamageDelegate damageDelegate, HeroUnit.GetXpDelegate GetXpDelegate ) : base(unitViewPresenter, selectUnit, damageDelegate) { unitViewPresenter.AddXpDelegate( GetXpDelegate ); }
public BaseUnitView( UnitViewPresenter unitViewPresenter, BaseUnitController.SelectUnit selectUnit, BaseUnit.DamageDelegate damageDelegate ) { this.unitViewPresenter = unitViewPresenter; unitViewPresenter.AddSelectDelegate( selectUnit ); unitViewPresenter.AddDamageDelegate( damageDelegate ); }
private bool SelectUnit(BaseUnitController selectedUnit, Faction faction) { if ( Faction.Blue == faction ) { unitsControllersSelectedBlue.Add( selectedUnit ); if ( unitsControllersSelectedBlue.Count == 1 ) { int level = -1; if ( selectedUnit.GetUnitViewPresenter().unitType == BaseUnit.UnitType.hero ) { level = ( (HeroUnitController)selectedUnit ).GetLevel(); } player.ShowUnitDescription( selectedUnit.GetUnitViewPresenter().unitType, selectedUnit.GetCharacteristics().armor, (int)selectedUnit.GetCharacteristics().attack, selectedUnit.GetCharacteristics().attackSpeed, selectedUnit.GetCharacteristics().attackRange, selectedUnit.GetCharacteristics().speed, level ); } else { player.HideUnitDescription(); if ( unitsControllersSelectedBlue.Count == 2 ) { player.ShowUnitsIcon( unitsControllersSelectedBlue[0].GetUnitViewPresenter().unitType ); } player.ShowUnitsIcon( selectedUnit.GetUnitViewPresenter().unitType ); } if ( selectedUnit.GetUnitViewPresenter().unitType == BaseUnit.UnitType.hero ) { Debug.Log( "((HeroUnitController)selectedUnit).AbilityDelegate(): " + ( (HeroUnitController)selectedUnit ).AbilityDelegate().spells.Length ); player.ShowActionButtons( selectedUnit.GetUnitViewPresenter().unitType, ((HeroUnitController)selectedUnit).AbilityDelegate() ); } return true; } else { return false; } }