public override void AddNameProperty(ObjectPropertyList list) { if (m_PlantStatus >= PlantStatus.DeadTwigs) { base.AddNameProperty(list); } else if (m_PlantStatus >= PlantStatus.FullGrownPlant) { PlantHueInfo hueInfo = PlantHueInfo.GetInfo(m_PlantHue); PlantTypeInfo typeInfo = PlantTypeInfo.GetInfo(m_PlantType); int title = PlantTypeInfo.GetBonsaiTitle(m_PlantType); if (title == 0) // Not a bonsai { title = hueInfo.Name; } if (m_PlantStatus < PlantStatus.DecorativePlant) { if (m_PlantType == PlantType.SugarCanes) { string args = string.Format("#{0}", m_PlantSystem.GetLocalizedHealth()); list.Add(1094702, args); } else { string args = string.Format("#{0}\t#{1}\t#{2}", m_PlantSystem.GetLocalizedHealth(), title, typeInfo.Name); if (typeInfo.ContainsPlant) { // a ~1_HEALTH~ [bright] ~2_COLOR~ ~3_NAME~ list.Add(hueInfo.IsBright() ? 1061891 : 1061889, args); } else { // a ~1_HEALTH~ [bright] ~2_COLOR~ ~3_NAME~ plant list.Add(hueInfo.IsBright() ? 1061892 : 1061890, args); } } } else { if (m_PlantType == PlantType.SugarCanes) { list.Add(1094703); } else if (title == 1080528) { // a decorative ~2_TYPE~ list.Add(1080539, string.Format("#{0}\t#{1}", title, typeInfo.Name)); } else { // a decorative ~1_COLOR~ ~2_TYPE~ plant list.Add(hueInfo.IsBright() ? 1074267 : 1070973, string.Format("#{0}\t#{1}", title, typeInfo.Name)); } } } else if (m_PlantStatus >= PlantStatus.Seed) { PlantHueInfo hueInfo = PlantHueInfo.GetInfo(m_PlantHue); int title = PlantTypeInfo.GetBonsaiTitle(m_PlantType); if (title == 0) // Not a bonsai { title = hueInfo.Name; } string args = string.Format("#{0}\t#{1}\t#{2}", m_PlantSystem.GetLocalizedDirtStatus(), m_PlantSystem.GetLocalizedHealth(), title); if (m_ShowType) { PlantTypeInfo typeInfo = PlantTypeInfo.GetInfo(m_PlantType); args += "\t#" + typeInfo.Name.ToString(); if (typeInfo.ContainsPlant && m_PlantStatus == PlantStatus.Plant) { // a bowl of ~1_val~ dirt with a ~2_val~ [bright] ~3_val~ ~4_val~ list.Add(hueInfo.IsBright() ? 1060832 : 1060831, args); } else { // a bowl of ~1_val~ dirt with a ~2_val~ [bright] ~3_val~ ~4_val~ ~5_val~ list.Add(hueInfo.IsBright() ? 1061887 : 1061888, args + "\t#" + GetLocalizedPlantStatus().ToString()); } } else { // a bowl of ~1_val~ dirt with a ~2_val~ [bright] ~3_val~ ~4_val~ list.Add(hueInfo.IsBright() ? 1060832 : 1060831, args + "\t#" + GetLocalizedPlantStatus().ToString()); } } else { list.Add(1060830, "#" + m_PlantSystem.GetLocalizedDirtStatus()); // a bowl of ~1_val~ dirt } }
protected override void OnTarget(Mobile from, object targeted) { if (!m_Plant.Deleted && m_Plant.PlantStatus < PlantStatus.DecorativePlant && from.InRange(m_Plant.GetWorldLocation(), 3)) { if (!m_Plant.IsUsableBy(from)) { m_Plant.LabelTo(from, 1061856); // You must have the item in your backpack or locked down in order to use it. } else if (!m_Plant.IsCrossable) { m_Plant.LabelTo(from, 1053050); // You cannot gather pollen from a mutated plant! } else if (!m_Plant.PlantSystem.PollenProducing) { m_Plant.LabelTo(from, 1053051); // You cannot gather pollen from a plant in this stage of development! } else if (m_Plant.PlantSystem.Health < PlantHealth.Healthy) { m_Plant.LabelTo(from, 1053052); // You cannot gather pollen from an unhealthy plant! } else { PlantItem targ = targeted as PlantItem; if (targ == null || targ.PlantStatus >= PlantStatus.DecorativePlant || targ.PlantStatus <= PlantStatus.BowlOfDirt) { m_Plant.LabelTo(from, 1053070); // You can only pollinate other specially grown plants! } else if (!targ.IsUsableBy(from)) { targ.LabelTo(from, 1061856); // You must have the item in your backpack or locked down in order to use it. } else if (!targ.IsCrossable) { targ.LabelTo(from, 1053073); // You cannot cross-pollinate with a mutated plant! } else if (!targ.PlantSystem.PollenProducing) { targ.LabelTo(from, 1053074); // This plant is not in the flowering stage. You cannot pollinate it! } else if (targ.PlantSystem.Health < PlantHealth.Healthy) { targ.LabelTo(from, 1053075); // You cannot pollinate an unhealthy plant! } else if (targ.PlantSystem.Pollinated) { targ.LabelTo(from, 1053072); // This plant has already been pollinated! } else if (targ == m_Plant) { targ.PlantSystem.Pollinated = true; targ.PlantSystem.SeedType = m_Plant.PlantType; targ.PlantSystem.SeedHue = m_Plant.PlantHue; targ.LabelTo(from, 1053071); // You pollinate the plant with its own pollen. } else { targ.PlantSystem.Pollinated = true; targ.PlantSystem.SeedType = PlantTypeInfo.Cross(m_Plant.PlantType, targ.PlantType); targ.PlantSystem.SeedHue = PlantHueInfo.Cross(m_Plant.PlantHue, targ.PlantHue); targ.LabelTo(from, 1053076); // You successfully cross-pollinate the plant. } } } }
private void DrawPlant() { var status = m_Plant.PlantStatus; if (status < PlantStatus.FullGrownPlant) { AddImage(110, 85, 0x589); AddItem(122, 94, 0x914); AddItem(135, 94, 0x914); AddItem(120, 112, 0x914); AddItem(135, 112, 0x914); if (status >= PlantStatus.Stage2) { AddItem(127, 112, 0xC62); } if (status == PlantStatus.Stage3 || status == PlantStatus.Stage4) { AddItem(129, 85, 0xC7E); } if (status >= PlantStatus.Stage4) { AddItem(121, 117, 0xC62); AddItem(133, 117, 0xC62); } if (status >= PlantStatus.Stage5) { AddItem(110, 100, 0xC62); AddItem(140, 100, 0xC62); AddItem(110, 130, 0xC62); AddItem(140, 130, 0xC62); } if (status >= PlantStatus.Stage6) { AddItem(105, 115, 0xC62); AddItem(145, 115, 0xC62); AddItem(125, 90, 0xC62); AddItem(125, 135, 0xC62); } } else { var typeInfo = PlantTypeInfo.GetInfo(m_Plant.PlantType); var hueInfo = PlantHueInfo.GetInfo(m_Plant.PlantHue); // The large images for these trees trigger a client crash, so use a smaller, generic tree. if (m_Plant.PlantType == PlantType.CypressTwisted || m_Plant.PlantType == PlantType.CypressStraight) { AddItem(130 + typeInfo.OffsetX, 96 + typeInfo.OffsetY, 0x0CCA, hueInfo.Hue); } else { AddItem(130 + typeInfo.OffsetX, 96 + typeInfo.OffsetY, typeInfo.ItemID, hueInfo.Hue); } } if (status != PlantStatus.BowlOfDirt) { var message = m_Plant.PlantSystem.GetLocalizedHealth(); switch (m_Plant.PlantSystem.Health) { case PlantHealth.Dying: { AddItem(92, 167, 0x1B9D); AddItem(161, 167, 0x1B9D); AddHtmlLocalized(136, 167, 42, 20, message, 0x00FC00); break; } case PlantHealth.Wilted: { AddItem(91, 164, 0x18E6); AddItem(161, 164, 0x18E6); AddHtmlLocalized(132, 167, 42, 20, message, 0x00C207); break; } case PlantHealth.Healthy: { AddItem(96, 168, 0xC61); AddItem(162, 168, 0xC61); AddHtmlLocalized(129, 167, 42, 20, message, 0x008200); break; } case PlantHealth.Vibrant: { AddItem(93, 162, 0x1A99); AddItem(162, 162, 0x1A99); AddHtmlLocalized(129, 167, 42, 20, message, 0x0083E0); break; } } } }
public Seed() : this(PlantTypeInfo.RandomFirstGeneration(), PlantHueInfo.RandomFirstGeneration(), false) { }
public static Seed RandomBonsaiSeed(double increaseRatio) { return(new Seed(PlantTypeInfo.RandomBonsai(increaseRatio), PlantHue.Plain, false)); }
private void DrawPlant() { PlantStatus status = m_Plant.PlantStatus; if (status < PlantStatus.FullGrownPlant) { AddImage(110, 85, 0x589); AddItem(122, 94, 0x914); AddItem(135, 94, 0x914); AddItem(120, 112, 0x914); AddItem(135, 112, 0x914); if (status >= PlantStatus.Stage2) { AddItem(127, 112, 0xC62); } if (status == PlantStatus.Stage3 || status == PlantStatus.Stage4) { AddItem(129, 85, 0xC7E); } if (status >= PlantStatus.Stage4) { AddItem(121, 117, 0xC62); AddItem(133, 117, 0xC62); } if (status >= PlantStatus.Stage5) { AddItem(110, 100, 0xC62); AddItem(140, 100, 0xC62); AddItem(110, 130, 0xC62); AddItem(140, 130, 0xC62); } if (status >= PlantStatus.Stage6) { AddItem(105, 115, 0xC62); AddItem(145, 115, 0xC62); AddItem(125, 90, 0xC62); AddItem(125, 135, 0xC62); } } else { PlantTypeInfo typeInfo = PlantTypeInfo.GetInfo(m_Plant.PlantType); PlantHueInfo hueInfo = PlantHueInfo.GetInfo(m_Plant.PlantHue); AddItem(130 + typeInfo.OffsetX, 96 + typeInfo.OffsetY, typeInfo.ItemID, hueInfo.Hue); } if (status != PlantStatus.BowlOfDirt) { int message = m_Plant.PlantSystem.GetLocalizedHealth(); switch (m_Plant.PlantSystem.Health) { case PlantHealth.Dying: { AddItem(92, 167, 0x1B9D); AddItem(161, 167, 0x1B9D); AddHtmlLocalized(136, 167, 42, 20, message, 0x00FC00, false, false); break; } case PlantHealth.Wilted: { AddItem(91, 164, 0x18E6); AddItem(161, 164, 0x18E6); AddHtmlLocalized(132, 167, 42, 20, message, 0x00C207, false, false); break; } case PlantHealth.Healthy: { AddItem(96, 168, 0xC61); AddItem(162, 168, 0xC61); AddHtmlLocalized(129, 167, 42, 20, message, 0x008200, false, false); break; } case PlantHealth.Vibrant: { AddItem(93, 162, 0x1A99); AddItem(162, 162, 0x1A99); AddHtmlLocalized(129, 167, 42, 20, message, 0x0083E0, false, false); break; } } } }
public override void AddNameProperty(ObjectPropertyList list) { if (m_PlantStatus >= PlantStatus.DeadTwigs) { base.AddNameProperty(list); } else if (m_PlantStatus < PlantStatus.Seed) { string args; if (ShowContainerType) { args = String.Format("#{0}\t#{1}", GetLocalizedContainerType(), m_PlantSystem.GetLocalizedDirtStatus()); } else { args = String.Format("#{0}", m_PlantSystem.GetLocalizedDirtStatus()); } list.Add(1060830, args); // a ~1_val~ of ~2_val~ dirt } else { PlantTypeInfo typeInfo = PlantTypeInfo.GetInfo(m_PlantType); PlantHueInfo hueInfo = PlantHueInfo.GetInfo(m_PlantHue); if (m_PlantStatus >= PlantStatus.DecorativePlant) { list.Add(typeInfo.GetPlantLabelDecorative(hueInfo), String.Format("#{0}\t#{1}", hueInfo.Name, typeInfo.Name)); } else if (m_PlantStatus >= PlantStatus.FullGrownPlant) { list.Add(typeInfo.GetPlantLabelFullGrown(hueInfo), String.Format("#{0}\t#{1}\t#{2}", m_PlantSystem.GetLocalizedHealth(), hueInfo.Name, typeInfo.Name)); } else { string args; if (ShowContainerType) { args = String.Format("#{0}\t#{1}\t#{2}", GetLocalizedContainerType(), m_PlantSystem.GetLocalizedDirtStatus(), m_PlantSystem.GetLocalizedHealth()); } else { args = String.Format("#{0}\t#{1}", m_PlantSystem.GetLocalizedDirtStatus(), m_PlantSystem.GetLocalizedHealth()); } if (m_ShowType) { args += String.Format("\t#{0}\t#{1}\t#{2}", hueInfo.Name, typeInfo.Name, GetLocalizedPlantStatus()); if (m_PlantStatus == PlantStatus.Plant) { list.Add(typeInfo.GetPlantLabelPlant(hueInfo), args); } else { list.Add(typeInfo.GetPlantLabelSeed(hueInfo), args); } } else { args += String.Format("\t#{0}\t#{1}", (typeInfo.PlantCategory == PlantCategory.Default) ? hueInfo.Name : (int)typeInfo.PlantCategory, GetLocalizedPlantStatus()); list.Add(hueInfo.IsBright() ? 1060832 : 1060831, args); // a ~1_val~ of ~2_val~ dirt with a ~3_val~ [bright] ~4_val~ ~5_val~ } } } }
public override void AddNameProperty(ObjectPropertyList list) { if (this.m_PlantStatus >= PlantStatus.DeadTwigs) { base.AddNameProperty(list); } else if (this.m_PlantStatus >= PlantStatus.FullGrownPlant) { PlantHueInfo hueInfo = PlantHueInfo.GetInfo(this.m_PlantHue); PlantTypeInfo typeInfo = PlantTypeInfo.GetInfo(this.m_PlantType); int title = PlantTypeInfo.GetBonsaiTitle(this.m_PlantType); if (title == 0) // Not a bonsai { title = hueInfo.Name; } if (this.m_PlantType == PlantType.CocoaTree) { title = 1080529; } if (this.m_PlantStatus < PlantStatus.DecorativePlant) { if (this.m_PlantType == PlantType.SugarCanes) { string args = string.Format("#{0}", this.m_PlantSystem.GetLocalizedHealth()); list.Add(1094702, args); // ~1_HEALTH~ Sugar Canes } else if (this.m_PlantType == PlantType.CocoaTree) { string args = string.Format("#{0}", this.m_PlantSystem.GetLocalizedHealth()); list.Add(1080534, args); // a ~1_HEALTH~ cocoa tree } else { string args = string.Format("#{0}\t#{1}\t#{2}", this.m_PlantSystem.GetLocalizedHealth(), title, typeInfo.Name); if (typeInfo.ContainsPlant) { // a ~1_HEALTH~ [bright] ~2_COLOR~ ~3_NAME~ list.Add(hueInfo.IsBright() ? 1061891 : 1061889, args); } else { // a ~1_HEALTH~ [bright] ~2_COLOR~ ~3_NAME~ plant list.Add(hueInfo.IsBright() ? 1061892 : 1061890, args); } } } else { if (this.m_PlantType == PlantType.SugarCanes) { list.Add(1094703); // Decorative Sugar Canes } else if (this.m_PlantType == PlantType.CocoaTree) { list.Add(1080531); // a decorative cocoa tree } else if (title == 1080528) { // a decorative ~2_TYPE~ list.Add(1080539, string.Format("#{0}\t#{1}", title, typeInfo.Name)); } else { // a decorative [bright] ~1_COLOR~ ~2_TYPE~ list.Add(hueInfo.IsBright() ? 1074267 : 1070973, string.Format("#{0}\t#{1}", title, typeInfo.Name)); } } } else if (this.m_PlantStatus >= PlantStatus.Seed) { PlantHueInfo hueInfo = PlantHueInfo.GetInfo(this.m_PlantHue); int title = PlantTypeInfo.GetBonsaiTitle(this.m_PlantType); if (title == 0) // Not a bonsai { title = hueInfo.Name; } if (this.m_PlantType == PlantType.CocoaTree) { title = 1080532; // cocoa tree } string args = string.Format("#{0}\t#{1}\t#{2}", this.m_PlantSystem.GetLocalizedDirtStatus(), this.m_PlantSystem.GetLocalizedHealth(), title); // 7.0.12.0 cliloc change args = String.Concat("#1150435\t", args); // TODO: Change to plant container type when implemented if (this.m_ShowType) { PlantTypeInfo typeInfo = PlantTypeInfo.GetInfo(this.m_PlantType); args += "\t#" + typeInfo.Name.ToString(); if (typeInfo.ContainsPlant && this.m_PlantStatus == PlantStatus.Plant) { // a ~1_val~ of ~2_val~ dirt with a ~3_val~ [bright] ~4_val~ ~5_val~ list.Add(hueInfo.IsBright() ? 1060832 : 1060831, args); } else if (this.m_PlantType == PlantType.CocoaTree) { if (this.m_PlantStatus == PlantStatus.Seed) { // a ~1_val~ of ~2_val~ dirt with a ~3_val~ cocoa tree seed list.Add(1080536, args); } else { // a ~1_val~ of ~2_val~ dirt with a ~3_val~ ~4_val~ ~5_val~ list.Add(1080535, args + "\t#" + this.GetLocalizedPlantStatus().ToString()); } } else { // a ~1_val~ of ~2_val~ dirt with a ~3_val~ [bright] ~4_val~ ~5_val~ ~6_val~ list.Add(hueInfo.IsBright() ? 1061887 : 1061888, args + "\t#" + this.GetLocalizedPlantStatus().ToString()); } } else { // a ~1_val~ of ~2_val~ dirt with a ~3_val~ [bright] ~4_val~ ~5_val~ list.Add(hueInfo.IsBright() ? 1060832 : 1060831, args + "\t#" + this.GetLocalizedPlantStatus().ToString()); } } else { string args = "#" + this.m_PlantSystem.GetLocalizedDirtStatus(); // 7.0.12.0 cliloc change args = String.Concat("#1150435\t", args); // TODO: Change to plant container type when implemented list.Add(1060830, args); // a ~1_val~ of ~2_val~ dirt } }