Пример #1
0
        protected override void InitEffects()
        {
            int rocketBlastRadius = 3;

            base.InitEffects();
            AttackData rocketProjectileAttack = new AttackData();

            rocketProjectileAttack.Type    = AttackType.PHYSICAL;
            rocketProjectileAttack.Element = ElementType.NONE;
            AttackData rocketBlastAttack = new AttackData();

            rocketProjectileAttack.Type    = AttackType.BLAST;
            rocketProjectileAttack.Element = ElementType.NONE;

            DamageData dmg = new DamageData();

            dmg.Magnitude     = 6;
            dmg.DmgAttackType = AttackType.BLAST;
            dmg.DmgElement    = ElementType.NONE;
            dmg.DamagesWalls  = true;

            Effects.Add(new Effect_WriteText("The quazax rocketeer fires a rocket!"));

            Effect_GenericProjectile rocketProjectile = new Effect_GenericProjectile(rocketProjectileAttack);
            Effect_Blast             rocketBlast      = new Effect_Blast(rocketBlastAttack, rocketBlastRadius);

            rocketProjectile.SetSource(_scene.GetGameObjectPool().GetActor(OwnerID).Position);
            rocketBlast.EffectsOnEachActor.Add(new Effect_BasicDamage(dmg));
            rocketProjectile.EffectsOnStrike.Add(rocketBlast);

            Effects.Add(rocketProjectile);
        }
Пример #2
0
        protected override void InitEffects()
        {
            base.InitEffects();
            AttackData atk = new AttackData();

            atk.Type    = AttackType.BLAST;
            atk.Element = ElementType.NONE;
            DamageData dmg = new DamageData();

            dmg.Magnitude     = damage;
            dmg.DmgAttackType = AttackType.BLAST;
            dmg.DmgElement    = ElementType.NONE;

            Effects.Add(new Effect_WriteText("You create a shockwave of magical force!"));

            Effect_Blast blastEffect = new Effect_Blast(atk, Range);

            blastEffect.BlastColor = new Color(libtcod.TCODColor.lighterBlue);
            blastEffect.ExcludedActors.Add(OwnerID);
            blastEffect.EffectsOnEachActor.Add(new Effect_BasicDamage(dmg));
            blastEffect.SetTarget(_scene.GetGameObjectPool().GetActor(OwnerID).Position);
            Effects.Add(blastEffect);
        }
Пример #3
0
        protected override void InitEffects()
        {
            int rocketScatterRadius = 5;
            int rocketBlastRadius   = 3;

            base.InitEffects();
            AttackData rocketProjectileAttack = new AttackData();

            rocketProjectileAttack.Type    = AttackType.PHYSICAL;
            rocketProjectileAttack.Element = ElementType.NONE;
            AttackData rocketBlastAttack = new AttackData();

            rocketProjectileAttack.Type    = AttackType.BLAST;
            rocketProjectileAttack.Element = ElementType.NONE;

            DamageData dmg = new DamageData();

            dmg.Magnitude     = 4;
            dmg.DmgAttackType = AttackType.BLAST;
            dmg.DmgElement    = ElementType.NONE;
            dmg.DamagesWalls  = true;

            Effects.Add(new Effect_WriteText("The mechanodragon fires a volley of rockets!"));

            Effect_PickRandomTargetsInRadius randomTargets = new Effect_PickRandomTargetsInRadius(rocketScatterRadius, 4, 4);

            Effect_GenericProjectile rocketProjectile = new Effect_GenericProjectile(rocketProjectileAttack);
            Effect_Blast             rocketBlast      = new Effect_Blast(rocketBlastAttack, rocketBlastRadius);

            rocketProjectile.SetSource(_scene.GetGameObjectPool().GetActor(OwnerID).Position);
            rocketBlast.EffectsOnEachActor.Add(new Effect_BasicDamage(dmg));
            rocketProjectile.EffectsOnStrike.Add(rocketBlast);
            randomTargets.EffectsOnEachTarget.Add(rocketProjectile);

            Effects.Add(randomTargets);
        }