Exemplo n.º 1
0
        public override void Activate()
        {
            StartEffect();
            if (_sourceTile != null)
            {
                _attack.SourceCoordinate = _sourceTile;
            }
            if (_targetTile != null)
            {
                _attack.TargetCoordinate = _targetTile;
            }

            //Assemble a list of the affected tiles
            _affectedTiles = _scene.GetTilesWithinDistance(_attack.TargetCoordinate, _radius, false);
            int i = 0;

            while (i < _affectedTiles.Count)
            {
                if (_scene.IsTileShootableFromLocation(_attack.TargetCoordinate, _affectedTiles[i], _radius))
                {
                    i++;
                }
                else
                {
                    _affectedTiles.RemoveAt(i);
                }
            }

            //Show attack special effect and trigger rest of attack when finished
            int fxId = _scene.GetGameObjectPool().CreateSpecialEffect("specialEffect_basicBlast");
            SpecialEffect_BasicBlast fx = (SpecialEffect_BasicBlast)_scene.GetGameObjectPool().GetSpecialEffect(fxId);

            fx.Init(BlastColor, _attack.SourceCoordinate, _radius, _affectedTiles, new SpecialEffect.OnSpecialEffectEndCallback(OnSpecialEffectEnd));
            _scene.AddSpecialEffect(fxId);
        }
Exemplo n.º 2
0
        public int CreateSpecialEffect(string specialEffectType)
        {
            GameObject obj = null;

            if (specialEffectType == "specialEffect_basicProjectile")
            {
                obj = new SpecialEffect_BasicProjectile(GetNextID());
            }
            else if (specialEffectType == "specialEffect_basicMelee")
            {
                obj = new SpecialEffect_BasicMelee(GetNextID());
            }
            else if (specialEffectType == "specialEffect_basicBlast")
            {
                obj = new SpecialEffect_BasicBlast(GetNextID());
            }
            else
            {
                throw new NotImplementedException();
            }

            return(RegisterGameObject(obj));
        }