Exemplo n.º 1
0
        private void Teleport(IVictim victim)
        {
            float x = ResolutionManager.GetWidth / 2.0f;

            x = x + _random.Next(-(ResolutionManager.GetWidth / 4), (ResolutionManager.GetWidth / 4));
            float y = ResolutionManager.GetHeight / 2.0f;

            y = y + _random.Next(-(ResolutionManager.GetHeight / 4), (ResolutionManager.GetHeight / 4));

            //Vector2 randomDirection = new Vector2(_random.Next(-10,10),_random.Next(-10,10));
            //randomDirection.Normalize();

            //victim.Direction = randomDirection;
            victim.Rotation = (float)(_random.Next(-180, 180) / 10);
            victim.Position = new Vector2(x, y);
        }
Exemplo n.º 2
0
        public void DealDamage(int attackerId)
        {
            Assert.IsTrue(attackerId > 0, "Invalid player id");

            IVictim victim = GetEnemy(attackerId);

            // Victim already dead
            if (!victim.IsAlive())
            {
                return;
            }

            IAttacker attacker = GetPlayer(attackerId);

            // Deal damage
            float damage = attacker.GetDamage();

            if (damage <= 0)
            {
                return;
            }

            damage = victim.TakeDamage(damage);

            // Attacker
            attacker.DealDamage(damage);

            // Events
            eventManager.Trigger(new OnPlayerStatsChanged(victim.EntityId));
            eventManager.Trigger(new OnPlayerStatsChanged(attacker.EntityId));

            // Game over
            bool isAlive = victim.IsAlive();

            if (!isAlive)
            {
                EndGame();
            }
        }
Exemplo n.º 3
0
        private void CreateVictimBunshin(IVictim victim)
        {
            if (victim is Crystal)
            {
                Vector2 randomDirection = new Vector2(_random.Next(-30, 30), _random.Next(-30, 30));
                randomDirection.Normalize();
                EvilCrystal tempEvilCrystal = new EvilCrystal(victim.VictimTexture, victim.Position, DrawingHelper.DrawingLevel.Medium, _game, _world, victim.Color);
                tempEvilCrystal.Direction      = randomDirection;
                tempEvilCrystal.LinearVelocity = victim.VictimLinearVelocity;
                _evilCrystalList.Add(tempEvilCrystal);
                SyncedGameCollection.ComponentCollection.Add(tempEvilCrystal);
            }

            else if (victim is Unit)
            {
                float    randomAngleOffset = (_random.Next(-180, 180) / 10);
                EvilUnit tempEvilUnit      = new EvilUnit(victim.VictimTexture, victim.Position, victim.Color, _game, _world, DrawingHelper.DrawingLevel.Medium, (Unit)victim, randomAngleOffset);

                _evilUnitList.Add(tempEvilUnit);
                SyncedGameCollection.ComponentCollection.Add(tempEvilUnit);
            }
        }
Exemplo n.º 4
0
 private void ResetEffect(IVictim victim)
 {
     victim.LocalTimeScale = 1.0f;
 }
Exemplo n.º 5
0
 private void SlowDown(IVictim victim)
 {
     victim.LocalTimeScale = 0.2f;
 }
Exemplo n.º 6
0
 public override void GiveDamage(IVictim victim)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 7
0
 private void MakeVisible(IVictim victim)
 {
     victim.InvisibilityAlpha = 1.0f;
 }
Exemplo n.º 8
0
 public void Attack(IVictim victim)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 9
0
 public abstract void GiveDamage(IVictim victim);