private void Update() { if (m_PlantStatus >= PlantStatus.DeadTwigs) { ItemID = 0x1B9D; Hue = PlantHueInfo.GetInfo(m_PlantHue).Hue; } else if (m_PlantStatus >= PlantStatus.FullGrownPlant) { ItemID = PlantTypeInfo.GetInfo(m_PlantType).ItemID; Hue = PlantHueInfo.GetInfo(m_PlantHue).Hue; } else if (m_PlantStatus >= PlantStatus.Plant) { ItemID = 0x1600; Hue = 0; } else { ItemID = 0x1602; Hue = 0; } InvalidateProperties(); }
public Seed(PlantType plantType, PlantHue plantHue, bool showType) : base(0xDCF) { Weight = 1.0; Stackable = Core.SA; m_PlantType = plantType; m_PlantHue = plantHue; m_ShowType = showType; Hue = PlantHueInfo.GetInfo(plantHue).Hue; }
private void AddSeedsState(int x, int y) { PlantSystem system = m_Plant.PlantSystem; int totalSeeds = system.AvailableSeeds + system.LeftSeeds; if (!m_Plant.Reproduces || totalSeeds == 0) { AddLabel(x + 5, y, 0x21, "X"); } else { AddLabel(x, y, PlantHueInfo.GetInfo(system.SeedHue).GumpHue, string.Format("{0}/{1}", system.AvailableSeeds, totalSeeds)); } }
private void AddResourcesState(int x, int y) { PlantResourceInfo resInfo = PlantResourceInfo.GetInfo(m_Plant.PlantType, m_Plant.PlantHue); PlantSystem system = m_Plant.PlantSystem; int totalResources = system.AvailableResources + system.LeftResources; if (resInfo == null || totalResources == 0) { AddLabel(x + 5, y, 0x21, "X"); } else { AddLabel(x, y, PlantHueInfo.GetInfo(m_Plant.PlantHue).GumpHue, string.Format("{0}/{1}", system.AvailableResources, totalResources)); } }
private int GetLabel(out string args) { PlantTypeInfo typeInfo = PlantTypeInfo.GetInfo(m_PlantType); PlantHueInfo hueInfo = PlantHueInfo.GetInfo(m_PlantHue); int title; if (m_ShowType || typeInfo.PlantCategory == PlantCategory.Default) { title = hueInfo.Name; } else { title = (int)typeInfo.PlantCategory; } if (Amount == 1) { if (m_ShowType) { args = String.Format("#{0}\t#{1}", title, typeInfo.Name); return(typeInfo.GetSeedLabel(hueInfo)); } else { args = String.Format("#{0}", title); return(hueInfo.IsBright() ? 1060839 : 1060838); // [bright] ~1_val~ seed } } else { if (m_ShowType) { args = String.Format("{0}\t#{1}\t#{2}", Amount, title, typeInfo.Name); return(typeInfo.GetSeedLabelPlural(hueInfo)); } else { args = String.Format("{0}\t#{1}", Amount, title); return(hueInfo.IsBright() ? 1113491 : 1113490); // ~1_amount~ [bright] ~2_val~ seeds } } }
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~ } } } }
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); // 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) { 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; } } } }