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); }