Пример #1
0
        protected override void HandleMonsters(Character p_sorcerer, SpellEventArgs p_result, List <Object> p_targets, Single p_magicFactor)
        {
            List <Monster> objectsByType = LegacyLogic.Instance.WorldManager.GetObjectsByType <Monster>();

            foreach (Monster monster in objectsByType)
            {
                MonsterBuff monsterBuff = BuffFactory.CreateMonsterBuff(EMonsterBuffType.HARMONY, p_magicFactor);
                monsterBuff.ScaleDuration(p_magicFactor);
                monster.BuffHandler.AddBuff(monsterBuff);
                p_targets.Add(monster);
                Boolean p_Successful = monster.BuffHandler.HasBuff(EMonsterBuffType.HARMONY);
                Boolean p_IsImmune   = false;
                if (!monster.AbilityHandler.CanAddBuff(monsterBuff.Type))
                {
                    p_IsImmune = true;
                }
                p_result.SpellTargets.Add(new MonsterBuffTarget(monster, EMonsterBuffType.HARMONY, p_Successful, p_IsImmune));
            }
        }
        protected override void SpawnCagePiece(Position p_position, Boolean p_isVisible)
        {
            Monster monster = new Monster((!p_isVisible) ? 718 : 717, -1);

            monster.Position  = p_position;
            monster.Direction = EDirection.EAST;
            monster.SpawnAnim = 1;
            LegacyLogic.Instance.WorldManager.MonsterGroupHandler.GetGroup(10000);
            monster.MonsterGroupID = 10000;
            if (m_grid.AddMovingEntity(monster.Position, monster))
            {
                LegacyLogic.Instance.WorldManager.SpawnObject(monster, monster.Position);
            }
            MonsterBuff monsterBuff = BuffFactory.CreateMonsterBuff(EMonsterBuffType.OSCILLATION, 1f, m_level);

            monsterBuff.ScaleDuration(1f);
            ((MonsterBuffOscillation)monsterBuff).ForVisualsOnly = !p_isVisible;
            monster.BuffHandler.AddBuff(monsterBuff);
        }