/// <summary> /// The create new unit. /// </summary> /// <param name="unit"> /// The unit. /// </param> /// <returns> /// The <see cref="IAbilityUnit" />. /// </returns> public IUncontrollableUnit CreateNewUnit(Unit unit, IAbilityTeam team) { IUncontrollableUnit abilityUnit; if (unit.Team == GlobalVariables.EnemyTeam) { abilityUnit = new Enemy(unit); } else { abilityUnit = new Ally(unit); } team.UnitManager.AddUnit(abilityUnit); var composer = this.UnitComposers.FirstOrDefault(x => x.Metadata.ClassIds.Contains(abilityUnit.SourceUnit.ClassId)); if (composer != null) { composer.Value.Compose(abilityUnit); } else { this.unitComposer.Compose(abilityUnit); } return(abilityUnit); }
public TeamEntry(IAbilityTeam team, IUserInterfaceElement parent) { this.Team = team; this.Parent = parent; this.teamNameBg.Size = new Vector2(parent.Size.X, HUDInfo.GetHpBarSizeY() * 2); this.teamName.Text = team.Name.ToString(); this.teamName.TextSize = new Vector2(this.teamNameBg.Size.Y); this.hideButton = new Button( new Vector2(this.teamNameBg.Size.Y), new Vector2(this.teamNameBg.Size.X - this.teamNameBg.Size.Y, 0), "-", Color.White, this, () => { this.drawElements = !this.drawElements; if (this.drawElements) { this.hideButton.Text = "-"; } else { this.hideButton.Text = "+"; } this.UpdateSize(); }); // foreach (var abilityUnit in this.Team.UnitManager.Units) // { // this.unitEntries.Add(abilityUnit.Key, new UnitEntry(abilityUnit.Value, this)); // } this.Team.UnitManager.UnitAdded.Subscribe( new DataObserver <IAbilityUnit>( unit => { this.unitEntries.Add(unit.UnitHandle, new UnitOverlayEntry(unit, this)); this.UpdateSize(); })); this.Team.UnitManager.UnitRemoved.Subscribe( new DataObserver <IAbilityUnit>( unit => { this.unitEntries.Remove(unit.UnitHandle); this.UpdateSize(); })); this.UpdateSize(); }
/// <summary> /// The create new controllable unit. /// </summary> /// <param name="unit"> /// The unit. /// </param> /// <returns> /// The <see cref="IControllableUnit" />. /// </returns> public IControllableUnit CreateNewControllableUnit(Unit unit, IAbilityTeam team) { IControllableUnit controllableUnit; if (unit is Hero) { if (unit.Handle.Equals(GlobalVariables.LocalHero.Handle)) { controllableUnit = new LocalHero(unit); } else if (unit is Meepo) { controllableUnit = new ControllableMeepo(unit); } else { controllableUnit = new ControllableHero(unit); } } else { controllableUnit = new ControllableCreep(unit); } team.UnitManager.AddUnit(controllableUnit); var composer = this.UnitComposers.FirstOrDefault( x => x.Metadata.ClassIds.Contains(controllableUnit.SourceUnit.ClassId)); if (composer != null) { composer.Value.Compose(controllableUnit); } else { this.unitComposer.Compose(controllableUnit); } return(controllableUnit); }
public UnitManager(IAbilityTeam team) { this.Team = team; }
/// <summary> /// The create new unit. /// </summary> /// <param name="unit"> /// The unit. /// </param> /// <returns> /// The <see cref="IAbilityUnit" />. /// </returns> public IAbilityUnit CreateNewUnit(Unit unit, IAbilityTeam team, IAbilityUnit owner = null) { IAbilityUnit abilityUnit; if (unit is Hero) { if (unit.Handle.Equals(GlobalVariables.LocalHero.Handle)) { abilityUnit = new LocalHero(unit); } else if (unit is Meepo) { abilityUnit = new AbilityUnitMeepo(unit as Meepo); } else { abilityUnit = new AbilityHero(unit); } } else { abilityUnit = new AbilityCreep(unit); } team.UnitManager.AddUnit(abilityUnit); if (owner != null) { abilityUnit.Owner = owner; } if (abilityUnit.IsHero) { var composer = this.UnitHeroComposers.FirstOrDefault( x => x.Metadata.HeroIds.Contains((uint)(abilityUnit.SourceUnit as Hero).HeroId)); if (composer != null) { composer.Value.Compose(abilityUnit); } else { this.unitComposer.Compose(abilityUnit); } return(abilityUnit); } var unitcomposer = this.UnitComposers.FirstOrDefault(x => x.Metadata.UnitNames.Contains(abilityUnit.Name)); if (unitcomposer != null) { unitcomposer.Value.Compose(abilityUnit); } else { this.unitComposer.Compose(abilityUnit); } return(abilityUnit); }
internal UnitManager(IAbilityTeam team) { this.Team = team; }