public void SummonSkeleton(Vector3 pos) { Skeleton skeleton = EntityFactory.CreateEntity <Physics>("Skeleton", pos).GetRoot().GetComponent <Skeleton>(); if (skeleton.Faction != null) { skeleton.Faction.Minions.Remove(skeleton.AI); } skeleton.Faction = this.Faction; this.Faction.AddMinion(skeleton.AI); Skeletons.Add(skeleton); Matrix animatePosition = skeleton.Sprite.LocalTransform; animatePosition.Translation = animatePosition.Translation - new Vector3(0, 1, 0); skeleton.Sprite.AnimationQueue.Add(new EaseMotion(1.0f, animatePosition, skeleton.Sprite.LocalTransform.Translation)); Manager.World.ParticleManager.Trigger("green_flame", pos, Color.White, 10); Manager.World.ParticleManager.Trigger("dirt_particle", pos, Color.White, 10); var myEnvoy = Faction.TradeEnvoys.Where(envoy => envoy.Creatures.Contains(this)).FirstOrDefault(); if (myEnvoy != null) { myEnvoy.Creatures.Add(skeleton.AI); } var myWarParty = Faction.WarParties.Where(party => party.Creatures.Contains(this)).FirstOrDefault(); if (myWarParty != null) { myWarParty.Creatures.Add(skeleton.AI); } }
public void SummonSkeleton(Vector3 pos) { Skeleton skeleton = EntityFactory.CreateEntity <Physics>("Skeleton", pos).GetRoot().GetComponent <Skeleton>(); Skeletons.Add(skeleton); Matrix animatePosition = skeleton.Sprite.LocalTransform; animatePosition.Translation = animatePosition.Translation - new Vector3(0, 1, 0); skeleton.Sprite.AnimationQueue.Add(new EaseMotion(1.0f, animatePosition, skeleton.Sprite.LocalTransform.Translation)); Manager.World.ParticleManager.Trigger("green_flame", pos, Color.White, 10); Manager.World.ParticleManager.Trigger("dirt_particle", pos, Color.White, 10); }
/// <summary> /// Parse a Skeletons tag /// </summary> protected void ParseSkeletons() { SaxToken?token = Match(XmlNodeType.Element, TagNames.Skeletons); Skeletons = new Skeletons(); CopyTokenAttributes(token, Skeletons); while (TestLookahead(XmlNodeType.Element, TagNames.Skeleton)) { //Parse each single Skeleton Skeleton skeleton = ParseSkeleton(); //Add it to the model Skeletons.Add(skeleton); } token = Match(XmlNodeType.EndElement, TagNames.Skeletons); }
public void SummonSkeleton() { Vector3 pos = Position + MathFunctions.RandVector3Box(-1.0f, 1.0f, 0.0f, 0.0f, -1.0f, 1.0f); Skeleton skeleton = EntityFactory.GenerateSkeleton(pos, Manager, GameState.Game.Content, GameState.Game.GraphicsDevice, Chunks, PlayState.Camera, Faction, PlayState.PlanService, this.Creature.Allies).GetChildrenOfType <Skeleton>().FirstOrDefault(); Skeletons.Add(skeleton); Matrix animatePosition = skeleton.Sprite.LocalTransform; animatePosition.Translation = animatePosition.Translation - new Vector3(0, 1, 0); skeleton.Sprite.AnimationQueue.Add(new EaseMotion(1.0f, animatePosition, skeleton.Sprite.LocalTransform.Translation)); PlayState.ParticleManager.Trigger("green_flame", pos, Color.White, 10); SoundManager.PlaySound(ContentPaths.Audio.tinkle, pos, true); }
private void KinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { Microsoft.Kinect.Skeleton[] skeletons = new Microsoft.Kinect.Skeleton[0]; using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame()) { if (skeletonFrame != null) { skeletons = new Microsoft.Kinect.Skeleton[skeletonFrame.SkeletonArrayLength]; skeletonFrame.CopySkeletonDataTo(skeletons); Skeletons.Clear(); foreach (Microsoft.Kinect.Skeleton skeleton in skeletons) { Skeletons.Add(new Skeleton(skeleton)); } } } OnSkeletonFrameReady(); }