Пример #1
0
    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);
        }
    }
Пример #2
0
 public BonusPanelHud(Transform content, BonusModelComponent component)
 {
     this.content = content;
     this.component = component;
     executor = new BonusActionExecutor(component);
     setData();
 }
Пример #3
0
 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);
     }
 }
Пример #4
0
 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);
     }
 }
Пример #5
0
 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);
             }
         }
     }
 }
Пример #6
0
    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);
        }
    }
Пример #7
0
    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);
        }
    }
Пример #8
0
    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);
                    }
                }
            }
        }
    }
Пример #9
0
    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);
        }
    }
Пример #10
0
 void onBonusLoaded(BonusModelComponent component)
 {
     (viewService.SetView(ViewTypes.EDITOR_EDIT_BONUS) as EditBonusView).SetData(component);
 }
Пример #11
0
 public override void ParseResult()
 {
     Component = JsonConvert.DeserializeObject<BonusModelComponent>(result);
 }
 public void Execute(BonusModelComponent component)
 {
     component.probability = probability;
 }
Пример #13
0
 public void UpdateBonus(BonusModelComponent component, Action onUpdated)
 {
     wwwService.Send<UpdateBonus>(new UpdateBonus(component), (request) => onUpdated(), onRequestFailed);
 }
 public void Execute(BonusModelComponent component)
 {
     component.maxAmount = maxAmount;
 }
Пример #15
0
 public UpdateBonus(BonusModelComponent component)
 {
     urlData.Add("bonuses");
     urlData.Add("update");
     postData.Add("data", JsonConvert.SerializeObject(component, Formatting.None, new JsonConverter[] { new Vector2Converter() }));
 }
Пример #16
0
 public void SetData(BonusModelComponent component)
 {
     this.component = component;
     createHud();
 }
 public void Execute(BonusModelComponent component)
 {
     component.resource = resource;
 }
Пример #18
0
 public BonusActionExecutor(BonusModelComponent component)
 {
     this.component = component;
 }