public void SeedSoil(Mobile from, Seed s) { if (from != null && !from.Deleted) { //planting gfx and sfx from.Animate(32, 5, 1, true, false, 0); from.PlaySound(0x368); //editing the targeted soil setOccupied(true); setOwner(from); PlantType = s.GetParentType(); m_SeedName = s.Name; int enhancedHarvestingLevel = ((IKhaerosMobile)m_Owner).Feats.GetFeatLevel(FeatList.EnhancedHarvesting); //tracking when the soil was seeded and when it will bloom, and creating a delay for growth based on that. m_Seeded = DateTime.Now; m_Bloom = m_Seeded.AddDays(7 - enhancedHarvestingLevel); m_GrowthDelay = m_Bloom - m_Seeded; //reseting the deletion date of the soil and attached plants now that it has been refreshed through seeding. m_LastPlantRefresh = m_Seeded; m_PlantDeath = m_LastPlantRefresh + TimeSpan.FromDays(3 + enhancedHarvestingLevel); if (UniversalPlantTimer == null || !UniversalPlantTimer.Running) { UniversalPlantTimer = new PlantTimer(); UniversalPlantTimer.Start(); } } else { from.SendMessage("ERROR: Seed's parent is " + s.GetParentType()); return; } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { m_Owner = (Mobile)reader.ReadMobile(); m_SeedName = (String)reader.ReadString(); if (reader.ReadBool()) m_PlantType = (Type)ScriptCompiler.FindTypeByName(reader.ReadString()); m_Occupied = (bool)reader.ReadBool(); m_FullGrown = (bool)reader.ReadBool(); m_Seeded = (DateTime)reader.ReadDateTime(); m_Bloom = (DateTime)reader.ReadDateTime(); m_GrowthDelay = (TimeSpan)reader.ReadTimeSpan(); m_LastPlantRefresh = (DateTime)reader.ReadDateTime(); m_PlantDeath = (DateTime)reader.ReadDateTime(); if (version < 1) reader.ReadBool(); if (version < 1) { if (reader.ReadBool()) m_Plant = (Item)reader.ReadItem(); } else m_Plant = (Item)reader.ReadItem(); goto case 0; } case 0: break; } if (UniversalPlantTimer == null || !UniversalPlantTimer.Running) { UniversalPlantTimer = new PlantTimer(); UniversalPlantTimer.Start(); } WaterHueCheck(); }