/// <summary> /// Creates a missile with homing and target finding capabilities. /// </summary> public GuidedMissile(IMyEntity missile, IMyCubeBlock firedBy, TargetingOptions opt, Ammo ammo, LastSeen initialTarget = null, bool isSlave = false) : base(missile, firedBy) { myLogger = new Logger("GuidedMissile", () => missile.getBestName(), () => m_stage.ToString()); myAmmo = ammo; myDescr = ammo.Description; if (ammo.Description.HasAntenna) myAntenna = new MissileAntenna(missile); TryHard = true; AllGuidedMissiles.Add(this); missile.OnClose += missile_OnClose; if (myAmmo.IsCluster && !isSlave) myCluster = new Cluster(myAmmo.MagazineDefinition.Capacity - 1); accelerationPerUpdate = (myDescr.Acceleration + myAmmo.MissileDefinition.MissileAcceleration) / 60f; addSpeedPerUpdate = myDescr.Acceleration / 60f; Options = opt; Options.TargetingRange = ammo.Description.TargetRange; myTargetSeen = initialTarget; myLogger.debugLog("Options: " + Options, "GuidedMissile()"); //myLogger.debugLog("AmmoDescription: \n" + MyAPIGateway.Utilities.SerializeToXML<Ammo.AmmoDescription>(myDescr), "GuidedMissile()"); }
/// <summary> /// Creates a missile with homing and target finding capabilities. /// </summary> public GuidedMissile(IMyEntity missile, IMyCubeBlock firedBy, TargetingOptions opt, Ammo ammo, LastSeen initialTarget = null) : base(missile, firedBy) { myLogger = new Logger("GuidedMissile", () => missile.getBestName(), () => m_stage.ToString()); myAmmo = ammo; myDescr = ammo.Description; if (ammo.Description.HasAntenna) myAntenna = new MissileAntenna(missile); TryHard = true; AllGuidedMissiles.Add(this); AddMissileOwner(MyEntity, CubeBlock.OwnerId); MyEntity.OnClose += MyEntity_OnClose; accelerationPerUpdate = (myDescr.Acceleration + myAmmo.MissileDefinition.MissileAcceleration) / 60f; addSpeedPerUpdate = myDescr.Acceleration / 60f; Options = opt; Options.TargetingRange = ammo.Description.TargetRange; myTargetSeen = initialTarget; myLogger.debugLog("Options: " + Options + ", initial target: " + (initialTarget == null ? "null" : initialTarget.Entity.getBestName()), "GuidedMissile()"); //myLogger.debugLog("AmmoDescription: \n" + MyAPIGateway.Utilities.SerializeToXML<Ammo.AmmoDescription>(myDescr), "GuidedMissile()"); }