Exemplo n.º 1
0
        protected override void OnShowTowerLevelSuccess(Entity entity)
        {
            base.OnShowTowerLevelSuccess(entity);

            EntityTowerLevel entityTowerLevel = entity.Logic as EntityTowerLevel;

            targetter.SetAlignment(Alignment);
            targetter.SetTurret(entityTowerLevel.turret);
            targetter.SetSearchRange(entityDataTower.Tower.Range);
            targetter.ResetTargetter();

            AttackerData attackerData = AttackerData.Create(entityDataTower.Tower.Range,
                                                            entityDataTower.Tower.FireRate,
                                                            entityDataTower.Tower.IsMultiAttack,
                                                            entityDataTower.Tower.ProjectileType,
                                                            entityDataTower.Tower.ProjectileEntityId
                                                            );

            attacker.SetData(attackerData, entityDataTower.Tower.ProjectileData);
            attacker.SetTargetter(targetter);
            attacker.SetProjectilePoints(entityTowerLevel.projectilePoints);
            attacker.SetEpicenter(entityTowerLevel.epicenter);
            attacker.SetLaunch(entityTowerLevel.launcher);
            attacker.ResetAttack();
        }
        protected override void OnHide(bool isShutdown, object userData)
        {
            base.OnHide(isShutdown, userData);

            entityDataTower       = null;
            entityTowerLevel      = null;
            entityLogicTowerLevel = null;
        }
        protected virtual void OnShowTowerLevelSuccess(Entity entity)
        {
            entityTowerLevel      = entity;
            entityLogicTowerLevel = entityTowerLevel.Logic as EntityTowerLevel;
            GameEntry.Entity.AttachEntity(entityTowerLevel, this.Entity);

            GameEntry.Event.Fire(this, ShowEntityInLevelEventArgs.Create(
                                     (int)EnumEntity.BuildPfx,
                                     typeof(EntityParticleAutoHide),
                                     null,
                                     EntityData.Create(transform.position, transform.rotation)));

            GameEntry.Sound.PlaySound(EnumSound.TDTowerUpgrade);
        }
        protected override void OnShowTowerLevelSuccess(Entity entity)
        {
            base.OnShowTowerLevelSuccess(entity);

            EntityTowerLevel entityTowerLevel = entity.Logic as EntityTowerLevel;

            targetter.SetAlignment(Alignment);
            targetter.SetTurret(entityTowerLevel.turret);
            targetter.SetSearchRange(entityDataTower.Tower.Range);
            targetter.ResetTargetter();

            targetter.targetEntersRange += OnTargetEntersRange;
            targetter.targetExitsRange  += OnTargetExitsRange;

            foreach (var item in slowList)
            {
                item.ApplySlow(entityDataTower.Tower.SerialId, entityDataTower.Tower.SpeedDownRate);
            }
        }