Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,187 @@
using System;
using Server.Items;
using Server.Mobiles;
using Server.Spells.SkillMasteries;
using System.Collections.Generic;
namespace Server.Engines.Quests
{
public class WieldingTheSonicBladeQuest : BaseQuest
{
public WieldingTheSonicBladeQuest() : base()
{
AddObjective(new DiscordObjective());
AddReward(new BaseReward(1115699)); // Recognition for mastery of song wielding.
AddReward(new BaseReward(typeof(BookOfMasteries), 1028794));
}
public override object Title { get { return 1115696; } } //Wielding the Sonic Blade
public override object Description { get { return 1115697; } } /*This quest is the single quest required for a player to unlock the discordance mastery
* abilities for bards. This quest can be completed multiple times to reinstate the discordance
* mastery. To prove yourself worthy, you must first be a master of discordance and musicianship.
* You must be willing to distort your notes to bring pain to even the most indifferent ears.*/
public override object Refuse { get { return 1115700; } } //You must strive to spread discord.
public override object Uncomplete { get { return 1115700; } } //You must strive to spread discord.
public override object Complete { get { return 1115701; } } /* You have proven yourself worthy of wielding your music as a weapon. Rend the ears of your
* foes with your wails of discord. Let your song be feared as much as any sword.*/
public override bool CanOffer()
{
if (Owner == null)
return false;
if (Owner.Skills[SkillName.Musicianship].Base < 90 || Owner.Skills[SkillName.Discordance].Base < 90)
{
Owner.SendLocalizedMessage(1115703); // Your skills in this focus area are less than the required master level. (90 minimum)
return false;
}
foreach (BaseQuest q in Owner.Quests)
{
if (q is TheBeaconOfHarmonyQuest || q is IndoctrinationOfABattleRouserQuest)
{
Owner.SendLocalizedMessage(1115702); //You must quit your other mastery quests before engaging on a new one.
return false;
}
}
return true;
}
public override void GiveRewards()
{
base.GiveRewards();
MasteryInfo.LearnMastery(Owner, SkillName.Discordance, 3);
SkillMasterySpell.SetActiveMastery(Owner, SkillName.Discordance);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class DiscordObjective : SimpleObjective
{
private static readonly Type m_Type = typeof(Goat);
private List<string> m_Descr = new List<string>();
public override List<string> Descriptions { get { return m_Descr; } }
public DiscordObjective()
: base(5, -1)
{
m_Descr.Add("Discord five goats.");
}
public override bool Update(object obj)
{
if (obj is Mobile && ((Mobile)obj).GetType() == m_Type)
{
CurProgress++;
if (Completed)
Quest.OnCompleted();
else
{
Quest.Owner.SendLocalizedMessage(1115749, true, (this.MaxProgress - this.CurProgress).ToString()); // Creatures remaining to be discorded:
Quest.Owner.PlaySound(Quest.UpdateSound);
}
return true;
}
return false;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class SirBerran : MondainQuester
{
[Constructable]
public SirBerran()
{
Name = "Sir Berran";
Title = "the Song Weilder";
}
public SirBerran(Serial serial)
: base(serial)
{
}
public override Type[] Quests
{
get
{
return new Type[]
{
typeof(WieldingTheSonicBladeQuest),
};
}
}
public override void InitBody()
{
InitStats(125, 100, 25);
SpeechHue = Utility.RandomDyedHue();
Hue = Utility.RandomSkinHue();
if (IsInvulnerable && !Core.AOS)
NameHue = 0x35;
Female = false;
Body = 0x190;
SetWearable(new ChainChest(), 0x2BF);
SetWearable(new Shoes());
SetWearable(new ShortPants());
SetWearable(new Halberd());
SetWearable(new BodySash(0x355));
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,189 @@
using System;
using Server.Items;
using Server.Mobiles;
using Server.Spells.SkillMasteries;
using System.Collections.Generic;
namespace Server.Engines.Quests
{
public class TheBeaconOfHarmonyQuest : BaseQuest
{
public TheBeaconOfHarmonyQuest() : base()
{
AddObjective(new PeacemakingObjective());
AddReward(new BaseReward(1115679)); // Recognition for mastery of spirit soothing.
AddReward(new BaseReward(typeof(BookOfMasteries), 1028794));
}
public override object Title { get { return 1115677; } } //The Beacon of Harmony
public override object Description { get { return 1115676; } } /* This quest is the single quest required for a player to unlock the peacemaking
* mastery abilities for bards. This quest can be completed multiple times to reinstate
* the peacemaking mastery. To prove yourself worthy, you must first be a master of
* peacemaking and musicianship. You must be able to calm even the most vicious beast
* into tranquility.*/
public override object Refuse { get { return 1115680; } } //To deliver peace you must persevere.
public override object Uncomplete { get { return 1115680; } } //To deliver peace you must persevere.
public override object Complete { get { return 1115681; } } /* You have proven yourself a beacon of peace and a bringer of harmony. Only
* a warrior may choose the peaceful solution, all others are condemned to it.
* May your message of peace flow into the world and shelter you from harm.*/
public override bool CanOffer()
{
if (Owner == null)
return false;
if (Owner.Skills[SkillName.Musicianship].Base < 90 || Owner.Skills[SkillName.Peacemaking].Base < 90)
{
Owner.SendLocalizedMessage(1115703); // Your skills in this focus area are less than the required master level. (90 minimum)
return false;
}
foreach (BaseQuest q in Owner.Quests)
{
if (q is IndoctrinationOfABattleRouserQuest || q is WieldingTheSonicBladeQuest)
{
Owner.SendLocalizedMessage(1115702); //You must quit your other mastery quests before engaging on a new one.
return false;
}
}
return true;
}
public override void GiveRewards()
{
base.GiveRewards();
MasteryInfo.LearnMastery(Owner, SkillName.Peacemaking, 3);
SkillMasterySpell.SetActiveMastery(Owner, SkillName.Peacemaking);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class PeacemakingObjective : SimpleObjective
{
private static readonly Type m_Type = typeof(Mongbat);
private List<string> m_Descr = new List<string>();
public override List<string> Descriptions { get { return m_Descr; } }
public PeacemakingObjective()
: base(5, -1)
{
m_Descr.Add("Calm five mongbats.");
}
public override bool Update(object obj)
{
if (obj is Mobile && ((Mobile)obj).GetType() == m_Type)
{
CurProgress++;
if (Completed)
Quest.OnCompleted();
else
{
Quest.Owner.SendLocalizedMessage(1115747, true, (MaxProgress - CurProgress).ToString()); // Creatures remaining to be calmed: ~1_val~.
Quest.Owner.PlaySound(Quest.UpdateSound);
}
return true;
}
return false;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class SirFelean : MondainQuester
{
[Constructable]
public SirFelean()
{
Name = "Sir Felean";
Title = "the Spirit Soother";
}
public SirFelean(Serial serial)
: base(serial)
{
}
public override Type[] Quests
{
get
{
return new Type[]
{
typeof(TheBeaconOfHarmonyQuest),
};
}
}
public override void InitBody()
{
InitStats(125, 100, 25);
SpeechHue = Utility.RandomDyedHue();
Hue = Utility.RandomSkinHue();
if (IsInvulnerable && !Core.AOS)
NameHue = 0x35;
Female = false;
Body = 0x190;
SetWearable(new ChainChest(), 0x35);
SetWearable(new Shoes(GetShoeHue()));
SetWearable(new LongPants());
SetWearable(new Halberd());
SetWearable(new BodySash(0x498));
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}

View File

@@ -0,0 +1,187 @@
using System;
using Server.Items;
using Server.Mobiles;
using Server.Spells.SkillMasteries;
using System.Collections.Generic;
namespace Server.Engines.Quests
{
public class IndoctrinationOfABattleRouserQuest : BaseQuest
{
public IndoctrinationOfABattleRouserQuest() : base()
{
AddObjective(new ProvocationObjective());
AddReward(new BaseReward(1115659)); // Recognition for mastery of battle rousing.
AddReward(new BaseReward(typeof(BookOfMasteries), 1028794));
}
public override object Title { get { return 1115657; } } //Indoctrination of a Battle Rouser
public override object Description { get { return 1115656; } } /*This quest is the single quest required for a player to unlock the provocation
* mastery abilities for bards. This quest can be completed multiple times to reinstate
* the provocation mastery. To prove yourself worthy, you must be able to incite even
* the most peaceful to frenzied battle lust.*/
public override object Refuse { get { return 1115660; } } //To inspire you must persevere.
public override object Uncomplete { get { return 1115660; } } //To inspire you must persevere.
public override object Complete { get { return 1115661; } } /* You have proven yourself worthy of driving armies. Go forth, and have the blessing
* and curse of the War Heralds always in your heart and mind. May peace always dwell
* before you, may destruction mark your wake, and may fury be your constant companion.
* Sow the seeds of battle and glory in the music of war.*/
public override bool CanOffer()
{
if (Owner == null)
return false;
if (Owner.Skills[SkillName.Musicianship].Base < 90 || Owner.Skills[SkillName.Provocation].Base < 90)
{
Owner.SendLocalizedMessage(1115703); // Your skills in this focus area are less than the required master level. (90 minimum)
return false;
}
foreach (BaseQuest q in Owner.Quests)
{
if (q is TheBeaconOfHarmonyQuest || q is WieldingTheSonicBladeQuest)
{
Owner.SendLocalizedMessage(1115702); //You must quit your other mastery quests before engaging on a new one.
return false;
}
}
return true;
}
public override void GiveRewards()
{
base.GiveRewards();
MasteryInfo.LearnMastery(Owner, SkillName.Provocation, 3);
SkillMasterySpell.SetActiveMastery(Owner, SkillName.Provocation);
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class ProvocationObjective : SimpleObjective
{
private List<string> m_Descr = new List<string>();
public override List<string> Descriptions { get { return m_Descr; } }
public ProvocationObjective()
: base(5, -1)
{
m_Descr.Add("Incite rabbits into battle with 5 wandering healers.");
}
public override bool Update(object obj)
{
if (obj is Mobile && (((Mobile)obj).GetType() == typeof(WanderingHealer) || ((Mobile)obj).GetType() == typeof(EvilWanderingHealer)))
{
CurProgress++;
if (Completed)
Quest.OnCompleted();
else
{
Quest.Owner.SendLocalizedMessage(1115748, true, (this.MaxProgress - this.CurProgress).ToString()); // Conflicts remaining to be incited:
Quest.Owner.PlaySound(Quest.UpdateSound);
}
return true;
}
return false;
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
public class SirHareus : MondainQuester
{
[Constructable]
public SirHareus()
{
Name = "Sir Hareus";
Title = "the Battle Rouser";
}
public SirHareus(Serial serial)
: base(serial)
{
}
public override Type[] Quests
{
get
{
return new Type[]
{
typeof(IndoctrinationOfABattleRouserQuest),
};
}
}
public override void InitBody()
{
InitStats(125, 100, 25);
SpeechHue = Utility.RandomDyedHue();
Hue = Utility.RandomSkinHue();
if (IsInvulnerable && !Core.AOS)
NameHue = 0x35;
Female = false;
Body = 0x190;
SetWearable(new ChainChest(), 0x30A);
SetWearable(new Shoes(GetShoeHue()));
SetWearable(new LongPants(GetRandomHue()));
SetWearable(new Halberd());
SetWearable(new BodySash(0x355));
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}