void spawnBonus(Entity e, BonusModelComponent bonus, Entity follow, float magnetRadius) { Vector2 position = e.position.pos; int amount = Random.Range(bonus.minAmount, bonus.maxAmount); for (int i = 0; i < amount; i++) { float offsetX = Random.Range(-MAX_TWEEN_RADIUS, MAX_TWEEN_RADIUS); float offsetY = Random.Range(-MAX_TWEEN_RADIUS, MAX_TWEEN_RADIUS); Entity bonusEntity = pool.CreateEntity() .AddBonus(bonus.type) .AddVelocityLimit(VELOCITY) .AddVelocity(new Vector2()) .AddTween(true, new List<Tween>()) .AddPosition(new Vector2(position.x, position.y)) .AddHealth(0) .AddCollision(CollisionTypes.Bonus, 0) .AddFollowTarget(follow) .AddMagnet(magnetRadius) .AddTweenOnDeath(0.5f, 1.4f) .AddResource(bonus.resource); bonusEntity.tween.AddTween(bonusEntity.position, EaseTypes.linear, PositionAccessorType.XY, 2.0f) .From(position.x, position.y) .To(position.x + offsetX, position.y + offsetY); } }
public BonusPanelHud(Transform content, BonusModelComponent component) { this.content = content; this.component = component; executor = new BonusActionExecutor(component); setData(); }
void activateBonus(BonusModelComponent bonus) { switch(bonus.type) { case BonusTypes.Star: // do nothing break; case BonusTypes.Speed: activateSpeedBonus(); break; case BonusTypes.Laser: activateLaser(); break; case BonusTypes.Shield: activateShield(); break; case BonusTypes.Atom: spawnAtom(); break; case BonusTypes.FireRate: activateFireRateBoost(); break; case BonusTypes.Damage: activateDamageBoost(); break; case BonusTypes.HomingMissile: spawnHomingMissiles(); break; default: throw new UnityException("Unknown bonus type: " + bonus.type); } }
void activateBonus(BonusModelComponent bonus) { switch(bonus.type) { case BonusTypes.Star: // do nothing break; case BonusTypes.Speed: _pool.CreateEntity() .AddSpeedBonus(15.0f, 0.0f, 2.0f); break; default: throw new UnityException("Unknown bonus type: " + bonus.type); } }
public void Execute(List <Entity> entities) { foreach (Entity e in entities) { BonusComponent bonus = e.bonus; foreach (Entity bonusEntity in _group.GetEntities()) { BonusModelComponent bonusModel = bonusEntity.bonusModel; if ((bonus.type & bonusModel.type) > 0) { activateBonus(bonusEntity.bonusModel); } } } }
void activateBonus(BonusModelComponent bonus) { switch (bonus.type) { case BonusTypes.Star: // do nothing break; case BonusTypes.Speed: _pool.CreateEntity() .AddSpeedBonus(15.0f, 0.0f, 2.0f); break; default: throw new UnityException("Unknown bonus type: " + bonus.type); } }
void spawnBonus(Entity e, BonusModelComponent bonus, Entity follow) { Vector2 position = e.position.pos; int amount = Random.Range(bonus.minAmount, bonus.maxAmount); for (int i = 0; i < amount; i++) { float velocityX = Random.Range(-VELOCITY, VELOCITY); float velocityY = Random.Range(-VELOCITY, VELOCITY); float acceX = velocityX > 0.0f ? -ACCELERATION : ACCELERATION; float acceY = velocityY > 0.0f ? -ACCELERATION : ACCELERATION; _pool.CreateEntity() .AddBonus(bonus.type) .AddVelocity(new Vector2(velocityX, velocityY)) .AddAcceleration(acceX, acceY, acceX > 0.0f ? -FRICTION : FRICTION, acceY > 0.0f ? -FRICTION : FRICTION, true) .AddPosition(new Vector2().Set(position)) .AddHealth(0) .AddCollision(CollisionTypes.Bonus) .AddFollowTarget(follow) .AddMagnet(TEST_VELOCITY, TEST_RADIUS) .AddResource(bonus.resource); } }
public void Execute(List <Entity> entities) { Entity player = _players.GetSingleEntity(); foreach (Entity e in entities) { BonusOnDeathComponent bonus = e.bonusOnDeath; int type = bonus.type; foreach (Entity bonusEntity in _group.GetEntities()) { BonusModelComponent model = bonusEntity.bonusModel; if ((type & model.type) > 0) { if (Random.value <= model.probability) { spawnBonus(e, model, player); } } } } }
void onBonusLoaded(BonusModelComponent component) { (viewService.SetView(ViewTypes.EDITOR_EDIT_BONUS) as EditBonusView).SetData(component); }
public override void ParseResult() { Component = JsonConvert.DeserializeObject<BonusModelComponent>(result); }
public void Execute(BonusModelComponent component) { component.probability = probability; }
public void UpdateBonus(BonusModelComponent component, Action onUpdated) { wwwService.Send<UpdateBonus>(new UpdateBonus(component), (request) => onUpdated(), onRequestFailed); }
public void Execute(BonusModelComponent component) { component.maxAmount = maxAmount; }
public UpdateBonus(BonusModelComponent component) { urlData.Add("bonuses"); urlData.Add("update"); postData.Add("data", JsonConvert.SerializeObject(component, Formatting.None, new JsonConverter[] { new Vector2Converter() })); }
public void SetData(BonusModelComponent component) { this.component = component; createHud(); }
public void Execute(BonusModelComponent component) { component.resource = resource; }
public BonusActionExecutor(BonusModelComponent component) { this.component = component; }