157 lines
No EOL
4.6 KiB
C#
157 lines
No EOL
4.6 KiB
C#
using System;
|
|
using Server;
|
|
using Server.Mobiles;
|
|
using Server.Items;
|
|
|
|
namespace Server.Engines.Quests.Ambitious
|
|
{
|
|
public class AmbitiousQueenQuest : QuestSystem
|
|
{
|
|
private static Type[] m_TypeReferenceTable = new Type[]
|
|
{
|
|
typeof( Ambitious.DontOfferConversation ),
|
|
typeof( Ambitious.AcceptConversation ),
|
|
typeof( Ambitious.DuringKillQueensConversation ),
|
|
typeof( Ambitious.GatherFungiConversation ),
|
|
typeof( Ambitious.DuringFungiGatheringConversation ),
|
|
typeof( Ambitious.EndConversation ),
|
|
typeof( Ambitious.FullBackpackConversation ),
|
|
typeof( Ambitious.End2Conversation ),
|
|
typeof( Ambitious.KillQueensObjective ),
|
|
typeof( Ambitious.ReturnAfterKillsObjective ),
|
|
typeof( Ambitious.GatherFungiObjective ),
|
|
typeof( Ambitious.GetRewardObjective )
|
|
};
|
|
|
|
public override Type[] TypeReferenceTable{ get{ return m_TypeReferenceTable; } }
|
|
|
|
public override object Name
|
|
{
|
|
get
|
|
{
|
|
// Ambitious Solen Queen Quest
|
|
return 1054146;
|
|
}
|
|
}
|
|
|
|
public override object OfferMessage
|
|
{
|
|
get
|
|
{
|
|
/* <I>The Solen queen considers you eagerly for a moment then says,</I><BR><BR>
|
|
*
|
|
* Yes. Yes, I think you could be of use. Normally, of course, I would handle
|
|
* these things on my own, but these are busy times. Much to do, much to do.
|
|
* And besides, if I am to one day become the Matriarch, then it will be good to
|
|
* have experience trusting others to carry out various tasks for me. Yes.<BR><BR>
|
|
*
|
|
* That is my plan, you see - I will become the next Matriarch. Our current
|
|
* Matriarch is fine and all, but she won't be around forever. And when she steps
|
|
* down, I intend to be the next in line. Ruling others is my destiny, you see.<BR><BR>
|
|
*
|
|
* What I ask of you is quite simple. First, I need you to remove some of the
|
|
* - well - competition, I suppose. Though I dare say most are hardly competent to
|
|
* live up to such a title. I'm referring to the other queens of this colony,
|
|
* of course. My dear sisters, so to speak. If you could remove 5 of them, I would
|
|
* be most pleased. *sighs* By remove, I mean kill them. Don't make that face
|
|
* at me - this is how things work in a proper society, and ours has been more proper
|
|
* than most since the dawn of time. It's them or me, and whenever I give it
|
|
* any thought, I'm quite sure I'd prefer it to be them.<BR><BR>
|
|
*
|
|
* I also need you to gather some zoogi fungus for me - 50 should do the trick.<BR><BR>
|
|
*
|
|
* Will you accept my offer?
|
|
*/
|
|
return 1054060;
|
|
}
|
|
}
|
|
|
|
public override TimeSpan RestartDelay{ get{ return TimeSpan.Zero; } }
|
|
public override bool IsTutorial{ get{ return false; } }
|
|
|
|
public override int Picture{ get{ return 0x15C9; } }
|
|
|
|
private bool m_RedSolen;
|
|
|
|
public bool RedSolen{ get{ return m_RedSolen; } }
|
|
|
|
public AmbitiousQueenQuest( PlayerMobile from, bool redSolen ) : base( from )
|
|
{
|
|
m_RedSolen = redSolen;
|
|
}
|
|
|
|
// Serialization
|
|
public AmbitiousQueenQuest()
|
|
{
|
|
}
|
|
|
|
public override void ChildDeserialize( GenericReader reader )
|
|
{
|
|
int version = reader.ReadEncodedInt();
|
|
|
|
m_RedSolen = reader.ReadBool();
|
|
}
|
|
|
|
public override void ChildSerialize( GenericWriter writer )
|
|
{
|
|
writer.WriteEncodedInt( (int) 0 ); // version
|
|
|
|
writer.Write( (bool) m_RedSolen );
|
|
}
|
|
|
|
public override void Accept()
|
|
{
|
|
base.Accept();
|
|
|
|
AddConversation( new AcceptConversation() );
|
|
}
|
|
|
|
public static void GiveRewardTo( PlayerMobile player, ref bool bagOfSending, ref bool powderOfTranslocation, ref bool gold )
|
|
{
|
|
if ( bagOfSending )
|
|
{
|
|
Item reward = new BagOfSending();
|
|
|
|
if ( player.PlaceInBackpack( reward ) )
|
|
{
|
|
player.SendLocalizedMessage( 1054074, "", 0x59 ); // You have been given a bag of sending.
|
|
bagOfSending = false;
|
|
}
|
|
else
|
|
{
|
|
reward.Delete();
|
|
}
|
|
}
|
|
|
|
if ( powderOfTranslocation )
|
|
{
|
|
Item reward = new PowderOfTranslocation( Utility.RandomMinMax( 10, 12 ) );
|
|
|
|
if ( player.PlaceInBackpack( reward ) )
|
|
{
|
|
player.SendLocalizedMessage( 1054075, "", 0x59 ); // You have been given some powder of translocation.
|
|
powderOfTranslocation = false;
|
|
}
|
|
else
|
|
{
|
|
reward.Delete();
|
|
}
|
|
}
|
|
|
|
if ( gold )
|
|
{
|
|
Item reward = new Gold( Utility.RandomMinMax( 250, 350 ) );
|
|
|
|
if ( player.PlaceInBackpack( reward ) )
|
|
{
|
|
player.SendLocalizedMessage( 1054076, "", 0x59 ); // You have been given some gold.
|
|
gold = false;
|
|
}
|
|
else
|
|
{
|
|
reward.Delete();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |