/// <summary> /// Constructor /// </summary> /// <param name="body"></param> /// <param name="model"></param> /// <param name="team"></param> public AbstractFlag(AbstractBody body, PrimitiveBuilder model, AbstractTeam team) : base(body, model) { this.Team = team; this.InitialPosition = body.GetPosition(); EntityTable.Instance.Add(this.Body, this); }
/// <summary> /// Constructor /// </summary> /// <param name="body"></param> /// <param name="model"></param> /// <param name="team"></param> /// <param name="enemyTeam"></param> public BotPlayer(AbstractBody body, PrimitiveBuilder model, AbstractTeam team, AbstractTeam enemyTeam) : base(body, model, team, enemyTeam) { this.SetCollisionBehaviors(new CollisionBehaviors(this)); this.MovementBehavior = new MovementBehavior(); this.AttackBehavior = new AttackBehavior(); }
/// <summary> /// Creates the "default" instance of this class /// </summary> /// <param name="color"></param> /// <param name="team"></param> /// <param name="enemyTeam"></param> /// <returns></returns> public static UserPlayer Default(Color color, AbstractTeam team, AbstractTeam enemyTeam) { CircleBody body = BodyFactory.Circle(false, AppSettingsFacade.PlayerMass, AppSettingsFacade.PlayerMaxSpeed, AppSettingsFacade.PlayerFrictionCoefficient, true, AppSettingsFacade.PlayerRadius); PrimitiveBuilder model = new PrimitiveBuilder(color); model.Add(PrimitiveFactory.Circle(color, AppSettingsFacade.PlayerRadius, 3)); model.Add(PrimitiveFactory.Line(color, Vector2.Zero, Vector2.UnitX * body.GetRadius())); UserPlayer result = new UserPlayer(body, model, team, enemyTeam); team.AddPlayer(result); return result; }
/// <summary> /// Constructor /// </summary> /// <param name="body"></param> /// <param name="model"></param> /// <param name="team"></param> /// <param name="enemyTeam"></param> public UserPlayer(AbstractBody body, PrimitiveBuilder model, AbstractTeam team, AbstractTeam enemyTeam) : base(body, model, team, enemyTeam) { this.SetCollisionBehaviors(new CollisionBehaviors(this)); }
/// <summary> /// Constructor /// </summary> /// <param name="body"></param> /// <param name="model"></param> /// <param name="team"></param> protected AbstractPlayer(AbstractBody body, PrimitiveBuilder model, AbstractTeam team, AbstractTeam enemyTeam) : base(body, model) { this.Team = team; this.EnemyTeam = enemyTeam; this.Health = AppSettingsFacade.PlayerHealth; this.HealthLabel = new TextLabel(String.Empty, SpriteFontRepository.Instance.Get("test"), Vector2.Zero, LabelAlignment.Center, Color.White); this._messageQueue = new TextLabelQueue( SpriteFontRepository.Instance.Get("test"), Vector2.Zero, LabelAlignment.Center, Color.White, 3000); this._healthBar = new CircleProgressBar(new Color(20, 20, 30)); EntityTable.Instance.Add(this.Body, this); this.IsAlive = true; }
/// <summary> /// Add team /// </summary> /// <param name="team"></param> public void AddTeam(AbstractTeam team) { this.Teams.Add(team); }
/// <summary> /// Gets the closest player to the given location on the given team /// </summary> /// <param name="team"></param> /// <param name="position"></param> /// <returns></returns> public AbstractPlayer GetClosestPlayer(AbstractTeam team, Vector2 position) { return team.GetClosestPlayer(position); }
/// <summary> /// Constructor /// </summary> /// <param name="body"></param> /// <param name="model"></param> /// <param name="team"></param> public Flag(AbstractBody body, PrimitiveBuilder model, AbstractTeam team) : base(body, model, team) { this.SetCollisionBehaviors(new CollisionBehaviors(this)); }