public void RemoveExtension(IslandElement IslandElement) { var element = Elements[IslandElement]; element.Destroy(); Elements.Remove(IslandElement); }
public override void Init(IslandElement IslandElement, IslandElementUnityStatsViewFactory IslandElementUnityStatsViewFactory) { drawLifeStats = false; elem = IslandElement; fac = IslandElementUnityStatsViewFactory; base.Init(IslandElement, IslandElementUnityStatsViewFactory); }
public void ExtendIslandElement(IslandElement IslandElement) { var element = new CollisionSizeManager(IslandElement, this); Elements.Add(IslandElement, element); IslandElement.ChangeSizeListeners.Add(element); }
public bool Update(IslandElement islandElement, float deltaTime) { if (!islandElement.CanUseMana) { return(true); } var island = islandElement.Island; if (island == null) { return(true); } totalActionTime += deltaTime; if (totalActionTime < 1f) { return(false); } islandElement.MagicController.RemoveMana(10); var team = islandElement.TeamController.Team; var unitBuilder = island.WorldBuilder.uBuilder; var relativeToContainerPosition = islandElement.RelativeToContainerPosition + new Vector3(0.8f, 0, 0.8f); var fighter = unitBuilder.GetSpawnedFighter(islandElement, island, relativeToContainerPosition, team, isArcher); fighter.ActionHandler.SetNextCommand(new FollowAndProtectCommand(islandElement)); fighter.SpawnController.SetSpawn(60); return(true); }
public void ExtendIslandElement(IslandElement IslandElement) { var element = new IslandElementHydrationController(IslandElement, this); Elements.Add(IslandElement, element); IslandElement.ChangeCanDehydrateListeners.Add(element); }
public void DestroyIslandElementSafe(IslandElement IslandElement) { if (elements.Contains(IslandElement)) { DestroyIslandElement(IslandElement); } }
public override void Init(IslandElement IslandElement, IslandElementHydrationControllerFactory IslandElementHydrationControllerFactory) { IslandElement.HydrationController = this; this.elem = IslandElement; this.fac = IslandElementHydrationControllerFactory; base.Init(IslandElement, IslandElementHydrationControllerFactory); }
public bool Update(IslandElement islandElement, float deltaTime) { var toAttack = islandElement.NearOthersController.GetNearElements() .Where(e => islandElement.TeamController.IsHostileTowards(e)).ToList(); if (toAttack.Count == 0) { return(follow.Update(islandElement, deltaTime)); } var closest = toAttack[0]; for (int i = 1; i < toAttack.Count; i++) { var distance = (toAttack[i].RelativeToContainerPosition - islandElement.RelativeToContainerPosition).sqrMagnitude; var oldDistance = (closest.RelativeToContainerPosition - islandElement.RelativeToContainerPosition).sqrMagnitude; if (distance < oldDistance) { closest = toAttack[i]; } } if (previousToAttack == closest) { attack.Update(islandElement, deltaTime); return(false); } previousToAttack = closest; attack = new AttackAction(previousToAttack); return(false); }
public void AddIslandElement(IslandElement element) { if (element.NearOthersController.IsActive) { index.Add(element); } }
public void ExtendIslandElement(IslandElement IslandElement) { var element = new HarvestController(IslandElement, this); Elements.Add(IslandElement, element); IslandElement.ChangeHarvestControllerListeners.Add(element); }
public void RemoveIslandElement(IslandElement element) { if (element.NearOthersController.IsActive) { index.Remove(element); } }
public bool Update(IslandElement islandElement, float deltaTime) { if (!harvest && islandElement.ManaPoints < costMana) { return(true); } if (!islandElement.CanUseMana) { return(true); } if (islandElement.Island == null) { return(true); } if (!islandElement.Island.SizeController.CanRemoveByMagic()) { return(true); } totalActionTime += deltaTime; if (totalActionTime < 1f) { return(false); } if (harvest) { islandElement.Island.SizeController.RemoveByMagic((1 + magmaLevel)); islandElement.MagicController.AddMana(1); return(true); } islandElement.Island.SizeController.GiveByMagic(1 + magmaLevel); islandElement.MagicController.RemoveMana(1); return(true); }
public override void Init(IslandElement IslandElement, IslandElementSpawnControllerFactory IslandElementSpawnControllerFactory) { IslandElement.SpawnController = this; elem = IslandElement; base.Init(IslandElement, IslandElementSpawnControllerFactory); this.fac = IslandElementSpawnControllerFactory; }
public void ExtendIslandElement(IslandElement IslandElement) { var element = new NearOthersController(IslandElement, this); Elements.Add(IslandElement, element); IslandElement.ChangeRelativeToContainerPositionListeners.Add(element); }
public bool Update(IslandElement unit, float deltaTime) { if (unit.Island == null || Island == null) { return(true); } CurrentIslandRelativeGoalPosition = RelativePosition; if (this.Island != unit.Island) { SetGoalPositionTowardsOtherIsland(unit); } if (unit.RelativeGoalPosition != CurrentIslandRelativeGoalPosition || unit.HasRelativeGoalPosition == false) { unit.RelativeGoalPosition = CurrentIslandRelativeGoalPosition; unit.HasRelativeGoalPosition = true; } unit.MovementController.Update(deltaTime, arrivedDistance); var onsame = this.Island == unit.Island; if (onsame) { return(onsame && !unit.HasRelativeGoalPosition); } return(onsame && !unit.HasRelativeGoalPosition); }
public override void Init(IslandElement IslandElement, InventoryControllerFactory InventoryControllerFactory) { base.Init(IslandElement, InventoryControllerFactory); this.IslandElement = IslandElement; this.IslandElement.InventoryController = this; UpdateView(); }
public override void Init(IslandElement IslandElement, HarvestControllerFactory HarvestControllerFactory) { this.IslandElement = IslandElement; this.IslandElement.HarvestController = this; this.fac = HarvestControllerFactory; base.Init(IslandElement, HarvestControllerFactory); }
public void DestroyIslandElement(IslandElement IslandElement) { elements.Remove(IslandElement); foreach (var subFactory in SubFactories) { subFactory.RemoveExtension(IslandElement); } }
public void Attack(IslandElement other) { if (!CanAttackOther(other)) { return; } other.FightingController.GetAttacked(AttackValue); }
public override void Init(IslandElement IslandElement, IslandElementMagicControllerFactory IslandElementMagicControllerFactory) { IslandElement.MagicController = this; base.Init(IslandElement, IslandElementMagicControllerFactory); this._elem = IslandElement; DisableMagic(); }
public void Harvest(float harvestEffort, IslandElement other) { if (harvestTactic == null) { return; } harvestTactic.Harvest(harvestEffort, other); }
public override void Init(IslandElement IslandElement, IslandElementLifeControllerFactory IslandElementLifeControllerFactory) { this.elem = IslandElement; this.elem.LifePoints = 10; this.elem.MaxLifePoints = 10; this.elem.LifeController = this; this.elem.IsAlive = true; }
public void ExtendIslandElement(IslandElement IslandElement) { var element = new IslandElementLightController(IslandElement, this); Elements.Add(IslandElement, element); IslandElement.ChangehasLightListeners.Add(element); IslandElement.ChangePositionListeners.Add(element); }
public List <IslandElement> GetElementsNear(IslandElement element) { return (index.GetElements(element.RelativeToContainerPosition) .Where(e => e != element) .Select(e => (IslandElement)e) .ToList()); }
public void ExtendIslandElement(IslandElement IslandElement) { var element = new IslandElementContainerManager(IslandElement, this); Elements.Add(IslandElement, element); IslandElement.ChangeIslandToEnterListeners.Add(element); IslandElement.ChangeIslandPositionListeners.Add(element); IslandElement.ChangeRelativeToContainerPositionListeners.Add(element); }
public override void Init(IslandElement IslandElement, IslandElementFightingControllerFactory IslandElementFightingControllerFactory) { IslandElement.FightingController = this; DefenseValue = 1; this.DisableAttack(); CanBeAttacked = false; this.IslandElement = IslandElement; base.Init(IslandElement, IslandElementFightingControllerFactory); }
public bool IsCloseEnoughToAttack(IslandElement other) { var otherRadius = other.CircleElementProperties.Radius; var myRadius = IslandElement.CircleElementProperties.Radius; var maxRange = otherRadius + myRadius + AttackRange * 0.1f + 0.1f; return(maxRange * maxRange > (other.Position - IslandElement.Position).sqrMagnitude); }
public void ExtendIslandElement(IslandElement IslandElement) { var element = new IslandElementActionHandler(IslandElement, this); Elements.Add(IslandElement, element); IslandElement.ChangeCurrentCommandListeners.Add(element); IslandElement.ChangeCurrentActionListeners.Add(element); IslandElement.ChangeCurrentLifeActionListeners.Add(element); }
void IHarvestControllerTactic.Harvest(float harvestEffort, IslandElement harvested) { var resources = harvested.HarvestController.GetHarvested(harvestEffort); if (!resources.Empty()) { element.InventoryController.AddResources(resources); } }
public Vector3 MoveElementWithoutColliding(IslandElement islandElement, Vector3 oldPosition, Vector3 newPosition) { if (!CanMoveTowards(islandElement, oldPosition, newPosition)) { newPosition = spaceIndex.GetElementPositionWithoutColliding(islandElement, oldPosition, newPosition); } MoveElement(islandElement, newPosition); return(newPosition); }