- You can't anymore place castles or keeps in Malas facet

(http://www.runuo.com/bugs/index.php?cmd=view&id=38)

- Unfilled commodity deeds now carry the etching "Unfilled"
(http://www.runuo.com/bugs/index.php?cmd=view&id=40)

- Empty scrolls can be deeded in a commodity deed
(http://www.uodemise.com/discussion/showthread.php?t=127485)

- Dying tubs, if locked down, can allow security level choices
(http://www.uodemise.com/discussion/showthread.php?t=128546)

- Changes in Energy Vortex skills: they'll have 120 wrestling (it was 100) and 100 tactics (it was 90)
(http://www.uodemise.com/discussion/showthread.php?t=122733)

- Wooden Footlockers now show the correct container gump
(http://www.uodemise.com/discussion/showthread.php?t=126452)

- Changes to Interior Decorator (still not includes the fix to turn paragon chests):
--> single item addons can be raised/lowered
--> the gump stays visible until target is cancelled
--> target won't be cancelled automatically when the decorator is used on a target
(http://www.uodemise.com/discussion/showthread.php?t=126668)

- Doom Lever Puzzle item list changed to generics
(http://www.uodemise.com/discussion/showthread.php?t=130396)

- Morphed forms will check now the current skill level: the morph effect is lost if skill level goes under the minimum required.
(http://www.uodemise.com/discussion/showthread.php?t=116542)

- Mage NPC vendors now buy necro scrolls; the price of scrolls got tweaked (= raised) to match OSI
(http://www.runuo.com/bugs/index.php?cmd=view&id=90)
(http://www.runuo.com/bugs/index.php?cmd=view&id=113)

- You can't anymore discord NPC vendors
(http://www.runuo.com/bugs/index.php?cmd=view&id=33)

- Removing a rune from runebook won't change the default rune set
(http://www.runuo.com/bugs/index.php?cmd=view&id=41)

- Various runebook security changes (see link for the list)
(http://www.runuo.com/bugs/index.php?cmd=view&id=39)

- You can't use the Sacrifice virtue while hidden
(http://www.runuo.com/bugs/index.php?cmd=view&id=42)

- Added the Deceit Brazier: doubleclicking it will summon a random "britannian" monster (check [props for delays)
(http://www.uodemise.com/discussion/showthread.php?t=123805)

- Casting spells will raise also the secondary skill associated (example: Necro and SpiritSpeak)
(http://www.runuo.com/bugs/index.php?cmd=view&id=43)

- Word of Death changes:
--> the "pitful damage" is much powerful now
--> you have to bring the target health below (5*arcanefocus)% to strike the powerful blast of 300 chaos damage
--> the damage is influenced by SDI
(http://www.runuo.com/bugs/index.php?cmd=view&id=36)

- Teleporters generated by [telgen got corrected for the Wrong dungeon
(http://www.runuo.com/bugs/index.php?cmd=view&id=34)
This commit is contained in:
daedalus 2009-11-09 19:29:19 +00:00
parent b54bf2c8bb
commit 95de3595cd
23 changed files with 586 additions and 115 deletions

View file

@ -5,7 +5,6 @@ using Server.Network;
using Server.Mobiles;
using Server.Commands;
using System.Collections.Generic;
using System.Collections;
/*
this is From me to you, Under no terms, Conditions... K? to apply you
@ -22,10 +21,10 @@ namespace Server.Engines.Doom
private UInt16 m_MyKey;
private UInt16 m_TheirKey;
private ArrayList m_Levers;
private ArrayList m_Teles;
private ArrayList m_Statues;
private ArrayList m_Tiles;
private List<Item> m_Levers;
private List<Item> m_Teles;
private List<Item> m_Statues;
private List<LeverPuzzleRegion> m_Tiles;
private Mobile m_Successful;
private LampRoomBox m_Box;
private Region m_LampRoom;
@ -92,19 +91,19 @@ namespace Server.Engines.Doom
installed=true;
int i=0;
m_Levers = new ArrayList(); /* codes are 0x1 shifted left x # of bits, easily handled here */
m_Levers = new List<Item>(); /* codes are 0x1 shifted left x # of bits, easily handled here */
for (; i<4; i++)
m_Levers.Add( AddLeverPuzzlePart( TA[i], new LeverPuzzleLever( (ushort)(1<<i), this )));
m_Tiles = new ArrayList();
m_Tiles = new List<LeverPuzzleRegion>();
for (; i<9; i++)
m_Tiles.Add( new LeverPuzzleRegion( this, TA[i] ));
m_Teles = new ArrayList();
m_Teles = new List<Item>();
for (; i<15; i++)
m_Teles.Add( AddLeverPuzzlePart( TA[i], new LampRoomTelePorter( TA[++i] )));
m_Statues = new ArrayList();
m_Statues = new List<Item>();
for (; i<19; i++)
m_Statues.Add( AddLeverPuzzlePart( TA[i], new LeverPuzzleStatue( TA[++i], this )));
@ -159,7 +158,7 @@ namespace Server.Engines.Doom
}
}
public static void NukeItemList( ArrayList list )
public static void NukeItemList( List<Item> list )
{
if ( list != null && list.Count != 0 )
{
@ -395,16 +394,21 @@ namespace Server.Engines.Doom
{
IEntity m_IEntity = new Entity( Serial.Zero, RandomPointIn( m_Player.Location, 10 ), m_Player.Map );
foreach( Mobile m in m_IEntity.Map.GetMobilesInRange( m_IEntity.Location, 2 ) )
List<Mobile> mobiles = new List<Mobile>();
foreach( Mobile m in m_IEntity.Map.GetMobilesInRange( m_IEntity.Location, 2 ))
{
if( IsValidDamagable( m ) && m != m_Player )
mobiles.Add( m );
}
for( int k=0; k<mobiles.Count; k++ )
{
if( IsValidDamagable( mobiles[k] ) && mobiles[k] != m_Player )
{
PlayEffect( m_Player, m, Rock(), 8, true );
DoDamage( m, 25, 30, false );
PlayEffect( m_Player, mobiles[k], Rock(), 8, true );
DoDamage( mobiles[k], 25, 30, false );
if( m.Player )
if( mobiles[k].Player )
{
POHMessage( m, 2 ); // OUCH!
POHMessage( mobiles[k], 2 ); // OUCH!
}
}
}
@ -510,8 +514,6 @@ namespace Server.Engines.Doom
return true;
}
/* TODO: need to resolve lockup @ basecreature damage
if( m is BaseCreature )
{
BaseCreature bc=(BaseCreature)m;
@ -520,7 +522,6 @@ namespace Server.Engines.Doom
return true;
}
}
*/
}
return false;
}
@ -554,14 +555,10 @@ namespace Server.Engines.Doom
public static void DoDamage( Mobile m, int min, int max, bool poison )
{
int damage = Utility.Random(min,max);
if ( Core.AOS )
if ( m != null && !m.Deleted && m.Alive )
{
AOS.Damage( (m is BaseCreature) ? (BaseCreature)m : m, damage,(poison) ? 0 : 100 , 0, 0,(poison) ? 100 : 0, 0 );
}
else
{
m.Damage( damage );
int damage = Utility.Random(min,max);
AOS.Damage( m, damage,(poison) ? 0 : 100 , 0, 0,(poison) ? 100 : 0, 0 );
}
}
@ -717,13 +714,13 @@ namespace Server.Engines.Doom
int version = reader.ReadInt();
m_Levers = reader.ReadItemList();
m_Statues = reader.ReadItemList();
m_Teles = reader.ReadItemList();
m_Levers = reader.ReadStrongItemList();
m_Statues = reader.ReadStrongItemList();
m_Teles = reader.ReadStrongItemList();
m_Box = reader.ReadItem() as LampRoomBox;
m_Tiles = new ArrayList();
m_Tiles = new List<LeverPuzzleRegion>();
for (int i = 4; i<9; i++)
m_Tiles.Add( new LeverPuzzleRegion( this, TA[i] ));

View file

@ -20,10 +20,15 @@ namespace Server
public static void OnVirtueUsed( Mobile from )
{
if ( from.Alive )
from.Target = new InternalTarget();
else
Resurrect( from );
if ( !from.Hidden )
{
if ( from.Alive )
from.Target = new InternalTarget();
else
Resurrect( from );
}
else
from.SendLocalizedMessage( 1052015 ); // You cannot do that while hidden.
}
public static void CheckAtrophy( Mobile from )