Files
abysmal-isle/Scripts/Mobiles/NPCs/Kodar.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

181 lines
5.2 KiB
C#
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using Server.Items;
namespace Server.Engines.Quests
{
public class KodarsRescueQuest : BaseQuest
{
public override bool DoneOnce { get { return true; } }
public KodarsRescueQuest()
: base()
{
AddObjective(new EscortObjective(1074780, "Paroxysmus Exit")); // Palace Entrance
AddReward(new BaseReward(typeof(LargeTreasureBag), "A large bag of treasure."));
}
/* Kodar's Rescue */
public override object Title { get { return 1073066; } }
/* Please, please I beg of you ... help out of here. I was trying to find one of my sheep
that went missing and I fell down this hole. Then these ... *hysterical weeping*.
Please, get me out of here!
*/
public override object Description { get { return 1074704; } }
/* Please! PLEASE! Don't let me die here. */
public override object Refuse { get { return 1074705; } }
/* *whimper* Please ... hurry. I am a good climber and could get out the way you came in,
if you can just get me there.
*/
public override object Uncomplete { get { return 1074706; } }
/* You've saved my life! Oh thank you! I can't repay you for your kindness but please, take */
public override object Complete { get { return 1074707; } }
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 Kodar : BaseEscort
{
public static void Initialize()
{
if (Core.ML)
Spawn();
}
public static Point3D HomeLocation { get { return new Point3D(6311, 449, -50); } }
public static int HomeRange { get { return 5; } }
public override Type[] Quests { get { return new Type[] { typeof(KodarsRescueQuest) }; } }
public static List<Kodar> FelInstances { get; set; }
public static List<Kodar> TramInstances { get; set; }
[Constructable]
public Kodar()
: base()
{
Name = "Kodar";
Title = "the lost villager";
}
public Kodar(Serial serial)
: base(serial)
{
}
public override void Advertise()
{
Say(1074202); // Its you!   Im saved, you are just in time.
}
public override void OnDelete()
{
if (Map == Map.Felucca && FelInstances != null && FelInstances.Contains(this))
{
FelInstances.Remove(this);
FelInstances = null;
}
if (Map == Map.Trammel && TramInstances != null && TramInstances.Contains(this))
{
TramInstances.Remove(this);
TramInstances = null;
}
Timer.DelayCall(TimeSpan.FromSeconds(3), new TimerCallback(
delegate
{
Spawn();
}));
base.OnDelete();
}
public static void Spawn()
{
if (FelInstances == null)
{
Kodar creature = new Kodar();
creature.Home = HomeLocation;
creature.RangeHome = HomeRange;
creature.MoveToWorld(HomeLocation, Map.Felucca);
FelInstances = new List<Kodar>();
FelInstances.Add(creature);
}
if (TramInstances == null)
{
Kodar creature = new Kodar();
creature.Home = HomeLocation;
creature.RangeHome = HomeRange;
creature.MoveToWorld(HomeLocation, Map.Trammel);
TramInstances = new List<Kodar>();
TramInstances.Add(creature);
}
}
public override void InitBody()
{
InitStats(100, 100, 25);
Female = false;
Race = Race.Human;
Hue = 33790;
FacialHairItemID = 0x204D;
FacialHairHue = 1102;
HairItemID = 0x204A;
HairHue = 1102;
}
public override void InitOutfit()
{
SetWearable(new LongPants(1727));
SetWearable(new FancyShirt());
SetWearable(new ThighBoots());
}
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();
if (Map == Map.Felucca && FelInstances == null)
{
FelInstances = new List<Kodar>();
FelInstances.Add(this);
}
if (Map == Map.Trammel && TramInstances == null)
{
TramInstances = new List<Kodar>();
TramInstances.Add(this);
}
}
}
}